AGENT SKILL
flutter-idiomatic-flutter
Modern layout and widget composition standards. Use when composing Flutter widget trees, managing layout constraints, or following idiomatic Flutter patterns. (triggers: lib/presentation/**/*.dart, context.mounted, SizedBox, Gap, composition, shrink)
- License 许可
- MIT
- 最近更新
- 2026-06-24
- Stars
- ★ 66
- Forks
- 24
01 前言 Front Matter
- name
- flutter-idiomatic-flutter
- description
- Modern layout and widget composition standards. Use when composing Flutter widget trees, managing layout constraints, or following idiomatic Flutter patterns. (triggers: lib/presentation/**/*.dart, context.mounted, SizedBox, Gap, composition, shrink)
03 SKILL.md 正文
Idiomatic Flutter
Priority: P1 (OPERATIONAL)
Modern Flutter layout patterns and composition techniques.
- Async Gaps: Check
if (context.mounted)before usingBuildContextafterawait. - Composition: Extract complex UI into small widgets. Avoid deep nesting or large helper methods.
- Layout:
- Spacing: Use
Gap(n)orSizedBoxoverPaddingfor simple gaps. - Empty UI: Use
const SizedBox.shrink(). - Intrinsic: Avoid
IntrinsicWidth/Height; useStack+FractionallySizedBoxfor overlays.
- Spacing: Use
- Optimization: Use
ColoredBox/Padding/DecoratedBoxinstead ofContainerwhen possible. - Themes: Use extensions for
Theme.of(context)access.
Anti-Patterns
- ❌ No
if (context.mounted)afterawait— using BuildContext across async gaps causes crashes - ❌
Widget _buildHeader() { … }helper methods — extract to aconst StatelessWidgetfor proper rebuild control and DevTools profiling - ❌ Accessing a controller or state directly in a widget (
_controller.data) — use BLoC/Signals to decouple UI from state - ❌
Container(width: 0, height: 0)for empty space — useconst SizedBox.shrink()