BMAD-METHOD/devKalla-Fordonscervice/_wds/workflows/5-design-system/design-system-guide.md

8.6 KiB

Phase 5: Design System Workflow

Overview

Purpose: Extract, organize, and maintain reusable design components as they're discovered during Phase 4 specification work.

Key Principle: Design system is optional and on-demand. Components are added as they surface, not created upfront.


When This Workflow Runs

Triggered from Phase 4:

  • After component specification is complete
  • Only if design system is enabled in project
  • First component triggers automatic initialization

Not a Separate Phase:

  • Runs in parallel with Phase 4
  • Integrated into component specification flow
  • Designer doesn't "switch" to design system mode

Three Design System Modes

Chosen during Phase 1 (Project Exploration):

Mode A: No Design System

  • Components stay page-specific
  • AI/dev team handles consistency
  • Faster for simple projects
  • This workflow doesn't run

Mode B: Custom Design System

  • Designer defines components in Figma
  • Components extracted as discovered
  • Figma MCP endpoints for integration
  • This workflow extracts and links to Figma
  • See: figma-integration/ folder for complete Figma workflow

Mode C: Component Library Design System

  • Uses shadcn/Radix/etc.
  • Library chosen during setup
  • Components mapped to library defaults
  • This workflow maps to library components

Architecture

Three-Way Split

Page Specification (Logical View)
├── Component references
├── Page-specific content
└── Layout/structure

Design System (Visual/Component Library)
├── Component definitions
├── States & variants
└── Styling/tokens

Functionality/Storyboards (Behavior)
├── Interactions
├── State transitions
└── User flows

Clean Separation

Specification = Content (what the component is) Organization = Structure (where it lives) Design System = Optional (chosen in Phase 1)


Workflow Components

1. Design System Router

File: design-system-router.md

Purpose: Identify if component is new, similar, or duplicate

Flow:

Component specified → Router checks design system
├── No similar component → Create new
└── Similar component found → Opportunity/Risk Assessment

2. Opportunity/Risk Assessment

Folder: assessment/

Purpose: Help designer make informed decisions about component reuse

7 Micro-Instructions:

  1. Scan existing components
  2. Compare attributes
  3. Calculate similarity
  4. Identify opportunities
  5. Identify risks
  6. Present decision to designer
  7. Execute decision

3. Component Operations

Folder: operations/

Purpose: Execute design system actions

4 Operations:

  • Initialize design system (first component)
  • Create new component
  • Add variant to existing component
  • Update component definition

4. Output Templates

Folder: templates/

Purpose: Consistent design system file structure

3 Templates:

  • Component specification
  • Design tokens
  • Component library config

Integration with Phase 4

Called from: workflows/4-ux-design/substeps/4c-03-components-objects.md

Integration Point:

For each component:
1. Specify component (Phase 4)
2. Component specification complete
3. → Check: Design system enabled?
4. → YES: Call design-system-router.md
5. → Router extracts component-level info
6. → Router returns reference
7. Update page spec with reference
8. Continue to next component

Result:

  • Page spec contains references + page-specific content
  • Design system contains component definitions
  • Clean separation maintained

Key Risks & Mitigation

1. Component Matching

Risk: How to recognize "same" vs "similar" vs "different"

Mitigation: Similarity scoring + designer judgment via assessment flow

2. Circular References

Risk: Page → Component → Functionality → Component

Mitigation: Clear hierarchy (Page → Component → Functionality)

3. Sync Problems

Risk: Component evolves, references may break

Mitigation: Reference IDs + update notifications

4. Component Boundaries

Risk: Icon in button? Nested components?

Mitigation: Designer conversation + guidelines in shared knowledge

5. First Component

Risk: When to initialize design system?

Mitigation: Auto-initialize on first component if enabled

6. Storyboard Granularity

Risk: Component behavior vs page flow

Mitigation: Clear separation guidelines in shared knowledge


Shared Knowledge

Location: data/design-system/

Purpose: Centralized design system principles referenced by all component types

Documents:

  • token-architecture.md - Structure vs style separation
  • naming-conventions.md - Token naming rules
  • state-management.md - Component states
  • validation-patterns.md - Form validation
  • component-boundaries.md - What's a component?
  • figma-component-structure.md - Figma component organization (Mode B)

Usage: Component-type instructions reference these documents as needed


Figma Integration (Mode B)

Location: figma-integration/

Purpose: Enable seamless Figma ↔ WDS synchronization for custom design systems

Documents:

  • figma-designer-guide.md - Step-by-step guide for designers
  • figma-mcp-integration.md - Technical MCP integration guide
  • figma-component-structure.md - Component organization in Figma (in data/design-system/)
  • prototype-to-figma-workflow.md - NEW: Extract HTML prototypes to Figma for visual refinement
  • when-to-extract-decision-guide.md - NEW: Decision framework for prototype extraction

Workflows:

A. Figma → WDS (Existing):

  1. Designer creates/updates component in Figma
  2. Designer adds WDS component ID to description
  3. MCP reads component via Figma API
  4. Agent generates/updates WDS specification
  5. Designer reviews and confirms

B. Prototype → Figma → WDS (NEW):

  1. HTML prototype created (Phase 4D)
  2. Extract to Figma using html.to.design
  3. Designer refines visual design in Figma
  4. Extract design system updates (tokens, components)
  5. Re-render prototype with enhanced design system
  6. Iterate until polished

Key Features:

  • Component structure guidelines
  • Design token mapping
  • Variant and state organization
  • Node ID tracking
  • Bidirectional sync workflow
  • Iterative visual refinement (prototype → Figma → design system → re-render)

Company Customization

Key Feature: Companies can fork WDS and customize design system standards

Customization Points:

  • data/design-system/ - Company-specific principles
  • object-types/ - Company component patterns
  • templates/ - Company output formats

Result: Every project automatically uses company standards


Output Structure

D-Design-System/
├── 01-Visual-Design/          [Early design exploration - pre-scenario]
│   ├── mood-boards/           [Visual inspiration, style exploration]
│   ├── design-concepts/       [NanoBanana outputs, design explorations]
│   ├── color-exploration/     [Color palette experiments]
│   └── typography-tests/      [Font pairing and hierarchy tests]
├── 02-Assets/                 [Final production assets]
│   ├── logos/                 [Brand logos and variations]
│   ├── icons/                 [Icon sets]
│   ├── images/                [Photography, illustrations]
│   └── graphics/              [Custom graphics and elements]
├── components/
│   ├── button.md              [Component ID: btn-001]
│   ├── input-field.md         [Component ID: inp-001]
│   ├── card.md                [Component ID: crd-001]
│   └── ...
├── design-tokens.md           Colors, spacing, typography
├── component-library-config.md Which library (if Mode C)
└── figma-mappings.md          Figma endpoints (if Mode B)

Component File Structure:

# Button Component [btn-001]

**Type:** Interactive
**Library:** shadcn/ui Button (if Mode C)
**Figma:** [Link] (if Mode B)

## Variants

- primary
- secondary
- ghost

## States

- default
- hover
- active
- disabled

## Styling

[Design tokens or Figma reference]

## Used In

- Login page (login button)
- Signup page (create account button)
- Dashboard (action buttons)

Next Steps

  1. Read design-system-router.md to understand routing logic
  2. Review assessment/ folder for decision-making process
  3. Check operations/ for available actions
  4. Reference data/design-system/ for principles
  5. Use templates/ for consistent output

This workflow is called automatically from Phase 4. You don't need to run it manually.