Living document. Each milestone is tracked as a GitHub issue set labeled by phase. ✅ = done in the initial extraction, 🚧 = in progress / next, ⬜ planned.
Extract the dynamic UI engine out of the e_pg project into a dependency-free package, removing GetX / magic_view / micropack_core / screenutil.
- ✅ Package scaffold (
pubspec.yaml, barrel, analysis) - ✅ Theme layer:
CofluiColors,CofluiTypography,CofluiBreakpoints - ✅ Native widget set (thin wrappers):
CofluiText,CofluiButton,CofluiTextField,CofluiDropdown,CofluiCard,CofluiDialog,CofluiGrid,CofluiResponsive - ✅ Dynamic engine migrated to
ChangeNotifier+ native widgets - ✅ Responsive
gridcomponent (breakpoint-driven column count) - ✅ Docs: README, ARCHITECTURE, DYNAMIC_UI schema, ROADMAP
Integrate coflui back into e_pg as the live consumer (gallery + samples). This is the dogfood milestone — keep e_pg's GetX at the module layer while coflui runs native underneath.
- 🚧 e_pg
pubspecdepends oncoflui(path) - 🚧
SampleRendererControllerextendsCofluiFormController - 🚧 Gallery views use
ListenableBuilder - 🚧 New sample demonstrating responsive
grid(mobile/tablet/desktop) - ⬜ All existing samples (FTKP document, form izin, data-passing) render green
- ⬜
maxWidth/ content-centering for cards & body on desktop - ⬜
rowwrapmode (auto-flow children to next line when cramped) - ⬜ Navigation-shell guidance sample (master-detail on desktop)
- ⬜ Breakpoint-driven
gridhints documented + tested
- ✅
imagecomponent (network + asset) — viaCofluiIcon+imagetype - ✅
listcomponent (bind an array → repeat a child template) - ⬜ Conditional visibility (
visibleWhenexpression on a node) - ⬜ Dynamic option sources (fetch dropdown options from an endpoint)
- ✅
icon/gradient_bar/detail_rowcomponents - ✅
list_tilecomponent (card-style row) - ✅
chipcomponent (status pill / badge)
Grow src/widgets so it can fully replace magic_view project-wide:
- ⬜
CofluiAutoComplete - ⬜
CofluiDatePicker/CofluiMonthPicker(styled dialogs) - ⬜
CofluiDialogrich variants (confirm with input, bottom-sheet) - ✅
CofluiAppBar,CofluiScaffold(scaffold helpers) - ✅
CofluiListTile,CofluiDetailRow(content widgets) - ✅
CofluiIcon(universal icon/image: png / svg / url-cached) - ✅
CofluiGradients+CofluiGradientBar(brand gradient presets) - ⬜ Theming polish: dark mode tokens, typography presets
- ⬜
CofluiRemoteView— fetch layout JSON from a URL, render, cache - ⬜ Validation contract (shape-check before render, graceful error card)
- ⬜ Action routing (button
actionUrl→ POST snapshot back) - ⬜ Hot-reload / versioning of layouts
- ⬜ Unit tests for models, registry, resolver, controller
- ⬜ Golden tests for responsive grid breakpoints
- ⬜ Example app (
example/) showcasing everything - ⬜ Publish to pub.dev (or internal versioned tag releases)
- ⬜ Changelog automation / semantic versioning
| Topic | Decision |
|---|---|
| State mgmt | ChangeNotifier-based; interface for adapters |
| Sizing | raw logical px (no screenutil) |
| Responsive | breakpoint-driven layout, not element scaling |
| Deps | flutter + gap + flutter_svg + cached_network_image |
| Replacing MV | grow Coflui* widgets first, deprecate magic_view later |