Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
shiplightai avatar

Design Review

  • 1 installs
  • 2 repo stars
  • Updated April 19, 2026
  • shiplightai/claude-code-plugin

Evaluate visual quality, responsive behavior, accessibility, contrast, typography, and i18n readiness with browser-based validation against design standards.

About

Runs a phased design review of an application's visual quality and usability against WCAG 2.1 AA, Material/HIG, and contrast standards using browser-based checks. A developer uses it to catch responsive, accessibility, and layout issues before a launch or demo when no designer is reviewing.

  • Browser-based checks with screenshot evidence and confidence scores
  • Produces fix guidance plus YAML regression tests

Design Review by the numbers

  • 1 all-time installs (skills.sh)
  • Ranked #1,609 of 1,880 Design & UI/UX skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/shiplightai/claude-code-plugin --skill design-review

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1
repo stars2
Last updatedApril 19, 2026
Repositoryshiplightai/claude-code-plugin

What it does

Evaluate visual quality, responsive behavior, accessibility, contrast, typography, and i18n readiness with browser-based validation against design standards.

Files

SKILL.mdMarkdownGitHub ↗

Design Review

Evaluate your application's visual quality and usability against established design standards. This review catches issues that typically require a trained designer's eye — responsive breakpoints, accessibility compliance, visual hierarchy, spacing consistency, and internationalization readiness.

When to use

Use /shiplight:design-review when:

  • Shipping UI without a designer reviewing it
  • Before a launch or demo
  • After significant UI changes or redesigns
  • Checking accessibility compliance (WCAG 2.1 AA)
  • Validating responsive behavior across devices

Standards Referenced

  • WCAG 2.1 Level AA — Web Content Accessibility Guidelines
  • Material Design / Human Interface Guidelines — spacing, touch targets, typography scales
  • ISO 9241-110 — Interaction principles (suitability, self-descriptiveness, conformity)
  • APCA — Advanced Perceptual Contrast Algorithm (next-gen contrast)

Phase Overview

Phase 1: EDUCATE   → Brief context on what we check and why
Phase 2: SCOPE     → Identify pages, breakpoints, and focus areas
Phase 3: ANALYZE   → Browser-based checks with evidence capture
Phase 4: REPORT    → Findings with screenshots, scores, confidence
Phase 5: REMEDIATE → Fix guidance + YAML regression tests

---

Phase 1: Educate

Why this matters: 94% of first impressions are design-related. Poor visual quality erodes trust even when functionality is correct. Accessibility issues affect 15-20% of users and carry legal risk (ADA lawsuits increased 300% since 2018).

This review checks your app against objective, measurable design criteria — not subjective taste. Every finding references a specific standard.

---

Phase 2: Scope

Gather context

1. Auto-detect — scan the project for:

  • Framework (React, Vue, Next.js, etc.)
  • CSS approach (Tailwind, CSS modules, styled-components, etc.)
  • Design system in use (if any)
  • Route structure → list of pages
  • Existing a11y tooling (eslint-plugin-jsx-a11y, axe-core, etc.)

2. Ask the user (one at a time, with auto-detected defaults):

  • Target URL: Where is the app running? (auto-detect dev server)
  • Key pages: Which pages matter most? (recommend top 3-5 from routes)
  • Target devices: Desktop only? Mobile-first? Both? (default: both)
  • Brand guidelines: Any specific colors, fonts, or design system? (default: evaluate against general best practices)
  • Focus areas: Any known concerns? (optional)

3. Define breakpoints to test:

  • Mobile: 375px (iPhone SE), 390px (iPhone 14)
  • Tablet: 768px (iPad)
  • Desktop: 1280px, 1920px
  • (Adjust based on user's target audience)

---

Phase 3: Analyze

Open a browser session with new_session using record_evidence: true. For each page in scope, run the following check categories.

Category A: Responsive Design (RES)

Check IDCheckStandardMethod
RES-01Viewport meta tag presentMobile best practiceInspect <meta name="viewport">
RES-02No horizontal overflow at any breakpointResponsive designResize viewport, check for horizontal scrollbar
RES-03Touch targets ≥ 48x48px on mobileWCAG 2.5.8 / Material DesignMeasure interactive element sizes at mobile breakpoint
RES-04Text remains readable without zoom at 375pxWCAG 1.4.4Check font sizes ≥ 16px for body text on mobile
RES-05Navigation is accessible at all breakpointsUsabilityVerify nav collapses/adapts, hamburger menu works
RES-06Images scale appropriatelyResponsive imagesCheck for srcset/sizes or CSS containment
RES-07No content truncation without indicationUsabilityCheck text overflow, ellipsis with tooltip or expand
RES-08Form inputs are usable on mobileUsabilityCheck input sizes, proper input types (tel, email)

Browser validation: For each breakpoint, use act to resize the viewport, then inspect_page to capture DOM and screenshot. Check for overflow elements, measure sizes via JavaScript.

Category B: Accessibility (A11Y)

Check IDCheckStandardMethod
A11Y-01Color contrast ratio ≥ 4.5:1 (normal text)WCAG 1.4.3 AAExtract computed colors, calculate ratio
A11Y-02Color contrast ratio ≥ 3:1 (large text ≥ 18pt)WCAG 1.4.3 AASame as above for large text
A11Y-03All images have alt textWCAG 1.1.1Check <img> elements for alt attribute
A11Y-04Form inputs have associated labelsWCAG 1.3.1Check <label for=""> or aria-label
A11Y-05Heading hierarchy is logical (h1→h2→h3)WCAG 1.3.1Extract heading levels, check sequence
A11Y-06Focus is visible on all interactive elementsWCAG 2.4.7Tab through elements, check focus ring visibility
A11Y-07Keyboard navigation works (Tab, Enter, Escape)WCAG 2.1.1Navigate entire page via keyboard
A11Y-08Skip navigation link presentWCAG 2.4.1Check for skip-to-content link
A11Y-09ARIA roles used correctlyWCAG 4.1.2Check for misused/redundant ARIA
A11Y-10Page has lang attributeWCAG 3.1.1Check <html lang="">
A11Y-11Modal focus trapping worksWCAG 2.4.3Open modal, verify Tab stays within
A11Y-12Error messages are associated with inputsWCAG 3.3.1Check aria-describedby or aria-errormessage
A11Y-13Reduced motion respectedWCAG 2.3.3Check for prefers-reduced-motion media query
A11Y-14No seizure-inducing content (>3 flashes/sec)WCAG 2.3.1Visual inspection of animations

Browser validation: Use inspect_page to extract the DOM. Run JavaScript via act to compute contrast ratios, check ARIA attributes, extract heading hierarchy. Use keyboard navigation (Tab, Enter, Escape) to test focus management.

Category C: Visual Consistency (VIS)

Check IDCheckStandardMethod
VIS-01Consistent spacing scaleDesign systemsExtract margins/paddings, check for consistent scale (4px/8px grid)
VIS-02Typography scale is consistentTypographic hierarchyExtract font sizes, check for consistent ratio/scale
VIS-03Color palette is limited and intentionalDesign best practiceExtract all used colors, flag if >10 unique non-gray colors
VIS-04Interactive elements have consistent stylingConsistencyCompare button styles, link styles across pages
VIS-05Alignment grid is consistentLayoutCheck for misaligned elements that break the visual grid
VIS-06Loading states exist for async operationsUX best practiceTrigger async actions, verify loading indicators
VIS-07Empty states are handledUX best practiceNavigate to pages with no data, check for meaningful empty states
VIS-08Error states are styled consistentlyUX best practiceTrigger validation errors, check styling
VIS-09Dark mode consistency (if applicable)Design systemsToggle dark mode, check for un-themed elements

Browser validation: Use JavaScript to extract computed styles, compare across elements and pages. Screenshot comparison between pages for visual consistency.

Category D: Typography & Readability (TYP)

Check IDCheckStandardMethod
TYP-01Body text 16-20pxReadability researchExtract computed font-size
TYP-02Line height 1.4-1.6 for body textReadabilityExtract computed line-height
TYP-03Line length 45-75 charactersReadability (Bringhurst)Measure character count per line
TYP-04Font loading strategy (FOUT/FOIT prevention)Web performanceCheck font-display CSS, preload hints
TYP-05Sufficient hierarchy levels (≥3 distinct sizes)TypographyExtract and count distinct heading sizes
TYP-06Text is left-aligned (not justified) for bodyReadabilityCheck text-align for body paragraphs

Category E: Internationalization Readiness (I18N)

Check IDCheckStandardMethod
I18N-01No hardcoded strings in componentsi18n best practiceScan source code for string literals in JSX/templates
I18N-02Layout handles text expansion (+30%)i18n designInject longer text strings, check for overflow
I18N-03RTL layout support (if applicable)i18nToggle dir="rtl", check layout adaptation
I18N-04Date/number formatting uses localei18nCheck for hardcoded date/number formats
I18N-05Font stack includes CJK/Unicode fallbacksi18n typographyCheck font-family declarations
I18N-06Icons/images don't contain texti18nVisual inspection of image content

Browser validation: Use JavaScript to modify dir attribute, inject longer text, change locale settings. Screenshot at each state.

---

Phase 4: Report

Generate a structured report saved to shiplight/reports/design-review-{date}.md:

# Design Review Report
**Date:** {date}
**URL:** {url}
**Pages reviewed:** {list}
**Breakpoints tested:** {list}

## Overall Score: {X}/10 | Confidence: {X}%

## Score Breakdown
| Category | Score | Findings |
|----------|-------|----------|
| Responsive (RES) | 7/10 | 2 high, 1 medium |
| Accessibility (A11Y) | 5/10 | 1 critical, 3 high |
| Visual Consistency (VIS) | 8/10 | 1 medium |
| Typography (TYP) | 9/10 | 1 low |
| i18n Readiness (I18N) | 6/10 | 2 medium |

## Findings

### CRITICAL

#### A11Y-01: Insufficient color contrast on primary buttons
- **Standard:** WCAG 1.4.3 AA (minimum 4.5:1)
- **Finding:** Primary button (#4A90D2 on #FFFFFF) has contrast ratio 3.1:1
- **Evidence:** [screenshot with annotation]
- **Pages affected:** All pages with primary CTA
- **Confidence:** 97%

### HIGH
...

### MEDIUM
...

### LOW / INFO
...

Confidence Scoring

  • 90-100%: Browser-validated, measured programmatically (contrast ratio calculated, element size measured)
  • 70-89%: Strong evidence from DOM inspection, screenshot supports finding
  • 50-69%: Heuristic-based, may vary by context (e.g., "spacing looks inconsistent")
  • Below 50%: Don't report

---

Phase 5: Remediate

For each finding, provide:

1. Fix guidance

#### A11Y-01: Insufficient color contrast
**File:** src/components/Button.tsx:23
**Current:** `background: #4A90D2` (contrast 3.1:1 against white)
**Fix:** `background: #2563EB` (contrast 4.8:1 against white) — maintains blue hue, meets AA
**Alternative:** `background: #1D4ED8` (contrast 7.1:1) — meets AAA

2. YAML regression test

- name: a11y-01-button-contrast
  description: Verify primary button meets WCAG AA contrast ratio
  severity: critical
  standard: WCAG-1.4.3-AA
  steps:
    - URL: /
    - VERIFY: Primary action buttons have sufficient color contrast (minimum 4.5:1 ratio for normal text)
      timeout_seconds: 15

Save all YAML tests to shiplight/tests/design-review.test.yaml.

---

Tips

  • Use inspect_page to read the DOM first — it's cheaper than screenshots and provides element indices for act.
  • For contrast checking, use JavaScript via act with window.getComputedStyle() to extract actual rendered colors.
  • Test keyboard navigation by using act with keyboard actions (Tab, Enter, Escape, Arrow keys).
  • Run this review at multiple breakpoints — many issues only appear at specific viewport sizes.
  • For i18n text expansion testing, use act with JavaScript to modify textContent to longer strings.
  • Close the session with close_session and use generate_html_report for a shareable evidence report.

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.