Design System Creation
Build comprehensive design systems for consistent UI development across teams.
Design System Layers
- Foundation: Colors, typography, spacing, elevation
- Components: Buttons, inputs, cards, navigation
- Patterns: Forms, layouts, empty states
Foundation - Design Tokens
:root {
/* Colors */
--color-primary-50: #eff6ff;
--color-primary-500: #3b82f6;
--color-primary-900: #1e3a8a;
/* Semantic colors */
--color-success: #22c55e;
--color-warning: #f59e0b;
--color-error: #ef4444;
/* Typography */
--font-sans: 'Inter', system-ui, sans-serif;
--font-mono: 'Fira Code', monospace;
/* Type scale */
--text-xs: 0.75rem;
--text-sm: 0.875rem;
--text-base: 1rem;
--text-lg: 1.125rem;
--text-xl: 1.25rem;
--text-2xl: 1.5rem;
/* Spacing (4px base) */
--space-1: 0.25rem;
--space-2: 0.5rem;
--space-4: 1rem;
--space-8: 2rem;
/* Elevation */
--shadow-sm: 0 1px 2px rgba(0,0,0,0.05);
--shadow-md: 0 4px 6px rgba(0,0,0,0.1);
--shadow-lg: 0 10px 15px rgba(0,0,0,0.1);
}
Component Documentation
## Button
### Anatomy
- Container (padding, background)
- Label (text)
- Icon (optional)
### Variants
- Primary: Main actions
- Secondary: Alternative actions
- Ghost: Subtle actions
### States
- Default, Hover, Active, Disabled, Loading
### Accessibility
- Role: button
- Keyboard: Enter/Space to activate
- Focus: Visible focus ring
Component Example (React)
interface ButtonProps {
variant?: 'primary' | 'secondary' | 'ghost';
size?: 'sm' | 'md' | 'lg';
loading?: boolean;
disabled?: boolean;
children: React.ReactNode;
}
function Button({ variant = 'primary', size = 'md', loading, disabled, children }: ButtonProps) {
return (
<button
className={`btn btn-${variant} btn-${size}`}
disabled={disabled || loading}
aria-busy={loading}
>
{loading ? <Spinner /> : children}
</button>
);
}
Governance
- Review Committee: Approves new components
- Contribution Process: RFC → Review → Implementation
- Versioning: Semantic versioning for releases
- Deprecation: 3-month notice with migration guide
Best Practices
- Start with foundational tokens
- Document every component thoroughly
- Ensure WCAG 2.1 AA compliance
- Support dark mode from the start
- Include usage guidelines with do/don't examples
1---2name: design-system-creation3description: Creates comprehensive design systems with typography, colors, components, and documentation for consistent UI development. Use when establishing design standards, building component libraries, or ensuring cross-team consistency. Keywords: design-tokens, typography, spacing, color-palette, components, patterns, variables, dark-mode, theming, CSS-variables, accessibility, WCAG, responsive, grid-system, breakpoints, design-scale, semantic-tokens, component-library, style-guide, documentation, Figma, Storybook, brand-consistency, design-principles4license: MIT5---67# Design System Creation89Build comprehensive design systems for consistent UI development across teams.1011## Design System Layers12131. **Foundation**: Colors, typography, spacing, elevation142. **Components**: Buttons, inputs, cards, navigation153. **Patterns**: Forms, layouts, empty states1617## Foundation - Design Tokens1819```css20:root {21 /* Colors */22 --color-primary-50: #eff6ff;23 --color-primary-500: #3b82f6;24 --color-primary-900: #1e3a8a;2526 /* Semantic colors */27 --color-success: #22c55e;28 --color-warning: #f59e0b;29 --color-error: #ef4444;3031 /* Typography */32 --font-sans: 'Inter', system-ui, sans-serif;33 --font-mono: 'Fira Code', monospace;3435 /* Type scale */36 --text-xs: 0.75rem;37 --text-sm: 0.875rem;38 --text-base: 1rem;39 --text-lg: 1.125rem;40 --text-xl: 1.25rem;41 --text-2xl: 1.5rem;4243 /* Spacing (4px base) */44 --space-1: 0.25rem;45 --space-2: 0.5rem;46 --space-4: 1rem;47 --space-8: 2rem;4849 /* Elevation */50 --shadow-sm: 0 1px 2px rgba(0,0,0,0.05);51 --shadow-md: 0 4px 6px rgba(0,0,0,0.1);52 --shadow-lg: 0 10px 15px rgba(0,0,0,0.1);53}54```5556## Component Documentation5758```markdown59## Button6061### Anatomy62- Container (padding, background)63- Label (text)64- Icon (optional)6566### Variants67- Primary: Main actions68- Secondary: Alternative actions69- Ghost: Subtle actions7071### States72- Default, Hover, Active, Disabled, Loading7374### Accessibility75- Role: button76- Keyboard: Enter/Space to activate77- Focus: Visible focus ring78```7980## Component Example (React)8182```tsx83interface ButtonProps {84 variant?: 'primary' | 'secondary' | 'ghost';85 size?: 'sm' | 'md' | 'lg';86 loading?: boolean;87 disabled?: boolean;88 children: React.ReactNode;89}9091function Button({ variant = 'primary', size = 'md', loading, disabled, children }: ButtonProps) {92 return (93 <button94 className={`btn btn-${variant} btn-${size}`}95 disabled={disabled || loading}96 aria-busy={loading}97 >98 {loading ? <Spinner /> : children}99 </button>100 );101}102```103104## Governance105106- **Review Committee**: Approves new components107- **Contribution Process**: RFC → Review → Implementation108- **Versioning**: Semantic versioning for releases109- **Deprecation**: 3-month notice with migration guide110111## Best Practices112113- Start with foundational tokens114- Document every component thoroughly115- Ensure WCAG 2.1 AA compliance116- Support dark mode from the start117- Include usage guidelines with do/don't examples