| ํญ๋ชฉ | ๋ด์ฉ |
|---|---|
| Invoke | /create-ux-design |
/create-ux-design โ ํ๋ฉด ์ค๊ณ๋ ๋ง๋ค๊ธฐ#
ํ๋ง๋๋ก#
์ง์ ์ง๊ธฐ ์ ์ ๊ทธ๋ฆฌ๋ ๊ฑด์ถ ๋๋ฉด์ฒ๋ผ, ๊ฐ๋ฐ์ ๋ค์ด๊ฐ๊ธฐ ์ ์ "์ด๋ค ํ๋ฉด์, ์ด๋ป๊ฒ ์๊ธฐ๊ฒ, ์ด๋ป๊ฒ ํ๋ฌ๊ฐ๊ฒ ๋ง๋ค์ง"๋ฅผ ํ ๊ถ์ ์ค๊ณ์๋ก ์ ๋ฆฌํฉ๋๋ค. ๋์์ธ ๊ฐ๊ฐ์ด ์๋ ์ฌ๋๋ ๋ณด๋ฉด ์ดํดํ ์ ์๊ฒ, ๊ธ๊ณผ ๊ทธ๋ฆผ์ผ๋ก ํ๋ฉด์ ๋ฏธ๋ฆฌ ๊ทธ๋ ค ์ค๋๋ค.
๋๊ฐยท์ธ์ ์ฐ๋์#
- ์ ์ ํยท๊ธฐ๋ฅ์ ํ๋ฉด์ ๋ณธ๊ฒฉ์ ์ผ๋ก ๊ทธ๋ฆฌ๊ธฐ ์ง์ ์ ์ฌ์ฉํฉ๋๋ค.
- ๊ธฐํ(PRD)์ด๋ ๊ธฐ์ ์ฌ์(tech-spec) ๋ฌธ์๊ฐ ์ด๋ฏธ ๋์ ์์ด์, ๊ทธ๊ฑธ ๋ฐํ์ผ๋ก ์ค์ ํ๋ฉด๊ณผ ์ฌ์ฉ์ ๋์ ์ ์ค๊ณํด์ผ ํ ๋ ์ ํฉํฉ๋๋ค.
- ๋์์ด๋ ์ญํ (UX Designer)์ด ์ฃผ๋ก ์ฌ์ฉํ๋ฉฐ, ํ ๋ฒ ๋๋ฆฌ๋ ๋ฐ ์ฝ 60~120๋ถ ์ ๋๊ฐ ๊ฑธ๋ฆฝ๋๋ค.
๋ฌด์์ ํด์ฃผ๋์#
์ต์ข
์ ์ผ๋ก ํ๋์ UX ์ค๊ณ ๋ฌธ์๊ฐ ๋ง๋ค์ด์ง๋๋ค (ux-design-(ํ๋ก์ ํธ์ด๋ฆ).md). ๊ทธ ์์๋:
- ์ฌ์ฉ์ ๋์ (User Flow) โ ์ฌ์ฉ์๊ฐ ๊ฐ์ โ๋ก๊ทธ์ธโ๋์๋ณด๋์ฒ๋ผ ์ด๋ค ์์๋ก ํ๋ฉด์ ๊ฑฐ์น๋์ง
- ์์ด์ดํ๋ ์(Wireframe) โ ๊ฐ ํ๋ฉด์ด ๋๋ต ์ด๋ป๊ฒ ์๊ฒผ๋์ง ๊ธ์ ๊ทธ๋ฆผ(ASCII)์ด๋ ์์ธ ์ค๋ช ์ผ๋ก ๊ทธ๋ฆฐ ๋ฐ๊ทธ๋ฆผ
- ์ ๊ทผ์ฑ ์ ๊ฒ โ ์๊ฐ์ฅ์ ์ธยทํค๋ณด๋ ์ฌ์ฉ์ ๋ฑ ๋ชจ๋๊ฐ ์ธ ์ ์๋์ง (WCAG ๊ธฐ์ค) ์ฒดํฌ๋ฆฌ์คํธ
- ์ปดํฌ๋ํธ ๋ชจ์ โ ๋ฒํผยท์นด๋ยท์ ๋ ฅ์ฐฝ ๋ฑ ๋ฐ๋ณตํด์ ์ฐ๋ ๋ถํ ๊ท๊ฒฉ
- ๋์์ธ ํ ํฐ โ ์์ยท๊ธ์ ํฌ๊ธฐยท์ฌ๋ฐฑ ๊ฐ์ ๊ธฐ๋ณธ ๊ท์น ๋ชจ์
- ๊ฐ๋ฐ์ ์ ๋ฌ ๋ ธํธ โ ๊ฐ๋ฐ์๊ฐ ๋ฐ๋ก ๋ง๋ค ์ ์๋๋ก ์ ๋ฆฌํ ๊ตฌํ ๊ฐ์ด๋
์ด๋ป๊ฒ ์ฐ๋์#
# ํ๋ฉด ์ค๊ณ ์ํฌํ๋ก์ฐ ์์
/create-ux-design
๋ช ๋ น์ ์คํํ๋ฉด ๋ช ๋ น์ด ์ง์ ๋ช ๊ฐ์ง๋ฅผ ๋ฌผ์ด๋ด ๋๋ค (์ ํ์ง๋ฅผ ๊ณ ๋ฅด๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค):
- ์ด๋ค ๊ธฐ๊ธฐ์ฉ์ธ๊ฐ์? โ ์น(๋ฐ์คํฌํฑ/๋ชจ๋ฐ์ผ/ํ๋ธ๋ฆฟ), iOS, ์๋๋ก์ด๋, PWA ์ค ๋ณต์ ์ ํ
- ์ผ๋ง๋ ์์ธํ ๊ทธ๋ฆด๊น์? โ ํฐ ๊ทธ๋ฆผ๋ง / ์์ธ / ์ข ํฉ(์ปดํฌ๋ํธยท๋์์ธ์์คํ ๊น์ง)
- ์ ๊ทผ์ฑ ์์ค์? โ WCAG 2.1 A(์ต์) / AA(๊ถ์ฅ) / AAA(์ต๊ณ )
- ๊ธฐ์กด ๋์์ธ ์์คํ ์ด ์๋์? โ ์์ผ๋ฉด ๋งํฌ ์ ๊ณต, ์์ผ๋ฉด ๊ธฐ๋ณธ ๊ท์น์ ์๋ก ๋ง๋ฆ
- ๋์์ธ ๋๊ตฌ๋ฅผ ์ธ๊น์? โ Figma / Pencil / Claude ๋์์ธ(์ธ๋ถ ๋๊ตฌ ์์ด Claude๊ฐ ์ง์ ์์ ์์ฑ) / ๊ธ์๊ทธ๋ฆผ(ASCIIยท๊ธฐ๋ณธ๊ฐ) ์ค ์ ํ
์์์ ๋ฌด์จ ์ผ์ด ๋ฒ์ด์ง๋์#
ํฌ๊ฒ ์๋ ์์๋ก ์งํ๋๋ฉฐ, ๋ง์ง๋ง์ ํ ๊ถ์ ์ค๊ณ ๋ฌธ์๋ก ๋ฌถ์ ๋๋ค.
- ์๊ตฌ์ฌํญ ๋ถ์ โ ๊ธฐํยท๊ธฐ์ ๋ฌธ์๋ฅผ ์ฝ์ด ์ฌ์ฉ์ ์คํ ๋ฆฌ(US-XXX)์ ํ๋ฉด ๊ด๋ จ ์๊ตฌ์ฌํญ์ ๋ฝ์๋ ๋๋ค.
- ์ค๊ณ ๋ฒ์ ์ ํ๊ธฐ โ ๋ง๋ค์ด์ผ ํ ํ๋ฉด์ด ๋ช ๊ฐ์ธ์ง, ๋์ ์ด ๋ช ๊ฐ์ธ์ง ์ธ์ด ๋ด ๋๋ค.
- ์ฌ์ฉ์ ๋์ ๊ทธ๋ฆฌ๊ธฐ โ ์์โํ๋ฉด ์ด๋โ์ฑ๊ณต/์คํจ๊น์ง์ ํ๋ฆ๋๋ฅผ ๊ทธ๋ฆฝ๋๋ค.
- (์ ํ) ๋์์ธ ๋๊ตฌ ์ฐ๊ฒฐ โ FigmaยทPencil์ด ์ฐ๊ฒฐ๋ผ ์์ผ๋ฉด ํ์ฉํ๊ณ , Claude ๋์์ธ์ ๊ณ ๋ฅด๋ฉด ์ธ๋ถ ๋๊ตฌ ์์ด Claude๊ฐ ์ค์ ๋์ํ๋ UI ์์(HTML/CSS)์ ์ง์ ๊ทธ๋ ค ์ค๋๋ค. ์๋ฌด๊ฒ๋ ์์ผ๋ฉด ์๋์ผ๋ก ๊ธ์๊ทธ๋ฆผ ๋ฐฉ์์ผ๋ก ์งํํฉ๋๋ค.
- ์์ด์ดํ๋ ์ ๊ทธ๋ฆฌ๊ธฐ โ ํ๋ฉด๋ง๋ค ๋ฐ๊ทธ๋ฆผ์ ๊ธ์๊ทธ๋ฆผ์ด๋ ์์ธ ์ค๋ช ์ผ๋ก ๋ง๋ญ๋๋ค.
- ์ ๊ทผ์ฑ ์ฑ๊ธฐ๊ธฐ โ ํ๋ฉด๋ง๋ค ์ ๋๋นยทํค๋ณด๋ ์ด๋ยท์คํฌ๋ฆฐ๋ฆฌ๋ ๋ฑ์ ์ ๊ฒํฉ๋๋ค.
- ๋ถํยทํ ํฐ ์ ๋ฆฌ โ ๋ฒํผ/์นด๋/์ ๋ ฅ์ฐฝ ๋ฑ ๊ณตํต ๋ถํ๊ณผ ์ยท๊ธ์ยท์ฌ๋ฐฑ ๊ท์น์ ์ ์ํฉ๋๋ค.
- ๊ฐ๋ฐ์ ์ ๋ฌ ๋ ธํธ ์์ฑ โ ๊ตฌํ ์ฐ์ ์์์ ์์ ์ฝ๋, ์์ฐ ๋ชฉ๋ก์ ์ ๋ฆฌํฉ๋๋ค.
- ์ค๊ณ ๋ฌธ์ ์์ฑยท์ ์ฅยท๊ฒ์ฆ โ ๋ชจ๋ ๋ด์ฉ์ ํฉ์ณ ๋ฌธ์๋ก ์ ์ฅํ๊ณ , ์๊ตฌ์ฌํญ์ด ๋น ์ง์์ด ๋ฐ์๋๋์ง ํ์ธํฉ๋๋ค. ๋๋๋ฉด ์ํ ๊ธฐ๋ก์ ๊ฐฑ์ ํ๊ณ ๋ค์ ๋จ๊ณ(์ํคํ ์ฒ ๊ฒํ ยท์คํ๋ฆฐํธ ๊ณํ ๋ฑ)๋ฅผ ์ถ์ฒํฉ๋๋ค.
โ๏ธ ์์ธ ์ต์ ยท์คํ ๋ช ์ธ (๊ฐ๋ฐ์ / AI ์์ด์ ํธ์ฉ)
Workflow Overview#
Goal: Create comprehensive UX design with wireframes, user flows, and accessibility
Phase: Phase 2 (Planning) or Phase 3 (Solutioning)
Agent: UX Designer
Inputs: Requirements (PRD/tech-spec), user stories, target platforms
Output: UX design document with wireframes, flows, accessibility annotations, developer handoff
Duration: 60-120 minutes
Pre-Flight#
- Load context per
helpers.md#Combined-Config-Load - Load requirements per
helpers.md#Load-Documents- Look for PRD (
prd.md) or tech-spec (tech-spec.md) - Extract user stories, acceptance criteria, NFRs
- Look for PRD (
- Explain purpose:
"I'll create a comprehensive UX design for your project. This includes user flows, wireframes, accessibility annotations, and developer handoff documentation."
UX Design Process#
Use TodoWrite to track: Load Requirements โ Define Scope โ Create User Flows โ Design Wireframes โ Ensure Accessibility โ Document Components โ Generate Design Doc โ Validate โ Update Status
Part 1: Analyze Requirements#
Load requirements document:
Per helpers.md#Load-Documents:
- Read PRD or tech-spec from project
- Extract all user stories (US-XXX)
- Extract all NFRs related to UX:
- Performance (page load times)
- Usability (ease of use, learnability)
- Accessibility (WCAG level)
- Compatibility (browsers, devices)
Ask user for additional context:
Q1: Target Platforms
"What platforms are we designing for?"
Options (select multiple):
- Web (desktop)
- Web (mobile)
- Web (tablet)
- iOS native
- Android native
- Progressive Web App (PWA)
Store as: {{target_platforms}}
Q2: Design Complexity
"What level of design detail?"
- High-level - User flows and basic wireframes
- Detailed - Full wireframes with interactions
- Comprehensive - Wireframes, interactions, component specs, design system
Store as: {{design_level}}
Q3: Accessibility Requirements
"What accessibility level?"
- WCAG 2.1 Level A (minimum)
- WCAG 2.1 Level AA (recommended)
- WCAG 2.1 Level AAA (highest)
Store as: {{wcag_level}}
Q4: Existing Design System
"Do you have an existing design system or brand guidelines?"
If yes: Ask for link or file If no: Will create basic design tokens
Store as: {{design_system_url}}
Part 2: Identify Design Scope#
From requirements, extract screens to design:
Group user stories by screen/flow:
Flow 1: User Authentication
- US-001: User can sign up
- US-002: User can log in
- US-003: User can reset password
Screens needed: Sign up, Login, Forgot password
Flow 2: Dashboard
- US-004: User can view dashboard
- US-005: User can filter data
Screens needed: Dashboard (empty state), Dashboard (with data)
[Continue for all user stories...]Count total screens: {{screen_count}}
Inform user:
"I've identified {{screen_count}} screens across {{flow_count}} user flows."
Part 3: Create User Flows#
For each major flow, create user flow diagram.
User flow format:
### Flow: { { flow_name } }
**Entry Point:** { { how_user_starts_flow } }
**Happy Path:**
1. { { screen_1 } } โ User { { action } } โ { { screen_2 } }
2. { { screen_2 } } โ User { { action } } โ { { screen_3 } }
3. { { screen_3 } } โ { { final_state } }
**Decision Points:**
- At { { screen } } : If { { condition } } โ { { alternative_path } }
**Error Cases:**
- { { error_scenario } } โ Show { { error_message } } โ { { recovery_action } }
**Exit Points:**
- Success: { { success_screen } }
- Cancel: { { cancel_destination } }
- Error: { { error_screen } }
**Diagram:**[Start] โ [Screen 1: {{name}}] โ {{action}} [Screen 2: {{name}}] โ {{action}} โโโ [Success: {{screen}}] โโโ [Error: {{screen}}]
Create flows for:
- Authentication flows
- Core feature flows
- Settings/configuration flows
- Error handling flows
Typical count: 3-10 flows depending on project complexity
Part 3.5: Design Tool Selection (Optional)#
Check for available MCP design tools and offer integration:
Q: Would you like to use a design tool?
Design tools โ both MCP-backed apps and Claude's native generation โ can be used for wireframe and design work.
- Figma - Cloud-based design (MCP:
figma)- Pencil - Local design, Git-trackable (MCP:
pencil)- Claude design - Claude generates a polished, production-grade visual mockup directly as code (skill:
frontend-design). No external app or MCP server; output is Git-trackable.- ASCII/Markdown - No tools required (default)
Store as: {{design_tool}}
Tool detection: Figma/Pencil require their MCP server connection โ check availability via MCP server connection status. Claude design (option 3) has no external dependency and is always available (the frontend-design skill ships with Claude). Auto-select option 4 (ASCII/Markdown) when no MCP tool is detected and the user expresses no preference; offer Claude design as the recommended no-setup upgrade over plain ASCII when a higher-fidelity visual reference is wanted.
When Figma is selected ({{design_tool}} = figma)
Workflow using MCP tools:
- Reference existing designs: Load existing design context from Figma files with
get_design_context - Check design variables: Extract design system variables/styles with
get_variable_defs - Check code mapping: Verify Figma-to-code component mapping with
get_code_connect_map - Create design: Generate wireframes/designs in Figma with
generate_figma_design(if supported) - User flow diagrams: Generate Mermaid to FigJam diagrams with
generate_diagram - Check screenshot: Preview results with
get_screenshot - Design system rules: Document design system rules with
create_design_system_rules
Figma limitations:
- Be mindful of rate limits (Starter = 6/month, Dev/Full = per-minute limits)
generate_figma_designis only supported by some clients (rolling out)- Cloud-based so offline unavailable
- Falls back to ASCII/Markdown when not supported
When Pencil is selected ({{design_tool}} = pencil)
Workflow using MCP tools:
- Reference existing designs: Read .pen file hierarchy with
batch_get - Check editor state: Get current editing state with
get_editor_state - Create wireframes: Create/modify elements with
batch_design(batch processing) - Sync design tokens: Read/set design tokens with
get_variables/set_variables - Analyze layout: Analyze layout structure with
snapshot_layout - Check results: Preview screenshot with
get_screenshot
Pencil advantages:
.penfiles can be Git-tracked in the same repository as code- Fully local execution, no cloud transfer (privacy)
- Offline work possible
Pencil limitations:
- Pencil desktop app must be running
- CLI is still experimental
- Falls back to ASCII/Markdown when not running
When Claude design is selected ({{design_tool}} = claude)
Claude generates the visual design directly as production-grade code via the frontend-design skill โ no external design app or MCP server required, and the output is committed alongside the spec for Git tracking.
Workflow using the frontend-design skill:
- Commit to an aesthetic direction: For the screen set, decide a clear conceptual direction (tone, typography, differentiation) per
frontend-design's Design Thinking. When a design system is in scope (next step), keep the direction within its constraints. - Constrain to the design system (when one exists): If a CoUI / Co<X> design system or
{{design_system_url}}is in use, brief the skill to use those tokens/components (colors, typography, spacing, component shapes) so the mockup stays implementable. Refer to thecc-couiskill for component APIs. Otherwise, generate fresh tokens and reconcile them into Part 7. - Generate per-screen mockups: For each screen identified in Part 2 and each flow in Part 3, invoke
frontend-designto produce a self-contained, responsive, accessible mockup (HTML/CSS/JS). Mobile-first, with all interaction states (default/hover/focus/active/disabled) and the breakpoints from Part 7. - Save Git-trackable artifacts: Write each mockup to
docs/design/{{project_name}}/{{screen}}.html(and sharedstyles.cssif extracted) so designs are version-controlled and reviewable in PRs. - Extract design tokens back into the spec: Pull the realized colors/typography/spacing from the mockups into the Design Tokens section (Part 7) and the Component Library (Part 6), so the markdown spec and the HTML mockup stay in sync.
- Capture previews for the doc: Reference the mockup files (and screenshots if rendered) from
ux-spec-{{project_name}}.md/ the UX design document so reviewers see the visual intent without opening each file. - Hand off to implementation: The HTML/CSS mockup is the visual source of truth for downstream Flutter/CoUI work. For the actual native UI, hand the mockup to
figma-to-coui/flutter-ui, or use thepixel-loopto converge the Flutter screen toward the mockup.
Claude design advantages:
- No external app, MCP server, or account โ works fully offline within Claude (zero setup).
- Output is real, runnable code (HTML/CSS/JS), Git-trackable in the same repo as the spec.
- High aesthetic quality with an intentional point of view (avoids generic "AI slop"); far higher fidelity than ASCII at no extra tooling cost.
- A concrete, inspectable reference that downstream Flutter/CoUI implementation (and
pixel-loop) can target directly.
Claude design limitations:
- Output is web (HTML/CSS), not native Flutter โ treat it as a visual reference, not final UI code. Native widgets are built later via
flutter-ui/figma-to-coui/pixel-loop. - When a CoUI / Co<X> design system is adopted, constrain the mockup to CoUI tokens/components (Step 2) and reconcile any generated tokens, or the visual reference may drift from what is implementable.
- Not a real-time collaborative canvas like Figma โ for multi-stakeholder live editing, prefer Figma; use Claude design for fast, self-contained, Git-versioned visual references.
- Still generate ASCII/Markdown wireframes in parallel (per the note in "Notes for LLMs") for fallback and quick scanning.
When ASCII/Markdown is selected (default)
Proceed with the conventional approach without MCP tools. Use Option 1 (ASCII Art) or Option 2 (Structured Description) from Part 4 below.
Part 4: Design Wireframes#
For each screen, create wireframe.
Wireframe approaches:
Option 1: ASCII Art (quick visualization)
Screen: { { screen_name } }
Mobile (320-767px):
โโโโโโโโโโโโโโโโโโโโโโโ
โ โฐ Logo [?] โ โ Header (60px)
โโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ Page Title โ โ H1 (32px)
โ Subtitle โ โ H2 (18px)
โ โ
โ โโโโโโโโโโโโโโโโโ โ
โ โ Card 1 โ โ โ Card (full-width)
โ โ Title โ โ
โ โ Description โ โ
โ โ [Button] โ โ
โ โโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโ โ
โ โ Card 2 โ โ
โ โโโโโโโโโโโโโโโโโ โ
โ โ
โ [Primary CTA] โ โ Button (48px height)
โ โ
โโโโโโโโโโโโโโโโโโโโโโโ
Desktop (1024px+):
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Logo Nav1 Nav2 Nav3 [?] โ โ Header
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ Page Title Subtitle โ
โ โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโ โ
โ โ Card 1 โ โ Card 2 โ โ โ 2-column grid
โ โ โ โ โ โ
โ โ [Button] โ โ [Button] โ โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโ โ
โ โ
โ [Primary CTA] โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโOption 2: Structured Description (detailed specs)
### Screen: { { screen_name } }
**Purpose:** { { what_user_does_here } }
**Layout Structure:**
**Header (fixed, 60px height):**
- Logo (left, 40px ร 40px)
- Click โ Home page
- Navigation menu (center)
- Nav Item 1, Nav Item 2, Nav Item 3
- Active state: underline
- Help icon (right, 24px ร 24px)
- Click โ Help modal
**Main Content (scrollable):**
**Hero Section (full-width, 400px height):**
- Headline (H1, 48px, center-aligned)
- Subheadline (H2, 24px, center-aligned)
- Background: gradient or image
**Card Grid (responsive):**
- Layout: 2 columns (desktop), 1 column (mobile)
- Gap: 24px between cards
**Card Component (300px ร 250px):**
- Image (full-width, 150px height)
- Title (H3, 20px, 16px padding)
- Description (Body text, 14px, 16px padding)
- CTA Button (bottom, 16px padding)
- Primary style
- Full-width on mobile
- Fixed-width on desktop (160px)
**CTA Section (center-aligned, 200px height):**
- Primary Button (200px ร 56px)
- Text: " { { cta_text } } "
- Click โ { { destination } }
**Footer (full-width, 120px height):**
- Links (horizontal, center-aligned)
- Copyright notice (center, 12px text)
**Interactions:**
- Card hover โ Elevation shadow
- Button hover โ Darken 10%
- Button click โ { { action } }
- Links hover โ Underline
**States:**
- Default
- Hover (for interactive elements)
- Focus (keyboard navigation)
- Active (click/tap)
- Disabled (when applicable)
- Loading (for async actions)
**Responsive Behavior:**
- **Mobile (320-767px):**
- Single column layout
- Stack cards vertically
- Full-width buttons
- Hamburger menu for navigation
- **Tablet (768-1023px):**
- 2-column grid
- Navigation visible
- Moderate padding
- **Desktop (1024px+):**
- 2-3 column grid
- Maximum content width: 1200px
- Centered with side marginsCreate wireframes for all {{screen_count}} screens.
Part 5: Ensure Accessibility#
For each screen, document accessibility features:
### Accessibility: { { screen_name } }
**WCAG { { wcag_level } } Compliance:**
**Perceivable:**
- [ ] All images have alt text: " { { alt_text } } "
- [ ] Color contrast checked:
- Text on background: { { ratio } } (minimum 4.5:1)
- UI components: { { ratio } } (minimum 3:1)
- [ ] Information not conveyed by color alone
- [ ] Text resizable to 200% without breaking layout
- [ ] No horizontal scrolling at 320px width
**Operable:**
- [ ] Tab order: { { tab_order_sequence } }
- [ ] Focus indicators visible (2px outline, primary color)
- [ ] No keyboard traps
- [ ] Skip navigation link: " Skip to main content "
- [ ] Touch targets minimum 44px ร 44px
- [ ] Animations respect prefers-reduced-motion
**Understandable:**
- [ ] Page language: `lang= " en " `
- [ ] Form labels for all inputs
- [ ] Error messages: " { { example_error } } " (clear and actionable)
- [ ] Consistent navigation across pages
- [ ] Predictable interactions (no surprise navigation)
**Robust:**
- [ ] Semantic HTML: ` < header > `, ` < nav > `, ` < main > `, ` < footer > `
- [ ] ARIA labels where needed:
- Button: `aria-label= " { { label } } " `
- Icon-only: `aria-label= " { { description } } " `
- [ ] Form validation: `aria-invalid`, `aria-describedby`
- [ ] Modal: `role= " dialog " `, `aria-modal= " true " `
**Keyboard Navigation:**Tab โ Focus next interactive element Shift+Tab โ Focus previous Enter โ Activate button/link Space โ Activate button, toggle checkbox Escape โ Close modal/dropdown Arrow keys โ Navigate within component (tabs, menus)
**Screen Reader Annotations:**
- Landmark regions: header, nav, main, footer
- Headings hierarchy: H1 (once), H2 (sections), H3 (subsections)
- Alternative text for images: descriptive, not decorative
- Live regions for dynamic content: `aria-live= " polite " `Part 6: Define Components#
Extract reusable components from wireframes:
## Component Library
### Button Component
**Variants:**
- **Primary:** Main actions (e.g., Submit, Save)
- Background: Primary color
- Text: White
- Padding: 12px 24px
- Border-radius: 4px
- Font: 16px, 600 weight
- **Secondary:** Less important actions (e.g., Cancel)
- Background: Transparent
- Text: Primary color
- Border: 1px solid primary
- Padding: 12px 24px
- **Tertiary:** Minimal emphasis (e.g., text links)
- Background: Transparent
- Text: Primary color
- No border
**States:**
- Default
- Hover: Background darkens 10%
- Focus: 2px outline, offset 2px
- Active: Background darkens 20%
- Disabled: Opacity 50%, cursor not-allowed
**Accessibility:**
- Minimum size: 44px ร 44px
- Focus indicator visible
- aria-disabled when disabled
---
### Card Component
**Structure:**
- Image (optional, 16:9 aspect ratio)
- Title (H3)
- Description (Body text)
- Action button (optional)
**Sizing:**
- Mobile: Full-width
- Tablet: 48% width (2 columns)
- Desktop: 32% width (3 columns)
**Spacing:**
- Internal padding: 16px
- Gap between cards: 24px
**States:**
- Default: elevation 1
- Hover: elevation 2
- Focus: outline
---
### Form Input Component
**Structure:**
- Label (above input, required)
- Input field
- Help text (optional)
- Error message (when invalid)
**Styling:**
- Border: 1px solid neutral-300
- Padding: 12px
- Border-radius: 4px
- Font: 16px (prevent zoom on mobile)
**States:**
- Default: neutral border
- Focus: primary border, 2px
- Error: error border, show error message
- Disabled: gray background, not-allowed cursor
**Accessibility:**
- Label linked to input: `for= " { { id } } " `
- Required: `aria-required= " true " `
- Error: `aria-invalid= " true " `, `aria-describedby= " { { error-id } } " `
[Define all reusable components...]Part 7: Define Design Tokens#
Create design system tokens:
## Design Tokens
### Colors
**Primary Palette:**
- Primary: #0066CC (contrast ratio: 4.57:1 on white)
- Primary-dark: #004C99
- Primary-light: #3385D6
**Semantic Colors:**
- Success: #00AA44 (WCAG AA compliant)
- Warning: #FF8800
- Error: #DD0000
- Info: #0066CC
**Neutral Palette:**
- Neutral-50: #F9F9F9 (backgrounds)
- Neutral-100: #F0F0F0
- Neutral-300: #CCCCCC (borders)
- Neutral-500: #999999 (secondary text)
- Neutral-700: #555555 (primary text)
- Neutral-900: #222222 (headings)
**Contrast Ratios (checked):**
- Neutral-700 on white: 7.5:1 โ (AAA)
- Primary on white: 4.57:1 โ (AA)
- Error on white: 6.2:1 โ (AA)
### Typography
**Font Family:**
- Primary: -apple-system, BlinkMacSystemFont, " Segoe UI " , Roboto, sans-serif
- Monospace: " SF Mono " , Monaco, monospace
**Type Scale:**
- H1: 48px / 600 / 1.2 line-height
- H2: 36px / 600 / 1.3
- H3: 24px / 600 / 1.4
- H4: 20px / 600 / 1.4
- Body: 16px / 400 / 1.6
- Small: 14px / 400 / 1.5
- Tiny: 12px / 400 / 1.4
**Responsive Type:**
- Mobile: Reduce by 20%
- Tablet: Reduce by 10%
- Desktop: Base scale
### Spacing
**Scale (based on 8px):**
- xs: 4px
- sm: 8px
- md: 16px
- lg: 24px
- xl: 32px
- 2xl: 48px
- 3xl: 64px
**Layout:**
- Container max-width: 1200px
- Gutter: 16px (mobile), 24px (desktop)
- Section spacing: 48px (mobile), 96px (desktop)
### Shadows
**Elevation:**
- Level 1: 0 1px 3px rgba(0,0,0,0.12)
- Level 2: 0 4px 6px rgba(0,0,0,0.16)
- Level 3: 0 10px 20px rgba(0,0,0,0.20)
### Border Radius
- Small: 4px (buttons, inputs)
- Medium: 8px (cards)
- Large: 16px (modals)
- Circle: 50% (avatars, icon buttons)
### Breakpoints
- Mobile: 320px - 767px
- Tablet: 768px - 1023px
- Desktop: 1024px+Part 8: Create Developer Handoff#
Document implementation details:
## Developer Handoff
### Implementation Priorities
**Phase 1 - Foundation:**
1. Set up design tokens (colors, spacing, typography)
2. Implement base components (Button, Input, Card)
3. Create responsive grid system
4. Set up accessibility infrastructure
**Phase 2 - Screens:**
1. { { highest_priority_screen } }
2. { { second_priority_screen } }
3. { { third_priority_screen } }
**Phase 3 - Polish:**
1. Animations and transitions
2. Loading states
3. Error states
4. Edge cases
### Component Implementation Notes
**Button Component:**/* Base button */ .btn { padding: 12px 24px; border-radius: 4px; font-size: 16px; font-weight: 600; min-width: 44px; min-height: 44px; cursor: pointer; transition: background 0.2s; }
.btn:focus { outline: 2px solid var(--primary); outline-offset: 2px; }
/* Primary variant */ .btn-primary { background: var(--primary); color: white; }
.btn-primary:hover { background: var(--primary-dark); }
### Responsive Implementation
**Mobile-first approach:**/* Base (mobile) */ .container { padding: 16px; }
/* Tablet */ @media (min-width: 768px) { .container { padding: 24px; } }
/* Desktop */ @media (min-width: 1024px) { .container { max-width: 1200px; margin: 0 auto; } }
### Accessibility Implementation
**Required attributes:**
- All images: `alt= " { { description } } " `
- Form inputs: `id`, `aria-label` or ` < label for > `
- Buttons: `aria-label` if icon-only
- Modals: `role= " dialog " `, `aria-modal= " true " `
- Live regions: `aria-live= " polite " `
**Testing:**
- Keyboard navigation (Tab, Enter, Escape)
- Screen reader (test with NVDA/JAWS/VoiceOver)
- Color contrast (use Axe DevTools)
- Zoom to 200% (check layout)
### Assets Needed
**Images:**
- Logo (SVG preferred, PNG fallback)
- Icons (SVG, 24px ร 24px)
- Placeholder images (16:9 ratio)
**Fonts:**
- System fonts (no web fonts for performance)
**Third-party:**
- None (using native HTML/CSS/JS)Part 9: Generate UX Design Document#
Create comprehensive design document per helpers.md#Apply-Variables-to-Template
Use template: ux-design.md (or generate inline)
Document structure:
# UX Design: { { project_name } }
**Date:** { { date } }
**Designer:** { { user_name } }
**Version:** 1.0
## Project Overview
**Project:** { { project_name } }
**Target Platforms:** { { target_platforms } }
**Accessibility:** WCAG { { wcag_level } }
## Design Scope
**Screens:** { { screen_count } }
**User Flows:** { { flow_count } }
**Components:** { { component_count } }
## User Flows
{ { all_flows_from_part_3 } }
## Wireframes
{ { all_wireframes_from_part_4 } }
## Accessibility
{ { accessibility_annotations_from_part_5 } }
## Component Library
{ { components_from_part_6 } }
## Design Tokens
{ { design_tokens_from_part_7 } }
## Developer Handoff
{ { handoff_from_part_8 } }
## Validation
**Requirements Coverage:**
- [ ] US-001: { { requirement } } โ { { screen } }
- [ ] US-002: { { requirement } } โ { { screen } }
[All user stories mapped to screens]
**Accessibility Checklist:**
- [ ] WCAG { { level } } compliance verified
- [ ] Keyboard navigation tested
- [ ] Screen reader compatible
- [ ] Color contrast verified
- [ ] Responsive on all target platforms
**Sign-off:**
- [ ] Product Manager approved
- [ ] System Architect reviewed
- [ ] Ready for implementation
---
*Generated by BMAD Method v6 - UX Designer*
*Design Date: { { date } } *Save to: {{output_folder}}/ux-design-{{project_name}}.md
Inform user:
โ UX Design Complete!
Screens: { { screen_count } }
User Flows: { { flow_count } }
Components: { { component_count } }
Accessibility: WCAG { { level } }
Document: { { file_path } }
Ready for developer handoff!Update Status#
Per helpers.md#Update-Workflow-Status
Update bmm-workflow-status.yaml:
phase_2_planning:
ux_design_completed: true
ux_design_date: { { current_date } }
screens_designed: { { screen_count } }
accessibility_level: { { wcag_level } }
last_workflow: create-ux-design
last_workflow_date: { { current_date } }Recommend Next Steps#
โ UX Design Complete!
Next Steps:
1. **Review with Product Manager**
- Validate designs meet requirements
- Confirm all user stories covered
- Approve design direction
2. **Architecture Review**
Run: /architecture
- Architect should validate UX constraints
- Ensure feasibility
- Identify technical considerations
3. **Implementation Planning**
Run: /sprint-planning
- Break design into implementation stories
- Prioritize screens
- Estimate effort
4. **Begin Development**
Run: /dev-story
- Start with highest-priority screen
- Implement design system tokens first
- Build components before screensHelper References#
- Load config:
helpers.md#Combined-Config-Load - Load documents:
helpers.md#Load-Documents - Apply template:
helpers.md#Apply-Variables-to-Template - Save document:
helpers.md#Save-Output-Document - Update status:
helpers.md#Update-Workflow-Status - Determine next:
helpers.md#Determine-Next-Workflow
Notes for LLMs#
- Use TodoWrite to track UX design steps (10 steps when including Part 3.5)
- Load requirements (PRD/tech-spec) before starting
- Select design tools in Part 3.5, and branch to the appropriate workflow based on MCP server detection results. Figma/Pencil depend on their MCP server; Claude design (the
frontend-designskill) has no external dependency and is the recommended no-setup upgrade over plain ASCII when a high-fidelity visual reference is wanted - Create user flows for all major features
- Use ASCII art for quick wireframes or structured descriptions for detailed specs
- Even when using Figma/Pencil MCP or Claude design (
frontend-design), generate ASCII/Markdown documents in parallel (for fallback and quick scanning) - When Claude design is selected, save the generated HTML/CSS mockups under
docs/design/{{project_name}}/(Git-trackable), reconcile realized tokens back into Parts 6โ7, and treat the mockup as a visual reference โ native Flutter UI is built later viaflutter-ui/figma-to-coui/pixel-loop - Always include accessibility annotations for WCAG compliance
- Define design tokens for consistency
- Extract reusable components
- Provide detailed developer handoff notes
- Map all user stories to screens
- Design mobile-first, then scale up
- Check color contrast ratios
- Specify all interaction states (default, hover, focus, active, disabled)
- Document responsive behavior for all breakpoints
- Use semantic HTML in recommendations
- Reference helpers.md for all common operations
- Validate design against requirements before finalizing
- On MCP tool call failure, automatically fall back to ASCII/Markdown
Remember: User-centered, accessible design ensures products work for everyone. Design with developers in mind - clear specs, design tokens, and handoff notes make implementation smooth.