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: Identifies reusable UI patterns, components, and design tokens, then extracts and consolidates them into a design system for systematic reuse.4---5Identify reusable patterns, components, and design tokens, then extract and consolidate them into the design system for systematic reuse.67## Discover89Analyze the target area to identify extraction opportunities:10111. **Find the design system**: Locate your design system, component library, or shared UI directory (grep for "design system", "ui", "components", etc.). Understand its structure:12 - Component organization and naming conventions13 - Design token structure (if any)14 - Documentation patterns15 - Import/export conventions16 17 **CRITICAL**: If no design system exists, ask before creating one. Understand the preferred location and structure first.18192. **Identify patterns**: Look for:20 - **Repeated components**: Similar UI patterns used multiple times (buttons, cards, inputs, etc.)21 - **Hard-coded values**: Colors, spacing, typography, shadows that should be tokens22 - **Inconsistent variations**: Multiple implementations of the same concept (3 different button styles)23 - **Reusable patterns**: Layout patterns, composition patterns, interaction patterns worth systematizing24253. **Assess value**: Not everything should be extracted. Consider:26 - Is this used 3+ times, or likely to be reused?27 - Would systematizing this improve consistency?28 - Is this a general pattern or context-specific?29 - What's the maintenance cost vs benefit?3031## Plan Extraction3233Create a systematic extraction plan:3435- **Components to extract**: Which UI elements become reusable components?36- **Tokens to create**: Which hard-coded values become design tokens?37- **Variants to support**: What variations does each component need?38- **Naming conventions**: Component names, token names, prop names that match existing patterns39- **Migration path**: How to refactor existing uses to consume the new shared versions4041**IMPORTANT**: Design systems grow incrementally. Extract what's clearly reusable now, not everything that might someday be reusable.4243## Extract & Enrich4445Build improved, reusable versions:4647- **Components**: Create well-designed components with:48 - Clear props API with sensible defaults49 - Proper variants for different use cases50 - Accessibility built in (ARIA, keyboard navigation, focus management)51 - Documentation and usage examples52 53- **Design tokens**: Create tokens with:54 - Clear naming (primitive vs semantic)55 - Proper hierarchy and organization56 - Documentation of when to use each token57 58- **Patterns**: Document patterns with:59 - When to use this pattern60 - Code examples61 - Variations and combinations6263**NEVER**:64- Extract one-off, context-specific implementations without generalization65- Create components so generic they're useless66- Extract without considering existing design system conventions67- Skip proper TypeScript types or prop documentation68- Create tokens for every single value (tokens should have semantic meaning)6970## Migrate7172Replace existing uses with the new shared versions:7374- **Find all instances**: Search for the patterns you've extracted75- **Replace systematically**: Update each use to consume the shared version76- **Test thoroughly**: Ensure visual and functional parity77- **Delete dead code**: Remove the old implementations7879## Document8081Update design system documentation:8283- Add new components to the component library84- Document token usage and values85- Add examples and guidelines86- Update any Storybook or component catalog8788Remember: A good design system is a living system. Extract patterns as they emerge, enrich them thoughtfully, and maintain them consistently.