--- name: aico-frontend-design description: | Transform PRD or story into complete page/component designs with ASCII layouts, component specs, interaction flows, and frontend implementation prompts. Use this skill when: - User asks to "design the page", "design component", "create page design" - User mentions "page design", "component design", "UI design", "layout design" - Running /frontend.design command - PRD or story is ready and need visual/interaction design before implementation - Need to create design spec that frontend developer can implement from Prerequisites: Design system must exist at docs/reference/frontend/design-system.md Output: ALWAYS write design files to docs/reference/frontend/designs/{name}.md --- # Design ## ⚠️ CRITICAL RULES - READ FIRST 1. **CHECK EXISTING DESIGNS**: Always check `docs/reference/frontend/designs/` first 2. **READ DESIGN SYSTEM**: Must read `docs/reference/frontend/design-system.md` before designing 3. **READ CONSTRAINTS**: Must read `docs/reference/frontend/constraints.md` for tech stack 4. **SAVE TO CORRECT PATH**: `docs/reference/frontend/designs/{name}.md` ## Language Configuration Before generating any content, check `aico.json` in project root for `language` field to determine the output language. If not set, default to English. ## Process 1. **Read design system**: Load `docs/reference/frontend/design-system.md` 2. **Read constraints**: Load `docs/reference/frontend/constraints.md` 3. **Read PRD/story**: Load the source document from `docs/reference/pm/` 4. **For each page/feature**: - Define user flow (entry → actions → outcome) - Create ASCII layout - List all components with variants and props - Write content/copy - Document all interactions - Generate frontend prompt 5. **Save output**: ALWAYS write to `docs/reference/frontend/designs/{name}.md` ## Design File Template ```markdown # [Name] Design Spec > Project: [project-name] > Created: YYYY-MM-DD > Last Updated: YYYY-MM-DD ## User Flow 1. User enters from [entry point] 2. User sees [initial state] 3. User can [actions] 4. Success: [outcome] ## Layout (ASCII) ┌─────────────────────────────────────┐ │ Header │ ├─────────────────────────────────────┤ │ Content │ └─────────────────────────────────────┘ ## Sections ### 1. [Section Name] - **Purpose**: What this section achieves - **Components**: List of UI components used - **Content**: Actual text/copy - **Design notes**: Specific styling details ## Component List | Component | Variants | Props | Notes | | --------- | ------------------ | -------------- | ------------ | | Button | primary, secondary | size, disabled | Use for CTAs | ## Responsive - **Desktop**: [layout notes] - **Tablet**: [layout notes] - **Mobile**: [layout notes] ## Interactions | Trigger | Action | Feedback | | --------- | ----------- | ---------------------------- | | Click CTA | Submit form | Show loading → success toast | --- ## Frontend Prompt You are implementing [page/component name] for [project]. Read and follow: - Design system: docs/reference/frontend/design-system.md - Frontend constraints: docs/reference/frontend/constraints.md 1. Follow the design system tokens exactly 2. Implement all sections as specified 3. Handle all responsive breakpoints 4. Implement all interactions listed ``` ## Key Rules - ALWAYS define user flow with entry point and success state - MUST list specific props and variants for each component - ALWAYS document all triggers and feedback for interactions - Reference design system, don't duplicate it ## Common Mistakes - ❌ Skip user flow → ✅ Always define entry point and success state - ❌ Vague component specs → ✅ List specific props and variants - ❌ Forget interactions → ✅ Document all triggers and feedback - ❌ Duplicate design system → ✅ Reference it, don't copy