Back to skills
SKILL.md
Widgets
ASecurityPrinciples for maintainable UI components.
- 8 stars
- 0 votes
- 0 copies
- 1 view
- Added September 8, 2026
Security analysis
100/100npx -y skills add ngxtm/devkit --skill widgets --agent claude-codeAre you the author of Widgets?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/ngxtm-widgets)---
name: Flutter UI Widgets
description: Principles for maintainable UI components.
metadata:
labels: [ui, widgets]
triggers:
files: ['**_page.dart', '**_screen.dart', '**/widgets/**']
keywords: [StatelessWidget, const, Theme, ListView]
---
# 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`.
```dart
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
Attribution
Comments
Loading comments…