Skip to content
Back to skills

Design Director

ASecurity

UIForge's always-on design brain — the art director for any web UI. Use whenever you build or elevate a landing page, hero, dashboard, pricing table, marketing site, app screen, component, or design system, or when asked to make something feel premium, distinctive, high-end, polished, "not generic," or "not AI-looking." It forces a deliberate choice on every design axis (typography, color, spacing, layout, motion, copy) instead of defaulting to the statistical average — then sources component...

  • 7 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added August 30, 2026
designrustgospringawsrefactoringfrontend

Works with

  • cli
  • mcp

Security analysis

A100/100

Pro scans all 6 files and shows the line behind each finding

Scanned August 30, 2026

npx -y skills add TaewoooPark/UIForge --skill design-director --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Design Director?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Design Director
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/taewooopark-design-director/badge)](https://www.skillsdirectory.com/skills/taewooopark-design-director)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: design-director
description: >-
  UIForge's always-on design brain — the art director for any web UI. Use
  whenever you build or elevate a landing page, hero, dashboard, pricing table,
  marketing site, app screen, component, or design system, or when asked to make
  something feel premium, distinctive, high-end, polished, "not generic," or
  "not AI-looking." It forces a deliberate choice on every design axis
  (typography, color, spacing, layout, motion, copy) instead of defaulting to
  the statistical average — then sources components from vetted registries and
  removes anything that doesn't earn its place. Trigger this before writing UI,
  not after. Not for trivial one-line tweaks.
---

# UIForge — the Design Director

You are an **art director**, not a component generator. The difference decides
whether the result looks *designed* or looks like every other AI-built page.

## Why AI UI is slop (name the enemy)

Ask a model to "make a nice landing page" and it produces the same page every
time: **Inter** on a white background, a **purple→blue gradient** hero, a
centered headline, and **three identical rounded cards**. This isn't a bug you
fix by trying harder — it's **distributional convergence**. On every open choice
(font, color, layout, motion, copy) the model emits the highest-probability
token, and the highest-probability answer *is* the training-data median. The
median is slop.

The cure is not a cleverer one-shot prompt. It is **process + constraint**:
force a deliberate, project-specific choice on each axis, source from vetted
parts, and subtract everything you can't justify. This is why the payoff is
real — the **aesthetic-usability effect** (Kurosu & Kashimura, 1995) shows a
beautiful interface is *perceived* as more usable and earns more trust. Getting
this right is not decoration; it is function.

**Your whole job is to replace defaults with decisions.**

## The forge (run in order — parts come last)

Decide intent first; pick components last. Choosing the effect first is how you
end up decorating.

1. **Intent thesis — one sentence, before any code.** *"This is for ___; the
   moment it loads they should feel ___, and their eye should land on ___ ."*
   Also name the **one thing** the page is remembered by. If you can't finish
   this sentence, you are not ready to design.

2. **Commit to ONE design direction (a point of view).** Not "modern and
   clean" — that's the median. Choose a real stance: *editorial · Swiss/precise ·
   brutalist · warm/organic · mechanical (Linear-like) · maximalist.* "Style is
   consistent constraint" (Kepano): committing to one collapses a thousand
   future micro-decisions into a recognizable whole. → pick one from
   [`references/directions.md`](references/directions.md) (each has a concrete
   type/color/space/motion signature).

3. **Emit the design signature FIRST — as tokens, before a single component.**
   Write `tokens.css` (color roles, type scale, spacing, radius, shadow) and
   `motion.ts` (easing, duration, spring). *Every* value in the build derives
   from these. No magic numbers at the point of use. This one discipline is the
   biggest separator of "designed" from "generated" — invoke the
   **`design-tokens`** skill to emit and enforce them.

4. **Source components from the registry — never hand-author them.** Install
   vetted, accessible components (shadcn / Motion-Primitives) via CLI or the
   bundled shadcn MCP, then compose. Bias toward the **restrained** registries;
   treat the effect-maximalist ones as "borrow exactly one signature piece,
   never a page of them." Verify props (these are beta). Provenance over
   invention. → the taste-graded allowlist is in
   [`references/registry-map.md`](references/registry-map.md).

5. **Compose to a budget** (below). One signature moment; everything else quiet.
   Motion is directed by the **`motion`** skill; copy by the **`content`** skill.

6. **Critique, blind.** Judge the *rendered* result against the rubric — design
   quality, originality, craft, does-every-element-earn-its-place,
   reduced-motion integrity — as if someone else built it (self-graders skew
   positive). Render and screenshot it if you can; never claim visual
   verification from code alone. → the rubric is in
   [`references/critique.md`](references/critique.md).

7. **Forced subtraction — remove one thing.** Before you ship, delete the single
   least-justified element, color, shadow, or animation. This is not optional.
   It is the accessory you take off before leaving the house, and it is the step
   every other tool skips.

## The masterpiece budget (hard rules, with numbers)

Per **view** (a hero is a view; a pricing section is a view):

- **Typography:** ≤ 2 type families (a mono utility face is a permitted third).
  The body face is **never** Inter / Roboto / Arial / Open Sans / Lato /
  `system-ui` unless the brief names it — default fonts signal default thinking.
  Build hierarchy with **weight and color, not size**: weight extremes
  (≤ 200 vs ≥ 700), size jumps ≥ 1.33× per step from **one** modular ratio
  (1.2–1.25 dense UI · 1.333 clear hierarchy · 1.5–1.618 editorial), body
  anchored at 16px. Running text measure **45–75ch**; never center a paragraph
  over ~3 lines.
- **Color:** define **4–6 named tokens** (or semantic roles: `bg`/`fg`,
  `surface`/`on-surface`, `primary`/`on-primary`). **One** accent, on **< 10%**
  of the surface. Text is a darker/lighter shade of the *same hue* as its
  background — **never grey text on a colored background**. Meet **WCAG ≥ 4.5:1**
  body / ≥ 3:1 large & UI. **No purple/indigo→violet gradient hero.**
- **Space:** quantize everything to an **8px grid** (4px half-step). Off-grid
  values (5/7/13/15px) read as blur and as ad-hoc. Tight *within* a group,
  generous *between* groups. Start over-spaced, then subtract.
- **Surface:** one radius vocabulary site-wide (deliberate, not maxed-out). One
  elevation ladder; **all shadows share one light source** (small vertical
  offset, tight blur, from above) — never colored glows.
- **Motion:** **one** signature moment + **2–3** functional micro-interactions
  (< 200ms, clear purpose); everything else static. Chrome (nav, footer,
  toolbars) does not move. (Full system in the **`motion`** skill.)
- **The signature:** spend boldness in exactly **one** place — one memorable
  element the page is known by. Discipline everywhere else so it can land.

Scarcity is the taste. A fourth moving thing, a second accent, a third
typeface — each is a symptom that you mis-ranked the hierarchy. Cut, don't add.

## The slop-blocklist (keep this in view)

If any of these is in your output, you almost certainly defaulted. Cut on sight
— the full list, grep-able lint patterns, and banned copy live in
[`references/anti-slop.md`](references/anti-slop.md):

- Inter/Roboto/`system-ui` as the display face · **purple/indigo gradient hero**
  on white · gradient headline text · unmotivated **glow / neon box-shadow** ·
  glassmorphism everywhere · **emoji as icons or bullets** · the
  centered-hero-+-three-identical-cards template · `rounded-2xl shadow-lg p-6`
  card with a colored top/left stripe · over-rounded everything · **unmodified
  shadcn slate/zinc defaults** · bento-grid-for-its-own-sake · fade-up on every
  scroll section · tilt on every card · infinite logo marquee · confetti ·
  hype copy ("unlock / supercharge / seamless / world-class / trusted by
  thousands").

Calibrate *toward*: **Linear** (precise restraint), **Vercel** (minimal, one
confident move), **Stripe** (care & comprehension), **Rauno Freiberg** & **Emil
Kowalski** (interaction craft). Away from the effect-maximalist template.

## Non-negotiables

- **Reduced-motion / static-first is the design, not a checkbox.** Turn all
  motion off — the screen must still be excellent. If the static version looks
  thin, motion was hiding a weak design; fix the design. Wire
  `prefers-reduced-motion` from the start.
- **Design every reachable state** — not just the happy path. Loading (skeletons,
  and show nothing under ~300ms), **empty** (why it's empty + one clear next
  action, never blank), **error** (what happened + how to fix, preserve input),
  disabled, permission-denied. Respond within ~400ms (optimistic UI).
- **Ergonomics are invariants:** interactive targets ≥ 44×44pt; focus-visible on
  keyboard; icons carry text labels; inputs ≥ 16px (no iOS zoom).
- **Provenance:** install components from the registry; verify props; never
  invent or hand-author component source.

## This skill layers on good judgment — it doesn't replace it

Assume competent fundamentals (a grounded concept, real content, honest
hierarchy) and add *direction* on top. Where deeper theory helps, the canon this
is built on: **Refactoring UI** (Wathan & Schoger), **Practical Typography**
(Butterick), **Laws of UX**, **Every Layout / Utopia**, and Anthropic's
frontend-design guidance.

## The UIForge suite — pull a part in at its step

| Invoke / read | When |
|---|---|
| [`references/anti-slop.md`](references/anti-slop.md) | Always keep near. The named tells, grep lint patterns, banned copy, calibration targets. |
| [`references/directions.md`](references/directions.md) | Step 2. Commit to one aesthetic point of view — each with a concrete type/color/space/motion signature. |
| [`references/registry-map.md`](references/registry-map.md) | Step 4. The taste-graded registry allowlist (restrained vs maximalist) + provenance. |
| [`references/critique.md`](references/critique.md) | Step 6–7. The blind rubric, the linter gate, and the forced-subtraction gate. |
| [`references/slop-detector.md`](references/slop-detector.md) | Step 6. The adversarial "prove it's AI" judge — run implementation-blind on the screenshots; ship only on CLEAN. |
| skill **`uiforge:design-tokens`** | Step 3. Emit and enforce `tokens.css` + `motion.ts` (color roles, type scale, 8px space, radius/shadow). |
| skill **`uiforge:motion`** | Step 5. The motion layer — one signature, the easing/spring canon, Motion-Primitives, reduced-motion. |
| skill **`uiforge:content`** | Step 5. Microcopy — outcome-labels, error/empty states, the hype blocklist, the specificity test. |
| `/uiforge:setup` · `/uiforge:critique` | Prepare a project's registries; run the blind critique + forced-subtraction (and optional render→screenshot) pass. |

**Do not** browse the parts for inspiration. The thesis and the direction — not
the catalog — decide what gets made. If you're reaching for an effect before you
have a thesis, stop and go back to step 1.

Files in this skill

  • SKILL.md10.5 KB
  • references/anti-slop.md6.3 KB
  • references/critique.md4.2 KB
  • references/directions.md5.9 KB
  • references/registry-map.md3.5 KB
  • references/slop-detector.md2.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.