accessibility
Use when working on accessibility, a11y, WCAG, ARIA, screen readers, keyboard nav, focus order, contrast, alt text, captions,…
Use when building any Flutter screen or component to choose responsive Row, Column, Expanded, Flexible, and Spacer layouts before fixed-size or coordinate-based alternatives.
Claude Code
$ npx -y skills add evanca/flutter-ai-rules --skill flutter-use-column-row-first --agent claude-code
Codex
$ npx skills add evanca/flutter-ai-rules --skill flutter-use-column-row-first -a codex -y
Cursor
$ npx skills add evanca/flutter-ai-rules --skill flutter-use-column-row-first -a cursor -y
Gemini CLI
$ npx skills add evanca/flutter-ai-rules --skill flutter-use-column-row-first -a gemini-cli -y
GitHub Copilot
$ npx skills add evanca/flutter-ai-rules --skill flutter-use-column-row-first -a github-copilot -y
OpenCode
$ npx skills add evanca/flutter-ai-rules --skill flutter-use-column-row-first -a opencode -y
Windsurf
$ npx skills add evanca/flutter-ai-rules --skill flutter-use-column-row-first -a windsurf -y
name: flutter-use-column-row-first description: Use when building any Flutter screen or component to choose responsive Row, Column, Expanded, Flexible, and Spacer layouts before fixed-size or coordinate-based alternatives. license: MIT
Build responsive Flutter layouts from the constraint system outward. Prefer simple flex composition and introduce fixed dimensions or overlays only when the design requires them for a concrete purpose.
1. Identify each group as primarily vertical, horizontal, overlapping, scrolling, or wrapping. 2. Start vertical groups with `Column` and horizontal groups with `Row`. 3. Nest small, named widgets instead of building one deeply nested `build` method. 4. Use `Expanded`, `Flexible`, and `Spacer` to distribute bounded free space. 5. Add padding, alignment, aspect ratio, and constraints intentionally. 6. Test narrow and wide constraints, text scaling, keyboard appearance, and long or localized content.
Avoid these as default layout mechanisms:
Use them when they serve a concrete purpose, such as:
State the purpose in the code structure or a brief comment when it is not obvious.
Padding(
padding: const EdgeInsets.all(16),
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
const Header(),
const SizedBox(height: 16),
Expanded(
child: Row(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
const Flexible(flex: 2, child: PrimaryContent()),
const SizedBox(width: 16),
const Flexible(child: SecondaryContent()),
],
),
),
const SizedBox(height: 16),
const Actions(),
],
),
)Change this composition at a breakpoint if the horizontal content cannot remain usable on a narrow screen; do not merely squeeze it.
Inspect these diagrams when decomposing a mockup into nested flex layouts:
Use the diagrams as structural references, not as fixed pixel templates.
36 Flutter and Dart skills your coding agent loads by itself, sourced only from official documentation. A skill is a folder with a SKILL.md file.
Use when working on accessibility, a11y, WCAG, ARIA, screen readers, keyboard nav, focus order, contrast, alt text, captions,…
Use when creating a feature, designing folder structure, adding repositories/services/view models, wiring dependency injection,…
Use when creating a Cubit or Bloc, modeling state with sealed classes or status enums, wiring…
Use when asked to review a PR, MR, branch, or diff, audit changed files, or check code quality.
Use when writing switch statements, refactoring if-else chains, creating data classes, choosing records vs classes, destructuring…
Use when building AI agents in Dart, implementing Genkit flows or tools, integrating LLMs into Dart or Flutter applications, or…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.