name: design-review
description: 7-phase frontend design review with accessibility (WCAG 2.1 AA), responsive testing, visual polish. Use for PR reviews, UI audits, or encountering contrast issues, broken layouts, accessibility violations, inconsistent spacing, missing focus states.
Keywords: design review, UI audit, frontend review, accessibility audit, WCAG compliance,
responsive design, visual QA, UX review, component review, PR design check, layout issues,
accessibility violations, contrast problems, broken responsive, interaction bugs, keyboard
navigation, focus states, design system compliance, visual consistency, user experience
license: MIT
allowed-tools:
- Read
- Grep
- Glob
- Bash
Design Review Skill
Status: Production Ready ✅
Last Updated: 2025-11-20
Dependencies: Playwright MCP or Chrome DevTools
Methodology: 7-phase systematic review (inspired by Stripe, Airbnb, Linear)
Quick Start
1. Prerequisites Check
Before starting a design review, verify browser automation tools are available:
Option A: Playwright MCP (recommended for interactive testing)
- See the
playwright-testing skill for Playwright setup
- Provides browser automation, screenshots, viewport testing, console monitoring
Option B: Chrome DevTools CLI (alternative for screenshots and performance)
- See the
chrome-devtools skill for Puppeteer CLI setup
- Provides screenshot capture, performance analysis, network monitoring
For complete browser tools reference, see references/browser-tools-reference.md.
2. Understand the Review Scope
For PR reviews:
# Analyze git diff to understand scope
git diff --name-only origin/main...HEAD
# Read PR description for context
For general UI reviews:
Simply provide the preview URL and component/page description.
3. Execute 7-Phase Review
Follow the systematic checklist below. Each phase has specific objectives and testing procedures.
The 7-Phase Review Methodology
Phase 0: Preparation
Objective: Understand context and set up testing environment.
Steps:
Read PR description or review request to understand:
- Motivation for changes
- Scope of implementation
- Testing notes from developer
- Expected behavior
Analyze code diff (if PR available):
git diff origin/main...HEAD
Identify modified files (components, styles, tests)
Set up live preview environment:
- Navigate to preview URL using browser tools
- Set initial viewport: 1440x900 (desktop)
- Take baseline screenshot for reference
Review design principles (if project has custom guidelines):
- Check project CLAUDE.md for design standards
- Review component library documentation
- Note design system tokens and patterns
When to skip: For quick component reviews without git context.
Phase 1: Interaction & User Flow
Objective: Verify the interactive experience works as expected.
For complete interaction guide: Load references/interaction-patterns.md when testing interactive states, forms, buttons, navigation flows, micro-interactions, modals, or keyboard navigation.
Quick checklist:
- Test 5 interactive states (default, hover, active, focus, disabled) for all elements
- Execute primary user flow (form submission, navigation, key actions)
- Verify destructive actions have confirmation dialogs
- Assess perceived performance (loading states, optimistic UI)
Triage: [Blocker] Critical flow broken | [High] Poor UX/missing focus states | [Medium] Missing polish | [Nitpick] Minor timing issues
Phase 2: Responsiveness Testing
Objective: Ensure design works across all viewport sizes.
For complete responsive guide: Load references/responsive-testing.md when testing viewports, touch targets, mobile navigation, image responsiveness, or debugging horizontal scrolling.
Test 3 viewports:
- Desktop (1440px): Optimal layout, full feature set
- Tablet (768px): Graceful adaptation, 44×44px touch targets, collapsing nav
- Mobile (375px): No horizontal scroll, 16px min text, mobile-friendly navigation
Quick testing:
mcp__playwright__browser_resize(width: 1440, height: 900) # Desktop
mcp__playwright__browser_resize(width: 768, height: 1024) # Tablet
mcp__playwright__browser_resize(width: 375, height: 667) # Mobile
mcp__playwright__browser_take_screenshot(fullPage: true)
Triage: [Blocker] Layout broken | [High] Horizontal scroll/overlapping | [Medium] Suboptimal spacing | [Nitpick] Minor inconsistencies
Phase 3: Visual Polish
Objective: Assess aesthetic quality and visual consistency.
For design principles guide: Load references/visual-polish.md when evaluating typography hierarchy, spacing/layout, color palette, alignment/grid, visual hierarchy, image quality, or S-Tier design standards.
Quick evaluation (5 criteria):
- Layout & spacing: Grid alignment, 8px scale, design tokens (no magic numbers like 17px)
- Typography: Clear H1>H2>H3 hierarchy, 1.5-1.7 line height, limited font weights
- Color: Design system tokens, semantic usage (red=error, green=success), consistent brand
- Images: High-res (no pixelation), correct aspect ratios, optimized sizes, alt text
- Visual hierarchy: Primary actions stand out, eye flows naturally, strategic whitespace
Triage: [Blocker] Illegible text/broken images | [High] Obvious inconsistencies | [Medium] Spacing/alignment issues | [Nitpick] Aesthetic preferences
Phase 4: Accessibility (WCAG 2.1 AA)
Objective: Ensure inclusive design for all users.
For complete WCAG 2.1 AA checklist: Load references/accessibility-wcag.md when verifying WCAG compliance, testing keyboard navigation, checking color contrast, auditing semantic HTML, or using accessibility testing tools (Lighthouse, axe, WAVE).
Quick WCAG tests (4 principles):
- Perceivable: Alt text on images, color contrast (4.5:1 text, 3:1 UI components), semantic HTML
- Operable: Keyboard navigation (Tab order logical, visible focus on ALL interactive elements, Enter/Space activation, Escape closes modals, no keyboard traps)
- Understandable: Clear labels, helpful error messages, consistent navigation/terminology
- Robust: Valid HTML, proper ARIA attributes (roles, states, properties)
Critical tests:
- Tab through entire page (verify focus states visible, logical order, no traps)
- Test with WebAIM Contrast Checker (all text/UI ≥4.5:1 or 3:1)
- Verify form labels associated with inputs (
<label for="id"> or aria-label)
- Check semantic HTML (h1→h2→h3 no skipping,
<button> not <div onClick>)
Triage: [Blocker] No keyboard access to core features | [High] WCAG AA violations | [Medium] Semantic HTML issues | [Nitpick] Enhanced accessibility
Phase 5: Robustness Testing
Objective: Verify handling of edge cases and error conditions.
Test scenarios:
5.1 Form Validation
- Submit form with empty required fields
- Enter invalid data (wrong email format, out-of-range numbers)
- Test field-level validation (real-time feedback)
- Verify clear error messages with guidance
- Test successful submission flow (confirmation message)
5.2 Content Overflow
- Long text strings: Very long names, emails, titles
- Many items: Large lists, tables with hundreds of rows
- Deeply nested content: Comments with many replies
- Empty states: No data to display (show helpful message)
Common overflow issues:
- Text breaking layout (overflowing containers)
- Truncation without ellipsis or tooltip
- Performance issues with large lists
- Missing empty state designs
5.3 Loading & Error States
- Loading states: Skeleton screens, spinners, progress indicators
- Error messages: Clear, actionable error descriptions
- Retry mechanisms: Allow user to retry failed operations
- Timeout handling: Graceful handling of slow/failed requests
- Optimistic updates: Immediate feedback, rollback on failure
Test procedure:
# Simulate slow network
# Check browser DevTools Network tab → throttling
# Force error states
# Test with invalid API responses or network failures
Common problems:
- No loading indicators (appears frozen)
- Vague error messages ("Error occurred")
- No retry mechanism after failures
- Layout jumps when content loads
Triage priorities:
- [Blocker] Crashes or complete failures under edge cases
- [High] Poor error handling or confusing states
- [Medium] Missing edge case handling or minor issues
- [Nitpick] Loading state aesthetics or minor polish
Phase 6: Code Health
Objective: Ensure maintainable, consistent implementation.
For code patterns guide: Load references/code-health-patterns.md when evaluating component reuse (DRY principle), design token usage (colors, spacing, typography), pattern consistency (naming, file structure, API patterns), or identifying red flags (duplication, magic numbers, broken abstractions).
Quick review (3 criteria):
- Component reuse: No copy-paste, shared components extracted, composition over duplication
- Design tokens: CSS variables for colors/spacing/typography (no magic numbers like
margin: 17px), border radii consistent
- Pattern consistency: Follows codebase patterns, naming conventions match, file structure organized
Triage: [High] Introduces tech debt/breaks patterns | [Medium] Missed reuse opportunities | [Nitpick] Code style preferences
Phase 7: Content & Console
Objective: Verify polished details and technical correctness.
7.1 Content Review
Check for:
- Grammar and spelling: No typos or grammatical errors
- Clarity: Labels and instructions are unambiguous
- Tone consistency: Matches brand voice (formal/casual)
- Placeholder text: Replaced with real content (no "Lorem ipsum")
- Microcopy quality: Helpful error messages, button labels, tooltips
Common content issues:
- Typos in UI text
- Placeholder text left in production
- Vague labels ("Submit" vs "Save Changes")
- Inconsistent terminology
- Unhelpful error messages ("Error" vs "Email format invalid")
7.2 Console Check
Test procedure:
# Using Playwright MCP
mcp__playwright__browser_console_messages()
# Using Chrome DevTools
# Open DevTools → Console tab
Look for:
- JavaScript errors: Uncaught exceptions, null references
- React warnings: Key prop warnings, lifecycle issues
- Network failures: Failed API requests, 404s
- Deprecation warnings: Old API usage warnings
- Performance warnings: Slow renders, memory leaks
Triage priorities:
- [Blocker] Console errors breaking functionality
- [High] Grammar errors or confusing content in user-facing text
- [Medium] Console warnings or minor content issues
- [Nitpick] Content polish, minor console noise
Communication Principles
1. Problems Over Prescriptions
Describe the problem and its impact, not the solution. Let the developer decide implementation.
❌ Prescriptive (avoid):
"Change the margin to 16px"
✅ Problem-focused (preferred):
"The spacing feels inconsistent with adjacent elements, creating visual clutter that distracts from the primary CTA. The current spacing breaks the established rhythm of the design system."
2. Triage Matrix
Categorize every issue with clear priority:
| Priority |
Criteria |
Action Required |
| [Blocker] |
Critical failures, core functionality broken, critical accessibility violations |
Must fix before merge |
| [High-Priority] |
Significant UX issues, obvious design inconsistencies, WCAG violations |
Should fix before merge |
| [Medium-Priority] |
Improvements, minor inconsistencies, edge case handling |
Consider for follow-up PR |
| [Nitpick] |
Aesthetic preferences, minor polish, subjective opinions |
Optional refinements |
Important: Prefix all nitpicks with "Nit:" to signal low priority.
3. Evidence-Based Feedback
Always provide screenshots for visual issues. Screenshots should:
- Show the problem clearly
- Include relevant context (surrounding elements)
- Indicate what to look at (arrows, highlights if needed)
Example:
### [High-Priority] Poor contrast on disabled button
**Problem:** Disabled button text has insufficient contrast (2.1:1), failing WCAG AA
standard (requires 4.5:1). Users with low vision may not recognize the button as disabled.
**Screenshot:** [Attach screenshot showing disabled button]
**Impact:** Accessibility violation, potential confusion for users with visual impairments.
4. Start with Positives
Always acknowledge what works well before listing issues. This:
- Shows you recognize good work
- Provides balanced feedback
- Maintains positive collaboration
Example:
### Design Review Summary
The new checkout flow shows excellent attention to user experience. The step indicator
is clear and well-designed, error messages are helpful and actionable, and the overall
layout feels spacious and uncluttered. The loading states with skeleton screens are
particularly well-executed. Great work on the form validation feedback!
However, there are a few accessibility and responsiveness issues to address before merge...
Report Structure Template
For complete template: Load assets/review-report-template.md for the full markdown template with all sections and examples.
Essential structure:
## Design Review Summary
[2-3 sentences: positive acknowledgment + overall assessment]
**Review scope:** [PR #, pages, components]
**Viewports tested:** Desktop (1440px), Tablet (768px), Mobile (375px)
**Methodology:** 7-phase comprehensive review
---
### Findings
#### 🚨 Blockers
[Critical issues requiring immediate fix before merge]
- **[Blocker] [Title]**: Problem + Screenshot + Phase
#### ⚠️ High-Priority Issues
[Significant issues to fix before merge]
- **[High] [Title]**: Problem + Screenshot + Phase
#### 📋 Medium-Priority / Suggestions
[Improvements for follow-up PR]
- **[Medium] [Title]**: Problem + Phase
#### ✨ Nitpicks
[Minor aesthetic details - optional]
- **Nit:** [Issue] - [Brief description]
---
### Testing Evidence
**Screenshots:** Desktop (1440px) + Tablet (768px) + Mobile (375px)
**Console output:** [Errors/warnings or "Console clean"]
**Accessibility:** Keyboard nav + Focus states + Color contrast
---
### Next Steps
1. Fix Blockers
2. Address High-Priority issues
3. Consider Medium-Priority items
**Overall assessment:** [Ready to merge after blockers fixed / Needs revisions / Ready to merge!]
When to Load References
Load reference files when working on specific aspects of design review:
accessibility-wcag.md
Load when:
- Standards-based: Verifying WCAG 2.1 AA compliance for production deployment
- Issue-based: Encountering accessibility violations (color contrast, keyboard navigation, semantic HTML, focus states, ARIA attributes)
- Testing-based: Conducting comprehensive accessibility audit with systematic checklist
- Tools-based: Using accessibility testing tools (Lighthouse, axe, WAVE, Pa11y) for automated testing
- Triage-based: Determining severity of accessibility issues (Blocker/High/Medium for WCAG violations)
browser-tools-reference.md
Load when:
- Setup-based: Installing or configuring Playwright MCP or Chrome DevTools CLI for testing
- Command-based: Need specific Playwright commands (navigate, resize viewport, screenshot, click, type, hover, get console output)
- Workflow-based: Implementing common testing workflows (responsive review across 3 viewports, form interaction testing, keyboard navigation testing)
- Selector-based: Struggling with CSS selectors, text selectors, or accessibility selectors for element targeting
- Troubleshooting-based: Playwright MCP not finding elements, Chrome dependencies missing, screenshot capture issues
code-health-patterns.md
Load when:
- Pattern-based: Evaluating component reuse patterns, DRY principle compliance, extracting shared components
- Token-based: Checking design token usage (colors, spacing scale, typography scale, border radii consistency)
- Consistency-based: Reviewing pattern consistency (naming conventions, file structure organization, API patterns, state management)
- Example-based: Need code examples comparing good vs bad patterns (inline styles vs tokens, duplication vs composition)
- Red-flag-based: Identifying code health issues (copy-paste duplication, magic numbers like
17px, inconsistent state management, broken abstractions)
design-principles-s-tier.md
Load when:
- Standards-based: Ensuring S-Tier SaaS dashboard quality (Stripe, Airbnb, Linear, Vercel level polish)
- System-based: Evaluating design system foundation (color palette structure, typography scale, spacing scale, core UI components)
- Module-based: Reviewing specific modules (multimedia moderation interfaces, data tables, configuration panels, dashboards)
- Philosophy-based: Applying core design philosophy (users first, meticulous craft over speed, simplicity over complexity, consistency)
- Architecture-based: Evaluating CSS & styling architecture (design tokens, component patterns, responsive strategies)
interaction-patterns.md
Load when:
- States-based: Testing interactive states (default, hover, active, focus, disabled) for buttons, inputs, links
- Form-based: Testing form interactions, validation patterns, error states, success states, loading states
- Button-based: Evaluating button loading states, destructive action confirmation patterns, primary vs secondary actions
- Flow-based: Testing navigation flows, user journeys, multi-step processes, modal interactions
- Animation-based: Reviewing micro-interactions, animation timing (200-300ms), perceived performance (optimistic UI, skeleton screens)
- Modal-based: Testing modal interactions, keyboard traps, focus management, Escape key behavior
responsive-testing.md
Load when:
- Viewport-based: Testing at specific viewports (desktop 1440px, tablet 768px, mobile 375px) with Playwright MCP
- Touch-based: Verifying touch target sizes meet minimum 44×44px requirement for mobile usability
- Overflow-based: Debugging horizontal scrolling issues or layout overflow problems on mobile
- Mobile-based: Ensuring text readability (16px minimum font size), mobile navigation patterns, responsive images
- Breakpoint-based: Implementing or testing breakpoint strategy (common breakpoints: 640px, 768px, 1024px, 1280px)
- Navigation-based: Testing responsive navigation patterns (hamburger menus, collapsing navigation, mobile drawer menus)
visual-polish.md
Load when:
- Typography-based: Evaluating font hierarchy (H1>H2>H3), font scale standards (16/18/24/32/48/64px), line height (1.5-1.7), readability
- Spacing-based: Checking 8-point grid compliance (8/16/24/32/40/48/64px), consistent spacing scale, component padding/margin
- Color-based: Verifying color palette consistency, semantic color usage (red=error, green=success), design token usage (no hardcoded hex values)
- Alignment-based: Checking grid-based layout, precise alignment (0.5px precision), vertical rhythm, visual balance
- Hierarchy-based: Evaluating visual hierarchy techniques (size contrast, weight contrast, color contrast, position, strategic whitespace)
- Quality-based: Assessing image quality (no pixelation), correct aspect ratios, proper image optimization for web
- Component-based: Reviewing design system components (button styles, form input styles, card components, consistent border radii)
Known Issues Prevention
This skill prevents 8 documented design review issues:
| Issue |
Problem |
Impact |
Prevention |
| #1: Missing Accessibility |
Reviews focus only on visual appearance, ignoring keyboard navigation and screen readers |
WCAG violations shipped to production, excluding users with disabilities |
Phase 4 enforces complete WCAG 2.1 AA checklist with keyboard testing |
| #2: Incomplete Responsive Testing |
Reviewing only at desktop viewport, missing mobile breakage |
Broken mobile layouts, frustrated mobile users |
Phase 2 requires testing at 1440px, 768px, and 375px viewports |
| #3: Vague Feedback |
Comments like "looks off" without screenshots or specifics |
Wasted time, unclear action items, frustrated developers |
Evidence-based feedback principle requires screenshots |
| #4: Prescriptive Solutions |
Dictating implementation ("change margin to 16px") instead of describing UX impact |
Design-dev friction, missed better solutions |
"Problems Over Prescriptions" principle enforced |
| #5: No Triage Priority |
All feedback treated equally, blocking merges on nitpicks |
Slowed delivery, unclear priorities |
Triage matrix (Blocker/High/Medium/Nitpick) required |
| #6: Skipped Edge Cases |
Happy path works, but error states and overflow break layout |
Production bugs with edge cases |
Phase 5 mandates robustness testing |
| #7: Console Errors Ignored |
Visual design passes, but JavaScript errors exist in console |
Runtime failures, poor user experience |
Phase 7 requires console check |
| #8: Inconsistent Methodology |
Ad-hoc reviews miss critical areas depending on reviewer mood |
Incomplete reviews, missed issues |
7-phase checklist ensures comprehensive, repeatable reviews |
Dependencies
Required
Browser automation tools (one of the following):
Playwright MCP (recommended)
- See
playwright-testing skill for installation
- Provides: Browser automation, screenshots, viewport testing, console monitoring
- Best for: Interactive testing, keyboard navigation, form testing
Chrome DevTools CLI
- See
chrome-devtools skill for installation
- Provides: Screenshot capture, performance analysis, network monitoring
- Best for: Visual testing, performance audits
Live preview environment:
- URL accessible for testing
- Represents actual implementation (not mockups)
Optional
- Git/GitHub: For PR context and diff analysis
- Design system docs: For consistency checks against established patterns
- Project CLAUDE.md: For project-specific design guidelines
Installation Guidance
If browser tools are not available, this skill will:
- Detect missing tools
- Link to appropriate skill for installation (
playwright-testing or chrome-devtools)
- Provide fallback guidance for manual testing
Related Skills
- playwright-testing: E2E testing with Playwright, browser automation setup
- chrome-devtools: Browser automation via Puppeteer CLI scripts
- frontend-design: Create new frontend interfaces with design quality (complementary skill)
- tailwind-v4-shadcn: UI framework implementation (designs being reviewed may use this)
- ai-sdk-ui: AI-powered UI components (may be part of reviewed interfaces)
Official Documentation
Production Validation
This skill is based on real design review workflows used at:
- Methodology inspiration: Stripe, Airbnb, Linear (7-phase systematic approach)
- Testing approach: Automated browser testing with Playwright/Puppeteer
- Accessibility standards: WCAG 2.1 AA compliance (industry standard)
Estimated token efficiency:
- Without skill: ~25k tokens (trial-and-error, repeated corrections)
- With skill: ~8k tokens (guided methodology, systematic approach)
- Savings: ~68% with 100% checklist coverage
Questions or issues?
- Check references/accessibility-wcag.md for complete WCAG checklist
- See references/browser-tools-reference.md for Playwright/Chrome DevTools commands
- Review references/visual-polish.md for design principles
- Verify browser tools are installed (see
playwright-testing or chrome-devtools skills)
- Ensure preview URL is live and accessible
1---2name: design-review-33description: 7-phase frontend design review with accessibility (WCAG 2.1 AA), responsive testing, visual polish. Use for PR reviews, UI audits, or encountering contrast issues, broken layouts, accessibility violat4---5
6---
7name: design-review
8description: 7-phase frontend design review with accessibility (WCAG 2.1 AA), responsive testing, visual polish. Use for PR reviews, UI audits, or encountering contrast issues, broken layouts, accessibility violations, inconsistent spacing, missing focus states.
9
10 Keywords: design review, UI audit, frontend review, accessibility audit, WCAG compliance,
11 responsive design, visual QA, UX review, component review, PR design check, layout issues,
12 accessibility violations, contrast problems, broken responsive, interaction bugs, keyboard
13 navigation, focus states, design system compliance, visual consistency, user experience
14license: MIT
15allowed-tools:
16 - Read
17 - Grep
18 - Glob
19 - Bash
20---
21
22# Design Review Skill
23
24**Status**: Production Ready ✅
25**Last Updated**: 2025-11-20
26**Dependencies**: Playwright MCP or Chrome DevTools
27**Methodology**: 7-phase systematic review (inspired by Stripe, Airbnb, Linear)
28
29---
30
31## Quick Start
32
33### 1. Prerequisites Check
34
35Before starting a design review, verify browser automation tools are available:
36
37**Option A: Playwright MCP** (recommended for interactive testing)
38- See the `playwright-testing` skill for Playwright setup
39- Provides browser automation, screenshots, viewport testing, console monitoring
40
41**Option B: Chrome DevTools CLI** (alternative for screenshots and performance)
42- See the `chrome-devtools` skill for Puppeteer CLI setup
43- Provides screenshot capture, performance analysis, network monitoring
44
45For complete browser tools reference, see [references/browser-tools-reference.md](references/browser-tools-reference.md).
46
47### 2. Understand the Review Scope
48
49**For PR reviews:**
50```bash
51# Analyze git diff to understand scope
52git diff --name-only origin/main...HEAD
53
54# Read PR description for context
55```
56
57**For general UI reviews:**
58Simply provide the preview URL and component/page description.
59
60### 3. Execute 7-Phase Review
61
62Follow the systematic checklist below. Each phase has specific objectives and testing procedures.
63
64---
65
66## The 7-Phase Review Methodology
67
68### Phase 0: Preparation
69
70**Objective:** Understand context and set up testing environment.
71
72**Steps:**
731. **Read PR description** or review request to understand:
74 - Motivation for changes
75 - Scope of implementation
76 - Testing notes from developer
77 - Expected behavior
78
792. **Analyze code diff** (if PR available):
80 ```bash
81 git diff origin/main...HEAD
82 ```
83 Identify modified files (components, styles, tests)
84
853. **Set up live preview environment:**
86 - Navigate to preview URL using browser tools
87 - Set initial viewport: 1440x900 (desktop)
88 - Take baseline screenshot for reference
89
904. **Review design principles** (if project has custom guidelines):
91 - Check project CLAUDE.md for design standards
92 - Review component library documentation
93 - Note design system tokens and patterns
94
95**When to skip:** For quick component reviews without git context.
96
97---
98
99### Phase 1: Interaction & User Flow
100
101**Objective:** Verify the interactive experience works as expected.
102
103**For complete interaction guide**: Load `references/interaction-patterns.md` when testing interactive states, forms, buttons, navigation flows, micro-interactions, modals, or keyboard navigation.
104
105**Quick checklist:**
106- Test 5 interactive states (default, hover, active, focus, disabled) for all elements
107- Execute primary user flow (form submission, navigation, key actions)
108- Verify destructive actions have confirmation dialogs
109- Assess perceived performance (loading states, optimistic UI)
110
111**Triage:** [Blocker] Critical flow broken | [High] Poor UX/missing focus states | [Medium] Missing polish | [Nitpick] Minor timing issues
112
113---
114
115### Phase 2: Responsiveness Testing
116
117**Objective:** Ensure design works across all viewport sizes.
118
119**For complete responsive guide**: Load `references/responsive-testing.md` when testing viewports, touch targets, mobile navigation, image responsiveness, or debugging horizontal scrolling.
120
121**Test 3 viewports:**
122- **Desktop (1440px)**: Optimal layout, full feature set
123- **Tablet (768px)**: Graceful adaptation, 44×44px touch targets, collapsing nav
124- **Mobile (375px)**: No horizontal scroll, 16px min text, mobile-friendly navigation
125
126**Quick testing:**
127```bash
128mcp__playwright__browser_resize(width: 1440, height: 900) # Desktop
129mcp__playwright__browser_resize(width: 768, height: 1024) # Tablet
130mcp__playwright__browser_resize(width: 375, height: 667) # Mobile
131mcp__playwright__browser_take_screenshot(fullPage: true)
132```
133
134**Triage:** [Blocker] Layout broken | [High] Horizontal scroll/overlapping | [Medium] Suboptimal spacing | [Nitpick] Minor inconsistencies
135
136---
137
138### Phase 3: Visual Polish
139
140**Objective:** Assess aesthetic quality and visual consistency.
141
142**For design principles guide**: Load `references/visual-polish.md` when evaluating typography hierarchy, spacing/layout, color palette, alignment/grid, visual hierarchy, image quality, or S-Tier design standards.
143
144**Quick evaluation (5 criteria):**
1451. **Layout & spacing**: Grid alignment, 8px scale, design tokens (no magic numbers like 17px)
1462. **Typography**: Clear H1>H2>H3 hierarchy, 1.5-1.7 line height, limited font weights
1473. **Color**: Design system tokens, semantic usage (red=error, green=success), consistent brand
1484. **Images**: High-res (no pixelation), correct aspect ratios, optimized sizes, alt text
1495. **Visual hierarchy**: Primary actions stand out, eye flows naturally, strategic whitespace
150
151**Triage:** [Blocker] Illegible text/broken images | [High] Obvious inconsistencies | [Medium] Spacing/alignment issues | [Nitpick] Aesthetic preferences
152
153---
154
155### Phase 4: Accessibility (WCAG 2.1 AA)
156
157**Objective:** Ensure inclusive design for all users.
158
159**For complete WCAG 2.1 AA checklist**: Load `references/accessibility-wcag.md` when verifying WCAG compliance, testing keyboard navigation, checking color contrast, auditing semantic HTML, or using accessibility testing tools (Lighthouse, axe, WAVE).
160
161**Quick WCAG tests (4 principles):**
162
1631. **Perceivable**: Alt text on images, color contrast (4.5:1 text, 3:1 UI components), semantic HTML
1642. **Operable**: Keyboard navigation (Tab order logical, visible focus on ALL interactive elements, Enter/Space activation, Escape closes modals, no keyboard traps)
1653. **Understandable**: Clear labels, helpful error messages, consistent navigation/terminology
1664. **Robust**: Valid HTML, proper ARIA attributes (roles, states, properties)
167
168**Critical tests:**
169- Tab through entire page (verify focus states visible, logical order, no traps)
170- Test with WebAIM Contrast Checker (all text/UI ≥4.5:1 or 3:1)
171- Verify form labels associated with inputs (`<label for="id">` or `aria-label`)
172- Check semantic HTML (h1→h2→h3 no skipping, `<button>` not `<div onClick>`)
173
174**Triage:** [Blocker] No keyboard access to core features | [High] WCAG AA violations | [Medium] Semantic HTML issues | [Nitpick] Enhanced accessibility
175
176---
177
178### Phase 5: Robustness Testing
179
180**Objective:** Verify handling of edge cases and error conditions.
181
182**Test scenarios:**
183
184#### 5.1 Form Validation
185
186- Submit form with empty required fields
187- Enter invalid data (wrong email format, out-of-range numbers)
188- Test field-level validation (real-time feedback)
189- Verify clear error messages with guidance
190- Test successful submission flow (confirmation message)
191
192#### 5.2 Content Overflow
193
194- **Long text strings**: Very long names, emails, titles
195- **Many items**: Large lists, tables with hundreds of rows
196- **Deeply nested content**: Comments with many replies
197- **Empty states**: No data to display (show helpful message)
198
199**Common overflow issues:**
200- Text breaking layout (overflowing containers)
201- Truncation without ellipsis or tooltip
202- Performance issues with large lists
203- Missing empty state designs
204
205#### 5.3 Loading & Error States
206
207- **Loading states**: Skeleton screens, spinners, progress indicators
208- **Error messages**: Clear, actionable error descriptions
209- **Retry mechanisms**: Allow user to retry failed operations
210- **Timeout handling**: Graceful handling of slow/failed requests
211- **Optimistic updates**: Immediate feedback, rollback on failure
212
213**Test procedure:**
214```bash
215# Simulate slow network
216# Check browser DevTools Network tab → throttling
217
218# Force error states
219# Test with invalid API responses or network failures
220```
221
222**Common problems:**
223- No loading indicators (appears frozen)
224- Vague error messages ("Error occurred")
225- No retry mechanism after failures
226- Layout jumps when content loads
227
228**Triage priorities:**
229- **[Blocker]** Crashes or complete failures under edge cases
230- **[High]** Poor error handling or confusing states
231- **[Medium]** Missing edge case handling or minor issues
232- **[Nitpick]** Loading state aesthetics or minor polish
233
234---
235
236### Phase 6: Code Health
237
238**Objective:** Ensure maintainable, consistent implementation.
239
240**For code patterns guide**: Load `references/code-health-patterns.md` when evaluating component reuse (DRY principle), design token usage (colors, spacing, typography), pattern consistency (naming, file structure, API patterns), or identifying red flags (duplication, magic numbers, broken abstractions).
241
242**Quick review (3 criteria):**
2431. **Component reuse**: No copy-paste, shared components extracted, composition over duplication
2442. **Design tokens**: CSS variables for colors/spacing/typography (no magic numbers like `margin: 17px`), border radii consistent
2453. **Pattern consistency**: Follows codebase patterns, naming conventions match, file structure organized
246
247**Triage:** [High] Introduces tech debt/breaks patterns | [Medium] Missed reuse opportunities | [Nitpick] Code style preferences
248
249---
250
251### Phase 7: Content & Console
252
253**Objective:** Verify polished details and technical correctness.
254
255#### 7.1 Content Review
256
257**Check for:**
258- **Grammar and spelling**: No typos or grammatical errors
259- **Clarity**: Labels and instructions are unambiguous
260- **Tone consistency**: Matches brand voice (formal/casual)
261- **Placeholder text**: Replaced with real content (no "Lorem ipsum")
262- **Microcopy quality**: Helpful error messages, button labels, tooltips
263
264**Common content issues:**
265- Typos in UI text
266- Placeholder text left in production
267- Vague labels ("Submit" vs "Save Changes")
268- Inconsistent terminology
269- Unhelpful error messages ("Error" vs "Email format invalid")
270
271#### 7.2 Console Check
272
273**Test procedure:**
274```bash
275# Using Playwright MCP
276mcp__playwright__browser_console_messages()
277
278# Using Chrome DevTools
279# Open DevTools → Console tab
280```
281
282**Look for:**
283- **JavaScript errors**: Uncaught exceptions, null references
284- **React warnings**: Key prop warnings, lifecycle issues
285- **Network failures**: Failed API requests, 404s
286- **Deprecation warnings**: Old API usage warnings
287- **Performance warnings**: Slow renders, memory leaks
288
289**Triage priorities:**
290- **[Blocker]** Console errors breaking functionality
291- **[High]** Grammar errors or confusing content in user-facing text
292- **[Medium]** Console warnings or minor content issues
293- **[Nitpick]** Content polish, minor console noise
294
295---
296
297## Communication Principles
298
299### 1. Problems Over Prescriptions
300
301Describe the **problem and its impact**, not the solution. Let the developer decide implementation.
302
303**❌ Prescriptive (avoid):**
304"Change the margin to 16px"
305
306**✅ Problem-focused (preferred):**
307"The spacing feels inconsistent with adjacent elements, creating visual clutter that distracts from the primary CTA. The current spacing breaks the established rhythm of the design system."
308
309### 2. Triage Matrix
310
311Categorize **every issue** with clear priority:
312
313| Priority | Criteria | Action Required |
314|----------|----------|----------------|
315| **[Blocker]** | Critical failures, core functionality broken, critical accessibility violations | Must fix before merge |
316| **[High-Priority]** | Significant UX issues, obvious design inconsistencies, WCAG violations | Should fix before merge |
317| **[Medium-Priority]** | Improvements, minor inconsistencies, edge case handling | Consider for follow-up PR |
318| **[Nitpick]** | Aesthetic preferences, minor polish, subjective opinions | Optional refinements |
319
320**Important:** Prefix all nitpicks with "Nit:" to signal low priority.
321
322### 3. Evidence-Based Feedback
323
324Always provide **screenshots** for visual issues. Screenshots should:
325- Show the problem clearly
326- Include relevant context (surrounding elements)
327- Indicate what to look at (arrows, highlights if needed)
328
329**Example:**
330```markdown
331### [High-Priority] Poor contrast on disabled button
332
333**Problem:** Disabled button text has insufficient contrast (2.1:1), failing WCAG AA
334standard (requires 4.5:1). Users with low vision may not recognize the button as disabled.
335
336**Screenshot:** [Attach screenshot showing disabled button]
337
338**Impact:** Accessibility violation, potential confusion for users with visual impairments.
339```
340
341### 4. Start with Positives
342
343Always acknowledge what works well before listing issues. This:
344- Shows you recognize good work
345- Provides balanced feedback
346- Maintains positive collaboration
347
348**Example:**
349```markdown
350### Design Review Summary
351
352The new checkout flow shows excellent attention to user experience. The step indicator
353is clear and well-designed, error messages are helpful and actionable, and the overall
354layout feels spacious and uncluttered. The loading states with skeleton screens are
355particularly well-executed. Great work on the form validation feedback!
356
357However, there are a few accessibility and responsiveness issues to address before merge...
358```
359
360---
361
362## Report Structure Template
363
364**For complete template**: Load `assets/review-report-template.md` for the full markdown template with all sections and examples.
365
366**Essential structure:**
367
368```markdown
369## Design Review Summary
370[2-3 sentences: positive acknowledgment + overall assessment]
371**Review scope:** [PR #, pages, components]
372**Viewports tested:** Desktop (1440px), Tablet (768px), Mobile (375px)
373**Methodology:** 7-phase comprehensive review
374
375---
376
377### Findings
378
379#### 🚨 Blockers
380[Critical issues requiring immediate fix before merge]
381- **[Blocker] [Title]**: Problem + Screenshot + Phase
382
383#### ⚠️ High-Priority Issues
384[Significant issues to fix before merge]
385- **[High] [Title]**: Problem + Screenshot + Phase
386
387#### 📋 Medium-Priority / Suggestions
388[Improvements for follow-up PR]
389- **[Medium] [Title]**: Problem + Phase
390
391#### ✨ Nitpicks
392[Minor aesthetic details - optional]
393- **Nit:** [Issue] - [Brief description]
394
395---
396
397### Testing Evidence
398**Screenshots:** Desktop (1440px) + Tablet (768px) + Mobile (375px)
399**Console output:** [Errors/warnings or "Console clean"]
400**Accessibility:** Keyboard nav + Focus states + Color contrast
401
402---
403
404### Next Steps
4051. Fix Blockers
4062. Address High-Priority issues
4073. Consider Medium-Priority items
408
409**Overall assessment:** [Ready to merge after blockers fixed / Needs revisions / Ready to merge!]
410```
411
412---
413
414## When to Load References
415
416Load reference files when working on specific aspects of design review:
417
418### accessibility-wcag.md
419Load when:
420- **Standards-based**: Verifying WCAG 2.1 AA compliance for production deployment
421- **Issue-based**: Encountering accessibility violations (color contrast, keyboard navigation, semantic HTML, focus states, ARIA attributes)
422- **Testing-based**: Conducting comprehensive accessibility audit with systematic checklist
423- **Tools-based**: Using accessibility testing tools (Lighthouse, axe, WAVE, Pa11y) for automated testing
424- **Triage-based**: Determining severity of accessibility issues (Blocker/High/Medium for WCAG violations)
425
426### browser-tools-reference.md
427Load when:
428- **Setup-based**: Installing or configuring Playwright MCP or Chrome DevTools CLI for testing
429- **Command-based**: Need specific Playwright commands (navigate, resize viewport, screenshot, click, type, hover, get console output)
430- **Workflow-based**: Implementing common testing workflows (responsive review across 3 viewports, form interaction testing, keyboard navigation testing)
431- **Selector-based**: Struggling with CSS selectors, text selectors, or accessibility selectors for element targeting
432- **Troubleshooting-based**: Playwright MCP not finding elements, Chrome dependencies missing, screenshot capture issues
433
434### code-health-patterns.md
435Load when:
436- **Pattern-based**: Evaluating component reuse patterns, DRY principle compliance, extracting shared components
437- **Token-based**: Checking design token usage (colors, spacing scale, typography scale, border radii consistency)
438- **Consistency-based**: Reviewing pattern consistency (naming conventions, file structure organization, API patterns, state management)
439- **Example-based**: Need code examples comparing good vs bad patterns (inline styles vs tokens, duplication vs composition)
440- **Red-flag-based**: Identifying code health issues (copy-paste duplication, magic numbers like `17px`, inconsistent state management, broken abstractions)
441
442### design-principles-s-tier.md
443Load when:
444- **Standards-based**: Ensuring S-Tier SaaS dashboard quality (Stripe, Airbnb, Linear, Vercel level polish)
445- **System-based**: Evaluating design system foundation (color palette structure, typography scale, spacing scale, core UI components)
446- **Module-based**: Reviewing specific modules (multimedia moderation interfaces, data tables, configuration panels, dashboards)
447- **Philosophy-based**: Applying core design philosophy (users first, meticulous craft over speed, simplicity over complexity, consistency)
448- **Architecture-based**: Evaluating CSS & styling architecture (design tokens, component patterns, responsive strategies)
449
450### interaction-patterns.md
451Load when:
452- **States-based**: Testing interactive states (default, hover, active, focus, disabled) for buttons, inputs, links
453- **Form-based**: Testing form interactions, validation patterns, error states, success states, loading states
454- **Button-based**: Evaluating button loading states, destructive action confirmation patterns, primary vs secondary actions
455- **Flow-based**: Testing navigation flows, user journeys, multi-step processes, modal interactions
456- **Animation-based**: Reviewing micro-interactions, animation timing (200-300ms), perceived performance (optimistic UI, skeleton screens)
457- **Modal-based**: Testing modal interactions, keyboard traps, focus management, Escape key behavior
458
459### responsive-testing.md
460Load when:
461- **Viewport-based**: Testing at specific viewports (desktop 1440px, tablet 768px, mobile 375px) with Playwright MCP
462- **Touch-based**: Verifying touch target sizes meet minimum 44×44px requirement for mobile usability
463- **Overflow-based**: Debugging horizontal scrolling issues or layout overflow problems on mobile
464- **Mobile-based**: Ensuring text readability (16px minimum font size), mobile navigation patterns, responsive images
465- **Breakpoint-based**: Implementing or testing breakpoint strategy (common breakpoints: 640px, 768px, 1024px, 1280px)
466- **Navigation-based**: Testing responsive navigation patterns (hamburger menus, collapsing navigation, mobile drawer menus)
467
468### visual-polish.md
469Load when:
470- **Typography-based**: Evaluating font hierarchy (H1>H2>H3), font scale standards (16/18/24/32/48/64px), line height (1.5-1.7), readability
471- **Spacing-based**: Checking 8-point grid compliance (8/16/24/32/40/48/64px), consistent spacing scale, component padding/margin
472- **Color-based**: Verifying color palette consistency, semantic color usage (red=error, green=success), design token usage (no hardcoded hex values)
473- **Alignment-based**: Checking grid-based layout, precise alignment (0.5px precision), vertical rhythm, visual balance
474- **Hierarchy-based**: Evaluating visual hierarchy techniques (size contrast, weight contrast, color contrast, position, strategic whitespace)
475- **Quality-based**: Assessing image quality (no pixelation), correct aspect ratios, proper image optimization for web
476- **Component-based**: Reviewing design system components (button styles, form input styles, card components, consistent border radii)
477
478---
479
480## Known Issues Prevention
481
482This skill prevents **8** documented design review issues:
483
484| Issue | Problem | Impact | Prevention |
485|-------|---------|--------|------------|
486| **#1: Missing Accessibility** | Reviews focus only on visual appearance, ignoring keyboard navigation and screen readers | WCAG violations shipped to production, excluding users with disabilities | Phase 4 enforces complete WCAG 2.1 AA checklist with keyboard testing |
487| **#2: Incomplete Responsive Testing** | Reviewing only at desktop viewport, missing mobile breakage | Broken mobile layouts, frustrated mobile users | Phase 2 requires testing at 1440px, 768px, and 375px viewports |
488| **#3: Vague Feedback** | Comments like "looks off" without screenshots or specifics | Wasted time, unclear action items, frustrated developers | Evidence-based feedback principle requires screenshots |
489| **#4: Prescriptive Solutions** | Dictating implementation ("change margin to 16px") instead of describing UX impact | Design-dev friction, missed better solutions | "Problems Over Prescriptions" principle enforced |
490| **#5: No Triage Priority** | All feedback treated equally, blocking merges on nitpicks | Slowed delivery, unclear priorities | Triage matrix (Blocker/High/Medium/Nitpick) required |
491| **#6: Skipped Edge Cases** | Happy path works, but error states and overflow break layout | Production bugs with edge cases | Phase 5 mandates robustness testing |
492| **#7: Console Errors Ignored** | Visual design passes, but JavaScript errors exist in console | Runtime failures, poor user experience | Phase 7 requires console check |
493| **#8: Inconsistent Methodology** | Ad-hoc reviews miss critical areas depending on reviewer mood | Incomplete reviews, missed issues | 7-phase checklist ensures comprehensive, repeatable reviews |
494
495---
496
497## Dependencies
498
499### Required
500
501**Browser automation tools** (one of the following):
502
5031. **Playwright MCP** (recommended)
504 - See `playwright-testing` skill for installation
505 - Provides: Browser automation, screenshots, viewport testing, console monitoring
506 - Best for: Interactive testing, keyboard navigation, form testing
507
5082. **Chrome DevTools CLI**
509 - See `chrome-devtools` skill for installation
510 - Provides: Screenshot capture, performance analysis, network monitoring
511 - Best for: Visual testing, performance audits
512
513**Live preview environment:**
514- URL accessible for testing
515- Represents actual implementation (not mockups)
516
517### Optional
518
519- **Git/GitHub**: For PR context and diff analysis
520- **Design system docs**: For consistency checks against established patterns
521- **Project CLAUDE.md**: For project-specific design guidelines
522
523### Installation Guidance
524
525If browser tools are not available, this skill will:
5261. Detect missing tools
5272. Link to appropriate skill for installation (`playwright-testing` or `chrome-devtools`)
5283. Provide fallback guidance for manual testing
529
530---
531
532## Related Skills
533
534- **playwright-testing**: E2E testing with Playwright, browser automation setup
535- **chrome-devtools**: Browser automation via Puppeteer CLI scripts
536- **frontend-design**: Create new frontend interfaces with design quality (complementary skill)
537- **tailwind-v4-shadcn**: UI framework implementation (designs being reviewed may use this)
538- **ai-sdk-ui**: AI-powered UI components (may be part of reviewed interfaces)
539
540---
541
542## Official Documentation
543
544- **WCAG 2.1 Guidelines**: https://www.w3.org/WAI/WCAG21/quickref/
545- **WebAIM Contrast Checker**: https://webaim.org/resources/contrastchecker/
546- **Playwright Documentation**: https://playwright.dev/
547- **Inclusive Design Principles**: https://inclusivedesignprinciples.org/
548- **A11y Project Checklist**: https://www.a11yproject.com/checklist/
549
550---
551
552## Production Validation
553
554**This skill is based on real design review workflows** used at:
555- **Methodology inspiration**: Stripe, Airbnb, Linear (7-phase systematic approach)
556- **Testing approach**: Automated browser testing with Playwright/Puppeteer
557- **Accessibility standards**: WCAG 2.1 AA compliance (industry standard)
558
559**Estimated token efficiency:**
560- Without skill: ~25k tokens (trial-and-error, repeated corrections)
561- With skill: ~8k tokens (guided methodology, systematic approach)
562- **Savings: ~68%** with 100% checklist coverage
563
564---
565
566**Questions or issues?**
567
5681. Check [references/accessibility-wcag.md](references/accessibility-wcag.md) for complete WCAG checklist
5692. See [references/browser-tools-reference.md](references/browser-tools-reference.md) for Playwright/Chrome DevTools commands
5703. Review [references/visual-polish.md](references/visual-polish.md) for design principles
5714. Verify browser tools are installed (see `playwright-testing` or `chrome-devtools` skills)
5725. Ensure preview URL is live and accessible