High-Fidelity Prototyping
Detailed, interactive representations that closely mirror the final product in appearance, content, and behavior. Hi-fi prototypes validate visual design, interaction patterns, and edge cases before development.
When to Use
Use high-fidelity prototyping when:
- Core concepts are validated through lo-fi testing
- Stakeholder buy-in requires realistic visualization
- Testing complex micro-interactions or animations
- Preparing specifications for developer handoff
- Validating design-system component usage in context
- Conducting usability testing that requires realistic fidelity
Workflow Decision Tree
Ready to go hi-fi?
├── Lo-fi flow validated? → YES: Proceed to hi-fi
│ └── NO: Go back to lo-fi prototyping
├── Design system exists? → Apply existing components
│ └── NO: Define visual foundations first (color, type, spacing)
├── Testing interactions? → Build interactive prototype
├── Need stakeholder sign-off? → Create polished static mockups
└── Developer handoff? → Annotate specs + interactive reference
Hi-Fi Prototype Layers
1. Visual Foundation
Establish the design language before building screens:
- Color system: Primary, secondary, neutral, semantic (error, success, warning)
- Typography scale: Display, heading, body, caption with defined sizes and weights
- Spacing system: Consistent scale (4px base: 4, 8, 12, 16, 24, 32, 48, 64)
- Elevation: Shadow/border hierarchy for depth
- Border radius: Consistent rounding tokens
2. Component Library
Map wireframe elements to production components:
| Wireframe Element |
Hi-Fi Component |
States Required |
| Box with label |
Card |
default, hover, loading, empty |
| Rectangle button |
Button |
default, hover, active, disabled, loading |
| Text line |
Input |
empty, filled, focused, error, disabled |
| Dropdown indicator |
Select/Combobox |
closed, open, selected, error |
| X-box image |
Image with loading |
loading, loaded, error, placeholder |
3. Interaction States
Every interactive element needs these states documented:
Default → Hover → Active/Pressed → Focused
→ Disabled
→ Loading
→ Error
→ Success
4. Content Strategy
- Use real or realistic content (never Lorem Ipsum in hi-fi)
- Test with edge cases: very long names, empty states, single items, hundreds of items
- Include error messages, empty states, and loading states as screens
Building Hi-Fi Prototypes in Code
Design Token Setup
:root {
/* Color tokens */
--color-primary: #1a1a2e;
--color-accent: #e94560;
--color-surface: #ffffff;
--color-muted: #f8f9fa;
--color-border: #e2e8f0;
--color-text: #1a1a2e;
--color-text-muted: #64748b;
/* Typography */
--font-display: 'Playfair Display', serif;
--font-body: 'Inter', sans-serif;
/* Spacing */
--space-1: 0.25rem;
--space-2: 0.5rem;
--space-3: 0.75rem;
--space-4: 1rem;
--space-6: 1.5rem;
--space-8: 2rem;
--space-12: 3rem;
--space-16: 4rem;
/* Transitions */
--transition-fast: 150ms ease;
--transition-normal: 250ms ease;
--transition-slow: 400ms ease;
}
Component Pattern with States
interface ButtonProps {
variant: 'primary' | 'secondary' | 'ghost';
size: 'sm' | 'md' | 'lg';
loading?: boolean;
disabled?: boolean;
children: React.ReactNode;
onClick?: () => void;
}
function PrototypeButton({ variant, size, loading, disabled, children, onClick }: ButtonProps) {
return (
<button
className={cn(
'inline-flex items-center justify-center rounded-md font-medium transition-colors',
'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2',
variants[variant],
sizes[size],
(loading || disabled) && 'opacity-50 pointer-events-none'
)}
disabled={disabled || loading}
>
{loading && <Spinner className="mr-2 h-4 w-4 animate-spin" />}
{children}
</button>
);
}
Screen Documentation Pattern
/**
* Screen: Event Detail
* Flow: Dashboard > Events > Event Detail
* States: loading, populated, empty-sections, error
* Breakpoints: mobile (375), tablet (768), desktop (1280)
* Interactions:
* - Tab navigation between sections
* - Inline editing of event details
* - Image gallery with lightbox
* - Guest list filtering and search
*/
Testing with Hi-Fi Prototypes
What Hi-Fi Testing Reveals
- Visual design effectiveness and brand alignment
- Micro-interaction clarity and delight
- Content readability and scannability
- Component usability in realistic context
- Responsive behavior across breakpoints
- Accessibility issues (color contrast, focus states, screen reader flow)
Testing Checklist
- Task completion: Can users complete key tasks without help?
- Visual hierarchy: Do users notice the right things first?
- Error recovery: Can users recover from mistakes?
- Edge cases: How do screens handle empty, overflow, or error states?
- Consistency: Do similar patterns behave the same way?
- Performance perception: Do loading states feel appropriate?
Usability Metrics to Track
- Task success rate
- Time on task
- Error rate per task
- System Usability Scale (SUS) score
- First-click accuracy
Design Handoff Specifications
When the prototype is validated, document for developers:
Per-Screen Spec
- Layout grid and spacing measurements
- Component variants used and their props
- Responsive breakpoint behavior
- Animation/transition specifications (duration, easing, trigger)
- Data dependencies and API mapping
Per-Component Spec
- All visual states with screenshots
- Interaction behavior description
- Accessibility requirements (ARIA roles, keyboard nav)
- Content constraints (min/max length, required fields)
Fidelity Progression Summary
| Aspect |
Lo-Fi |
Hi-Fi |
| Visual detail |
Grayscale, rough |
Full color, polished |
| Content |
Labels, short text |
Real/realistic content |
| Interactions |
Click-through only |
Micro-interactions, animations |
| States |
Happy path |
All states (error, loading, empty) |
| Responsiveness |
Single breakpoint |
All target breakpoints |
| Testing focus |
Structure, flow |
Usability, visual, interaction |
| Iteration speed |
Minutes |
Hours |
| Best for |
Exploration |
Validation, handoff |
References
references/
interaction-states.md - Complete guide to documenting interaction states
handoff-checklist.md - Developer handoff specification checklist
testing-metrics.md - Usability metrics and measurement guide
Resources
- Remove placeholder files in
scripts/ and assets/ if not needed
1---2name: high-fidelity-prototyping3description: Guide high-fidelity prototyping workflows for production-ready UI/UX design. Use when the user needs to create detailed interactive prototypes, pixel-perfect mockups, design-system-integrated screens, or pre-development specifications. Covers visual design, interaction states, design handoff, and usability validation.4---56# High-Fidelity Prototyping78Detailed, interactive representations that closely mirror the final product in appearance, content, and behavior. Hi-fi prototypes validate visual design, interaction patterns, and edge cases before development.910## When to Use1112Use high-fidelity prototyping when:13- Core concepts are validated through lo-fi testing14- Stakeholder buy-in requires realistic visualization15- Testing complex micro-interactions or animations16- Preparing specifications for developer handoff17- Validating design-system component usage in context18- Conducting usability testing that requires realistic fidelity1920## Workflow Decision Tree2122```23Ready to go hi-fi?24├── Lo-fi flow validated? → YES: Proceed to hi-fi25│ └── NO: Go back to lo-fi prototyping26├── Design system exists? → Apply existing components27│ └── NO: Define visual foundations first (color, type, spacing)28├── Testing interactions? → Build interactive prototype29├── Need stakeholder sign-off? → Create polished static mockups30└── Developer handoff? → Annotate specs + interactive reference31```3233## Hi-Fi Prototype Layers3435### 1. Visual Foundation36Establish the design language before building screens:3738- **Color system**: Primary, secondary, neutral, semantic (error, success, warning)39- **Typography scale**: Display, heading, body, caption with defined sizes and weights40- **Spacing system**: Consistent scale (4px base: 4, 8, 12, 16, 24, 32, 48, 64)41- **Elevation**: Shadow/border hierarchy for depth42- **Border radius**: Consistent rounding tokens4344### 2. Component Library45Map wireframe elements to production components:4647| Wireframe Element | Hi-Fi Component | States Required |48|---|---|---|49| Box with label | Card | default, hover, loading, empty |50| Rectangle button | Button | default, hover, active, disabled, loading |51| Text line | Input | empty, filled, focused, error, disabled |52| Dropdown indicator | Select/Combobox | closed, open, selected, error |53| X-box image | Image with loading | loading, loaded, error, placeholder |5455### 3. Interaction States56Every interactive element needs these states documented:5758```59Default → Hover → Active/Pressed → Focused60 → Disabled61 → Loading62 → Error63 → Success64```6566### 4. Content Strategy67- Use real or realistic content (never Lorem Ipsum in hi-fi)68- Test with edge cases: very long names, empty states, single items, hundreds of items69- Include error messages, empty states, and loading states as screens7071## Building Hi-Fi Prototypes in Code7273### Design Token Setup74```css75:root {76 /* Color tokens */77 --color-primary: #1a1a2e;78 --color-accent: #e94560;79 --color-surface: #ffffff;80 --color-muted: #f8f9fa;81 --color-border: #e2e8f0;82 --color-text: #1a1a2e;83 --color-text-muted: #64748b;8485 /* Typography */86 --font-display: 'Playfair Display', serif;87 --font-body: 'Inter', sans-serif;8889 /* Spacing */90 --space-1: 0.25rem;91 --space-2: 0.5rem;92 --space-3: 0.75rem;93 --space-4: 1rem;94 --space-6: 1.5rem;95 --space-8: 2rem;96 --space-12: 3rem;97 --space-16: 4rem;9899 /* Transitions */100 --transition-fast: 150ms ease;101 --transition-normal: 250ms ease;102 --transition-slow: 400ms ease;103}104```105106### Component Pattern with States107```tsx108interface ButtonProps {109 variant: 'primary' | 'secondary' | 'ghost';110 size: 'sm' | 'md' | 'lg';111 loading?: boolean;112 disabled?: boolean;113 children: React.ReactNode;114 onClick?: () => void;115}116117function PrototypeButton({ variant, size, loading, disabled, children, onClick }: ButtonProps) {118 return (119 <button120 className={cn(121 'inline-flex items-center justify-center rounded-md font-medium transition-colors',122 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2',123 variants[variant],124 sizes[size],125 (loading || disabled) && 'opacity-50 pointer-events-none'126 )}127 disabled={disabled || loading}128 onClick={onClick}129 >130 {loading && <Spinner className="mr-2 h-4 w-4 animate-spin" />}131 {children}132 </button>133 );134}135```136137### Screen Documentation Pattern138```tsx139/**140 * Screen: Event Detail141 * Flow: Dashboard > Events > Event Detail142 * States: loading, populated, empty-sections, error143 * Breakpoints: mobile (375), tablet (768), desktop (1280)144 * Interactions:145 * - Tab navigation between sections146 * - Inline editing of event details147 * - Image gallery with lightbox148 * - Guest list filtering and search149 */150```151152## Testing with Hi-Fi Prototypes153154### What Hi-Fi Testing Reveals155- Visual design effectiveness and brand alignment156- Micro-interaction clarity and delight157- Content readability and scannability158- Component usability in realistic context159- Responsive behavior across breakpoints160- Accessibility issues (color contrast, focus states, screen reader flow)161162### Testing Checklist1631. **Task completion**: Can users complete key tasks without help?1642. **Visual hierarchy**: Do users notice the right things first?1653. **Error recovery**: Can users recover from mistakes?1664. **Edge cases**: How do screens handle empty, overflow, or error states?1675. **Consistency**: Do similar patterns behave the same way?1686. **Performance perception**: Do loading states feel appropriate?169170### Usability Metrics to Track171- Task success rate172- Time on task173- Error rate per task174- System Usability Scale (SUS) score175- First-click accuracy176177## Design Handoff Specifications178179When the prototype is validated, document for developers:180181### Per-Screen Spec182- Layout grid and spacing measurements183- Component variants used and their props184- Responsive breakpoint behavior185- Animation/transition specifications (duration, easing, trigger)186- Data dependencies and API mapping187188### Per-Component Spec189- All visual states with screenshots190- Interaction behavior description191- Accessibility requirements (ARIA roles, keyboard nav)192- Content constraints (min/max length, required fields)193194## Fidelity Progression Summary195196| Aspect | Lo-Fi | Hi-Fi |197|---|---|---|198| Visual detail | Grayscale, rough | Full color, polished |199| Content | Labels, short text | Real/realistic content |200| Interactions | Click-through only | Micro-interactions, animations |201| States | Happy path | All states (error, loading, empty) |202| Responsiveness | Single breakpoint | All target breakpoints |203| Testing focus | Structure, flow | Usability, visual, interaction |204| Iteration speed | Minutes | Hours |205| Best for | Exploration | Validation, handoff |206207## References208209### references/210- `interaction-states.md` - Complete guide to documenting interaction states211- `handoff-checklist.md` - Developer handoff specification checklist212- `testing-metrics.md` - Usability metrics and measurement guide213214### Resources215- Remove placeholder files in `scripts/` and `assets/` if not needed