Identify reusable patterns, components, and design tokens, then extract and consolidate them into the design system for systematic reuse.
Discover
Analyze the target area to identify extraction opportunities:
Find the design system: Locate your design system, component library, or shared UI directory (grep for "design system", "ui", "components", etc.). Understand its structure:
- Component organization and naming conventions
- Design token structure (if any)
- Documentation patterns
- Import/export conventions
CRITICAL: If no design system exists, ask before creating one. Understand the preferred location and structure first.
Identify patterns: Look for:
- Repeated components: Similar UI patterns used multiple times (buttons, cards, inputs, etc.)
- Hard-coded values: Colors, spacing, typography, shadows that should be tokens
- Inconsistent variations: Multiple implementations of the same concept (3 different button styles)
- Reusable patterns: Layout patterns, composition patterns, interaction patterns worth systematizing
Assess value: Not everything should be extracted. Consider:
- Is this used 3+ times, or likely to be reused?
- Would systematizing this improve consistency?
- Is this a general pattern or context-specific?
- What's the maintenance cost vs benefit?
Plan Extraction
Create a systematic extraction plan:
- Components to extract: Which UI elements become reusable components?
- Tokens to create: Which hard-coded values become design tokens?
- Variants to support: What variations does each component need?
- Naming conventions: Component names, token names, prop names that match existing patterns
- Migration path: How to refactor existing uses to consume the new shared versions
IMPORTANT: Design systems grow incrementally. Extract what's clearly reusable now, not everything that might someday be reusable.
Extract & Enrich
Build improved, reusable versions:
Components: Create well-designed components with:
- Clear props API with sensible defaults
- Proper variants for different use cases
- Accessibility built in (ARIA, keyboard navigation, focus management)
- Documentation and usage examples
Design tokens: Create tokens with:
- Clear naming (primitive vs semantic)
- Proper hierarchy and organization
- Documentation of when to use each token
Patterns: Document patterns with:
- When to use this pattern
- Code examples
- Variations and combinations
NEVER:
- Extract one-off, context-specific implementations without generalization
- Create components so generic they're useless
- Extract without considering existing design system conventions
- Skip proper TypeScript types or prop documentation
- Create tokens for every single value (tokens should have semantic meaning)
Migrate
Replace existing uses with the new shared versions:
- Find all instances: Search for the patterns you've extracted
- Replace systematically: Update each use to consume the shared version
- Test thoroughly: Ensure visual and functional parity
- Delete dead code: Remove the old implementations
Document
Update design system documentation:
- Add new components to the component library
- Document token usage and values
- Add examples and guidelines
- Update any Storybook or component catalog
Remember: A good design system is a living system. Extract patterns as they emerge, enrich them thoughtfully, and maintain them consistently.
1---2name: i-extract3description: Extract and consolidate reusable components, design tokens, and patterns into your design system. Identifies opportunities for systematic reuse and enriches your component library.4---5
6Identify reusable patterns, components, and design tokens, then extract and consolidate them into the design system for systematic reuse.
7
8## Discover
9
10Analyze the target area to identify extraction opportunities:
11
121. **Find the design system**: Locate your design system, component library, or shared UI directory (grep for "design system", "ui", "components", etc.). Understand its structure:
13 - Component organization and naming conventions
14 - Design token structure (if any)
15 - Documentation patterns
16 - Import/export conventions
17
18 **CRITICAL**: If no design system exists, ask before creating one. Understand the preferred location and structure first.
19
202. **Identify patterns**: Look for:
21 - **Repeated components**: Similar UI patterns used multiple times (buttons, cards, inputs, etc.)
22 - **Hard-coded values**: Colors, spacing, typography, shadows that should be tokens
23 - **Inconsistent variations**: Multiple implementations of the same concept (3 different button styles)
24 - **Reusable patterns**: Layout patterns, composition patterns, interaction patterns worth systematizing
25
263. **Assess value**: Not everything should be extracted. Consider:
27 - Is this used 3+ times, or likely to be reused?
28 - Would systematizing this improve consistency?
29 - Is this a general pattern or context-specific?
30 - What's the maintenance cost vs benefit?
31
32## Plan Extraction
33
34Create a systematic extraction plan:
35
36- **Components to extract**: Which UI elements become reusable components?
37- **Tokens to create**: Which hard-coded values become design tokens?
38- **Variants to support**: What variations does each component need?
39- **Naming conventions**: Component names, token names, prop names that match existing patterns
40- **Migration path**: How to refactor existing uses to consume the new shared versions
41
42**IMPORTANT**: Design systems grow incrementally. Extract what's clearly reusable now, not everything that might someday be reusable.
43
44## Extract & Enrich
45
46Build improved, reusable versions:
47
48- **Components**: Create well-designed components with:
49 - Clear props API with sensible defaults
50 - Proper variants for different use cases
51 - Accessibility built in (ARIA, keyboard navigation, focus management)
52 - Documentation and usage examples
53
54- **Design tokens**: Create tokens with:
55 - Clear naming (primitive vs semantic)
56 - Proper hierarchy and organization
57 - Documentation of when to use each token
58
59- **Patterns**: Document patterns with:
60 - When to use this pattern
61 - Code examples
62 - Variations and combinations
63
64**NEVER**:
65- Extract one-off, context-specific implementations without generalization
66- Create components so generic they're useless
67- Extract without considering existing design system conventions
68- Skip proper TypeScript types or prop documentation
69- Create tokens for every single value (tokens should have semantic meaning)
70
71## Migrate
72
73Replace existing uses with the new shared versions:
74
75- **Find all instances**: Search for the patterns you've extracted
76- **Replace systematically**: Update each use to consume the shared version
77- **Test thoroughly**: Ensure visual and functional parity
78- **Delete dead code**: Remove the old implementations
79
80## Document
81
82Update design system documentation:
83
84- Add new components to the component library
85- Document token usage and values
86- Add examples and guidelines
87- Update any Storybook or component catalog
88
89Remember: A good design system is a living system. Extract patterns as they emerge, enrich them thoughtfully, and maintain them consistently.