{"id":13784794,"url":"https://github.com/miquelbeltran/flutter95","last_synced_at":"2025-04-09T16:18:29.900Z","repository":{"id":52461529,"uuid":"273172845","full_name":"miquelbeltran/flutter95","owner":"miquelbeltran","description":"Windows95 UI components for Flutter apps. Bring back the nostalgic look and feel of old operating systems with this set of UI components ready to use.","archived":false,"fork":false,"pushed_at":"2024-10-31T15:06:37.000Z","size":651,"stargazers_count":207,"open_issues_count":5,"forks_count":23,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-09T16:18:21.347Z","etag":null,"topics":["flutter","hacktoberfest"],"latest_commit_sha":null,"homepage":"https://pub.dev/packages/flutter95","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/miquelbeltran.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":["miquelbeltran"]}},"created_at":"2020-06-18T07:37:51.000Z","updated_at":"2025-03-24T12:00:26.000Z","dependencies_parsed_at":"2022-08-26T13:51:13.814Z","dependency_job_id":"e62c602d-4b28-4b10-9728-7f87e4df0739","html_url":"https://github.com/miquelbeltran/flutter95","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miquelbeltran%2Fflutter95","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miquelbeltran%2Fflutter95/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miquelbeltran%2Fflutter95/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miquelbeltran%2Fflutter95/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/miquelbeltran","download_url":"https://codeload.github.com/miquelbeltran/flutter95/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248065281,"owners_count":21041872,"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":["flutter","hacktoberfest"],"created_at":"2024-08-03T19:00:52.616Z","updated_at":"2025-04-09T16:18:29.877Z","avatar_url":"https://github.com/miquelbeltran.png","language":"Dart","funding_links":["https://github.com/sponsors/miquelbeltran"],"categories":["Packages"],"sub_categories":[],"readme":"# Flutter95\n\nWindows95 UI components for Flutter apps.\n\n## Screenshots\n\n\u003cimg src=\"https://github.com/miquelbeltran/flutter95/raw/master/art/screenshot.png\" alt=\"Screenshot\" width=\"200\"/\u003e\n\n## Components\n\n#### Scaffold95\n\nScaffold as a Windows95 styled window.\n\n* Provides title.\n* Optional: toolbar that requires `Item95` action items.\n\n\u003cimg src=\"https://github.com/miquelbeltran/flutter95/raw/master/art/scaffold95_2.png\" alt=\"Screenshot\" width=\"200\"/\u003e\n\n* If a scaffold `canPop` (meaning it is not a root of the app) then a close button appears.\n\n\u003cimg src=\"https://github.com/miquelbeltran/flutter95/raw/master/art/scaffold95_1.png\" alt=\"Screenshot\" width=\"200\"/\u003e\n\n```dart\nScaffold95(\n  title: 'Flutter95',\n  toolbar: Toolbar95(\n    actions: [\n      Item95(\n        label: 'File', \n        onTap: () {},\n      ),\n    ],\n  ),\n  body: Container(),\n)\n```\n\n#### Menu95\n\nWindows95 styled menu.\n\n\u003cimg src=\"https://github.com/miquelbeltran/flutter95/raw/master/art/menu95.png\" alt=\"Screenshot\" width=\"200\"/\u003e\n\n* Easy API wrapping Material's `showMenu`.\n\n```dart\nMenu95(\n  items: [\n    MenuItem95(\n      value: 1,\n      label: 'New',\n    ),\n    MenuItem95(\n      value: 2,\n      label: 'Open',\n    ),\n    MenuItem95(\n      value: 3,\n      label: 'Exit',\n    ),\n  ],\n  onItemSelected: (item) {},\n);\n```\n\n* Display using `show(context, position)`.\n\n```dart\nmenu.show(\n  context,\n  Offset(50, 100),\n);\n```\n\n* Use it directly with Item95 to be positioned automatically.\n\n```dart\nItem95(\n  label: 'File',\n  menu: Menu95(...),\n),\n```\n\n#### Button95\n\nWindows95 styled button.\n\n* Provides default text style for child widgets.\n* Provides default padding for children.\n* If `onTap` is null, acts as a disabled button.\n\n```dart\nButton95(\n  onTap: () {},\n  child: Text('Button95'),\n)\n```\n\n#### Checkbox95\n\nWindows95 styled checkbox\n\n* Provides label in windows95 style.\n* If `onChanged` is null, acts as a disabled checkbox.\n```dart\nCheckbox95(\n    value: value,\n    label: \"Some Label\", // optional, if null no label is shown\n    onChanged: (value) {}, // optional, if null acts as a disabled checkbox\n)\n```\n\n\u003cimg src=\"https://github.com/miquelbeltran/flutter95/raw/master/art/checkbox95.png\" alt=\"Checkbox95\" width=\"200\"/\u003e\n\n#### TextField95\n\nTextField styled as a Windows95 text field.\n\n* Uses a Material TextField internally.\n\n```dart\nTextField95()\n```\n\n#### Tooltip95\n\nA tooltip widget designed in Windows95 style.\n* Works just like Material's `Tooltip`.\n\n```dart\nTooltip95(\n    message: 'Hello from Flutter95!',\n    child: Text('I have a tooltip for you!'),\n)\n```\n\n\u003cimg src=\"https://github.com/miquelbeltran/flutter95/raw/master/art/tooltip95.png\" alt=\"Tooltip95\" width=\"200\"/\u003e\n\n#### Divider95\n\nA divider widget designed in Windows95 style.\n* Works just like Material's `Divider`.\n* Supports indent, endIndent and height.\n\n```dart\nDivider95()\n```\n\n\u003cimg src=\"https://github.com/miquelbeltran/flutter95/raw/master/art/divider95.png\" alt=\"Divider95\" width=\"200\"/\u003e\n\n#### Elevation95\n\nCreates an effect of deepness and elevation around Widgets.\n\n```dart\nElevation95(\n  child: Text('Elevated Text')\n)\n```\n\n#### Flutter95.textStyle\n\nTextStyle ready to use that copies the Windows95 text style.\n\n```dart\nText(\n  'Text with Flutter95.textStyle',\n  style: Flutter95.textStyle,\n);\n```\n\n#### Dialogs\n\n```dart\nshowDialog95(\n  context: context,\n  title: 'Error',\n  message: 'Task failed successfully',\n);\n```\n\n\u003cimg src=\"https://github.com/miquelbeltran/flutter95/raw/master/art/dialog.png\" alt=\"Dialog\" width=\"200\"/\u003e\n\n### Contributing\n\nYou can contribute in different ways:\n\n- Creating new Windows95 styled components.\n  - Please include screenshots in your PRs!\n  - Please update the example and tests to include the new component!\n- Improving existing components with better options.\n- Improving documentation both in code and this README file.\n- Creating more tests.\n- Improving CI scripts.\n- Fixing lint issues.\n- Creating feature requests.\n  - Please include a screenshot.\n  - Also don't expect a quick response, this is a hobby project.\n- Reporting bugs. \n\n### Acknowledgments\n\nHeavily inspired by [React95](https://github.com/arturbien/React95).\n\nFeatured in [My Windows 95 ChatGPT app](https://www.youtube.com/watch?v=sXBWzFmLMxY) by @filiph.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiquelbeltran%2Fflutter95","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmiquelbeltran%2Fflutter95","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiquelbeltran%2Fflutter95/lists"}