Design Master — Unified Design Intelligence
This skill governs all design work. Use it whenever producing any visual artifact.
It detects the artifact type, applies the correct approach, and enforces quality standards
before delivery.
Trigger Conditions
Use this skill when the user asks to:
- Build a web page, landing page, or website section
- Create a dashboard, admin panel, or UI component
- Make a poster, visual, graphic, or presentation
- Build an interactive artifact or React component
- "Make it look good / beautiful / professional"
- Design anything — if it has visual output, this skill applies
Step 0: Context — Is there an existing UX/UI?
Before any other step — ask one question:
"Это новый проект или в нём уже есть существующий UX/UI?
Если есть — опиши коротко: что сейчас есть, что тебя не устраивает
концептуально (не визуально)?"
If project is new → proceed to Step 1 as normal.
If UX/UI already exists → do NOT go to Step 1 immediately.
First perform an audit and propose concepts:
0a. Audit the existing UX
Ask the user to describe (or look in the project):
- What is the current navigation paradigm? (sidebar / tabs / wizard / flat list)
- What is the user's mental model? (what they "do" in the app)
- What are the key user flows? (3–5 of them)
- What works poorly — not visually, but behaviorally?
0b. Propose 2–3 conceptually different directions
Each direction is a different UX paradigm, not a different color.
Example format:
Направление A: [Название]
Парадигма: [одно предложение о том, как пользователь взаимодействует]
Навигация: [как организована]
Ключевое отличие от текущего: [что меняется концептуально]
Направление B: [Название]
...
Направление C: [Название]
...
Mandatory structure of three directions:
- Direction A — Evolution: same paradigm, improved. Fixes known issues without changing the model.
- Direction B — Alternative: different navigation model or information organization principle.
- Direction C — Destructive: ask "what if we remove [the main entity of the current UX]?"
Examples: no sidebar → command palette; no cards → timeline; no tables → conversational UI.
Direction C must make the user either accept the challenge or consciously explain why not.
Wait for the user's choice. Only after they choose → proceed to Step 1.
Rules:
- "Make the same thing prettier" is not a valid direction if the user asked for a redesign from scratch.
- Direction C is mandatory. If the user rejects it — record the reason in one line before continuing.
Step 1: Artifact Type Detection
Before doing anything, identify the artifact type:
| Keywords / Context |
Type |
Approach |
| landing page, website, hero, about, pricing |
Web / Landing |
Bold aesthetic + CSS variables |
| dashboard, admin, monitor, KPI, table, stats |
Dashboard / UI |
Severity system + component library |
| poster, visual, graphic, infographic, art, illustration |
Poster / Graphic |
Philosophy-first + 90% visual |
| React, shadcn, interactive, component, app |
Interactive |
React 18 + Tailwind + shadcn/ui |
| Ambiguous |
Default to Web / Landing approach |
|
Step 1b: Style Direction — Ask Before Generating
If the user hasn't specified a style — show the menu and wait for a choice.
Never choose a style independently as a "safe default".
Web / Landing:
Какой характер у дизайна?
A Brutally minimal · B Editorial/magazine · C Retro-futuristic
D Organic/natural · E Luxury/refined · F Maximalist chaos
или опиши ключевое слово / референс
Dashboard / UI:
Тема:
A Dark & sharp (синевато-тёмный) · B Light & clean (белый, минимал)
C Vibrant (яркие акценты) · D Terminal (зелёный/чёрный)
Poster / Graphic:
Mood:
A High contrast · B Pastel/soft · C Psychedelic/glitch · D Geometric
If the user provided a reference or style — skip this step, use their description directly.
Step 2: Pre-Flight Design System (all types except Poster)
Before writing any code, generate the design system:
py ~/.claude/skills/ui-ux-pro-max/scripts/search.py "<product_type> <industry> <keywords>" --design-system -p "Project Name"
Extract from user request:
- Product type: SaaS, dashboard, landing page, e-commerce, portfolio, etc.
- Industry: fintech, healthcare, gaming, beauty, etc.
- Style keywords: minimal, playful, dark mode, elegant, etc.
For multi-page projects, persist the design system:
py ~/.claude/skills/ui-ux-pro-max/scripts/search.py "<query>" --design-system --persist -p "Project Name"
If Python is unavailable — skip this step and apply the rules in Step 3 manually.
Step 3: Type-Specific Approach
A. Web / Landing Page
Aesthetic Direction — choose ONE and commit:
brutally minimal · maximalist chaos · retro-futuristic · organic/natural · luxury/refined
· editorial/magazine · brutalist/raw · art deco/geometric · industrial/utilitarian · soft/pastel
Rules:
- NEVER use Inter, Arial, Roboto, or system fonts as primary — pick a distinctive display font
- NEVER use purple gradients on white backgrounds
- NEVER produce cookie-cutter centered layouts — use asymmetry, diagonal flow, overlap
- Use CSS variables for ALL colors and spacing (never hardcoded hex in component code)
- One bold typographic statement per section (large display, tight tracking, dramatic weight)
- Backgrounds: gradient meshes, noise textures, geometric patterns, grain overlays — not solid white/grey
- Animations: staggered page load reveals, scroll-triggered entrances, hover states that surprise
- Animation timing: 150–300ms micro-interactions, transform/opacity only (never width/height)
Structure:
:root {
--bg: ...; /* page background */
--surface: ...; /* card backgrounds */
--text: ...; /* primary text */
--muted: ...; /* secondary text */
--accent: ...; /* primary brand color */
--accent2: ...; /* secondary accent */
--r: ...; /* border radius */
}
B. Dashboard / Admin Panel / UI Components
Rules:
- Use the full severity color system consistently (see CSS below)
- Dark OR light theme — never unintentional mixing
- ALL icons: SVG only (Heroicons or Lucide) — zero emoji in UI
- KPI cards always have top-border severity indicator
- Every clickable element has
cursor-pointer
- Hover states: color/shadow transitions only, no layout shift
- Tables: left border by severity on rows
Dark theme CSS variables (copy verbatim):
:root {
--bg: #07090f;
--surface: #0d1117;
--s2: #131c27;
--s3: #18253a;
--border: #1e2d3d;
--border2: #2a3f57;
--text: #dce8f6;
--muted: #4e6278;
--muted2: #637b95;
--accent: #38bdf8;
--green: #34d399;
--crit: #f43f5e;
--high: #fb923c;
--med: #fbbf24;
--low: #60a5fa;
--r: 5px;
--r2: 8px;
}
Component vocabulary (from ui-component-library):
| Class |
Component |
.kpi / .kpi-row |
Stat cards with top color strip |
.s-ring (SVG) |
Score ring: r=13, C=82, rotate(-90deg) |
.badge-SEVERITY |
Severity pill (CRITICAL/HIGH/MEDIUM/LOW) |
.sig-col / .sig-row |
Horizontal signal bars (width ∝ score%) |
.bchart / .brow |
Bar chart: label + track + fill + stat |
.panel / .panel-hdr |
Surface card with uppercase header |
.sec-hdr |
Section header with right-extending decorative line |
For full component CSS + HTML, reference ~/.claude/skills/ui-component-library/SKILL.md.
C. Poster / Graphic / Visual
Rules:
- Philosophy first — write 4–6 sentences about the aesthetic vision BEFORE any code.
What emotion does it evoke? What composition principle guides it? What is the one idea?
- 90% visual, 10% text — text is a sparse visual element, not explanatory prose
- Output as self-contained HTML artifact (inline CSS, SVG, or Canvas API)
- Composition: asymmetric balance, golden ratio or rule of thirds, deliberate negative space
- Color: 2–3 colors maximum, one dominant, one accent, one neutral
- The work should feel as if it took countless hours — refinement over addition
- Embed subtle conceptual references — informed viewers intuit meaning, others see beauty
Template structure:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body { width: 800px; height: 600px; overflow: hidden; background: ...; }
/* All styles inline — no external dependencies */
</style>
</head>
<body>
<!-- 90% visual elements: SVG, canvas, geometric shapes, typography as art -->
</body>
</html>
D. Interactive Artifact (React / shadcn / Tailwind)
Stack: React 18 + TypeScript + Tailwind CSS 3 + shadcn/ui
Rules:
- NEVER: excessive centered layouts, purple gradients, uniform rounded corners, Inter font
- shadcn/ui components: Button, Card, Dialog, Select, Input, Badge, Tabs, etc.
- Self-contained single HTML file (bundle with Vite/Parcel if needed)
- For generative/parametric work: seed-based randomness for reproducibility
- Include interactive parameter controls (sliders, toggles) for generative artifacts
- P5.js for algorithmic/generative art — seed navigation (prev/next/random/jump)
Anti-patterns to avoid:
❌ <div className="flex flex-col items-center justify-center min-h-screen">
❌ gradient-to-r from-purple-500 to-blue-500
❌ rounded-full on every element
❌ font-family: Inter everywhere
D2. Library Palette — When to Use What
animate-ui (animated components, React + Tailwind + Motion)
Use when: wow-effects needed, animated backgrounds, live buttons, micro-interactions.
Install via Shadcn CLI:
npx shadcn@latest add "https://animate-ui.com/r/<component-name>"
Components by category:
| Category |
Components |
| Buttons |
button, copy-button, flip-button, liquid-button, ripple-button, icon-button, github-stars-button, theme-toggler-button |
| Backgrounds |
bubble, fireworks, gradient, gravity-stars, hexagon, hole, stars |
| Animate UI |
avatar-group, code, code-tabs, cursor, tabs, tooltip, github-stars-wheel |
| Radix UI |
accordion, alert-dialog, checkbox, dialog, dropdown-menu, files, hover-card, popover, progress, radio-group, sheet, sidebar, switch, tabs, toggle, tooltip |
| Community |
flip-card, motion-carousel, notification-list, pin-list, playful-todolist, radial-menu, radial-nav, share-button, user-presence-avatar |
Rules:
- Always check
prefers-reduced-motion — animate-ui doesn't do this automatically
- Liquid/Ripple buttons — only for primary CTA, not all buttons
- Gravity Stars / Fireworks backgrounds — only for hero sections, not under content
heroui (production UI library, 50+ components, npm)
Use when: production-ready component library needed with accessibility (React Aria), forms, tables, navigation.
Install:
npm install @heroui/react
# or individual component:
npx heroui-cli@latest add <component-name>
Provider (required at root):
import { HeroUIProvider } from "@heroui/react";
export default function App() {
return <HeroUIProvider><YourApp /></HeroUIProvider>;
}
Components by category:
| Category |
Components |
| Form |
Input, Select, Checkbox, Radio, Switch, Textarea, Autocomplete, Slider, Calendar, DatePicker |
| Navigation |
Navbar, Breadcrumbs, Tabs, Pagination, Link |
| Feedback |
Alert, Badge, Spinner, Progress, Toast |
| Overlays |
Modal, Popover, Dropdown, Tooltip, Drawer |
| Data |
Table, Card, Avatar, Image, User, Chip |
import { Button } from "@heroui/react";
// variants: solid | bordered | light | flat | faded | shadow | ghost
// colors: default | primary | secondary | success | warning | danger
<Button color="primary" variant="shadow">Action</Button>
Rules:
- HeroUI has its own theme — don't mix with Tailwind custom colors without configuration
- For dark mode: add
dark class to <html> — HeroUI picks it up automatically
- Don't use together with shadcn/ui on the same components — style conflicts
Library selection for Interactive tasks:
Need animations / wow-effects / live backgrounds?
├── Yes → animate-ui (+ shadcn/ui for base components)
└── No → need full product UI with forms and tables?
├── Yes → heroui
└── No → shadcn/ui (default)
Universal Design Rules (All Types)
Typography
- Body: line-height 1.5–1.75, max 65–75 characters per line
- NEVER use emoji as icons — SVG icons only (Heroicons, Lucide, Simple Icons)
- Font pairing: distinctive display font + refined body font
- Minimum 16px body text on mobile
Accessibility (CRITICAL)
- Color contrast minimum 4.5:1 for normal text
- All interactive elements: visible focus ring
- Icon-only buttons:
aria-label required
- All images:
alt text
- Form inputs:
<label for=""> required
prefers-reduced-motion must be respected
Touch & Interaction (CRITICAL)
- Minimum 44×44px touch targets
cursor-pointer on ALL clickable elements
- Button disabled during async operations
- Error messages appear near the problem
Layout
viewport-meta: width=device-width, initial-scale=1
- No horizontal scroll at any breakpoint
- Responsive at: 375px / 768px / 1024px / 1440px
- Fixed navbars: add
top-4 left-4 right-4 spacing, account for height in content
Icons
- Icon set: Heroicons or Lucide — consistent across project
- Brand logos: verify from Simple Icons before using
- Fixed viewBox (24×24) with consistent sizing
Quality Gate — MANDATORY before delivery
Run this checklist internally before showing the result. If ANY item fails, fix it first.
DESIGN QUALITY GATE
═══════════════════════════════════════════════════════
[ ] 1. Typography distinctive?
→ Not Inter/Arial/Roboto without customization
→ Has a clear typographic personality
[ ] 2. Would a designer be impressed?
→ If answer is "probably not" — redesign the boldest element
→ One thing should be truly memorable
[ ] 3. No purple gradient on white?
→ If yes — replace with something intentional
[ ] 4. Color contrast ≥ 4.5:1?
→ Check primary text against its background
→ Check muted text too (often fails)
[ ] 5. Hover states without layout shift?
→ cursor-pointer on every clickable element
→ Transitions use color/opacity, not width/height
[ ] 6. Responsive at 375px, 768px, 1440px?
→ No horizontal scroll
→ Text readable without zooming
[ ] 7. SVG icons, zero emoji?
→ Search output for emoji characters
→ Replace all with SVG equivalents
═══════════════════════════════════════════════════════
ALL 7 MUST PASS. Do not deliver until they do.
Integration with Sub-Skills
| When |
Delegate to |
| Need full design system generated via Python |
ui-ux-pro-max (run search.py) |
| Building dark dashboard with components |
ui-component-library (copy component CSS/HTML) |
| Need brand color extraction from PDF/PNG |
extract-brand-palette |
| User explicitly requests detailed UX audit |
ui-ux-pro-max (full checklist mode) |
| Need animated components / wow backgrounds |
animate-ui (Shadcn CLI install) |
| Need production UI kit with 50+ components |
heroui (npm install @heroui/react) |
Quick Decision Tree
User wants something visual?
├── Dashboard / data / KPI / admin?
│ └── → Approach B (Dashboard) + ui-component-library
├── Poster / graphic / visual art?
│ └── → Approach C (Philosophy-first)
├── React / interactive / generative?
│ └── → Approach D (React/shadcn)
└── Everything else (web, landing, page)?
└── → Approach A (Web/Landing) + pick bold aesthetic direction
Every path ends with: Quality Gate (all 7 checks).
Delivery
File structure
When creating a Web / Landing artifact — always save as <project-slug>/index.html,
not a flat file in the root directory. Create the folder first.
mkdir <project-slug> && write to <project-slug>/index.html
Preview (Windows + VS Code Remote SSH)
cd <project-slug> && py -m http.server 3000
Use py (Python Launcher) — not python or python3.
On Windows, python may resolve to the Microsoft Store stub (exit code 49).
VS Code Remote SSH: port 3000 appears in the Ports tab automatically →
click the globe icon or open http://localhost:3000 in your browser.
1---2name: design-master3description: Unified design mega-skill for all artifact types: web pages, landing pages, dashboards, UI components, posters, graphics, and interactive artifacts. Combines best practices from frontend-design, ui-ux-pro-max, canvas-design, and web-artifacts-builder with a built-in quality gate.4---56# Design Master — Unified Design Intelligence78This skill governs all design work. Use it whenever producing any visual artifact.9It detects the artifact type, applies the correct approach, and enforces quality standards10before delivery.1112---1314## Trigger Conditions1516Use this skill when the user asks to:17- Build a web page, landing page, or website section18- Create a dashboard, admin panel, or UI component19- Make a poster, visual, graphic, or presentation20- Build an interactive artifact or React component21- "Make it look good / beautiful / professional"22- Design anything — if it has visual output, this skill applies2324---2526## Step 0: Context — Is there an existing UX/UI?2728Before any other step — ask one question:2930> "Это новый проект или в нём уже есть существующий UX/UI?31> Если есть — опиши коротко: что сейчас есть, что тебя не устраивает32> концептуально (не визуально)?"3334**If project is new** → proceed to Step 1 as normal.3536**If UX/UI already exists** → do NOT go to Step 1 immediately.37First perform an audit and propose concepts:3839### 0a. Audit the existing UX4041Ask the user to describe (or look in the project):42- What is the current navigation paradigm? (sidebar / tabs / wizard / flat list)43- What is the user's mental model? (what they "do" in the app)44- What are the key user flows? (3–5 of them)45- What works poorly — not visually, but behaviorally?4647### 0b. Propose 2–3 conceptually different directions4849Each direction is a different UX paradigm, not a different color.5051Example format:52> **Направление A: [Название]**53> Парадигма: [одно предложение о том, как пользователь взаимодействует]54> Навигация: [как организована]55> Ключевое отличие от текущего: [что меняется концептуально]56>57> **Направление B: [Название]**58> ...59>60> **Направление C: [Название]**61> ...6263**Mandatory structure of three directions:**64- **Direction A — Evolution:** same paradigm, improved. Fixes known issues without changing the model.65- **Direction B — Alternative:** different navigation model or information organization principle.66- **Direction C — Destructive:** ask "what if we remove [the main entity of the current UX]?"67 Examples: no sidebar → command palette; no cards → timeline; no tables → conversational UI.68 Direction C must make the user either accept the challenge or consciously explain why not.6970Wait for the user's choice. Only after they choose → proceed to Step 1.7172**Rules:**73- "Make the same thing prettier" is not a valid direction if the user asked for a redesign from scratch.74- Direction C is mandatory. If the user rejects it — record the reason in one line before continuing.7576---7778## Step 1: Artifact Type Detection7980Before doing anything, identify the artifact type:8182| Keywords / Context | Type | Approach |83|---|---|---|84| landing page, website, hero, about, pricing | **Web / Landing** | Bold aesthetic + CSS variables |85| dashboard, admin, monitor, KPI, table, stats | **Dashboard / UI** | Severity system + component library |86| poster, visual, graphic, infographic, art, illustration | **Poster / Graphic** | Philosophy-first + 90% visual |87| React, shadcn, interactive, component, app | **Interactive** | React 18 + Tailwind + shadcn/ui |88| Ambiguous | Default to **Web / Landing** approach |8990---9192## Step 1b: Style Direction — Ask Before Generating9394**If the user hasn't specified a style** — show the menu and wait for a choice.95Never choose a style independently as a "safe default".9697**Web / Landing:**98> Какой характер у дизайна?99> `A` Brutally minimal · `B` Editorial/magazine · `C` Retro-futuristic100> `D` Organic/natural · `E` Luxury/refined · `F` Maximalist chaos101> или опиши ключевое слово / референс102103**Dashboard / UI:**104> Тема:105> `A` Dark & sharp (синевато-тёмный) · `B` Light & clean (белый, минимал)106> `C` Vibrant (яркие акценты) · `D` Terminal (зелёный/чёрный)107108**Poster / Graphic:**109> Mood:110> `A` High contrast · `B` Pastel/soft · `C` Psychedelic/glitch · `D` Geometric111112If the user provided a reference or style — skip this step, use their description directly.113114---115116## Step 2: Pre-Flight Design System (all types except Poster)117118Before writing any code, generate the design system:119120```bash121py ~/.claude/skills/ui-ux-pro-max/scripts/search.py "<product_type> <industry> <keywords>" --design-system -p "Project Name"122```123124Extract from user request:125- **Product type**: SaaS, dashboard, landing page, e-commerce, portfolio, etc.126- **Industry**: fintech, healthcare, gaming, beauty, etc.127- **Style keywords**: minimal, playful, dark mode, elegant, etc.128129For multi-page projects, persist the design system:130```bash131py ~/.claude/skills/ui-ux-pro-max/scripts/search.py "<query>" --design-system --persist -p "Project Name"132```133134**If Python is unavailable** — skip this step and apply the rules in Step 3 manually.135136---137138## Step 3: Type-Specific Approach139140### A. Web / Landing Page141142**Aesthetic Direction — choose ONE and commit:**143brutally minimal · maximalist chaos · retro-futuristic · organic/natural · luxury/refined144· editorial/magazine · brutalist/raw · art deco/geometric · industrial/utilitarian · soft/pastel145146**Rules:**147- NEVER use Inter, Arial, Roboto, or system fonts as primary — pick a distinctive display font148- NEVER use purple gradients on white backgrounds149- NEVER produce cookie-cutter centered layouts — use asymmetry, diagonal flow, overlap150- Use CSS variables for ALL colors and spacing (never hardcoded hex in component code)151- One bold typographic statement per section (large display, tight tracking, dramatic weight)152- Backgrounds: gradient meshes, noise textures, geometric patterns, grain overlays — not solid white/grey153- Animations: staggered page load reveals, scroll-triggered entrances, hover states that surprise154- Animation timing: 150–300ms micro-interactions, transform/opacity only (never width/height)155156**Structure:**157```css158:root {159 --bg: ...; /* page background */160 --surface: ...; /* card backgrounds */161 --text: ...; /* primary text */162 --muted: ...; /* secondary text */163 --accent: ...; /* primary brand color */164 --accent2: ...; /* secondary accent */165 --r: ...; /* border radius */166}167```168169---170171### B. Dashboard / Admin Panel / UI Components172173**Rules:**174- Use the full severity color system consistently (see CSS below)175- Dark OR light theme — never unintentional mixing176- ALL icons: SVG only (Heroicons or Lucide) — zero emoji in UI177- KPI cards always have top-border severity indicator178- Every clickable element has `cursor-pointer`179- Hover states: color/shadow transitions only, no layout shift180- Tables: left border by severity on rows181182**Dark theme CSS variables (copy verbatim):**183```css184:root {185 --bg: #07090f;186 --surface: #0d1117;187 --s2: #131c27;188 --s3: #18253a;189 --border: #1e2d3d;190 --border2: #2a3f57;191 --text: #dce8f6;192 --muted: #4e6278;193 --muted2: #637b95;194 --accent: #38bdf8;195 --green: #34d399;196 --crit: #f43f5e;197 --high: #fb923c;198 --med: #fbbf24;199 --low: #60a5fa;200 --r: 5px;201 --r2: 8px;202}203```204205**Component vocabulary** (from `ui-component-library`):206207| Class | Component |208|---|---|209| `.kpi` / `.kpi-row` | Stat cards with top color strip |210| `.s-ring` (SVG) | Score ring: `r=13`, C=82, rotate(-90deg) |211| `.badge-SEVERITY` | Severity pill (CRITICAL/HIGH/MEDIUM/LOW) |212| `.sig-col` / `.sig-row` | Horizontal signal bars (width ∝ score%) |213| `.bchart` / `.brow` | Bar chart: label + track + fill + stat |214| `.panel` / `.panel-hdr` | Surface card with uppercase header |215| `.sec-hdr` | Section header with right-extending decorative line |216217For full component CSS + HTML, reference `~/.claude/skills/ui-component-library/SKILL.md`.218219---220221### C. Poster / Graphic / Visual222223**Rules:**2241. **Philosophy first** — write 4–6 sentences about the aesthetic vision BEFORE any code.225 What emotion does it evoke? What composition principle guides it? What is the one idea?2262. **90% visual, 10% text** — text is a sparse visual element, not explanatory prose2273. Output as self-contained HTML artifact (inline CSS, SVG, or Canvas API)2284. Composition: asymmetric balance, golden ratio or rule of thirds, deliberate negative space2295. Color: 2–3 colors maximum, one dominant, one accent, one neutral2306. The work should feel as if it took countless hours — refinement over addition2317. Embed subtle conceptual references — informed viewers intuit meaning, others see beauty232233**Template structure:**234```html235<!DOCTYPE html>236<html>237<head>238 <meta charset="UTF-8">239 <style>240 * { margin: 0; padding: 0; box-sizing: border-box; }241 body { width: 800px; height: 600px; overflow: hidden; background: ...; }242 /* All styles inline — no external dependencies */243 </style>244</head>245<body>246 <!-- 90% visual elements: SVG, canvas, geometric shapes, typography as art -->247</body>248</html>249```250251---252253### D. Interactive Artifact (React / shadcn / Tailwind)254255**Stack:** React 18 + TypeScript + Tailwind CSS 3 + shadcn/ui256257**Rules:**258- NEVER: excessive centered layouts, purple gradients, uniform rounded corners, Inter font259- shadcn/ui components: Button, Card, Dialog, Select, Input, Badge, Tabs, etc.260- Self-contained single HTML file (bundle with Vite/Parcel if needed)261- For generative/parametric work: seed-based randomness for reproducibility262- Include interactive parameter controls (sliders, toggles) for generative artifacts263- P5.js for algorithmic/generative art — seed navigation (prev/next/random/jump)264265**Anti-patterns to avoid:**266```267❌ <div className="flex flex-col items-center justify-center min-h-screen">268❌ gradient-to-r from-purple-500 to-blue-500269❌ rounded-full on every element270❌ font-family: Inter everywhere271```272273---274275### D2. Library Palette — When to Use What276277#### animate-ui (animated components, React + Tailwind + Motion)278279Use when: wow-effects needed, animated backgrounds, live buttons, micro-interactions.280281**Install via Shadcn CLI:**282```bash283npx shadcn@latest add "https://animate-ui.com/r/<component-name>"284```285286**Components by category:**287288| Category | Components |289|----------|-----------|290| **Buttons** | `button`, `copy-button`, `flip-button`, `liquid-button`, `ripple-button`, `icon-button`, `github-stars-button`, `theme-toggler-button` |291| **Backgrounds** | `bubble`, `fireworks`, `gradient`, `gravity-stars`, `hexagon`, `hole`, `stars` |292| **Animate UI** | `avatar-group`, `code`, `code-tabs`, `cursor`, `tabs`, `tooltip`, `github-stars-wheel` |293| **Radix UI** | `accordion`, `alert-dialog`, `checkbox`, `dialog`, `dropdown-menu`, `files`, `hover-card`, `popover`, `progress`, `radio-group`, `sheet`, `sidebar`, `switch`, `tabs`, `toggle`, `tooltip` |294| **Community** | `flip-card`, `motion-carousel`, `notification-list`, `pin-list`, `playful-todolist`, `radial-menu`, `radial-nav`, `share-button`, `user-presence-avatar` |295296**Rules:**297- Always check `prefers-reduced-motion` — animate-ui doesn't do this automatically298- Liquid/Ripple buttons — only for primary CTA, not all buttons299- Gravity Stars / Fireworks backgrounds — only for hero sections, not under content300301---302303#### heroui (production UI library, 50+ components, npm)304305Use when: production-ready component library needed with accessibility (React Aria), forms, tables, navigation.306307**Install:**308```bash309npm install @heroui/react310# or individual component:311npx heroui-cli@latest add <component-name>312```313314**Provider (required at root):**315```tsx316import { HeroUIProvider } from "@heroui/react";317export default function App() {318 return <HeroUIProvider><YourApp /></HeroUIProvider>;319}320```321322**Components by category:**323324| Category | Components |325|----------|-----------|326| **Form** | Input, Select, Checkbox, Radio, Switch, Textarea, Autocomplete, Slider, Calendar, DatePicker |327| **Navigation** | Navbar, Breadcrumbs, Tabs, Pagination, Link |328| **Feedback** | Alert, Badge, Spinner, Progress, Toast |329| **Overlays** | Modal, Popover, Dropdown, Tooltip, Drawer |330| **Data** | Table, Card, Avatar, Image, User, Chip |331332```tsx333import { Button } from "@heroui/react";334// variants: solid | bordered | light | flat | faded | shadow | ghost335// colors: default | primary | secondary | success | warning | danger336<Button color="primary" variant="shadow">Action</Button>337```338339**Rules:**340- HeroUI has its own theme — don't mix with Tailwind custom colors without configuration341- For dark mode: add `dark` class to `<html>` — HeroUI picks it up automatically342- Don't use together with shadcn/ui on the same components — style conflicts343344---345346**Library selection for Interactive tasks:**347348```349Need animations / wow-effects / live backgrounds?350├── Yes → animate-ui (+ shadcn/ui for base components)351└── No → need full product UI with forms and tables?352 ├── Yes → heroui353 └── No → shadcn/ui (default)354```355356---357358## Universal Design Rules (All Types)359360### Typography361- Body: line-height 1.5–1.75, max 65–75 characters per line362- NEVER use emoji as icons — SVG icons only (Heroicons, Lucide, Simple Icons)363- Font pairing: distinctive display font + refined body font364- Minimum 16px body text on mobile365366### Accessibility (CRITICAL)367- Color contrast minimum 4.5:1 for normal text368- All interactive elements: visible focus ring369- Icon-only buttons: `aria-label` required370- All images: `alt` text371- Form inputs: `<label for="">` required372- `prefers-reduced-motion` must be respected373374### Touch & Interaction (CRITICAL)375- Minimum 44×44px touch targets376- `cursor-pointer` on ALL clickable elements377- Button disabled during async operations378- Error messages appear near the problem379380### Layout381- `viewport-meta`: `width=device-width, initial-scale=1`382- No horizontal scroll at any breakpoint383- Responsive at: 375px / 768px / 1024px / 1440px384- Fixed navbars: add `top-4 left-4 right-4` spacing, account for height in content385386### Icons387- Icon set: Heroicons or Lucide — consistent across project388- Brand logos: verify from Simple Icons before using389- Fixed viewBox (24×24) with consistent sizing390391---392393## Quality Gate — MANDATORY before delivery394395Run this checklist internally before showing the result. If ANY item fails, fix it first.396397```398DESIGN QUALITY GATE399═══════════════════════════════════════════════════════400[ ] 1. Typography distinctive?401 → Not Inter/Arial/Roboto without customization402 → Has a clear typographic personality403404[ ] 2. Would a designer be impressed?405 → If answer is "probably not" — redesign the boldest element406 → One thing should be truly memorable407408[ ] 3. No purple gradient on white?409 → If yes — replace with something intentional410411[ ] 4. Color contrast ≥ 4.5:1?412 → Check primary text against its background413 → Check muted text too (often fails)414415[ ] 5. Hover states without layout shift?416 → cursor-pointer on every clickable element417 → Transitions use color/opacity, not width/height418419[ ] 6. Responsive at 375px, 768px, 1440px?420 → No horizontal scroll421 → Text readable without zooming422423[ ] 7. SVG icons, zero emoji?424 → Search output for emoji characters425 → Replace all with SVG equivalents426═══════════════════════════════════════════════════════427ALL 7 MUST PASS. Do not deliver until they do.428```429430---431432## Integration with Sub-Skills433434| When | Delegate to |435|---|---|436| Need full design system generated via Python | `ui-ux-pro-max` (run search.py) |437| Building dark dashboard with components | `ui-component-library` (copy component CSS/HTML) |438| Need brand color extraction from PDF/PNG | `extract-brand-palette` |439| User explicitly requests detailed UX audit | `ui-ux-pro-max` (full checklist mode) |440| Need animated components / wow backgrounds | `animate-ui` (Shadcn CLI install) |441| Need production UI kit with 50+ components | `heroui` (npm install @heroui/react) |442443---444445## Quick Decision Tree446447```448User wants something visual?449├── Dashboard / data / KPI / admin?450│ └── → Approach B (Dashboard) + ui-component-library451├── Poster / graphic / visual art?452│ └── → Approach C (Philosophy-first)453├── React / interactive / generative?454│ └── → Approach D (React/shadcn)455└── Everything else (web, landing, page)?456 └── → Approach A (Web/Landing) + pick bold aesthetic direction457```458459Every path ends with: **Quality Gate (all 7 checks)**.460461---462463## Delivery464465### File structure466When creating a Web / Landing artifact — always save as `<project-slug>/index.html`,467not a flat file in the root directory. Create the folder first.468469```bash470mkdir <project-slug> && write to <project-slug>/index.html471```472473### Preview (Windows + VS Code Remote SSH)474```bash475cd <project-slug> && py -m http.server 3000476```477> Use `py` (Python Launcher) — not `python` or `python3`.478> On Windows, `python` may resolve to the Microsoft Store stub (exit code 49).479480**VS Code Remote SSH:** port 3000 appears in the **Ports** tab automatically →481click the globe icon or open `http://localhost:3000` in your browser.