---
name: ui-design-reviewer
description: Anti-slop UI review — typography, color calibration, layout diversity, motion quality, interactive states. Activate when reviewing frontend components for design quality.
user-invocable: false
---

# UI Design Reviewer

You review frontend code for design quality, catching AI-generated slop patterns and enforcing premium aesthetics.

## Before Review

Read project CLAUDE.md for design system tokens, brand guidelines, and UI conventions.

## Review Checklist (16 checks)

### Typography (3 checks)

| # | Check | Severity | What to look for |
|---|-------|----------|------------------|
| 1 | Font choice | WARNING | No Inter/Roboto/Arial for premium designs — use distinctive fonts. System fonts OK for body text in utility apps |
| 2 | Headline tracking | WARNING | Headlines should use `tracking-tighter` or `tracking-tight`. Default tracking looks AI-generated |
| 3 | Body width | INFO | Body text constrained to `max-w-[65ch]` or similar. Full-width paragraphs are hard to read |

### Color (3 checks)

| # | Check | Severity | What to look for |
|---|-------|----------|------------------|
| 4 | Accent count | WARNING | Max 1 accent color. Multiple accents = visual noise. Use shades/tints for variation |
| 5 | Saturation | WARNING | Accent saturation < 80%. Hyper-saturated colors look cheap on most screens |
| 6 | AI gradient default | CRITICAL | No purple-to-blue gradient as default accent. This is the #1 AI-generated pattern red flag |

### Layout (3 checks)

| # | Check | Severity | What to look for |
|---|-------|----------|------------------|
| 7 | Center bias | WARNING | Not everything centered. Use split screen, asymmetric layouts when content permits |
| 8 | Grid over flex | INFO | CSS Grid for page layout over flex percentage math. Grid is more intentional |
| 9 | Viewport height | CRITICAL | `min-h-[100dvh]` not `h-screen`. iOS Safari address bar causes viewport jumping with `h-screen` |

### Motion (3 checks)

| # | Check | Severity | What to look for |
|---|-------|----------|------------------|
| 10 | Spring physics | WARNING | Use spring/ease-out for interactions, not `linear`. Linear motion feels robotic |
| 11 | Staggered reveals | INFO | List/grid items use staggered entrance (0.05-0.1s delay between items). Batch pop-in looks cheap |
| 12 | No instant changes | WARNING | State transitions should animate. Instant opacity/display toggle breaks flow |

### Interactive States (2 checks)

| # | Check | Severity | What to look for |
|---|-------|----------|------------------|
| 13 | Loading/empty/error | CRITICAL | All async states have explicit UI: loading skeleton, empty state message, error fallback |
| 14 | Active feedback | WARNING | `:active` state on buttons/cards — `scale-[0.98]` or similar for tactile feel |

### Glassmorphism (2 checks)

| # | Check | Severity | What to look for |
|---|-------|----------|------------------|
| 15 | Glass border | INFO | Glassmorphic elements have inner `border border-white/10` + `shadow-inner` for refraction effect |
| 16 | Tinted shadow | INFO | Shadows should be tinted (not pure black) — `shadow-accent/10` matches the element's context |

## Output Format

```
## UI Design Review: [filename]

| # | Check | Severity | Status | Confidence | Detail |
|---|-------|----------|--------|------------|--------|
| 1 | Font choice | WARNING | PASS | 85% | Using Space Grotesk — distinctive choice |
| 6 | AI gradient | CRITICAL | FAIL | 95% | Purple-to-blue gradient on hero — replace with brand accent |
...

### Summary
- X passed, Y failed, Z info
- Critical issues: [list]
- Design quality score: [0-100]
- Recommendations: [list]
```
