What problem does it solve?
Enforces a clear separation between presentation and business logic by providing a consistent set of pure UI widgets, extension methods, and mixins that reduce duplication, prevent logic leakage, and ensure visual consistency across the app.
Core Features & Use Cases
- Pure UI components: stateless widgets exposed via a widgets barrel that accept callbacks for all interactions.
- Styling tokens: centralized styling through AppColors, AppTypography, and AppDimensions to eliminate hardcoded values.
- Reusable mixins & extensions: loading, pagination, after-first-layout mixins and context/string/datetime/num/widget extensions for common behaviors and formatting.
- Use cases: building form screens, paginated lists, overlays (dialogs/bottom sheets/snackbars), map UI elements, and consistent input controls across features.
Quick Start
Import shared/widgets/widgets.dart and use AppButton or AppTextField with callback props and AppColors/AppTypography tokens to build a consistent UI component.