Checklists & Quick References

Checklists prevent the most common UX mistakes from shipping. Use them at each project phase, not as a replacement for design thinking, but as a safety net to catch what you missed.

Pre-Design Checklist

Complete before opening Figma or writing any code:

CheckDone?Notes
User research conductedMinimum: 5 user interviews or survey data
User personas definedBased on research, not assumptions. 2-4 personas.
User journeys mappedKey flows from entry to goal completion
Jobs-to-be-done identified"When [situation], I want to [action], so I can [outcome]"
Competitor analysis complete3-5 competitors analyzed for patterns and gaps
Technical constraints understoodAPI limits, browser support, device requirements
Content strategy definedWhat content exists? What needs to be created? Who owns it?
Accessibility requirements definedWCAG AA minimum. Any additional legal requirements?
Success metrics establishedHow will you measure if this works? (Task success rate, conversion, NPS)
Stakeholder alignmentAll stakeholders agree on goals, scope, and timeline
Design system/tokens availableIf not, create basic tokens before designing components
Information architecture validatedCard sort or tree test completed for new navigation

Pre-Design: Questions to Answer

Before designing, make sure you can answer:

QuestionIf You Can't Answer
Who is this for?Do more user research
What problem does this solve?Validate the problem exists
How will we know it worked?Define metrics before building
What existing patterns solve this?Research conventions and competitors
What are the constraints?Talk to engineering and stakeholders

Design Review Checklist

Use for every design before handoff to development:

Visual Design

CheckCriteriaPriority
☐ Visual hierarchyClear #1 element on every screen. Squint test passes.Critical
☐ Consistent with design systemUses established tokens, components, and patternsCritical
☐ Adequate contrastAll text meets WCAG AA (4.5:1 for body, 3:1 for large)Critical
☐ Appropriate use of color60-30-10 rule followed. Color not sole indicator of meaning.High
☐ Consistent spacing8px grid followed. Space within groups < space between groups.High
☐ Readable typographyBody ≥ 16px, line-height 1.5-1.6, line length ≤ 75chHigh
☐ AlignmentEvery element aligns with at least one other elementMedium
☐ BalanceVisual weight evenly distributedMedium

Interaction Design

CheckCriteriaPriority
☐ Clear affordancesButtons look clickable. Links look like links.Critical
☐ Feedback for all actionsEvery click/tap produces visible response within 100msCritical
☐ Error states designedEvery input, form, and action has an error stateCritical
☐ Loading states designedSkeleton screens or spinners for async operationsHigh
☐ Empty states designedHelpful message + CTA when there's no dataHigh
☐ Success states designedConfirmation when actions completeHigh
☐ Animations purposefulEach animation serves a purpose. Duration ≤ 300ms for functional.Medium
☐ Reduced motion supportedAnimations disabled/reduced when prefers-reduced-motion is setHigh

Usability

CheckCriteriaPriority
☐ Clear navigationUser always knows where they are and how to get backCritical
☐ Logical information architectureContent organized by user mental model, not internal structureCritical
☐ Minimal cognitive loadOne primary action per screen. Progressive disclosure used.High
☐ Progressive disclosureComplex features revealed gradually, not all at onceHigh
☐ Forms optimizedSingle column, labels above, inline validation, autocompleteHigh
☐ Error preventionConstraints, smart defaults, and confirmations prevent mistakesHigh
☐ Undo/back availableUsers can reverse actions and navigate backwardHigh
☐ Search availableFor content-heavy products with 10+ pagesMedium

Accessibility

CheckCriteriaPriority
☐ Keyboard navigableAll functionality reachable via Tab, Enter, Space, Arrow keysCritical
☐ Screen reader friendlyProper headings, ARIA labels, semantic HTML plannedCritical
☐ Color not sole indicatorIcons, text, or patterns accompany color meaningCritical
☐ Text scalableContent works at 200% zoom without horizontal scrollHigh
☐ Touch targets adequate≥ 44×44px for primary, ≥ 24×24px minimumHigh
☐ Focus indicators visible2px+ focus ring on all interactive elementsHigh
☐ Alt text plannedAll meaningful images have alt text descriptionsHigh
☐ Focus managementModals trap focus. Errors receive focus on submit.High
☐ Skip link"Skip to main content" as first Tab stopMedium

Responsive Design

CheckCriteriaPriority
☐ Mobile-first approachDesigned for small screens first, enhanced for largerHigh
☐ Tested at all breakpoints375px, 768px, 1024px, 1280px minimumCritical
☐ Touch-friendly on mobileBottom tab bar or easy-reach navigation. No hover-dependent interactions.High
☐ Content prioritized for mobileMost important content first, secondary content hidden or deprioritizedHigh
☐ Images responsivesrcset and sizes attributes plannedMedium
☐ Tables handledData tables have mobile strategy (scroll, stack, or priority columns)Medium
☐ Safe areasNotch and home indicator padding accounted forMedium

Content

CheckCriteriaPriority
☐ Real content used in designsNo "Lorem ipsum" in final designsHigh
☐ Edge cases handledVery long text, empty text, special charactersHigh
☐ Labels are descriptive"Save Changes" not "Submit". "Delete Account" not "Remove".High
☐ Error messages are helpfulWhat's wrong + how to fix it + example if neededCritical
☐ Microcopy is humanPlain language, no jargon, conversational where appropriateMedium
☐ Truncation handledLong titles, names, and descriptions truncate gracefullyMedium

Component Checklist

Every UI component should have all of these documented before being added to the design system:

States

StateRequired?Design Notes
☐ DefaultAlwaysBase appearance
☐ HoverAlways (desktop)Slight visual change, cursor: pointer
☐ FocusAlwaysVisible focus ring, 2px+
☐ Active/PressedAlwaysDarker shade, slight scale if appropriate
☐ DisabledAlways50% opacity, cursor: not-allowed
☐ LoadingIf asyncSpinner, disabled interaction
☐ ErrorIf data inputRed border, error icon, inline message
☐ SuccessIf data inputGreen check, success message
☐ SelectedIf selectableHighlighted background, check indicator
☐ EmptyIf data displayHelpful message + CTA
☐ DraggingIf draggableElevated, ghost outline at origin

Variants

CheckQuestion
☐ SizesDoes it need small, medium, large variants?
☐ Visual weightDoes it need primary, secondary, tertiary, destructive variants?
☐ With/without iconDoes it work with a leading/trailing icon?
☐ Full-widthDoes it need a full-width option for mobile?
☐ Responsive behaviorHow does it adapt at different breakpoints?

Documentation

CheckContent
☐ DescriptionOne sentence explaining what this component is
☐ When to useSpecific scenarios for using this component
☐ When NOT to useWhat to use instead in wrong-fit scenarios
☐ Props/APIAll configuration options with types and defaults
☐ AccessibilityARIA attributes, keyboard behavior, screen reader behavior
☐ Do/Don't examplesVisual examples of correct and incorrect usage
☐ Code exampleCopy-paste implementation code

Launch Checklist

Before going live with any new feature or product:

Functionality

CheckTest MethodPriority
☐ All user flows work end-to-endManual walkthrough of every flowCritical
☐ Edge cases handledTest with long text, empty data, special charactersCritical
☐ Error handling worksTrigger every possible error (network, validation, auth)Critical
☐ Data persistence worksRefresh page, close browser, return. Data should persistCritical
☐ Loading states show correctlyThrottle network in DevTools and verifyHigh

Cross-Platform

CheckTest MethodPriority
☐ Chrome testedLatest versionCritical
☐ Firefox testedLatest versionCritical
☐ Safari testedLatest version (both Mac and iOS)Critical
☐ Edge testedLatest versionHigh
☐ Mobile Safari testedOn actual iPhoneCritical
☐ Mobile Chrome testedOn actual Android deviceCritical
☐ Tablet testediPad or equivalentHigh

Performance

CheckTargetTool
☐ LCP < 2.5s< 2.5 secondsLighthouse, PageSpeed Insights
☐ INP < 200ms< 200 millisecondsWeb Vitals extension, CrUX
☐ CLS < 0.1< 0.1Lighthouse
☐ Total page weight < 3MB< 3 MB (< 1.5 MB ideal)DevTools Network tab
☐ Images optimizedWebP/AVIF, responsive sizes, lazy loadingManual audit
☐ No render-blocking resourcesCritical CSS inlined, JS deferredLighthouse

Accessibility

CheckTest MethodPriority
☐ Automated audit passesaxe DevTools, Lighthouse ≥ 90Critical
☐ Keyboard navigation worksTab through entire page without mouseCritical
☐ Screen reader testNavigate with VoiceOver or NVDACritical
☐ Zoom to 200% worksBrowser zoom, no horizontal scrollHigh
☐ Color contrast passesWebAIM checker on all text/background combosCritical
☐ Reduced motion testedEnable prefers-reduced-motion, verifyHigh

Monitoring

CheckToolPriority
☐ Error tracking implementedSentry, Datadog, LogRocketCritical
☐ Analytics tracking implementedGA4, Mixpanel, PostHog, AmplitudeHigh
☐ Core Web Vitals monitoredweb-vitals library, CrUXHigh
☐ User feedback mechanism in placeIn-app feedback widget, support channelHigh
☐ Alerting configuredPagerDuty, OpsGenie, or equivalent for critical errorsHigh

Post-Launch Checklist

Within 1-2 weeks after launch:

CheckWhat to Look At
☐ Review error logsAny new errors or error spikes?
☐ Check Core Web VitalsHas performance changed for real users?
☐ Review user feedbackSupport tickets, feedback widget, app store reviews
☐ Analyze key metricsDid conversion, task success, or engagement change?
☐ Conduct usability testWatch 3-5 users interact with the new feature
☐ Identify top issuesPrioritize fixes for the next sprint
☐ Document learningsWhat worked? What would you do differently?

Quick Reference Cards

Spacing Scale (8pt Grid)

Token    Pixels   Usage
─────────────────────────────────────────────
space-1    4px   Icon internal padding, micro gaps
space-2    8px   Tight gaps, inline element spacing
space-3   12px   Input padding, icon-to-label gap
space-4   16px   Default element spacing
space-5   20px   Between form fields
space-6   24px   Card content spacing
space-8   32px   Between content groups
space-12  48px   Section padding (mobile)
space-16  64px   Section padding (desktop)
space-24  96px   Major page sections

Typography Scale

Size    Usage                Line Height
────────────────────────────────────────────
12px    Legal, timestamps    1.4-1.5
14px    Captions, labels     1.4-1.5
16px    Body text            1.5-1.6
18px    Large body / H4      1.4-1.5
20px    H3 / Subheading      1.3
24px    H2                   1.25
32px    H1                   1.2
48px    Display              1.1

Touch Targets

Size       Standard              Usage
────────────────────────────────────────────
24×24px    WCAG 2.2 minimum     Absolute minimum for any target
44×44px    Apple HIG / WCAG rec  Standard for all touch targets
48×48px    Google Material       Optimal, generous sizing
8px        Between targets       Minimum spacing between targets

Contrast Ratios

Ratio    Requirement                             Check
────────────────────────────────────────────────────────
3:1      Large text (18pt+), UI components       #949494 on #FFF
4.5:1    Normal text, body text (AA)              #767676 on #FFF
7:1      Normal text, enhanced (AAA)              #595959 on #FFF

Animation Timing

Duration    Usage                        Easing
────────────────────────────────────────────────────────
100ms       Micro (hover, color change)  ease-out
200ms       Standard (dropdown, toggle)  ease-out
300ms       Medium (modal, sidebar)      ease-in-out
400ms       Large (page transition)      ease-in-out
500ms max   Complex (onboarding)         ease-in-out

Breakpoints

Width     Device                  Layout Changes
────────────────────────────────────────────────────────
< 576px   Phones (portrait)       Single column, full-width
576px     Phones (landscape)      Minor adjustments
768px     Tablets (portrait)      Two columns possible
1024px    Laptops / tablets       Full multi-column layouts
1280px    Desktops                Max-width container applies
1536px    Large monitors          Extra whitespace, wider sidebar

Common Input Types

Data              HTML                       Autocomplete
────────────────────────────────────────────────────────
Email             type="email"               autocomplete="email"
Phone             type="tel"                 autocomplete="tel"
Card number       inputmode="numeric"        autocomplete="cc-number"
Card expiry       inputmode="numeric"        autocomplete="cc-exp"
Card CVC          inputmode="numeric"        autocomplete="cc-csc"
One-time code     inputmode="numeric"        autocomplete="one-time-code"
Amount/price      inputmode="decimal"        —
URL               type="url"                 autocomplete="url"
Search            type="search"              —
Date              type="date"                —
Password (new)    type="password"            autocomplete="new-password"
Password (login)  type="password"            autocomplete="current-password"

Severity Classification

Level      Definition                              Action
────────────────────────────────────────────────────────────
Critical   Prevents task completion                 Fix before launch
Major      Significant difficulty or frustration    Fix next sprint
Minor      Slight hesitation, user recovers         Fix when convenient
Cosmetic   Noticed but no functional impact         Backlog

Response Time Thresholds

Duration     Perception          Feedback Needed
────────────────────────────────────────────────────────
< 100ms      Instant             None
100-300ms    Slight delay        Button state change
300ms-1s     Noticeable          Spinner or skeleton
1-3s         Waiting             Progress indicator
3-10s        Frustrating         Progress bar + estimate
> 10s        Abandonment risk    Background processing

Using These Checklists

Don't try to use all checklists on every project. Pick the relevant ones:

Project TypeChecklists to Use
New featurePre-Design → Design Review → Component → Launch
Bug fixDesign Review (relevant sections) → Launch (testing sections)
Design system componentComponent → Accessibility sections
Full product launchAll checklists
Quick iterationDesign Review → Launch (testing sections)

Process tip: Print the Design Review checklist and physically check items during design reviews. The act of checking forces attention to each item.