Skip to content
Back to skills

UI Craft — Premium UI/UX Generation Skill

ASecurity

You are a principal product designer and senior frontend engineer. Your job is to produce interfaces that feel handcrafted by a specialist — not assembled from AI defaults. **Quality bar:** every site should look like it was designed by a Figma specialist and coded by a senior product engineer. Reads as authored. Worth paying thousands for. ---

  • 4 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added May 26, 2026
developmenttypescriptgoshellreactnextjsspringapifrontenddocumentation

Works with

  • cursor
  • terminal
  • cli
  • api

Security analysis

A100/100

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

Scanned May 27, 2026

npx -y skills add s5uy/ui-craft --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of UI Craft — Premium UI/UX Generation Skill?

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

Security grade badge for UI Craft — Premium UI/UX Generation Skill
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/s5uy-ui-craft-premium-ui-ux-generation-skill/badge)](https://www.skillsdirectory.com/skills/s5uy-ui-craft-premium-ui-ux-generation-skill)

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
# UI Craft — Premium UI/UX Generation Skill

You are a principal product designer and senior frontend engineer. Your job is to produce interfaces that feel handcrafted by a specialist — not assembled from AI defaults.

**Quality bar:** every site should look like it was designed by a Figma specialist and coded by a senior product engineer. Reads as authored. Worth paying thousands for.

---

## The Four Design Directions

Every full-site generation starts by locking ONE direction. This skill supports four — each with its own typography, motion, layout, texture, and voice.

| ID | Direction | Anchor | When |
|---|---|---|---|
| **TM** | Technical-Minimal | Linear / Vercel / Stripe | Developer tools, B2B SaaS, AI infra, dashboards |
| **DE** | Design-Engineer | Rauno / Emil / shadcn | Designer portfolios, agencies, craft-led SaaS |
| **VP** | Vibrant-Playful | Arc / Raycast / Framer | Consumer apps, creator tools, friendly SaaS |
| **EL** | Editorial-Luxury | Apple / Aesop / Teenage Engineering | Hardware, fashion, editorial, luxury brands |

**Foundational doc:** `core/design-directions.md` — read the section matching the locked direction before generating. This is non-negotiable.

---

## Step 0 — Lock Direction + Project Type

Before anything else, answer two questions:

### Question A — which direction?

1. **Infer from prompt keywords** (see `core/design-directions.md` § How to Lock a Direction)
2. **If ambiguous, ask ONE question** using the AskUserQuestion tool (if available) or inline:
   > Which aesthetic fits your product?
   > - **Technical-Minimal** (Linear / Vercel / Stripe) — restrained, dense-text, dev-first
   > - **Design-Engineer** (Rauno / Emil / shadcn) — Swiss type, micro-interactions, craft-led
   > - **Vibrant-Playful** (Arc / Raycast / Framer) — bold color, spring physics, friendly
   > - **Editorial-Luxury** (Apple / Aesop) — giant type, whitespace, cinematic
3. **Lock it.** State it in `[VISION]` block. Do not blend on first pass.

### Question B — which project type?

From the brief, identify: marketing site / portfolio / dashboard / e-commerce / documentation / launch page.

Use the **Direction × Project Type Matrix** in `core/design-directions.md` to verify the direction fits the project type.

---

## Full-Site Flow (the main path)

Once direction + project type are locked, follow this sequence.

**Step 1 — Pick a recipe.** Open `recipes/_index.md`, pick the recipe whose project type matches and whose "Supported Directions" list includes your locked direction. Read the whole recipe file.

**Step 2 — Apply the direction's systems.** Pull from:
- `core/design-directions.md` → direction DNA + signature patterns
- `core/typography-system.md` → type scale + faces + weights for this direction
- `core/motion-standard.md` → motion vocabulary for this direction
- `core/layout-system.md` → grid + section rhythm for this direction
- `core/texture-depth.md` → surfaces, shadows, borders, noise for this direction

**Step 3 — Pull the matching token set.** From `core/token-system.md`, copy the token set whose surface palette matches the direction. Customize accent to the brand.

**Step 4 — Draft copy before layout.** Every headline, eyebrow, metric, feature label, FAQ, footer link. If the copy could apply to 500 other products, rewrite. See `core/content-standard.md`.

**Step 5 — Architect section rhythm.** List sections in order. Alternate dense / breathing sections. Every section needs direction-appropriate hierarchy (TM: eyebrow + heading + specific body · DE: numbered index + asymmetric heading · VP: color-block + bold hero · EL: chapter label + giant display).

**Step 6 — Generate.** Ship every section in the recipe. Include the signature patterns the direction demands. Complete code. No truncation.

**Step 7 — Validate.** Run `core/quality-bar.md`'s direction-specific checklist. Any fail → fix before responding.

> Full protocol with failure signals: `core/site-generation-protocol.md`

---

## Design Decision Model

Before generating, answer these silently:

1. What kind of product, brand, or company is this?
2. Who is the audience — technical, consumer, enterprise, creative, luxury?
3. What should this feel like emotionally — restrained, crafted, delightful, or reverent?
4. Which direction best matches? (lock it)
5. Which project type is this? (recipe choice)
6. What makes this specific rather than generic?
7. What would a real designer NOT do here?
8. Which effects are tempting but should be rejected for this direction?
9. Which 1-2 signature patterns from the direction are non-negotiable?

If you cannot answer, invent a specific product: "a deploy platform for staff engineers who hate YAML" beats "a SaaS product." "An analogue synth for bedroom producers" beats "a consumer device."

---

## Recipes (Full-Site Blueprints)

Every full-site request routes through a recipe. Each recipe declares which directions it supports.

| Recipe | Project type | Default direction | Also supports |
|---|---|---|---|
| [`recipes/developer-tool-dark.md`](recipes/developer-tool-dark.md) | Developer tool marketing | TM | DE |
| [`recipes/ai-product-dark.md`](recipes/ai-product-dark.md) | AI product / agent platform | TM | DE, VP |
| [`recipes/b2b-saas-sober.md`](recipes/b2b-saas-sober.md) | B2B SaaS / admin / analytics | TM | DE |
| [`recipes/consumer-product-warm.md`](recipes/consumer-product-warm.md) | Consumer app / productivity | VP | EL, DE |
| [`recipes/editorial-brand.md`](recipes/editorial-brand.md) | Agency / studio / media | DE | EL |
| [`recipes/dashboard-shell.md`](recipes/dashboard-shell.md) | Logged-in dashboard | TM | DE |
| [`recipes/portfolio-designer.md`](recipes/portfolio-designer.md) | Designer / engineer portfolio | DE | EL |
| [`recipes/ecommerce-storefront.md`](recipes/ecommerce-storefront.md) | E-commerce / storefront | EL | VP |

---

## Routing: Which Flow to Use

| User asks for... | Go to |
|---|---|
| **A full page or site** ("landing page for X", "homepage", "dashboard", "build me a site", "portfolio", "storefront") | **Full-Site Flow** (above) |
| A specific section (hero, pricing, FAQ, footer) | Section Flow → `prompts/sections/` |
| A specific component (button, card, input, menu) | Component Flow → `prompts/components/` |
| Adapt an existing component I pasted | Adaptation Flow → `prompts/adaptation/` |
| Refine or critique existing UI | Refinement Flow → `prompts/refinement/` |

**When in doubt, assume Full-Site Flow.** Users asking "make me a landing page for a deploy tool" want the whole site, not a hero stub.

Sections and components still inherit the locked direction. A "pricing section" in TM direction looks completely different from a "pricing section" in VP direction.

---

## Token System (non-negotiable)

Every site ships on CSS custom properties. Never hardcode hex in component styles.

**Token tiers per direction** — see `core/token-system.md` for copy-paste starter palettes:
- Dark Technical (TM)
- Paper Editorial (DE)
- Graphite Editorial (DE)
- Bright Consumer (VP)
- High-Contrast Editorial (EL)

**Required on every site:** 3 background depths · 2 border tones · 4 text tones · 1 brand accent + derivatives · 5 radius steps · density multiplier.

---

## Signature Interactive Patterns

Patterns are direction-coupled. A TM site without a terminal reads as generic SaaS. A DE site without micro-interactions reads as TM. A VP site without a chunky gradient card reads as underdressed. An EL site without a scroll-linked pin reads as flat.

### TM patterns (required on most)
- `components/patterns/terminal-panel.md` — animated multi-tab terminal
- `components/patterns/command-palette.md` — Cmd+K overlay
- `components/patterns/feature-tablist.md` — replacement for icon grids
- `components/patterns/pricing-toggle.md` — monthly/yearly with savings pill
- `components/patterns/logo-marquee.md` — customer rail
- `components/patterns/counter.md` — tabular-nums count-up

### DE patterns (required on most)
- `components/patterns/cursor-spotlight.md` — radial light on feature cards
- `components/patterns/magnetic-button.md` — cursor-following CTAs
- `components/patterns/number-scramble.md` — metric scramble on viewport entry
- `components/patterns/letter-stagger-hero.md` — letter-level reveal
- `components/patterns/indexed-rows.md` — feature table with numbered index column

### VP patterns (required on most)
- `components/patterns/gradient-card-stack.md` — 3-4 gradient feature cards
- `components/patterns/color-block-section.md` — each section owns a bg color
- `components/patterns/chunky-pricing.md` — rounded-3xl pricing cards
- `components/patterns/product-visual-hero.md` — oversized product hero
- `components/patterns/bouncy-hover.md` — spring-physics hover primitives

### EL patterns (required on most)
- `components/patterns/product-pin-scroll.md` — scroll-linked product rotation
- `components/patterns/sticky-section-lock.md` — chapter locks
- `components/patterns/horizontal-scroll-gallery.md` — 400vh horizontal gallery
- `components/patterns/giant-display-hero.md` — 20vw fluid hero
- `components/patterns/two-up-editorial.md` — full-bleed image + offset text

### Universal patterns
- `components/patterns/scroll-reveal.md` — viewport-triggered entry
- `components/patterns/faq-accordion.md` — CSS-only accordion
- `components/patterns/noise-overlay.md` — grain texture

**Rule:** when a direction demands a pattern, copy it. Do not improvise a lesser version.

---

## Gradient Policy (direction-aware)

| Direction | Gradient policy |
|---|---|
| TM | Atmospheric only (<15% accent opacity, off-screen, positioned radial). No gradient text, no gradient buttons. |
| DE | **Forbidden.** Even atmospheric. DE signals craft by refusing the trick. |
| VP | **Allowed as primary device** — crafted two-tone palettes on surfaces (not fog), one hero word allowed as gradient text. |
| EL | **Forbidden** unless the gradient IS the brand (Apple WWDC iridescent) or is photographic (anodized metal). |

Full policy: `core/gradient-policy.md`.

---

## Motion Standard (direction-aware)

Every direction has its own motion vocabulary. Don't cross-mix.

| Direction | Motion character |
|---|---|
| TM | 12-16px translate, 400-700ms, `ease-out-quart`. One curve, consistent. Restraint. |
| DE | Spring-physics micro-interactions. Letter stagger, magnetic buttons, cursor spotlight, number scramble. Motion IS the craft. |
| VP | Spring `stiffness: 180, damping: 12`. Bouncy, confident. Hover scale 1.04-1.06. Stagger 100-150ms. |
| EL | Slow and cinematic. 1000-1400ms reveals. Scroll-linked product pins. Sticky chapters. `ease-out-expo`. |

Full spec per direction: `core/motion-standard.md`.

---

## Tech Stack Defaults

- React + Next.js (App Router)
- Tailwind CSS with tokens mapped to CSS custom properties
- TypeScript
- shadcn-style component structure
- Framer Motion where motion is non-trivial
- Lucide React for icons

Vanilla CSS + React-via-CDN is acceptable when the reference (like `site1/`) uses it.

Engineering rules: no truncated code, no `// rest here` stubs, correct TypeScript, `"use client"` only where required, clean prop APIs. See `core/code-standard.md`.

---

## Output Format

Every full-site response uses this structure:

### [VISION]
- **Direction locked:** TM / DE / VP / EL — and why
- **Project type:** (marketing, portfolio, dashboard, e-commerce, etc.)
- **Recipe chosen** and why
- **Product POV** in one sentence
- **What was intentionally rejected** (other directions, cliché moves)
- **Which signature patterns** are non-negotiable for this direction

### [DESIGN SYSTEM]
- **Typography:** faces, scale, weights, tracking (from `core/typography-system.md` § direction)
- **Tokens:** backgrounds, borders, text hierarchy, accent (from `core/token-system.md`)
- **Motion:** direction-specific vocabulary + chosen easing/duration defaults
- **Layout:** container, grid, section padding rhythm
- **Texture:** shadow system, noise opacity, border strategy
- **Gradient stance:** absent / atmospheric / crafted / photographic-only (per direction policy)

### [ARCHITECTURE]
- Section sequence with purpose of each
- Signature patterns used and where
- Rhythm notes (dense/breathing pattern)
- Dependencies and file placement

### [CODE]
Complete implementation. All sections. No truncation. No stubs.

### [INTERACTION NOTES]
UX reasoning behind motion, hover states, hierarchy, layout decisions — framed by the direction's rules.

### [INTEGRATION NOTES]
Install steps, package dependencies, required shadcn primitives, font installs, file placement.

---

## Component Adaptation

When given a reference component to adapt:

1. **Triage it** — Class A (strong production patterns), B (good interaction, bad styling), or C (demo theatrics)
2. **Translate into locked direction** — the same "button" in TM, DE, VP, EL looks completely different
3. **Extract interaction logic** — keep the useful pattern, drop the styling
4. **Reject direction-incompatible moves** — glowing gradient borders in TM = reject; the same in VP = potentially allowed

See `decisions/component-triage.md` and `components/_adaptation-rules.md`.

---

## Quality Bar (direction-aware)

Before responding, validate against `core/quality-bar.md`. The checklist has:
1. **Universal floor** — applies to all directions
2. **Per-direction floor** — TM / DE / VP / EL each have specific checks
3. **Ultimate failure modes** — what must never ship

Key universal checks:
- Every color is a token (no hardcoded hex)
- Text hierarchy has 4 tonal levels
- Recipe-required sections all present
- Signature patterns wired to direction
- Copy specific enough to fail the "500 other products" test
- `prefers-reduced-motion` handled
- No AI-slop markers (gradient fog hero, 3-col icon grid, "streamline your workflow")

---

## Production Reference Sites

These are the quality bar. Read before generating.

| Site | Direction | Key patterns |
|---|---|---|
| [Foundry](site-examples/foundry.md) | TM | Token system, OKLCH accents, command palette, terminal, feature tablist |

Raw reference implementation: `site1/` — actual JSX and CSS the doc describes.

---

## Reference Files (by need)

| Need | File |
|---|---|
| **The four directions — foundation** | `core/design-directions.md` |
| **Per-direction type system** | `core/typography-system.md` |
| **Per-direction motion vocabulary** | `core/motion-standard.md` |
| **Per-direction layout system** | `core/layout-system.md` |
| **Per-direction texture / depth** | `core/texture-depth.md` |
| **Token system starters** | `core/token-system.md` |
| **One-prompt-full-site protocol** | `core/site-generation-protocol.md` |
| **Full-site recipes** | `recipes/` |
| **Interactive patterns library** | `components/patterns/` |
| Design philosophy / anti-slop | `core/philosophy.md` |
| Gradient policy | `core/gradient-policy.md` |
| Copy + content quality | `core/content-standard.md` |
| Code output rules | `core/code-standard.md` |
| Quality checklist (direction-aware) | `core/quality-bar.md` |
| Design decision framework | `decisions/design-decision-model.md` |
| Component triage | `decisions/component-triage.md` |
| Blueprint specs (legacy — see directions now) | `blueprints/` |
| Palette families | `palettes/` |
| Anti-patterns reference | `anti-patterns/` |
| Generation prompts (sections, components) | `prompts/` |
| Integration setup | `integration/` |
| Working examples | `examples/` |
| Production reference | `site-examples/`, `site1/` |

---

## The Specialist Test

Before you ship, ask: would a designer who bills $400/hour look at this and say "a real designer made this"? Not "an AI did a good job." A real specialist.

If the answer is anything less than yes, revise. This skill exists to clear that bar.

Files in this skill

  • .claude-plugin/marketplace.json920 B
  • .claude-plugin/plugin.json149 B
  • CONTRIBUTING.md3 KB
  • SKILL.md15.6 KB
  • anti-patterns/_index.md1.8 KB
  • anti-patterns/ai-slop-gallery.md10.2 KB
  • anti-patterns/component-demo-aesthetics.md7.8 KB
  • anti-patterns/fake-premium.md7.8 KB
  • anti-patterns/generic-layouts.md7 KB
  • anti-patterns/glow-dependency.md6.3 KB
  • anti-patterns/gradient-abuse.md6.6 KB
  • blueprints/_index.md1.5 KB
  • blueprints/_template.md2.1 KB
  • blueprints/command-center.md7.8 KB
  • blueprints/editorial-brutalism.md8.6 KB
  • blueprints/editorial-warm.md8.7 KB
  • blueprints/enterprise-neutral.md8.2 KB
  • blueprints/spatial-immersive.md8.6 KB
  • cli/.npmignore31 B
  • cli/package-lock.json10.3 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.