16 KiB
When to Extract Prototypes to Figma - Decision Guide
Purpose: Help designers decide when to extract HTML prototypes to Figma for visual refinement.
Quick Answer: Extract when the design system is incomplete and the prototype needs visual polish.
Decision Tree
Prototype Created
↓
Does it look polished?
↓
┌─────┴─────┐
YES NO
↓ ↓
Complete Is design system incomplete?
↓
┌─────┴─────┐
YES NO
↓ ↓
Extract to Quick CSS fixes
Figma sufficient
↓
Refine design
↓
Update design system
↓
Re-render prototype
↓
Iterate or Complete
Quick Assessment Checklist
✅ Extract to Figma if:
- Prototype not visually appealing or unpolished
- Design system missing components for this view
- Need to define new design tokens (colors, spacing, typography)
- Stakeholder presentation requires high-fidelity
- Multiple similar components need standardization
- Visual hierarchy unclear
- Spacing/alignment inconsistent
❌ Don't Extract if:
- Prototype already looks good
- Design system covers all needs
- Still validating functionality
- Rapid iteration more important than polish
- Early exploration phase
- Internal testing only
Scenarios
Scenario 1: First Page in Project
Situation: Creating first prototype, design system is empty
Decision: ✅ Extract to Figma
Reason: Need to establish design foundation
- Define color palette
- Set typography scale
- Create spacing system
- Build first components
Workflow:
- Create basic prototype (functional)
- Extract to Figma
- Define complete design system
- Re-render with design system
- Use for all subsequent pages
Scenario 2: Similar to Existing Pages
Situation: Design system already has most components needed
Decision: ❌ Don't Extract
Reason: Design system sufficient
- Reuse existing components
- Apply existing tokens
- Minor variations can be CSS tweaks
Workflow:
- Create prototype with design system
- Test functionality
- Make minor CSS adjustments if needed
- Complete
Scenario 3: New Component Type Needed
Situation: Page needs component type not in design system (e.g., data table)
Decision: ✅ Extract to Figma
Reason: Need to design new component properly
- Define component structure
- Create variants and states
- Document design tokens
- Add to design system
Workflow:
- Create basic prototype
- Extract to Figma
- Design new component thoroughly
- Add to design system
- Re-render prototype
- Component now available for future use
Scenario 4: Stakeholder Presentation
Situation: Working prototype exists but looks basic, client review tomorrow
Decision: ✅ Extract to Figma
Reason: Need polished visuals for presentation
- Apply professional styling
- Refine visual hierarchy
- Add polish (shadows, effects)
- Create presentation-ready mockups
Workflow:
- Extract current prototype
- Polish in Figma quickly
- Present Figma mockups
- After approval, update design system
- Re-render for development
Scenario 5: Rapid Prototyping Phase
Situation: Testing multiple concepts quickly, designs will change
Decision: ❌ Don't Extract
Reason: Too early for polish
- Focus on functionality
- Validate concepts first
- Avoid polishing throwaway work
Workflow:
- Create basic prototypes
- Test with users
- Iterate on functionality
- Once concept validated, then extract for polish
Design System Maturity Levels
Level 1: Empty (0-5 components)
Typical Decision: Extract to Figma Reason: Need to build foundation Focus: Establish design tokens and core components
Level 2: Growing (6-15 components)
Typical Decision: Extract when gaps found Reason: Fill missing pieces Focus: Expand component library strategically
Level 3: Mature (16+ components)
Typical Decision: Rarely extract Reason: Most needs covered Focus: Reuse existing, minor variations only
Cost-Benefit Analysis
Benefits of Extracting
Design Quality:
- Professional visual polish
- Consistent design system
- Reusable components
- Better stakeholder buy-in
Long-term Efficiency:
- Design system grows
- Future prototypes faster
- Reduced design debt
- Team alignment
Costs of Extracting
Time Investment:
- Extraction process: 15-30 min
- Figma refinement: 1-3 hours
- Design system update: 30-60 min
- Re-rendering: 15-30 min
- Total: 2-5 hours per page
Workflow Overhead:
- Context switching
- Tool learning curve
- Sync maintenance
- Version tracking
When Time is Limited
High Priority: Extract
These pages justify the time investment:
- Landing pages (first impression)
- Onboarding flows (user retention)
- Checkout/payment (conversion critical)
- Dashboard (frequent use)
- Marketing pages (brand representation)
Lower Priority: Skip
These pages can stay basic:
- Admin panels (internal use)
- Error pages (rare views)
- Settings pages (utility focus)
- Debug/test pages (temporary)
Team Collaboration Factors
Extract When:
Designer-Developer Collaboration:
- Designer needs to define visual direction
- Developer needs clear component specs
- Team needs shared design language
Stakeholder Communication:
- Client needs to approve visuals
- Marketing needs branded materials
- Sales needs demo materials
Skip When:
Solo Development:
- One person doing design + dev
- Direct implementation faster
- No handoff needed
Internal Tools:
- Team understands context
- Functionality over aesthetics
- Rapid iteration valued
Quality Thresholds
Extract if Prototype Has:
Visual Issues:
- Inconsistent spacing
- Poor typography hierarchy
- Clashing colors
- Misaligned elements
- Unclear visual hierarchy
Missing Design Elements:
- No hover states
- Missing loading states
- Incomplete error states
- No disabled states
- Basic placeholder styling
Component Gaps:
- Custom components needed
- Existing components insufficient
- New patterns required
- Variant expansion needed
Don't Extract if Prototype Has:
Sufficient Quality:
- Consistent spacing
- Clear hierarchy
- Appropriate colors
- Aligned elements
- Professional appearance
Complete Design System Coverage:
- All components available
- States defined
- Variants sufficient
- Tokens applied
Iteration Strategy
First Iteration
Always extract if:
- Establishing design foundation
- First page in project
- Setting visual direction
Subsequent Iterations
Extract only if:
- Significant design system gaps
- New component types needed
- Visual quality insufficient
Final Iteration
Extract if:
- Stakeholder presentation
- Production launch
- Marketing materials needed
Practical Examples
Example 1: E-commerce Product Page
Phase 1: Sketch (Concept)
- Designer creates hand-drawn sketch of product page
- Shows product gallery, reviews section, rating display
- Rough layout and component placement
Phase 2: Specification (Phase 4C)
- Freya analyzes sketch
- Creates detailed specification:
- Product gallery: Image carousel with thumbnails
- Reviews component: User avatar, rating, text, date
- Rating stars: 5-star display with half-star support
- All Object IDs defined
- Content and interactions specified
Phase 3: Prototype (Phase 4D)
- Freya builds functional HTML prototype
- Uses existing design system (buttons, inputs, cards)
- Product gallery, reviews, ratings are basic/functional but unpolished
Initial Assessment:
- Prototype works functionally ✅
- Design system has: buttons, inputs, cards
- Missing: product gallery, reviews component, rating stars (visual refinement needed)
Decision: ✅ Extract to Figma
Phase 4: Figma Refinement
Freya automatically:
- Analyzes prototype components
- Identifies missing components (gallery, reviews, ratings)
- Injects to Figma via MCP server
- Page:
02-Product-Catalog / 2.3-Product-Detail
Designer in Figma: 5. Designs product gallery component (image zoom, transitions) 6. Designs reviews component (typography, spacing, layout) 7. Designs rating component (star icons, colors, states) 8. Applies design tokens (colors, spacing, typography)
Phase 5: Design System Update
Freya automatically:
9. Reads refined components from Figma
10. Extracts design tokens
11. Updates design system:
- D-Design-System/components/product-gallery.md
- D-Design-System/components/review-card.md
- D-Design-System/components/rating-stars.md
Phase 6: Re-render 12. Freya re-renders prototype with enhanced design system 13. Prototype now polished and professional
Result:
- ✅ Polished product page
- ✅ 3 new reusable components in design system
- ✅ Specification updated (if design evolved)
- ✅ All future product pages can use these components
Example 2: Settings Page
Phase 1: Sketch (Concept)
- Designer creates simple sketch of settings page
- Shows form fields, toggles, save button
- Standard layout, no custom components
Phase 2: Specification (Phase 4C)
- Freya analyzes sketch
- Creates specification:
- Form fields: Email, password, notifications
- Toggle switches: Email notifications, push notifications
- Save button: Standard primary button
- All components exist in design system
Phase 3: Prototype (Phase 4D)
- Freya builds HTML prototype
- Uses existing design system components:
- Form inputs (already designed)
- Toggle switches (already designed)
- Buttons (already designed)
- Prototype looks polished immediately
Initial Assessment:
- Prototype works functionally ✅
- Prototype looks polished ✅
- Design system has: forms, toggles, buttons
- All components available
- Internal use only
Decision: ❌ Don't Extract
Actions:
- Apply existing design system ✅ (already done)
- Minor CSS tweaks for spacing (if needed)
- Test functionality ✅
- Complete ✅
Result:
- ✅ Functional, polished page in 30 minutes
- ✅ No Figma extraction needed
- ✅ Design system reuse successful
Example 3: Landing Page
Phase 1: Sketch (Concept)
- Designer creates detailed sketch of landing page
- Hero section with headline, subtext, CTA
- Feature cards with icons and descriptions
- Testimonials with photos and quotes
- Multiple CTA sections throughout
Phase 2: Specification (Phase 4C)
- Freya analyzes sketch
- Creates comprehensive specification:
- Hero section: Large headline, supporting text, primary CTA
- Feature cards: Icon, title, description, learn more link
- Testimonials: User photo, quote, name, company
- CTA sections: Headline, button, background treatment
- All Object IDs defined
- Multi-language content specified
Phase 3: Prototype (Phase 4D)
- Freya builds functional HTML prototype
- Uses basic design system components
- Hero, features, testimonials are functional but basic
- Client presentation in one week (high priority!)
Initial Assessment:
- Prototype works functionally ✅
- Design system has basic components
- Needs visual refinement: hero section, feature cards, testimonials, CTA sections
- Client presentation next week (high stakes!)
Decision: ✅ Extract to Figma
Phase 4: Figma Refinement
Freya automatically:
- Analyzes prototype components
- Identifies components needing refinement (hero, features, testimonials, CTAs)
- Injects to Figma via MCP server
- Page:
01-Marketing / 1.1-Landing-Page
Designer in Figma: 5. Designs hero component (brand-critical, high impact) 6. Designs feature cards (icons, layout, spacing) 7. Designs testimonial component (photos, typography) 8. Polishes CTA sections (visual hierarchy, contrast) 9. Applies brand colors, typography, spacing tokens
Phase 5: Design System Update
Freya automatically:
10. Reads refined components from Figma
11. Extracts design tokens and components
12. Updates design system:
- D-Design-System/components/hero-section.md
- D-Design-System/components/feature-card.md
- D-Design-System/components/testimonial.md
- D-Design-System/components/cta-section.md
Phase 6: Re-render for Presentation 13. Freya re-renders prototype with enhanced design system 14. Prototype now presentation-ready
Result:
- ✅ Polished, professional landing page
- ✅ 4 new reusable components for future marketing pages
- ✅ Client presentation ready
- ✅ Design system significantly expanded
Red Flags: When NOT to Extract
🚩 Premature Optimization
Sign: Polishing before validating concept Problem: Wasting time on designs that may change Solution: Validate functionality first, polish later
🚩 Over-Engineering
Sign: Creating design system for one-off pages Problem: Overhead exceeds benefit Solution: Keep it simple for unique pages
🚩 Analysis Paralysis
Sign: Endless refinement cycles Problem: Never shipping Solution: Set "good enough" threshold
🚩 Tool Obsession
Sign: Using Figma because you can, not because you should Problem: Process over progress Solution: Focus on outcomes, not tools
Decision Matrix
| Factor | Extract | Don't Extract |
|---|---|---|
| Design System Maturity | Empty/Growing | Mature |
| Visual Quality | Needs polish | Sufficient |
| Component Coverage | Gaps exist | Complete |
| Stakeholder Needs | Presentation | Internal |
| Time Available | 2-5 hours | < 1 hour |
| Page Importance | High priority | Low priority |
| Iteration Phase | First/Final | Middle |
| Team Size | Collaborative | Solo |
Score: 5+ "Extract" factors → Extract to Figma Score: 5+ "Don't Extract" factors → Skip extraction
Questions to Ask
Before deciding, ask yourself:
-
Does the design system have what I need?
- Yes → Don't extract
- No → Consider extracting
-
Is this page important enough to polish?
- Yes → Extract
- No → Skip
-
Do I have 2-5 hours for refinement?
- Yes → Can extract
- No → Skip
-
Will this create reusable components?
- Yes → Extract (investment pays off)
- No → Skip (one-off work)
-
Is the concept validated?
- Yes → Safe to polish
- No → Too early
-
Do stakeholders need polished visuals?
- Yes → Extract
- No → Skip
Best Practices
DO ✅
-
Extract strategically
- First page in project
- High-priority pages
- When design system gaps identified
-
Batch extractions
- Extract multiple pages together
- Efficient use of time
- Consistent design decisions
-
Document decisions
- Why extracted
- What was refined
- Design system updates
-
Set time limits
- Don't over-polish
- Good enough is sufficient
- Ship working products
DON'T ❌
-
Don't extract everything
- Selective extraction
- Focus on high-value pages
- Skip low-priority pages
-
Don't extract too early
- Validate concepts first
- Ensure functionality works
- Don't polish throwaway work
-
Don't extract too late
- Don't accumulate design debt
- Address gaps early
- Build design system progressively
-
Don't extract without plan
- Know what needs refinement
- Have clear goals
- Update design system after
Summary
Extract to Figma when:
- Design system is incomplete
- Prototype needs visual polish
- New components required
- Stakeholder presentation needed
- High-priority page
- Time available for refinement
Skip extraction when:
- Design system covers all needs
- Prototype looks sufficient
- Rapid iteration more important
- Low-priority page
- Time constrained
- Early exploration phase
Remember: The goal is shipping polished, functional products. Extract strategically, not automatically.
Use this guide to make informed decisions about when to invest time in Figma refinement versus moving forward with code-based prototypes.