- Nx 22.7 monorepo (pnpm 11.1, TypeScript 5.9, Node 24) - apps/api: NestJS 11 (CJS conforme CODING-RULES.md PGD-DB-004) - apps/web: React 19 + Vite 8 (ESM) - libs/shared/api-interface: Zod contract base - Docker Compose dev: Postgres 18, Valkey 8, MinIO, Mailpit - WDS artifacts: - design-artifacts/A-Product-Brief/ (5 docs canônicos + 16 dialogs) - design-artifacts/B-Trigger-Map/ (hub + 4 personas + feature impact) - Stack canon: STACK.md v2.2 + CODING-RULES.md v2.0 + brand.md - AGENTS.md + README.md como entrada para devs/agentes Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
664 lines
16 KiB
Markdown
664 lines
16 KiB
Markdown
# 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:**
|
|
1. Create basic prototype (functional)
|
|
2. Extract to Figma
|
|
3. Define complete design system
|
|
4. Re-render with design system
|
|
5. 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:**
|
|
1. Create prototype with design system
|
|
2. Test functionality
|
|
3. Make minor CSS adjustments if needed
|
|
4. 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:**
|
|
1. Create basic prototype
|
|
2. Extract to Figma
|
|
3. Design new component thoroughly
|
|
4. Add to design system
|
|
5. Re-render prototype
|
|
6. 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:**
|
|
1. Extract current prototype
|
|
2. Polish in Figma quickly
|
|
3. Present Figma mockups
|
|
4. After approval, update design system
|
|
5. 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:**
|
|
1. Create basic prototypes
|
|
2. Test with users
|
|
3. Iterate on functionality
|
|
4. 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:
|
|
1. Analyzes prototype components
|
|
2. Identifies missing components (gallery, reviews, ratings)
|
|
3. Injects to Figma via MCP server
|
|
4. 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:**
|
|
1. Apply existing design system ✅ (already done)
|
|
2. Minor CSS tweaks for spacing (if needed)
|
|
3. Test functionality ✅
|
|
4. 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:
|
|
1. Analyzes prototype components
|
|
2. Identifies components needing refinement (hero, features, testimonials, CTAs)
|
|
3. Injects to Figma via MCP server
|
|
4. 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:
|
|
|
|
1. **Does the design system have what I need?**
|
|
- Yes → Don't extract
|
|
- No → Consider extracting
|
|
|
|
2. **Is this page important enough to polish?**
|
|
- Yes → Extract
|
|
- No → Skip
|
|
|
|
3. **Do I have 2-5 hours for refinement?**
|
|
- Yes → Can extract
|
|
- No → Skip
|
|
|
|
4. **Will this create reusable components?**
|
|
- Yes → Extract (investment pays off)
|
|
- No → Skip (one-off work)
|
|
|
|
5. **Is the concept validated?**
|
|
- Yes → Safe to polish
|
|
- No → Too early
|
|
|
|
6. **Do stakeholders need polished visuals?**
|
|
- Yes → Extract
|
|
- No → Skip
|
|
|
|
---
|
|
|
|
## Best Practices
|
|
|
|
### DO ✅
|
|
|
|
1. **Extract strategically**
|
|
- First page in project
|
|
- High-priority pages
|
|
- When design system gaps identified
|
|
|
|
2. **Batch extractions**
|
|
- Extract multiple pages together
|
|
- Efficient use of time
|
|
- Consistent design decisions
|
|
|
|
3. **Document decisions**
|
|
- Why extracted
|
|
- What was refined
|
|
- Design system updates
|
|
|
|
4. **Set time limits**
|
|
- Don't over-polish
|
|
- Good enough is sufficient
|
|
- Ship working products
|
|
|
|
### DON'T ❌
|
|
|
|
1. **Don't extract everything**
|
|
- Selective extraction
|
|
- Focus on high-value pages
|
|
- Skip low-priority pages
|
|
|
|
2. **Don't extract too early**
|
|
- Validate concepts first
|
|
- Ensure functionality works
|
|
- Don't polish throwaway work
|
|
|
|
3. **Don't extract too late**
|
|
- Don't accumulate design debt
|
|
- Address gaps early
|
|
- Build design system progressively
|
|
|
|
4. **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.**
|