Flutter UI Widgets

Principles for maintainable UI components. Use when this capability is needed.

tomevault-io Updated

File contents

UI & Widgets (P1)

  • State: Use StatelessWidget by default. StatefulWidget only for local state/controllers.
  • Composition: Extract UI into small, atomic const widgets.
  • Theming: Use Theme.of(context). No hardcoded colors.
  • Layout: Use Flex + Gap/SizedBox.
  • Specialized:
    • SelectionArea: For multi-widget text selection.
    • InteractiveViewer: For zoom/pan.
    • ListWheelScrollView: For pickers.
    • IntrinsicWidth/Height: Avoid unless strictly required.
  • Large Lists: Always use ListView.builder.
class AppButton extends StatelessWidget {
  final String label;
  final VoidCallback onPressed;
  const AppButton({super.key, required this.label, required this.onPressed});

  @override
  Widget build(BuildContext context) => ElevatedButton(onPressed: onPressed, child: Text(label));
}

Related Topics

performance | testing


Converted and distributed by TomeVault — claim your Tome and manage your conversions.

tomevault-io/skills-registry/tree/main/ngxtm--devkit--widgets commit 759c8988a4

Frequently asked questions

npx skillmds@latest add tomevault-io/flutter-ui-widgets