Design-to-Code Review Checklist
What to check when AI generates code from your designs. Covers tokens, accessibility, responsiveness, and common AI mistakes.
What This Is
A checklist for reviewing AI-generated code from your designs. Whether you used Lovable, Cursor, Claude Code, or any vibe coding tool, run through this before shipping.
Token Usage
- No hardcoded hex colors (all colors reference tokens or CSS custom properties)
- No hardcoded spacing values (all spacing uses the spacing scale)
- No hardcoded font sizes (all typography uses the type scale)
- No hardcoded border radius (uses radius tokens)
- No hardcoded shadows (uses shadow tokens)
- Semantic tokens used, not primitives (e.g.,
color.bg.primarynotblue-500)
Component Accuracy
- Correct component used for the context (Dialog vs Sheet, AlertBanner vs Toast)
- All variants present (not just the default state)
- States implemented: hover, active, disabled, focus, error, loading
- Component nesting matches the design (correct parent-child relationships)
- Props match the design spec (correct labels, icons, sizes)
Accessibility
- Color contrast meets WCAG AA (4.5:1 text, 3:1 UI elements)
- Focus indicators visible on all interactive elements
- Keyboard navigation works (Tab, Shift+Tab, Enter, Escape, Arrow keys)
- ARIA attributes present and correct (labels, roles, states)
- Screen reader tested (headings, landmarks, live regions)
- Touch targets minimum 44x44px on mobile
- Alt text on all images (or
alt=""for decorative) - Form inputs paired with visible labels
Responsiveness
- Layout works on mobile (320px+)
- Layout works on tablet (768px+)
- Layout works on desktop (1024px+)
- No horizontal scroll at any breakpoint
- Text readable without zooming on mobile
- Touch-friendly spacing between interactive elements on mobile
Common AI Mistakes
These are the errors AI makes most often. Check specifically for:
- Invented tokens: AI creates tokens that don’t exist in your system
- Wrong component: Uses a Sheet when the design shows a Dialog
- Missing states: Only builds the default/happy path
- Hardcoded strings: Text that should come from props or i18n
- Z-index chaos: Random z-index values instead of a managed scale
- Inline styles: Styles that should use utility classes or CSS custom properties
- Missing error states: Forms without validation feedback
- Broken dark mode: Colors that look wrong when theme switches
- Pixel-perfect trap: Exact pixel values instead of responsive units
Before Merging
- Tested in light mode and dark mode
- Tested with keyboard only (no mouse)
- Tested at 200% browser zoom
- No console errors or warnings
- Code follows project naming conventions
- No unnecessary dependencies added
Try with Prompts
Ready-to-use prompts related to this guide
Review a component or page for WCAG 2.1 compliance, covering contrast, keyboard navigation, screen readers, and motion.
A prompt that analyzes your design token JSON and identifies issues like missing semantic layers, inconsistent naming, and accessibility gaps.
Map primitive color values to semantic design tokens with clear intent, usage rules, and accessibility notes.