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: 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---56Identify reusable patterns, components, and design tokens, then extract and consolidate them into the design system for systematic reuse.78## Discover910Analyze the target area to identify extraction opportunities:11121. **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 conventions14 - Design token structure (if any)15 - Documentation patterns16 - Import/export conventions17 18 **CRITICAL**: If no design system exists, ask before creating one. Understand the preferred location and structure first.19202. **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 tokens23 - **Inconsistent variations**: Multiple implementations of the same concept (3 different button styles)24 - **Reusable patterns**: Layout patterns, composition patterns, interaction patterns worth systematizing25263. **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?3132## Plan Extraction3334Create a systematic extraction plan:3536- **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 patterns40- **Migration path**: How to refactor existing uses to consume the new shared versions4142**IMPORTANT**: Design systems grow incrementally. Extract what's clearly reusable now, not everything that might someday be reusable.4344## Extract & Enrich4546Build improved, reusable versions:4748- **Components**: Create well-designed components with:49 - Clear props API with sensible defaults50 - Proper variants for different use cases51 - Accessibility built in (ARIA, keyboard navigation, focus management)52 - Documentation and usage examples53 54- **Design tokens**: Create tokens with:55 - Clear naming (primitive vs semantic)56 - Proper hierarchy and organization57 - Documentation of when to use each token58 59- **Patterns**: Document patterns with:60 - When to use this pattern61 - Code examples62 - Variations and combinations6364**NEVER**:65- Extract one-off, context-specific implementations without generalization66- Create components so generic they're useless67- Extract without considering existing design system conventions68- Skip proper TypeScript types or prop documentation69- Create tokens for every single value (tokens should have semantic meaning)7071## Migrate7273Replace existing uses with the new shared versions:7475- **Find all instances**: Search for the patterns you've extracted76- **Replace systematically**: Update each use to consume the shared version77- **Test thoroughly**: Ensure visual and functional parity78- **Delete dead code**: Remove the old implementations7980## Document8182Update design system documentation:8384- Add new components to the component library85- Document token usage and values86- Add examples and guidelines87- Update any Storybook or component catalog8889Remember: A good design system is a living system. Extract patterns as they emerge, enrich them thoughtfully, and maintain them consistently.