Skip to content
Agentmart
Submit a tool

design-review

Structured UI design review — existing code (React/JSX, CSS, Tailwind) and, when behaviour matters, the running app in a real browser — reported as a…

Skill by pproenca

IndexedMIT★ 218
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/pproenca-design-review

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Structured UI design review — existing code (React/JSX, CSS, Tailwind) and, when behaviour matters, the running app in a real browser — reported as a prioritised Before / After / Why table. Covers visual hierarchy, spacing, typography, colour & contrast, component states, motion, responsiveness, accessibility, multi-page flow & navigation, and interaction continuity — grounded in Refactoring UI and Emil Kowalski's principles. For animation/jank/FPS, focus order, and cross-page UX it can drive Chrome via chrome-devtools-mcp to capture what a screenshot can't. Trigger when the user asks to "review this UI", "design review", "critique this component/screen/page or multi-page flow", asks why something "looks off", "looks AI-generated", or "looks like a wireframe", or wants to raise visual polish. For building UI from scratch use web-taste; for the full animation set see emilkowal-animations.

Use cases: design, frontend, agent-building

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/design-review

What's inside

Skill name
design-review
Description
Structured UI design review — existing code (React/JSX, CSS, Tailwind) and, when behaviour matters, the running app in a real browser — reported as a prioritised Before / After / Why table. Covers visual hierarchy, spacing, typography, colour & contrast, component states, motion, responsiveness, accessibility, multi-page flow & navigation, and interaction continuity — grounded in Refactoring UI and Emil Kowalski's principles. For animation/jank/FPS, focus order, and cross-page UX it can drive Chrome via chrome-devtools-mcp to capture what a screenshot can't. Trigger when the user asks to "review this UI", "design review", "critique this component/screen/page or multi-page flow", asks why something "looks off", "looks AI-generated", or "looks like a wireframe", or wants to raise visual polish. For building UI from scratch use web-taste; for the full animation set see emilkowal-animations.
License
MIT
Instructions
176 lines in SKILL.md · view on GitHub

Files (47)

  • AGENTS.md
  • SKILL.md
  • _template.md · assets/templates/
  • metadata.json
  • _runtime-capture.md · references/
  • _sections.md · references/
  • access-name-icon-controls.md · references/
  • access-respect-reduced-motion.md · references/
  • access-semantic-elements.md · references/
  • color-avoid-pure-black.md · references/
  • color-hsl-scales.md · references/
  • color-limit-accents.md · references/
  • color-meet-contrast.md · references/
  • color-not-only-signal.md · references/
  • flow-consistent-shell.md · references/
  • flow-entry-point-integrity.md · references/
  • flow-preserve-state-on-nav.md · references/
  • flow-wayfinding.md · references/
  • hier-emphasis-color-weight.md · references/
  • hier-one-focal-point.md · references/
  • hier-one-primary-action.md · references/
  • hier-replace-borders-with-space.md · references/
  • hier-values-over-labels.md · references/
  • interact-bridge-route-transitions.md · references/
  • interact-feedback-spans-async.md · references/
  • interact-move-focus-on-navigation.md · references/
  • motion-ease-out-custom.md · references/
  • motion-enter-origin-scale.md · references/
  • motion-needs-purpose.md · references/
  • motion-transform-opacity-only.md · references/
  • motion-under-300ms.md · references/
  • resp-fluid-not-fixed.md · references/
  • resp-gate-hover.md · references/
  • resp-touch-target-size.md · references/
  • space-constrain-measure.md · references/
  • space-proximity-groups.md · references/
  • space-start-generous.md · references/
  • space-use-a-scale.md · references/
  • state-design-all-states.md · references/
  • state-empty-state.md · references/
  • state-focus-visible.md · references/
  • state-press-feedback.md · references/
  • type-left-align-prose.md · references/
  • type-limit-line-length.md · references/
  • type-line-height-by-size.md · references/
  • type-modular-scale.md · references/
  • type-readable-body-size.md · references/

SKILL.md (first lines)

# Design Review

Conduct a design review of UI **code** and return a prioritised critique. The reviewer's lens is Emil Kowalski's design-engineering philosophy — *taste is the differentiator; the unseen details compound; show the eye where to look* — made concrete with the heuristics from Refactoring UI, WCAG, and MDN.

This is a **read-only review skill**: it diagnoses and proposes fixes; it does not rewrite the codebase. Each finding names the wrong default the code fell into, the exact fix, and why it matters.

## When to Apply

- The user asks to "review this UI", run a "design review", or "critique" a component, screen, or page.
- The user says the output "looks off", "looks AI-generated", "looks like a wireframe", or "feels generic", and wants to know why.
- A PR touches CSS/JSX/Tailwind and the user wants design feedback before merge.
- The user wants to raise the visual polish or accessibility of an existing interface.

Not for building UI from scratch (use `web-taste`) or for the exhaustive animation rule set (use `emilkowal-animations`).

## How to Run the Review

**Two modes.** A *static* review reads the code and is the default. A *runtime* review additionally drives a real browser to measure what the code can't show — animation timing and dropped frames, layout shift, the live focus order and accessibility tree, and the multi-page flow clicked through end to end. Switch to runtime whenever the verdict turns on rendered behaviour (the `motion-`, `interact-`, and `flow-` categories), per [runtime-capture.md](references/_runtime-capture.md).

1. **Orient — the 0.5-second test.** Before reading line by line, picture the rendered screen. Where does the eye land first? Is there a single focal point, or does everything carry equal weight? This frames which categories matter most for *this* UI.
2. **Pass the categories in priority order** (table below). For each decision the code makes, read the matching reference file and check the code against it. Visual hierarchy and spacing are where the largest, most frequent problems live — start there.
3. **For multi-page or interaction-driven UX, walk it in a browser.** When the brief is a flow ("review this onboarding") or the issue is felt in motion (jank, blank route flashes, lost focus), capture runtime evidence per [runtime-capture.md](references/_runtime-capture.md) so the Before column is a measured value, not a guess.
4. **Record each problem as a finding** with a Before (the exact code or measurement), an After (the concrete fix), a Why (the principle), and a context-assigned **Severity**.
5. **Close with a verdict**: the top 3 fixes, ranked by impact, so the author knows what to change first.

## Output Format (Required)

Report findings as a **single markdown table**, one row per issue. Do **not** write findings as prose or as `Before:` / `After:` on separate lines.

| Severity | Before | After | Why |
| --- | --- | --- | --- |
| High | `transition: all 300ms ease-in` | `transition: opacity 180ms cubic-bezier(0.23, 1, 0.32, 1)` | `ease-in` feels sluggish on entry; name the property and use a strong ease-out curve |
| High | every button `bg-indigo-600` | one filled primary; others ghost/outline | Equal-weight buttons compete; one primary makes the next step obvious |
| Medium | `color: #000` on `#fff` | `color: hsl(222 47% 11%)` | Pure black is harsher than ink and reads as stark |
| Critical | `<div onClick={remove}>` | `<button type="button" onClick={remove}>` | A div is unreachable by keyboard and invisible to screen readers |

**Wrong format — never do this:**

```text
Before: transition: all 300ms
After: transition: opacity 180ms ease-out
────────────────────────────
Before: color #000
After: color slate-900
```

**Severity guide** (assigned per finding, by impact in this UI):

| Severity | Meaning |
| --- | --- |
| Critical | Breaks usability or accessibility — fails contrast, no keyboard access, unreadable text |
| High | Clearly damages the design — no hierarchy, cramped spacing, competing primary actions |
| Medium | Noticeable polish gap — default easing, uniform line-height, missing press feedback |
| Low | Minor refinement — a value slightly off the scale |

Finish with: **Top 3 fixes** — the highest-impact rows, in the order the author should tackle them.

## Rule Categories

| # | Category | Prefix | Covers |
|---|----------|--------|--------|
| 1 | Visual Hierarchy | `hier-` | Focal point, emphasis technique, one primary action, value-over-label, space over borders |
| 2 | Spacing & Layout | `space-` | Spacing scale, generous whitespace, proximity grouping, constrained width |
| 3 | Typography | `type-` | Type scale, line length, line-height, alignment, readable body text |
| 4 | Colour & Contrast | `color-` | Near-black text, WCAG contrast, HSL ramps, restrained accents, colour-plus-cue |
| 5 | Component States & Feedback | `state-` | Press feedback, focus-visible, the full state matrix, empty states |
| 6 | Motion & Animation | `motion-` | Purpose/frequency, ease-out curves, sub-300ms, enter origin/scale, transform-only |
| 7 | Responsiveness & Touch | `resp-` | Fluid mobile-first, 44px targets, gating hover |
| 8 | Accessibility & Semantics | `access-` | Semantic elements, accessible names, reduced-motion |
| 9 | Flow & Navigation | `flow-` | App-shell consistency, view-state persistence, entry-point integrity, wayfinding |
| 10 | Interaction Continuity | `interact-` | Bridging route transitions, async feedback, focus on navigation |

## Quick Reference

### 1. Visual Hierarchy (`hier-`)

- [`hier-one-focal-point`](references/hier-one-focal-point.md) — Establish one clear focal point per screen
- [`hier-emphasis-color-weight`](references/hier-emphasis-color-weight.md) — Use colour and weight to set emphasis, not size alone
- [`hier-one-primary-action`](references/hier-one-primary-action.md) — Limit each view to one primary action
- [`hier-values-over-labels`](references/hier-values-over-labels.md) — Make values louder than their labels
- [`hier-replace-borders-with-space`](references/hier-replace-borders-with-space.md) — Replace borders with spacing and background

### 2. Spacing & Layout (`space-`)

- [`space-use-a-scale`](references/space-use-a-scale.md) — Size spacing from a consistent scale
- [`space-start-generous`](references/space-start-generous.md) — Give layouts more whitespace than feels necessary
- [`space-proximity-groups`](references/space-proximity-groups.md) — Vary spacing to show what is grouped
- [`space-constrain-measure`](references/space-constrain-measure.md) — Cap and centre the page container width

### 3. Typography (`type-`)

- [`type-modular-scale`](references/type-modular-scale.md) — Choose font sizes from a small type scale
- [`type-limit-line-length`](references/type-limit-line-length.md) — Limit body line length for readability
- [`type-line-height-by-size`](references/type-line-height-by-size.md) — Set line-height relative to font size
- [`type-left-align-prose`](references/type-left-align-prose.md) — Align multi-line text to the left
- [`type-readable-body-size`](references/type-readable-body-size.md) — Keep body text large and solid enough to read

### 4. Colour & Contrast (`color-`)

- [`color-avoid-pure-black`](references/color-avoid-pure-black.md) — Use a near-black instead of pure black
- [`color-meet-contrast`](references/color-meet-contrast.md) — Meet WCAG contrast for body text
- [`color-hsl-scales`](references/color-hsl-scales.md) — Define colour as HSL shade ramps
- [`color-limit-accents`](references/color-limit-accents.md) — Limit the palette to one accent plus neutrals
- [`color-not-only-signal`](references/color-not-only-signal.md) — Pair colour with a second cue for state

### 5. Component States & Feedback (`state-`)

- [`state-press-feedback`](references/state-press-feedback.md) — Give pressable elements active feedback
- [`state-focus-visible`](references/state-focus-visible.md) — Keep an accessible focus indicator
- [`state-design-all-states`](references/state-design-all-states.md) — Design every interactive state, not just the default
- [`state-empty-state`](references/state-empty-state.md) — Design the empty state with guidance

### 6. Motion & Animation (`motion-`)

- [`motion-needs-purpose`](references/motion-needs-purpose.md) — Animate only with a purpose
- [`motion-ease-out-custom`](references/motion-ease-out-custom.md) — Use ease-out with a custom curve for UI transitions
- [`motion-under-300ms`](references/motion-under-300ms.md) — Keep UI transitions under 300ms
- [`motion-enter-origin-scale`](references/motion-enter-origin-scale.md) — Enter from a near scale and the trigger's origin
- [`motion-transform-opacity-only`](references/motion-transform-opacity-only.md) — Animate only transform and opacity

From pproenca/dot-skills, MIT.

More from pproenca/dot-skills

Signals

Stars
218
Forks
19
Open issues
3
Last commit (this folder)
Jul 5, 2026 (3 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from pproenca

Cite this page

design-review skill. Agent Mart. https://agentmart.dev/skills/pproenca-design-review (last updated 2026-10-24)