# Freya's Interactive Prototyping Guide
**When to load:** When creating HTML prototypes or interactive mockups
---
## Core Principle
**HTML prototypes are THINKING TOOLS, not final products.**
Prototypes let users FEEL the design before we commit to production code. They reveal gaps in logic that static specs might miss.
---
## Why HTML Prototypes?
### Static Specs Can't Show
- ❌ How it FEELS to interact
- ❌ Where users get confused
- ❌ What's missing in the flow
- ❌ If the pacing feels right
- ❌ Whether copy actually works
### HTML Prototypes Reveal
- ✅ Interaction feels natural or awkward
- ✅ Information appears when needed
- ✅ Flow has logical gaps
- ✅ Users understand next steps
- ✅ Content triggers emotions
---
## Prototypes as Validation
**Think of prototypes as:**
- **Thinking tools** - Help us understand what we're building
- **Communication tools** - Show stakeholders/users the vision
- **Validation tools** - Catch problems before coding
- **Specification supplements** - Demonstrate what words can't
**NOT:**
- ❌ Production code (that's Phase 4 → BMM handoff)
- ❌ Pixel-perfect mockups (that's Figma's job)
- ❌ Final design (they're meant to evolve)
---
## When to Create Prototypes
### Always Create For
- Complex interactions (multi-step forms, wizards)
- Novel UI patterns (users haven't seen before)
- Critical flows (signup, purchase, onboarding)
- Content-heavy pages (validate information hierarchy)
### Optional For
- Simple pages (standard layouts)
- Repetitive patterns (once validated, reuse)
- Admin interfaces (if similar to known patterns)
**When in doubt → Prototype.** 30 minutes of HTML saves hours of rework.
---
## Prototype Fidelity Levels
### 1. Wireframe Prototype (Fastest)
- Basic HTML structure
- Placeholder content
- No styling (browser defaults)
- Focus: Information architecture
**Use when:** Testing flow logic only
---
### 2. Interactive Prototype (Standard)
- Structured HTML
- Actual content (multi-language)
- Basic CSS (layout, spacing, typography)
- Interactive elements (buttons, forms, navigation)
**Use when:** Validating user experience
---
### 3. Design System Prototype (If Enabled)
- Component-based HTML
- Design System classes
- Design tokens (colors, spacing)
- Real interactions
**Use when:** Phase 5 (Design System) is enabled
---
## Using Design System Components
### If Design System Enabled (Phase 5)
**Check first:**
1. Does this component exist in the Design System?
2. If yes → Use it
3. If similar → Assess opportunity/risk of creating variant
4. If no → Mark for future extraction
**In prototype:**
```html
...
```
---
### If Design System Disabled
**Use page-specific classes:**
```html
```
**Developers know:** No design system = implement as-is, no abstraction needed.
---
## What to Include in Prototypes
### Must Have
- ✅ All sections in correct order
- ✅ Actual content (headlines, copy, CTAs)
- ✅ Multi-language versions (separate HTML files or language toggle)
- ✅ Interactive elements (buttons, forms, links)
- ✅ Key states (default, hover, active, disabled)
### Optional
- Form validation (unless testing UX)
- Backend integration (never)
- Pixel-perfect design (Figma's job)
- Production-quality code (it's a prototype!)
---
## Prototype Validation Process
### 1. Internal Check
- Click through the flow yourself
- Does it feel natural?
- Any confusing moments?
- Missing information?
- Logical gaps?
### 2. Stakeholder Review
- Show prototype in conversation
- Watch where they pause or ask questions
- Note confusion points
- Validate assumptions
### 3. User Testing (Optional)
- If critical flow, test with 3-5 users
- Watch, don't explain
- Note where they struggle
- Identify patterns
### 4. Iterate
- Fix gaps revealed by validation
- Update specification accordingly
- Re-prototype if major changes
---
## Prototype → Specification Flow
**Prototypes inform specs, not replace them:**
1. **Create prototype** - Think through interaction
2. **Validate prototype** - Catch issues early
3. **Update specification** - Document what works
4. **Generate final spec** - With prototype insights
**Result:** Specification is battle-tested before development.
---
## Common Prototype Mistakes
### ❌ Over-Engineering
"Let me make this perfect production code..."
- **Why bad:** Wastes time, misses the point
- **Instead:** Quick and dirty is fine - it's a prototype
### ❌ Under-Engineering
"Just some divs with text..."
- **Why bad:** Can't validate actual experience
- **Instead:** Make it interactive enough to feel real
### ❌ Skipping Validation
"I know this works, no need to test..."
- **Why bad:** Your assumptions might be wrong
- **Instead:** Always validate with at least one other person
### ❌ Treating as Final
"This prototype IS the spec..."
- **Why bad:** Missing critical specification details
- **Instead:** Prototype → insights → specification
---
## Technical Notes
### File Structure
```
docs/C-Scenarios/[scenario-name]/prototypes/
├── landing-page-en.html
├── landing-page-se.html
├── signup-flow-en.html
└── styles.css (shared)
```
### Basic Template
```html
[Page Name] - Prototype
```
---
## Related Resources
- **Phase 4 Workflow:** `../../workflows/4-ux-design/`
- **Design System:** `../../workflows/5-design-system/`
- **Page Specification Template:** `../../workflows/4-ux-design/templates/page-specification.template.md`
---
*Show, don't tell. Let users FEEL the design before we build it.*