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.4---567# Design System Patterns89Master design system architecture to create consistent, maintainable, and scalable UI foundations across web and mobile applications.1011## When to Use This Skill1213- Creating design tokens for colors, typography, spacing, and shadows14- Implementing light/dark theme switching with CSS custom properties15- Building multi-brand theming systems16- Architecting component libraries with consistent APIs17- Establishing design-to-code workflows with Figma tokens18- Creating semantic token hierarchies (primitive, semantic, component)19- Setting up design system documentation and guidelines2021## Core Capabilities2223### 1. Design Tokens2425- Primitive tokens (raw values: colors, sizes, fonts)26- Semantic tokens (contextual meaning: text-primary, surface-elevated)27- Component tokens (specific usage: button-bg, card-border)28- Token naming conventions and organization29- Multi-platform token generation (CSS, iOS, Android)3031### 2. Theming Infrastructure3233- CSS custom properties architecture34- Theme context providers in React35- Dynamic theme switching36- System preference detection (prefers-color-scheme)37- Persistent theme storage38- Reduced motion and high contrast modes3940### 3. Component Architecture4142- Compound component patterns43- Polymorphic components (as prop)44- Variant and size systems45- Slot-based composition46- Headless UI patterns47- Style props and responsive variants4849### 4. Token Pipeline5051- Figma to code synchronization52- Style Dictionary configuration53- Token transformation and formatting54- CI/CD integration for token updates5556## Quick Start5758```typescript59// Design tokens with CSS custom properties60const tokens = {61 colors: {62 // Primitive tokens63 gray: {64 50: "#fafafa",65 100: "#f5f5f5",66 900: "#171717",67 },68 blue: {69 500: "#3b82f6",70 600: "#2563eb",71 },72 },73 // Semantic tokens (reference primitives)74 semantic: {75 light: {76 "text-primary": "var(--color-gray-900)",77 "text-secondary": "var(--color-gray-600)",78 "surface-default": "var(--color-white)",79 "surface-elevated": "var(--color-gray-50)",80 "border-default": "var(--color-gray-200)",81 "interactive-primary": "var(--color-blue-500)",82 },83 dark: {84 "text-primary": "var(--color-gray-50)",85 "text-secondary": "var(--color-gray-400)",86 "surface-default": "var(--color-gray-900)",87 "surface-elevated": "var(--color-gray-800)",88 "border-default": "var(--color-gray-700)",89 "interactive-primary": "var(--color-blue-400)",90 },91 },92};93```9495## Detailed patterns and worked examples9697Detailed pattern documentation lives in `references/details.md`. Read that file when the navigation tier above is insufficient.9899## Best Practices1001011. **Name Tokens by Purpose**: Use semantic names (text-primary) not visual descriptions (dark-gray)1022. **Maintain Token Hierarchy**: Primitives > Semantic > Component tokens1033. **Document Token Usage**: Include usage guidelines with token definitions1044. **Version Tokens**: Treat token changes as API changes with semver1055. **Test Theme Combinations**: Verify all themes work with all components1066. **Automate Token Pipeline**: CI/CD for Figma-to-code synchronization1077. **Provide Migration Paths**: Deprecate tokens gradually with clear alternatives108109## Common Issues110111- **Token Sprawl**: Too many tokens without clear hierarchy112- **Inconsistent Naming**: Mixed conventions (camelCase vs kebab-case)113- **Missing Dark Mode**: Tokens that don't adapt to theme changes114- **Hardcoded Values**: Using raw values instead of tokens115- **Circular References**: Tokens referencing each other in loops116- **Platform Gaps**: Tokens missing for some platforms (web but not mobile)117118---119120**Source:** [`wshobson/agents`](https://github.com/wshobson/agents) → `plugins/ui-design/skills/design-system-patterns/SKILL.md`