🛠 A package absorbing all Flutter utility functions, including extension functions and commonly used widgets.
- 📄 Bottom Sheet
- 🏗 BuildContext
- 🎨 Colors
- 🧭 Navigation
- 📱 Widgets
- 🖼 RenderObject
- ↕ Size
📄 Bottom Sheet
Show modal bottom sheets using:
Handy extensions on
|opposite of |
contrastColor can also be used on
Handy extensions on
|if opacity is |
|like above, but with an integer alpha|
Convert between alpha and opacity with
🌈 Material Design colors
Material Design specifies different opacities of white and black colors to use for text of different emphases on colored backgrounds. You can now use the
disabledOnColor extension getters on
Color to make your text legible!
There are also getters on
ThemeData for contrast colors on the primary, accent, background, and error colors.
Access your navigation-related information via extension methods:
Push a new route and pop all previous routes (e.g., when signing out the user):
navigator.pushAndRemoveAll(/* new route */); // Or using a named route: navigator.pushNamedAndRemoveAll(/* route name */);
Log navigation events to the console:
MaterialApp( navigatorObservers: [LoggingNavigatorObserver()], // ... ) // Prints: // Navigator: didPush /dashboard → /articles/12345 // Navigator: didPop /dashboard ← /articles/12345
isLoading: Setting this to
CircularProgressIndicatorand disables this button. You can optionally specify a
FancyFab) to show next to the progress indicator.
isEnabled: Settings this to
falsedisables this button, even if
Wraps multiple chips and can optionally show a title above these.
A layout with two different behaviors:
- By default, all children are positioned next to each other with equal widths. This is comparable to a
Rowwith all children wrapped in
- If the children are too wide to fit in a single line, or one child would become smaller than its reported minimum width, the children get positioned below each other ("wrapped"). This is similar to a
A container wrapping multiple buttons with an interpunct (
·) between each one. It's recommended to use
TextButtons as children.
Did you ever want to show a subtitle (in addition to a main title) in your
TitleAndSubtitle (very creative name, I know):
AppBar( title: TitleAndSubtitle( title: Text('My title'), subtitle: Text('My optional subtitle'), ), )
When writing a custom layout, you might find this extension on
|Returns all children using |
|length of the diagonal of a rectangle with this |