{"id":30719867,"url":"https://github.com/dankinsoid/flutter-cljd","last_synced_at":"2025-09-03T10:42:33.342Z","repository":{"id":258625527,"uuid":"874289490","full_name":"dankinsoid/flutter-cljd","owner":"dankinsoid","description":"ClojureDart wrapper for Flutter Material widgets","archived":false,"fork":false,"pushed_at":"2024-10-24T08:30:40.000Z","size":314,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-24T09:49:42.557Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dankinsoid.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-17T15:07:09.000Z","updated_at":"2024-10-24T08:30:44.000Z","dependencies_parsed_at":"2024-11-11T16:37:46.272Z","dependency_job_id":null,"html_url":"https://github.com/dankinsoid/flutter-cljd","commit_stats":null,"previous_names":["dankinsoid/flutter-cljd"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/dankinsoid/flutter-cljd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dankinsoid%2Fflutter-cljd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dankinsoid%2Fflutter-cljd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dankinsoid%2Fflutter-cljd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dankinsoid%2Fflutter-cljd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dankinsoid","download_url":"https://codeload.github.com/dankinsoid/flutter-cljd/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dankinsoid%2Fflutter-cljd/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273431361,"owners_count":25104491,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-03T02:00:09.631Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-09-03T10:42:32.532Z","updated_at":"2025-09-03T10:42:33.320Z","avatar_url":"https://github.com/dankinsoid.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# flutter-cljd\n\n![Alpha Status](https://img.shields.io/badge/status-alpha-red)\n\nClojureDart wrapper for Flutter Material widgets, designed to simplify and compact Flutter development in ClojureDart. It provides concise, Clojure-like syntax to work with Flutter’s Material components and types, making code more readable and expressive for Clojure developers building Flutter apps.\n\n## Main Goals\n\n### Provide a more concise and readable UI syntax\nThe library focuses on simplifying the syntax for building Flutter UIs, making it more compact, intuitive, and aligned with Clojure’s functional style.\n\n### Use Clojure data structures for better consistency and flexibility\nThe API is designed around pure Clojure types instead of Dart’s, offering a more seamless and consistent experience for Clojure developers while increasing code flexibility.\n\n### Streamline and enhance Dart APIs\nThe library simplifies certain Dart APIs, making them easier to use and more expressive, improving the overall developer experience.\n\n## Extensions\nBesides wrappers the library contains some extensions to Flutter\n- [Animations](./docs/Animations.md)\n- [Button](./docs/Button.md)\n\n## Examples\n\n```clojure\n;; Basic button with styling\n(-\u003e\u003e (text \"Click me!\")\n     (with-text-style :color :blue, :size 16)\n     (padding :h 16 :v 8)\n     (button #(println \"Clicked!\")))\n```\n```clojure\n;; Card with multiple elements\n(-\u003e\u003e (row :spacing 10\n       (text \"Title\" :size 20, :weight :bold)\n       (text \"Subtitle\" :color :gray))\n     (padding 16)\n     (card :elevation 2 :radius 8))\n```\n\n### Styling and Layout\n```clojure\n;; Applying styles and layouts\n(-\u003e\u003e (text \"Styled Text\")\n     (with-text-style :color :blue\n                      :size 20\n                      :weight :bold)\n     (padding 16)\n     (center))\n\n;; Responsive layouts\n(-\u003e\u003e (column :spacing 8\n       (text \"Header\")\n       (expanded\n         (list-view\n           (for [i (range 10)]\n             (text (str \"Item \" i)))))\n       (text \"Footer\"))\n     (container :color :white))\n```\n\n### Interactive Components\n```clojure\n;; Button with feedback\n(-\u003e\u003e (text \"Click Me!\")\n     (button #(println \"Clicked!\")\n             {:on-long-press #(println \"Long pressed!\")\n              :on-hover #(println \"Hover: \" %)}))\n\n;; Form elements\n(let [controller (atom \"\")]\n  (-\u003e\u003e (text-field\n         {:controller controller\n          :on-changed #(reset! controller %)\n          :decoration {:label \"Enter text\"}})\n       (padding 16)))\n```\n\n### Complete Example\n```clojure\n(ns readme.example\n  (:require [flutter-cljd.widgets :as ui]))\n\n;; User profile card\n(defn profile-card [\u0026 {:keys [name role avatar]}]\n  (-\u003e\u003e (ui/row\n         ;; Avatar section\n         (-\u003e\u003e avatar\n              (ui/circle :size 40)\n              (ui/padding :right 12))\n         \n         ;; Text content\n         (ui/column :spacing 10\n           (ui/text name :size 18, :weight :bold)\n           (ui/text role :size 14)))\n       (ui/with-text-style :color :gray)\n       (ui/padding 16)\n       (ui/card :elevation 4 :radius 12)\n       (ui/center)))\n\n;; Usage example\n(def user-profile\n  (profile-card\n     :name \"John Doe\"\n     :role \"Senior Developer\"\n     :avatar (ui/image \"path/to/avatar.png\")))\n```\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.\n\n### Guidelines\n\n- Follow the existing code style\n- Add tests for new features\n- Update documentation as needed\n- Keep commits focused and atomic\n- Write clear commit messages (I recommend Aider to generate commit messages)\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdankinsoid%2Fflutter-cljd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdankinsoid%2Fflutter-cljd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdankinsoid%2Fflutter-cljd/lists"}