Design System Patterns
Master design system architecture to create consistent, maintainable, and scalable UI foundations across web and mobile applications.
When to Use This Skill
- Creating design tokens for colors, typography, spacing, and shadows
- Implementing light/dark theme switching with CSS custom properties
- Building multi-brand theming systems
- Architecting component libraries with consistent APIs
- Establishing design-to-code workflows with Figma tokens
- Creating semantic token hierarchies (primitive, semantic, component)
- Setting up design system documentation and guidelines
Core Capabilities
1. Design Tokens
- Primitive tokens (raw values: colors, sizes, fonts)
- Semantic tokens (contextual meaning: text-primary, surface-elevated)
- Component tokens (specific usage: button-bg, card-border)
- Token naming conventions and organization
- Multi-platform token generation (CSS, iOS, Android)
2. Theming Infrastructure
- CSS custom properties architecture
- Theme context providers in React
- Dynamic theme switching
- System preference detection (prefers-color-scheme)
- Persistent theme storage
- Reduced motion and high contrast modes
3. Component Architecture
- Compound component patterns
- Polymorphic components (as prop)
- Variant and size systems
- Slot-based composition
- Headless UI patterns
- Style props and responsive variants
4. Token Pipeline
- Figma to code synchronization
- Style Dictionary configuration
- Token transformation and formatting
- CI/CD integration for token updates
Quick Start
// Design tokens with CSS custom properties
const tokens = {
colors: {
// Primitive tokens
gray: {
50: "#fafafa",
100: "#f5f5f5",
900: "#171717",
},
blue: {
500: "#3b82f6",
600: "#2563eb",
},
},
// Semantic tokens (reference primitives)
semantic: {
light: {
"text-primary": "var(--color-gray-900)",
"text-secondary": "var(--color-gray-600)",
"surface-default": "var(--color-white)",
"surface-elevated": "var(--color-gray-50)",
"border-default": "var(--color-gray-200)",
"interactive-primary": "var(--color-blue-500)",
},
dark: {
"text-primary": "var(--color-gray-50)",
"text-secondary": "var(--color-gray-400)",
"surface-default": "var(--color-gray-900)",
"surface-elevated": "var(--color-gray-800)",
"border-default": "var(--color-gray-700)",
"interactive-primary": "var(--color-blue-400)",
},
},
};
Detailed patterns and worked examples
Detailed pattern documentation lives in references/details.md. Read that file when the navigation tier above is insufficient.
Best Practices
- Name Tokens by Purpose: Use semantic names (text-primary) not visual descriptions (dark-gray)
- Maintain Token Hierarchy: Primitives > Semantic > Component tokens
- Document Token Usage: Include usage guidelines with token definitions
- Version Tokens: Treat token changes as API changes with semver
- Test Theme Combinations: Verify all themes work with all components
- Automate Token Pipeline: CI/CD for Figma-to-code synchronization
- Provide Migration Paths: Deprecate tokens gradually with clear alternatives
Common Issues
- Token Sprawl: Too many tokens without clear hierarchy
- Inconsistent Naming: Mixed conventions (camelCase vs kebab-case)
- Missing Dark Mode: Tokens that don't adapt to theme changes
- Hardcoded Values: Using raw values instead of tokens
- Circular References: Tokens referencing each other in loops
- Platform Gaps: Tokens missing for some platforms (web but not mobile)
Source: wshobson/agents → plugins/ui-design/skills/design-system-patterns/SKILL.md
1---2name: design-system-patterns3description: "Build scalable design systems with design tokens, theming infrastructure, and component architecture patterns. Use when creating design tokens, implementing theme switching, building component libraries, or establishing design system foundations."4category: frontend-and-design5source_repo: wshobson/agents6source_path: "plugins/ui-design/skills/design-system-patterns/SKILL.md"7source_url: https://github.com/wshobson/agents/blob/HEAD/plugins/ui-design/skills/design-system-patterns/SKILL.md8---91011# Design System Patterns1213Master design system architecture to create consistent, maintainable, and scalable UI foundations across web and mobile applications.1415## When to Use This Skill1617- Creating design tokens for colors, typography, spacing, and shadows18- Implementing light/dark theme switching with CSS custom properties19- Building multi-brand theming systems20- Architecting component libraries with consistent APIs21- Establishing design-to-code workflows with Figma tokens22- Creating semantic token hierarchies (primitive, semantic, component)23- Setting up design system documentation and guidelines2425## Core Capabilities2627### 1. Design Tokens2829- Primitive tokens (raw values: colors, sizes, fonts)30- Semantic tokens (contextual meaning: text-primary, surface-elevated)31- Component tokens (specific usage: button-bg, card-border)32- Token naming conventions and organization33- Multi-platform token generation (CSS, iOS, Android)3435### 2. Theming Infrastructure3637- CSS custom properties architecture38- Theme context providers in React39- Dynamic theme switching40- System preference detection (prefers-color-scheme)41- Persistent theme storage42- Reduced motion and high contrast modes4344### 3. Component Architecture4546- Compound component patterns47- Polymorphic components (as prop)48- Variant and size systems49- Slot-based composition50- Headless UI patterns51- Style props and responsive variants5253### 4. Token Pipeline5455- Figma to code synchronization56- Style Dictionary configuration57- Token transformation and formatting58- CI/CD integration for token updates5960## Quick Start6162```typescript63// Design tokens with CSS custom properties64const tokens = {65 colors: {66 // Primitive tokens67 gray: {68 50: "#fafafa",69 100: "#f5f5f5",70 900: "#171717",71 },72 blue: {73 500: "#3b82f6",74 600: "#2563eb",75 },76 },77 // Semantic tokens (reference primitives)78 semantic: {79 light: {80 "text-primary": "var(--color-gray-900)",81 "text-secondary": "var(--color-gray-600)",82 "surface-default": "var(--color-white)",83 "surface-elevated": "var(--color-gray-50)",84 "border-default": "var(--color-gray-200)",85 "interactive-primary": "var(--color-blue-500)",86 },87 dark: {88 "text-primary": "var(--color-gray-50)",89 "text-secondary": "var(--color-gray-400)",90 "surface-default": "var(--color-gray-900)",91 "surface-elevated": "var(--color-gray-800)",92 "border-default": "var(--color-gray-700)",93 "interactive-primary": "var(--color-blue-400)",94 },95 },96};97```9899## Detailed patterns and worked examples100101Detailed pattern documentation lives in `references/details.md`. Read that file when the navigation tier above is insufficient.102103## Best Practices1041051. **Name Tokens by Purpose**: Use semantic names (text-primary) not visual descriptions (dark-gray)1062. **Maintain Token Hierarchy**: Primitives > Semantic > Component tokens1073. **Document Token Usage**: Include usage guidelines with token definitions1084. **Version Tokens**: Treat token changes as API changes with semver1095. **Test Theme Combinations**: Verify all themes work with all components1106. **Automate Token Pipeline**: CI/CD for Figma-to-code synchronization1117. **Provide Migration Paths**: Deprecate tokens gradually with clear alternatives112113## Common Issues114115- **Token Sprawl**: Too many tokens without clear hierarchy116- **Inconsistent Naming**: Mixed conventions (camelCase vs kebab-case)117- **Missing Dark Mode**: Tokens that don't adapt to theme changes118- **Hardcoded Values**: Using raw values instead of tokens119- **Circular References**: Tokens referencing each other in loops120- **Platform Gaps**: Tokens missing for some platforms (web but not mobile)121122---123124**Source:** [`wshobson/agents`](https://github.com/wshobson/agents) → `plugins/ui-design/skills/design-system-patterns/SKILL.md`