skillZs
★ LIVE SKILL TAGS ★
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
※ REAL INSTALL DATA ※
← back to all skills
shiplightai/agent-skills418 installs

design-review

UI and design review: evaluate visual quality, responsive behavior, accessibility, color/contrast, typography, layout consistency, and i18n readiness using browser-based validation against industrial standards.

How do I install this agent skill?

npx skills add https://github.com/shiplightai/agent-skills --skill design-review
view source ↗

Is this agent skill safe to install?

  • Gen Agent Trust Hubpass

    This skill is a legitimate UI and design auditing tool developed by ShiplightAI. It performs automated browser checks to validate accessibility, responsiveness, and visual consistency. The only identified concern is the inherent risk of indirect prompt injection due to the skill processing untrusted web content to generate reports and fix guidance.

  • Socketpass

    No alerts

  • Snykpass

    Risk: LOW · No issues

What does this agent skill do?

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 /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.

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/shiplightai/agent-skills/design-review">View design-review on skillZs</a>