[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-9358":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":16,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":17,"rankGlobal":10,"rankLanguage":10,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":19,"hasPages":19,"topics":21,"createdAt":10,"pushedAt":10,"updatedAt":31,"readmeContent":32,"aiSummary":33,"trendingCount":16,"starSnapshotCount":16,"syncStatus":34,"lastSyncTime":35,"discoverSource":36},9358,"flui","Rannie\u002Fflui","Rannie","A powerful UI framework for Google Flutter.","https:\u002F\u002Fwww.flui.xin\u002Fen\u002F",null,"Dart",1456,134,34,13,0,54.39,"MIT License",false,"master",[22,5,23,24,25,26,27,28,29,30],"dynamic-rendering","flutter","flutter-package","flutter-ui","flutter-widget","google-flutter","skeleton","toast","widgets","2026-06-12 04:00:44","English | [简体中文](https:\u002F\u002Fgithub.com\u002FRannie\u002Fflui\u002Fblob\u002Fmaster\u002FREADME-zh_CN.md)\n\n\u003Cbr \u002F>\n\u003Cp align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fflui.xin\">\n        \u003Cimg width=\"200\" src=\"https:\u002F\u002Fabtfun.oss-cn-beijing.aliyuncs.com\u002Fimg\u002F2019-12-18-Artboard.png\">\n    \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Ch1 align=\"center\">FLUI\u003C\u002Fh1>\n\n\u003Cdiv align=\"center\">\n\u003Cp>A powerful UI framework for Google Flutter \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRannie\u002FRannie.github.io\u002Fraw\u002Fmaster\u002Fapp-release-0-9-2.apk\">Demo apk\u003C\u002Fa>\u003C\u002Fp>\n\n\n[![pub package](https:\u002F\u002Fimg.shields.io\u002Fpub\u002Fv\u002Fflui.svg)](https:\u002F\u002Fpub.dev\u002Fpackages\u002Fflui) \n[![CI Status](https:\u002F\u002Fgithub.com\u002Frannie\u002Fflui\u002Fworkflows\u002Ftest\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FRannie\u002Fflui\u002Factions) \n[![Documentation](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fread_the-docs-2196f3.svg)](https:\u002F\u002Fwww.flui.xin\u002Fen\u002Fwidgets\u002Fbutton.html) \n[![GitHub stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FRannie\u002Fflui)](https:\u002F\u002Fgithub.com\u002FRannie\u002Fflui\u002Fstargazers) \n[![GitHub forks](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fforks\u002FRannie\u002Fflui.svg)](https:\u002F\u002Fgithub.com\u002FRannie\u002Fflui) \n[![GitHub license](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002FRannie\u002Fflui.svg)](https:\u002F\u002Fgithub.com\u002FRannie\u002Fflui\u002Fblob\u002Fmaster\u002FLICENSE)\n\n\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FRannie\u002FRannie.github.io\u002Fmaster\u002Fimages\u002F2019-12-18-overview-2.png\" \u002F>\n\n\u003C\u002Fdiv>\n\n## Features\n\n* A set of high-quality Flutter widgets out of the box\n* Comprehensive usage examples and documentation\n* Fine-grained non-stylized widgets for different types of applications\n* Supports [Dark Mode](https:\u002F\u002Fabtfun.oss-cn-beijing.aliyuncs.com\u002Fimg\u002F2019-12-27-dark_shots.png) and [RTL](https:\u002F\u002Fabtfun.oss-cn-beijing.aliyuncs.com\u002Fimg\u002F2019-12-27-rtl_shots.png)\n* Dynamic rendering module -- [Dynamic](https:\u002F\u002Fwww.flui.xin\u002Fen\u002Fdynamic.html)\n\n## Compatibility\n\n**FLUI** has good compatibility on multiple clients, and the framework will be developed based on Flutter Stable Channel.\n\nCurrently supports *v1.17.0* .\n\n## Getting Started\n\n#### Setup\n\n```yaml\ndependencies:\n  flui: 0.9.2\n```\n\nThen run `flutter pub get` to download the dependencies.\n\n#### Usage\n\nAfter the dependency installed, you can directly import the widget.\n\n```dart\nimport 'package:flui\u002Fflui.dart';\n\n\u002F\u002F in somewhere\nFLAppBarTitle(\n    title: 'AppBar',\n    subtitle: '(subtitle)',\n    layout: FLAppBarTitleLayout.vertical,\n    showLoading: true\n)\n```\n\n## Widgets\n\n- [Button](https:\u002F\u002Fwww.flui.xin\u002Fen\u002Fwidgets\u002Fbutton.html)\n- [Label](https:\u002F\u002Fwww.flui.xin\u002Fen\u002Fwidgets\u002Flabel.html)\n- [Toast](https:\u002F\u002Fwww.flui.xin\u002Fen\u002Fwidgets\u002Ftoast.html)\n- [Bubble](https:\u002F\u002Fwww.flui.xin\u002Fen\u002Fwidgets\u002Fbubble.html)\n- [Input](https:\u002F\u002Fwww.flui.xin\u002Fen\u002Fwidgets\u002Finput.html)\n- [Avatar](https:\u002F\u002Fwww.flui.xin\u002Fen\u002Fwidgets\u002Favatar.html)\n- [Badge](https:\u002F\u002Fwww.flui.xin\u002Fen\u002Fwidgets\u002Fbadge.html)\n- [Image](https:\u002F\u002Fwww.flui.xin\u002Fen\u002Fwidgets\u002Fimage.html)\n- [CountStepper](https:\u002F\u002Fwww.flui.xin\u002Fen\u002Fwidgets\u002Fcounter.html)\n- [AppBar](https:\u002F\u002Fwww.flui.xin\u002Fen\u002Fwidgets\u002Fappbar.html)\n- [NoticeBar](https:\u002F\u002Fwww.flui.xin\u002Fen\u002Fwidgets\u002Fnotice-bar.html)\n- [Empty](https:\u002F\u002Fwww.flui.xin\u002Fen\u002Fwidgets\u002Fempty.html)\n- [Skeleton](https:\u002F\u002Fwww.flui.xin\u002Fen\u002Fwidgets\u002Fskeleton.html)\n- [BottomSheet](https:\u002F\u002Fwww.flui.xin\u002Fen\u002Fwidgets\u002Fbottom-sheet.html)\n- [List](https:\u002F\u002Fwww.flui.xin\u002Fen\u002Fwidgets\u002Flist.html)\n- [Theme](https:\u002F\u002Fwww.flui.xin\u002Fen\u002Fwidgets\u002Ftheme.html)\n\n## Dynamic\n\n![dynamic-post](https:\u002F\u002Fabtfun.oss-cn-beijing.aliyuncs.com\u002Fimg\u002F2020-03-11-dynamic-poster-1.png)\n\n**FLUI-Dynamic** is a dynamic rendering module that supports rendering widgets based on json strings or objects of a specified type. For more introduction and usage, please see [Dynamic](https:\u002F\u002Fwww.flui.xin\u002Fen\u002Fdynamic.html)\n\n``` dart\nWidget buildDynamicWidget() {\n    return FLDyContainer(\n       jsonObject: $JSON_STRING_OR_OBJECT,\n       placeholder: CircularProgressIndicator(\n         strokeWidth: 3.0,\n         valueColor: AlwaysStoppedAnimation(Theme.of(context).accentColor),\n       ),\n    );\n}\n```\n\n## Contributing\n\nPrinciples:\n\n* Branches that submit new widgets should be named *'feature-'* + widget name. Fixing issues need to be prefixed with *'bugfix-'*\n* The submitted widgets need to be general. If the widget is rare or not sure whether it needs to be added to **FLUI**, you can raise a [issue](https:\u002F\u002Fgithub.com\u002FRannie\u002Fflui\u002Fissues) which starts with *\\[feature\\]* for discussion\n* The API design of the new widget is as standard and readable as possible, following the naming and usage rules of Flutter's official widgets.\n* Please comment above properties and methods how to use it so that I can add to the documentation and examples.\n* Commit messages: prefix with `feat | fix | docs | style | refactor | perf | test | workflow | ci | chore | types:`.\n\n\n## License\n\nMIT License\n\n\n","FLUI 是一个为 Google Flutter 设计的强大 UI 框架。它提供了一套高质量的 Flutter 组件，包括按钮、标签、吐司提示、气泡提示等，并且支持暗黑模式和从右到左的文字布局。FLUI 的动态渲染模块使得开发者能够更加灵活地构建用户界面。该框架文档详尽，示例丰富，适用于需要快速开发美观且功能齐全的 Flutter 应用场景，无论是个人项目还是企业级应用都能从中受益。通过简单的依赖配置即可开始使用 FLUI 提供的各种组件来加速你的 Flutter 项目开发流程。",2,"2026-06-11 03:22:20","top_language"]