{"id":24731400,"url":"https://github.com/ycy-0510/form_ui","last_synced_at":"2026-05-03T21:33:21.043Z","repository":{"id":273289341,"uuid":"919218977","full_name":"ycy-0510/form_ui","owner":"ycy-0510","description":"This is a simple and clean form UI package for flutter. It is a collection of different form elements like buttons, text inputs, select inputs, counter inputs, checkbox inputs, and position select inputs. You can use it in your flutter project to make your form more attractive and user-friendly.","archived":false,"fork":false,"pushed_at":"2026-01-26T07:03:21.000Z","size":481,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-26T21:12:17.079Z","etag":null,"topics":["button","checkbox","counter","cross-platform","flutter","form","position-select","textinput","ui"],"latest_commit_sha":null,"homepage":"https://pub.dev/packages/form_ui","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ycy-0510.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,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-01-20T01:27:10.000Z","updated_at":"2026-01-26T07:03:25.000Z","dependencies_parsed_at":"2025-03-06T12:37:09.940Z","dependency_job_id":null,"html_url":"https://github.com/ycy-0510/form_ui","commit_stats":null,"previous_names":["ycy-0510/form_ui"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ycy-0510/form_ui","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ycy-0510%2Fform_ui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ycy-0510%2Fform_ui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ycy-0510%2Fform_ui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ycy-0510%2Fform_ui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ycy-0510","download_url":"https://codeload.github.com/ycy-0510/form_ui/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ycy-0510%2Fform_ui/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32586187,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["button","checkbox","counter","cross-platform","flutter","form","position-select","textinput","ui"],"created_at":"2025-01-27T16:49:04.207Z","updated_at":"2026-05-03T21:33:21.026Z","avatar_url":"https://github.com/ycy-0510.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Form UI\n![Pub Publisher](https://img.shields.io/pub/publisher/form_ui) ![Pub Points](https://img.shields.io/pub/points/form_ui) ![Pub Version](https://img.shields.io/pub/v/form_ui)\n\nThis is a simple and clean form UI package for flutter. It is a collection of different form elements like buttons, text inputs, select inputs, counter inputs, checkbox inputs, and position select inputs. You can use it in your flutter project to make your form more attractive and user-friendly.\n\n\n## Demo\n![Static Badge](https://img.shields.io/badge/netlify-Deployed-blue?link=https%3A%2F%2Fflutterformui.netlify.app)\n[Online Demo](https://flutterformui.netlify.app)\n\n## Features\n\n- [x] Easy to use\n- [x] Simple and clean\n## Getting started\n## Prerequisites\n\nBefore you begin, ensure you have met the following requirements:\n- You have installed Flutter on your development machine. You can download it from [flutter.dev](https://flutter.dev).\n- You are using a supported operating system (Windows, macOS, or Linux).\n- You have a basic understanding of Dart and Flutter.\n\n## Installation\n\nTo install the package, follow these steps:\n\n1. Add the package to your `pubspec.yaml` file:\n    ```yaml\n    dependencies:\n      form_ui: ^latest_version\n    ```\n2. Install the package by running:\n    ```sh\n    flutter pub get\n    ```\n\nFor more detailed information on how to get started with Flutter, visit the [official Flutter documentation](https://flutter.dev/docs/get-started/install).\n\n## Usage\n\n### Button\nPrimary Button\n```dart\n FormPrimaryButton(\n    onPressed: () {\n        print('Primary Button');\n    },\n    child: Text(\n        'Primary',\n        style:\n            TextStyle(fontSize: 20, fontWeight: FontWeight.bold),\n    )),\n```\nYou can also add danger style in it.\n```dart\n style: FormPrimaryButton.dangerStyle,\n```\nSecondary Button\n```dart\nFormSecondaryButton(\n    onPressed: () {\n        ScaffoldMessenger.of(context).showSnackBar(SnackBar(\n        content: Text(\n            'Secondary Button pressed!',\n        ),\n        behavior: SnackBarBehavior.floating,\n        duration: Duration(milliseconds: 300),\n        ));\n    },\n    child: Text(\n        'Secondary',\n        style: TextStyle(fontSize: 20),\n    )),\n```\nYou can also add danger style in it.\n```dart\n style: FormSecondaryButton.dangerStyle,\n```\n\n### Input\nText Input\n```dart\n FormTextInput(\n    hintText: 'Hint Text',\n    labelText: 'Label Text',\n    onEditingComplete: () {\n        print('Editing Complete');\n    },\n    onChanged: (value) {\n        print(value);\n    },\n),\n```\nSelect Input\n```dart\nFormSelect\u003cint\u003e(\n      hint: 'Please Select You Name',\n      value: value,\n      items: [\n        DropdownMenuItem(value: 1, child: Text('First')),\n        DropdownMenuItem(value: 2, child: Text('Second')),\n        DropdownMenuItem(value: 3, child: Text('Third')),\n      ],\n      onChange: (int? v) {\n        setState(() {\n          value = v;\n        });\n        print(value);\n      },\n    );\n```\nCounter Input\n```dart\nFormCounter(\n      hint: 'Counter',\n      max: 1000,\n      min: 0,\n      value: value,\n      onChange: (v) {\n        setState(() {\n          value = v;\n        });\n        print(value);\n      },\n    );\n```\nCheckbox Input\n```dart\nFormCheckBox(\n      value: value,\n      hint: 'Check Box',\n      onChange: (v) {\n        setState(() {\n          value = v;\n        });\n        ScaffoldMessenger.of(context).showSnackBar(SnackBar(\n          content: Text(\n            'Checkbox: ${v ? 'Checked' : 'Unchecked'}',\n          ),\n          behavior: SnackBarBehavior.floating,\n          duration: Duration(milliseconds: 300),\n        ));\n      },\n    );\n```\n\nPosition Select Input\n```dart\nColumn(\n      crossAxisAlignment: CrossAxisAlignment.stretch,\n      children: [\n        FormCheckBox(\n          value: flip,\n          hint: 'Flip',\n          onChange: (value) {\n            setState(() {\n              flip = value;\n            });\n          },\n        ),\n        FutureBuilder(\n          future: getBgBytes(),\n          builder: (context, snapshot) {\n            if (snapshot.hasData) {\n              return FormPositionSelect(\n                bytes: snapshot.data!.buffer.asUint8List(),\n                allowSelectZone: [\n                  Rect.fromLTRB(45, 10,\n                      46, 90),\n                ],//allow to select only this zone, you can add multiple zone\n                showAllowSelectZone: true,//default is false\n                position: position,\n                onChange: (value) {\n                    setState(() {\n                        position = value;\n                    });\n                    print(value);\n                },\n                flip: flip,\n              );\n            } else {\n              return Center(\n                child: Text('Reading Bytes'),\n              );\n            }\n          },\n        ),\n      ],\n    );\n```\n\n## License\nThis project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.\n\nAll image assets are **NOT** included in this package. You NEED to use your own image assets.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fycy-0510%2Fform_ui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fycy-0510%2Fform_ui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fycy-0510%2Fform_ui/lists"}