Agent-skills-standard flutter-idiomatic-flutter
Compose modern Flutter layouts and widgets idiomatically. Use when composing Flutter widget trees, managing layout constraints, or following idiomatic Flutter patterns. (triggers: lib/presentation/**/*.dart, context.mounted, SizedBox, Gap, composition, shrink)
install
source · Clone the upstream repo
git clone https://github.com/HoangNguyen0403/agent-skills-standard
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/HoangNguyen0403/agent-skills-standard "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/flutter/flutter-idiomatic-flutter" ~/.claude/skills/hoangnguyen0403-agent-skills-standard-flutter-idiomatic-flutter && rm -rf "$T"
manifest:
skills/flutter/flutter-idiomatic-flutter/SKILL.mdsource content
Idiomatic Flutter
Priority: P1 (OPERATIONAL)
- Async Gaps: Check
before usingif (context.mounted)
afterBuildContext
.await - Composition: Extract complex UI into small widgets. Avoid deep nesting or large helper methods.
- Layout:
- Spacing: Use
orGap(n)
overSizedBox
for simple gaps.Padding - Empty UI: Use
.const SizedBox.shrink() - Intrinsic: Avoid
; useIntrinsicWidth/Height
+Stack
for overlays.FractionallySizedBox - Optimization: Use
/ColoredBox
/Padding
instead ofDecoratedBox
when possible.Container - Themes: Use extensions for
access.Theme.of(context)
Anti-Patterns
- No BuildContext after await without mounted check: Check
to prevent crashes across async gaps.context.mounted - No _buildXxx() helper methods: Extract to
for proper rebuild control.const StatelessWidget - No direct controller access in widget: Use BLoC or Signals to decouple UI from state.
- No Container for empty space: Use
.const SizedBox.shrink()