Purpose: Step-by-step instructions for designers creating components in Figma for WDS projects.
Audience: Visual designers, UX designers, design system maintainers
File structure:
[Project Name] Design System
โโโ ๐ Cover
โโโ ๐จ Foundation
โ โโโ Colors
โ โโโ Typography
โ โโโ Spacing
โ โโโ Effects
โโโ โ๏ธ Components
โ โโโ Buttons
โ โโโ Inputs
โ โโโ Cards
โ โโโ [more types]
โโโ ๐ฑ Examples
Tips:
Create Figma variables:
Colors:
Collection: Colors
โโโ primary/50
โโโ primary/100
โโโ primary/500
โโโ primary/600
โโโ gray/50
โโโ gray/900
โโโ [more colors]
Spacing:
Collection: Spacing
โโโ spacing/1 = 4px
โโโ spacing/2 = 8px
โโโ spacing/4 = 16px
โโโ spacing/6 = 24px
โโโ [more spacing]
Typography:
Styles: Typography
โโโ Display/Large
โโโ Heading/1
โโโ Heading/2
โโโ Body/Regular
โโโ [more styles]
1. Create Base Frame
Frame name: Button/Primary [btn-001]
Size: Hug contents (width), Fixed 44px (height)
Auto Layout: Horizontal
Padding: 16px (horizontal), 12px (vertical)
Gap: 8px
2. Add Content
โโโ Icon (optional)
โ โโโ Size: 20x20px
โโโ Text
โโโ Style: Body/Medium
โโโ Content: "Button Text"
3. Apply Design Tokens
Background: primary/600 (variable)
Text Color: white (variable)
Border Radius: 8px
4. Create Component
Select frame โ Create Component
Name: Button/Primary [btn-001]
In component description field:
Button Primary [btn-001]
Primary action button for main user actions.
**When to use:**
- Submit forms
- Confirm actions
- Proceed to next step
**When not to use:**
- Secondary actions (use Button/Secondary)
- Navigation (use Link component)
**WDS Component:** Button.primary [btn-001]
**Variants:** primary, secondary, ghost
**States:** default, hover, active, disabled, loading
**Sizes:** small, medium, large
**Accessibility:**
- role="button"
- aria-disabled when disabled
- Keyboard: Enter/Space to activate
Select component โ Add variant property:
Property 1: Type
Values: Primary, Secondary, Ghost, Outline
Property 2: Size
Values: Small, Medium, Large
Property 3: State
Values: Default, Hover, Active, Disabled, Loading
Type=Primary, Size=Medium, State=Default:
Background: primary/600
Text: white
Padding: 16px ร 12px
Type=Primary, Size=Medium, State=Hover:
Background: primary/700 (darker)
Text: white
Scale: 1.02 (slightly larger)
Type=Primary, Size=Medium, State=Active:
Background: primary/800 (darkest)
Text: white
Scale: 0.98 (slightly smaller)
Type=Primary, Size=Medium, State=Disabled:
Background: gray/300
Text: gray/500
Opacity: 0.6
Cursor: not-allowed
Type=Primary, Size=Medium, State=Loading:
Background: primary/600
Text: white
Add: Spinner icon
Opacity: 0.8
Small:
Padding: 12px ร 8px
Text: Body/Small
Icon: 16x16px
Height: 36px
Medium (default):
Padding: 16px ร 12px
Text: Body/Medium
Icon: 20x20px
Height: 44px
Large:
Padding: 20px ร 16px
Text: Body/Large
Icon: 24x24px
Height: 52px
Create a documentation frame:
Frame: Button States Documentation
โโโ Default
โ โโโ Normal appearance
โโโ Hover
โ โโโ Background darker, slight scale
โโโ Active
โ โโโ Background darkest, scale down
โโโ Disabled
โ โโโ Grayed out, reduced opacity
โโโ Loading
โโโ Spinner, disabled interaction
Add annotations:
1. Select component in Figma
2. Right-click โ "Copy link to selection"
3. Extract node ID from URL:
URL: https://www.figma.com/file/abc123/Design-System?node-id=456:789
File ID: abc123
Node ID: 456:789
Full reference: figma://file/abc123/node/456:789
4. Add to WDS mapping file:
# D-Design-System/figma-mappings.md
Button [btn-001] โ figma://file/abc123/node/456:789
1. Create component in Figma (steps above)
2. Notify WDS system:
figma-mappings.md3. Generate WDS specification:
4. Verify sync:
If Figma MCP is configured:
1. Create/update component in Figma
2. Run MCP sync command:
# In WDS project
wds figma sync Button/Primary
3. MCP will:
4. Review generated spec:
When updating a component:
1. Update in Figma:
2. Sync to WDS:
3. Notify team:
Track component changes:
In Figma:
In WDS:
## Version History
**Created:** 2024-12-09
**Last Updated:** 2024-12-15
**Changes:**
- 2024-12-09: Created component
- 2024-12-12: Added loading state
- 2024-12-15: Updated hover animation
1. Use Design Tokens
2. Document Thoroughly
3. Maintain Consistency
4. Test Instances
5. Keep Organized
1. Hardcode Values
2. Detach Instances
3. Skip Documentation
4. Ignore States
5. Break Naming Conventions
1. Research:
2. Design:
3. Document:
4. Sync:
5. Test:
1. Assess:
2. Add Variant:
3. Update Documentation:
4. Sync:
1. Plan Change:
2. Update Component:
3. Sync to WDS:
4. Verify:
Problem: MCP can't read component
Solutions:
Problem: Some variants missing in WDS
Solutions:
Problem: Hardcoded values instead of variables
Solutions:
Problem: Updates break instance overrides
Solutions:
data/design-system/figma-component-structure.mddata/design-system/token-architecture.mddata/design-system/component-boundaries.mdfigma-mcp-integration.mdFollowing this guide ensures your Figma components integrate seamlessly with WDS and maintain design system consistency.