Files
tommygeoco_ui-audit/references/11-checklist-fidelity.md

270 lines
7.3 KiB
Markdown

# Checklist: Improving Fidelity
Systematic checks for completing interface designs beyond the happy path.
---
## Component States
Every interactive component needs these states defined:
### Core States
**Default** — Resting state, no interaction
**Hover** — Cursor over element (desktop)
**Active/Pressed** — During click/tap
**Focus** — Keyboard navigation highlight
**Disabled** — Not currently interactive
**Loading** — Processing/fetching
**Error** — Invalid state
**Success** — Action completed
### Additional States by Component Type
**Buttons:**
☐ Primary, secondary, tertiary variants
☐ Icon-only versions
☐ With/without icons
☐ Size variants (small, medium, large)
**Inputs:**
☐ Empty, filled, placeholder
☐ Valid, invalid, warning
☐ With helper text, error message
☐ Required indicator
☐ Read-only, disabled
**Checkboxes/Radios:**
☐ Unchecked, checked, indeterminate
☐ Disabled states for each
**Toggles:**
☐ On, off, disabled
☐ With labels, without labels
**Links:**
☐ Default, visited, hover, active, focus
---
## Primary Interactions
Main actions users take with the interface.
### Click/Tap Interactions
**Touch targets** — Minimum 44x44px (mobile), 32x32px (desktop)
**Hit areas** — Larger than visual element when needed
**Feedback** — Immediate visual response to tap
**Double-click/tap** — Behavior defined or prevented
### Form Submissions
**Submit button states** — Enabled only when valid
**In-progress feedback** — Loading indicator
**Success confirmation** — Clear completion message
**Error handling** — What happens when it fails?
**Re-submission** — Can users retry?
### Selection Interactions
**Single selection** — Radio buttons, dropdowns
**Multi-selection** — Checkboxes, multi-select
**Range selection** — Shift-click behavior
**Select all/none** — Bulk selection
---
## Secondary Interactions
Supporting interactions beyond primary actions.
### Hover Interactions (Desktop)
**Tooltips** — Delay before showing (300-500ms)
**Preview cards** — Information on hover
**Menu reveals** — Dropdown on hover vs. click
**State changes** — Visual feedback on hover
### Long-Press (Mobile)
**Context menus** — What actions appear?
**Drag initiation** — Does long-press start drag?
**Haptic feedback** — Vibration on trigger?
### Keyboard Interactions
**Tab order** — Logical focus sequence
**Enter/Space** — Activate focused element
**Escape** — Close modals, cancel actions
**Arrow keys** — Navigate within components
**Shortcuts** — Power user key combinations
### Gestures (Mobile/Touch)
**Swipe** — Horizontal/vertical actions
**Pinch/zoom** — Image viewing, maps
**Pull-to-refresh** — List refresh
**Drag and drop** — Reordering
---
## Content Scalability
Designs must handle variable content.
### Empty States
**First-time user** — No data yet, clear CTA to start
**No results** — Search/filter with no matches
**Deleted content** — After removing items
**Error state** — Failed to load
**Empty state must include:**
- Explanation of why empty
- What user can do (CTA)
- Visual to reduce starkness
### Minimal Content
**One item in list** — Does layout still work?
**Short text** — Single word titles, descriptions
**Missing optional fields** — Graceful absence
### Maximum Content
**Long text** — Truncation with ellipsis, tooltips
**Many items** — Pagination, infinite scroll, virtualization
**Long words** — Word-break behavior
**Large images** — Aspect ratio handling
### Edge Cases
**Special characters** — Unicode, emoji, RTL text
**Numbers** — Negative, decimals, large numbers
**Dates** — Different formats, timezones
**Names** — Mononyms, very long names, special characters
---
## System Feedback
How the interface communicates state to users.
### Loading States
**Initial load** — Skeleton screens, spinners
**Action processing** — Button loading state
**Background loading** — Subtle indicators
**Partial loading** — Progressive content reveal
**Rules:**
- < 100ms: No indicator needed
- 100ms-1s: Simple spinner
- 1s+: Progress indicator or skeleton
- 10s+: Background processing with notification
### Success Feedback
**Inline confirmation** — Check marks, color changes
**Toast notifications** — Non-blocking success messages
**Page transitions** — Navigate to success state
**Celebrations** — Milestone achievements
### Error Feedback
**Inline errors** — Field-level validation
**Summary errors** — Form-level error list
**System errors** — Server/network failures
**Recovery guidance** — What can user do?
### Progress Indicators
**Determinate** — Known duration (progress bar with %)
**Indeterminate** — Unknown duration (spinner)
**Steps** — Multi-step process indicator
**Upload/download** — File transfer progress
---
## User Input
Handling all forms of user data entry.
### Text Input
**Character limits** — Max length with counter
**Input masks** — Phone, credit card, date formats
**Autocomplete** — Suggestions while typing
**Auto-capitalization** — Appropriate for input type
**Spell check** — Enabled/disabled appropriately
### Validation
**Real-time validation** — Validate as user types
**On-blur validation** — Validate when leaving field
**On-submit validation** — Final check before submit
**Error message placement** — Below field, inline
**Error message content** — Clear, actionable
### Input Types
**Text** — Default, email, password, URL, search
**Number** — With constraints (min, max, step)
**Date/time** — Native or custom pickers
**File upload** — Drag-drop, click to browse
**Rich text** — Formatting toolbar
### Accessibility
**Labels** — Every input has a label
**Placeholders** — Not used as labels
**Error announcements** — Screen reader accessible
**Required fields** — Clearly indicated
---
## Navigation
Moving through the interface.
### Global Navigation
**Current location** — Where am I?
**Available destinations** — Where can I go?
**Path taken** — How did I get here? (breadcrumbs)
**Return path** — How do I go back?
### State Preservation
**Browser back** — Does it work as expected?
**Deep linking** — Can users share URLs to specific states?
**Form state** — Is data preserved on navigation?
**Scroll position** — Preserved or reset appropriately?
### Transitions
**Page transitions** — Consistent animation pattern
**Loading transitions** — Skeleton to content
**Modal/drawer open/close** — Smooth animations
**List additions/removals** — Animated changes
---
## Quick Fidelity Audit
Use this for rapid checks:
| Category | ✓ | Notes |
|----------|---|-------|
| All component states defined | | |
| Primary interactions specified | | |
| Secondary interactions specified | | |
| Empty states designed | | |
| Max content handling defined | | |
| Loading states defined | | |
| Success/error feedback defined | | |
| All inputs validated | | |
| Navigation complete | | |
| Keyboard accessible | | |