Choosing a package
There is no meta-package to install and no setup step to get through. Find the problem you actually have below, install that one package, and ignore the rest until you need them.
Start from the problem
Section titled “Start from the problem”| If you are… | Use | Why |
|---|---|---|
| Wiring up colors and text styles for a new app | fabrik_theme | Semantic color and typography roles instead of scattered Color(0xFF…) literals |
| Building one UI that works on phone, tablet and desktop | fabrik_layout | Width-based breakpoints and a value() helper for per-device values |
| Handling text input, validation and submit state | fabrik_forms | Form state that lives outside your widgets, so it can be unit tested |
| Showing feedback after an action succeeds or fails | fabrik_snackbar | Overlay-based snackbars and toasts with no Scaffold requirement |
| Returning failures from a repository without throwing | fabrik_result | Either and Option, pure Dart, no Flutter dependency |
Re-writing timeAgo, debounce or snakeCase again | fabrik_utils | The helpers most apps end up hand-rolling |
How much you need
Section titled “How much you need”Nothing here depends on anything else, so the packages can be adopted one at a time and dropped just as easily.
fabrik_result pure Dart, no dependencies → usable in any Dart projectfabrik_utils Flutter + intlfabrik_theme Flutterfabrik_layout Flutterfabrik_forms Flutterfabrik_snackbar FlutterThe one relationship worth knowing: fabrik_theme decides how things look and
fabrik_layout decides how they are arranged. They complement each other but
neither imports the other, so using one does not commit you to the other.
Text( 'Dashboard', style: context.layout.isMobile ? context.typography.titleMedium // fabrik_theme : context.typography.titleLarge, // sized by fabrik_layout's category)What Fabrik is not
Section titled “What Fabrik is not”Being honest about the boundaries saves you evaluating it for the wrong job:
- Not a state management solution.
fabrik_formsmanages form state only. Bring Bloc, Riverpod, orsetStatefor everything else. - Not a widget library. There are no buttons, cards, or dialogs. Fabrik gives you the design tokens; the widgets stay yours.
- Not a functional programming framework.
fabrik_resultshipsEither,OptionandUnit— the parts people actually use — and deliberately stops short of typeclasses and monad transformers.
Stability
Section titled “Stability”| Package | Version | API stability |
|---|---|---|
fabrik_theme | 1.1.0 | Stable |
fabrik_layout | 1.2.0 | Stable |
fabrik_result | 1.1.0 | Stable |
fabrik_forms | 0.2.0 | Evolving — breaking changes possible before 1.0 |
fabrik_utils | 0.2.0 | Evolving — breaking changes possible before 1.0 |
fabrik_snackbar | 0.1.8 | Evolving — breaking changes possible before 1.0 |
Packages at 1.x follow semantic versioning. Packages below 1.0 may change
their APIs in a minor release; each change is documented in that package’s
changelog with a migration note.