Skillshub 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)
install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/HoangNguyen0403/agent-skills-standard/flutter-idiomatic-flutter" ~/.claude/skills/comeonoliver-skillshub-flutter-idiomatic-flutter && rm -rf "$T"
manifest:
skills/HoangNguyen0403/agent-skills-standard/flutter-idiomatic-flutter/SKILL.mdsource content
Idiomatic Flutter
Priority: P1 (OPERATIONAL)
Modern Flutter layout patterns and composition techniques.
- 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
- Spacing: Use
- Optimization: Use
/ColoredBox
/Padding
instead ofDecoratedBox
when possible.Container - Themes: Use extensions for
access.Theme.of(context)
Anti-Patterns
- ❌ No
afterif (context.mounted)
— using BuildContext across async gaps causes crashesawait - ❌
helper methods — extract to aWidget _buildHeader() { … }
for proper rebuild control and DevTools profilingconst StatelessWidget - ❌ Accessing a controller or state directly in a widget (
) — use BLoC/Signals to decouple UI from state_controller.data - ❌
for empty space — useContainer(width: 0, height: 0)const SizedBox.shrink()