Skip to content
Development
Skill

/design-director

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,

From plugin
uiforge
74 skills6 commands1 MCP
Install
$ npx -y skills add TaewoooPark/UIForge --skill design-director --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/design-director

Context preview

The summary Claude sees to decide when to auto-load this skill.

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,

SKILL.md

design-director.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 s

Read more
Ships withuiforge

Forge masterpiece UI, not AI slop — a design art-director plugin for Claude Code. Forces a deliberate choice on every design axis (type, color, space, motion), sources components from vetted registries, and gates output on forced-subtraction + critique.

Get the whole plugin
Stats
7
Stars
1
Forks
Maintained
Maintenance
JavaScript
Language
MIT
License
1mo ago
Last commit
2mo ago
Created

Repo: TaewoooPark/UIForge

Other skills on uiforge.