Skip to content
Flutter UI Widgets logo

Flutter UI Widgets

Principles for maintainable UI components.

ngxtm/devkit0installs8starsOther

SKILL.md

Full skill instructions

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