apply-aesthetic — Claude Code skill: design direction as tokens
Picks a visual direction — an archetype or a named design system — and resolves it into your project's tokens. Useful when you want a specific look, not whatever the agent improvises.
npx skills add plugin87/ux-ui-agent-skills --skill apply-aesthetic -a claude-codeWhat apply-aesthetic does
The skill starts with a brief: industry, audience, tone, one mood adjective, motion depth, and the layout-family sequence. That step comes before any tokens, because generating first and deciding later produces slop.
Then it picks from aesthetic-systems.md. That means an archetype — high-end agency, editorial minimal, brutalist, soft-SaaS, dark-tech — or one of 2,144 named systems. You browse with python3 ${CLAUDE_SKILL_DIR}/../../../scripts/design_systems.py list and fetch the spec with node ${CLAUDE_SKILL_DIR}/../../../scripts/library.mjs get <name>, which checks it against a shipped sha256. The path to DESIGN.md is printed; the file supplies color roles, type, spacing, radius, shadow and motion, all remapped onto semantic.* through the Library Contract.
Every mapped color pair goes through contrast.py. A brand value that fails gets adjusted, since taste does not override accessibility. One catch: npx skills add installs the skill folder alone, with no kit files. The startup check then reports KIT_MISSING and the steps cannot run until you use npx ux-ui-agent-skills init or the plugin install.
What it helps with
- turn a described mood into concrete design tokens
- borrow palette and type from a named design system
- choose a layout archetype for a given audience and field
- re-check contrast after remapping brand colors
- add motion without breaking accessibility
Example prompts for the agent
- Give the landing page a linear-app feel and remap the tokens into our semantic layer
- I want a high-end agency look for a studio site, start with the brief
- Pull the stripe system and check contrast on every pair
How to install apply-aesthetic
1Skills CLI (Vercel)
npx skills add plugin87/ux-ui-agent-skills --skill apply-aesthetic -a claude-code2Manually: put the files in place
~/.claude/skills/apply-aesthetic/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/apply-aesthetic/
1Skills CLI (Vercel)
npx skills add plugin87/ux-ui-agent-skills --skill apply-aesthetic -a codex2Manually: put the files in place
.agents/skills/apply-aesthetic/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add plugin87/ux-ui-agent-skills --skill apply-aesthetic -a cursor2Manually: put the files in place
.cursor/skills/apply-aesthetic/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install plugin87/ux-ui-agent-skills apply-aesthetic2Manually: put the files in place
.github/skills/apply-aesthetic/SKILL.md1Skills CLI (Vercel)
npx skills add plugin87/ux-ui-agent-skills --skill apply-aesthetic -a gemini-cli2Platform CLI
gemini skills install https://github.com/plugin87/ux-ui-agent-skills --path .claude/skills/apply-aestheticManually: put the files in place
.devin/skills/apply-aesthetic/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add plugin87/ux-ui-agent-skills --skill apply-aesthetic -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about apply-aesthetic
How do I install apply-aesthetic in Claude Code?
Run npx skills add plugin87/ux-ui-agent-skills --skill apply-aesthetic -a claude-code. The skill file then sits at ~/.claude/skills/apply-aesthetic/SKILL.md.
What does apply-aesthetic do?
It derives a visual direction from a brief and maps it onto tokens: color roles, typography, spacing, radius, shadow, motion. Contrast of the resulting pairs is verified at the end.
Why does the skill stop with KIT_MISSING?
npx skills add ships only the skill folder. You need the kit files from npx ux-ui-agent-skills init or the plugin install, otherwise there are no tokens or specs to read.
Source text
SKILL.md · MIT
---
name: apply-aesthetic
description: Apply a visual direction, an archetype (high-end agency, editorial minimal, brutalist, soft-SaaS, dark-tech) or one of 2,144 named design systems (apple, linear-app, stripe, vercel, notion, material, shadcn, spotify, tesla…), by resolving it into the token system. Use when the user wants a specific look/vibe/brand feel, or asks to make a design feel premium/expensive/non-generic.
---
# Skill: Apply Aesthetic
> **Step 0: is the kit here?** This skill reads files from the kit. Check once:
> `ls ${CLAUDE_SKILL_DIR}/../../../tokens >/dev/null 2>&1 && echo KIT_OK || echo KIT_MISSING`
> On `KIT_MISSING` only the skill folders were installed, which is what
> `npx skills add` does. Say so plainly, point the user at
> `npx ux-ui-agent-skills init` or the plugin install, and stop. Do not guess the
> contents of a file you could not open.
Choose and apply a design direction without breaking accessibility.
## Steps
1. **Brief Inference first (mandatory).** Before any tokens, name it: industry/domain, audience & tone, the one mood adjective the result must earn, motion depth, and the layout-family sequence (`${CLAUDE_SKILL_DIR}/../../../taste/design-taste.md` → Brief Inference + Variance Mandate). Generating before deciding = slop.
2. Pick a direction in `${CLAUDE_SKILL_DIR}/../../../taste/aesthetic-systems.md`:
- An **archetype** (recipe mapped to our tokens), or
- A **named library system**: browse with `python3 ${CLAUDE_SKILL_DIR}/../../../scripts/design_systems.py list` (or `search <term>` / `show <name>`). Then run `node ${CLAUDE_SKILL_DIR}/../../../scripts/library.mjs get <name>` and read the `DESIGN.md` at the path it prints. An npm install carries the index and no spec, so this is what fetches it (checked against the sha256 the kit ships); where the spec is already on disk it fetches nothing. If it prints `refused`, say the spec could not be fetched and pick from an archetype instead; never write a spec from memory.
3. Apply the **Library Contract** (in `aesthetic-systems.md`): re-point `semantic.*` tokens to the chosen system's color roles; map typography/spacing/radius/shadow/motion to `${CLAUDE_SKILL_DIR}/../../../tokens/*.json`.
4. **Verify contrast** of every mapped color pair (`${CLAUDE_SKILL_DIR}/../../../scripts/contrast.py` / `a11y-audit`). A brand value that fails must be adjusted. Taste never overrides POUR.
5. Add motion per `${CLAUDE_SKILL_DIR}/../../../taste/motion-choreography.md`; run the pre-flight aesthetic check in `design-taste.md`.
## Output
Updated/overridden semantic tokens + notes on type/space/motion, then render via `design-code`. Confirm the result passes both the aesthetic check and accessibility.
© plugin87 · MIT · plugin87/ux-ui-agent-skills