{"id":23034597,"url":"https://github.com/ivangalkindeveloper/flutter_platform_component","last_synced_at":"2025-08-23T15:03:28.982Z","repository":{"id":114344376,"uuid":"595206019","full_name":"ivangalkindeveloper/flutter_platform_component","owner":"ivangalkindeveloper","description":"📱 Ready-made component base using ready-made abstractions for quick use and decomposed by platform.","archived":false,"fork":false,"pushed_at":"2024-02-04T17:41:05.000Z","size":75258,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-04-24T07:46:16.806Z","etag":null,"topics":["component","component-library","components","components-library","dart","dart-library","dart-package","dartlang","flutter","flutter-components","flutter-library","flutter-package","flutter-widget","flutter-widgets","platform","widget","widget-library","widgets"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ivangalkindeveloper.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2023-01-30T16:05:27.000Z","updated_at":"2024-02-28T10:26:38.000Z","dependencies_parsed_at":"2024-01-28T15:43:58.121Z","dependency_job_id":null,"html_url":"https://github.com/ivangalkindeveloper/flutter_platform_component","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivangalkindeveloper%2Fflutter_platform_component","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivangalkindeveloper%2Fflutter_platform_component/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivangalkindeveloper%2Fflutter_platform_component/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivangalkindeveloper%2Fflutter_platform_component/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ivangalkindeveloper","download_url":"https://codeload.github.com/ivangalkindeveloper/flutter_platform_component/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229844458,"owners_count":18133094,"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","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":["component","component-library","components","components-library","dart","dart-library","dart-package","dartlang","flutter","flutter-components","flutter-library","flutter-package","flutter-widget","flutter-widgets","platform","widget","widget-library","widgets"],"created_at":"2024-12-15T16:32:58.084Z","updated_at":"2024-12-15T16:32:58.913Z","avatar_url":"https://github.com/ivangalkindeveloper.png","language":"Dart","readme":"\u003ch1 align=\"center\"\u003eFlutter Platform Component\u003c/h1\u003e\n\u003cdiv align=\"center\"\u003e\n  \n  📱 Ready-made inherited component base using ready-made abstractions for quick use and decomposed by platform.\n  \u003cbr\u003e\n  \u003cbr\u003e\n  \n  | iOS (Cupertino) | Android (Material) |\n  | :-------------: | :----------------: |\n  |        ✅       |         ✅         |\n\n  \u003ca href=\"\"\u003e![Pub Likes](https://img.shields.io/pub/likes/flutter_platform_component?color=success)\u003c/a\u003e\n  \u003ca href=\"\"\u003e![Pub Version](https://img.shields.io/pub/v/flutter_platform_component?color=important)\u003c/a\u003e\n  \u003ca href=\"https://opensource.org/licenses/MIT\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/license-MIT-blue.svg\" alt=\"License: MIT\"\u003e\n  \u003c/a\u003e\n  \n\u003c/div\u003e\n\u003cdiv align=\"center\"\u003e\n  \n  \u003ca href=\"https://www.buymeacoffee.com/ivangalkin\"\u003e\n    \u003cimg src=\"https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png\" alt=\"Buy Me A Coffee\" height=\"32px\" width= \"128px\"\u003e\n  \u003c/a\u003e\n  \n\u003c/div\u003e\n\u003cbr\u003e\n\u003cdiv align=\"center\"\u003e\n  \n  [VS Code Snippets](https://marketplace.visualstudio.com/items?itemName=ivangalkin.flutter-platform-component-snippet) have been generated for this package:\n  \n  ![](https://github.com/ivangalkindeveloper/flutter_platform_component/blob/master/asset/snippet.gif)\n  \n\u003c/div\u003e\n\n## Getting Started\n- [Documentation](#documentation)\n- [Benefits](#benefits)\n  - [Platform decomposition](#platform-decomposition)\n  - [One theme contract](#one-theme-contract)\n  - [Component entities](#component-entities)\n  - [Optimization](#optimization)\n  - [Color scheme](#color-scheme)\n  - [Boilerplate](#boilerplate)\n  - [Unified API](#unified-api)\n  - [Validation](#validation)\n  - [Disabled components](#disabled-components)\n  - [Disabled Snippets](#snippets)\n- [Design](#design)\n- [Dependencies](#dependencies)\n- [TODO](#todo)\n- [Additional information](#additional-information)\n\n## Documentation\nSee the documentation for using the package and components here - [Flutter Platform Component Wiki](https://github.com/ivangalkindeveloper/flutter_platform_component/wiki).\n\n## Benefits\nThe package works according to the principle: fill out needed contracts - get all ready-made inherited platform components.\n### Platform decomposition\nComponents are separated by platform by style and behavior.\n### One theme contract\nExtension themes along with the ThemeData class are very good when you use widgets only for Material Design.\\\nIn case you want to get the correct behavior of widgets for the platform, you must fill in Theme and CupertinoTheme and each time remember to separate these colors in the widgets you use.\\\nTheme Extension works in the same way as this package.\\\nIn the case of this package - it is necessary to fill in only one contract of the theme used.\n### Component entities\nIn addition to the theme, there are other entities that are managed identically to the theme - animations, dates, duraions, haptics, sizes, text styles and times.\n### Optimization\nEach entity is updated with its stateful and inherited widgets to optimize the redrawing of child widgets that are subscribed via the context to the entity data.\n### Color scheme\nThe color scheme was created in terms of the convenience of designers (primary, secondary, accent, success, warning and danger colors with dark/default/light shades).\\\nIn the scheme by name, permanent colors and tint colors are created (note - primaryLight and primaryDark).\n### Boilerplate\nReady-made components get rid of a lot of boilerplate code.\n### Unified API\nAll component property names are unified, for example, you will never see \"background\" and \"backgroundColor\".\n### Validation\nForm fields have not only normal validation, but also separate auto-validation, which can be used for messages during the characters entered in the field.\\\nSegment control, Gradient segment control, sliding segment control, toggle, gradient toggle components also have a validation function (IsRequired flag) and can be placed at the root of the Form widget.\n### Disabled components\nEvery component that can be clicked has the property to be disabled implemented.\n### Snippets\nVS Code snippets have been generated for this package for convenient development and creating your own widget wrappers.\n\n## Design\nComponents follow the following design paradigm:\n1) The component should not contain business logic;\n2) All components must aspire to the behavior of the target platform;\n3) If there is no such component in the target platform cookbook, a component is needed that will be as similar as possible to it and has identical behavior;\n4) Component change the color of the disabled component, if it only has not background color;\n5) The design of cross-platform components and their behavior are not mix.\n\n## Dependencies\nThe package uses a fork of the following dependencies:\\\n[animate_do](https://pub.dev/packages/animate_do) - fade animations;\\\n[animations](https://pub.dev/packages/animations) - transitional animations;\\\n[badges](https://pub.dev/packages/badges) - badges;\\\n[dotted_border](https://pub.dev/packages/dotted_border) - dotted border container;\\\n[flutter_vibrate](https://pub.dev/packages/flutter_vibrate) - all vibrations;\\\n[modal_bottom_sheet](https://pub.dev/packages/modal_bottom_sheet) (fork) - transitions that support modal animations and modal windows appearance method;\\\n[pinput](https://pub.dev/packages/pinput) - code fields and PIN fields.\\\nExpress our gratitude to the authors of these dependencies.\n\n## TODO\n1) Elevation of components;\n2) Support WEB \u0026 desktop;\n3) FPCTooltip;\n4) FPCDrawer;\n5) Script for properties comments for pub scores.\n\n## Additional information\nFor more details see example project.\\\nAnd feel free to open an issue if you find any bugs or errors or suggestions.","funding_links":["https://www.buymeacoffee.com/ivangalkin"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivangalkindeveloper%2Fflutter_platform_component","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fivangalkindeveloper%2Fflutter_platform_component","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivangalkindeveloper%2Fflutter_platform_component/lists"}