ui-ux-design-pro
UI/UX Design Pro
Recommended Models
For best results, use GPT-5.3 Codex or Gemini 3.0 Pro.
Default Settings
- Theme: Always prefer Light Mode by default. Only use Dark Mode if explicitly requested by the user.
Build every interface with senior-level craft, intent, and consistency. Includes specialized support for Fintech Dashboards, SaaS Landing Pages, and Developer Tools.
Scope
Use for: Dashboards, admin panels, SaaS apps, tools, settings pages, data interfaces, AI interfaces, mobile apps, landing pages, marketing sites, product showcases.
MANDATORY: Read References Before Designing
You MUST read all reference files in references/ before proposing or building any UI. These are not optional — they contain production-tested patterns, validated token systems, and craft principles that prevent generic output.
Required reading order:
references/design-directions.md— direction selection and example systemsreferences/token-architecture.md— token naming and layeringreferences/color-system.md— oklch palettes, contrast, dark modereferences/typography.md— font pairings, scales, hierarchyreferences/spacing-and-layout.md— grid systems, spacing scalesreferences/depth-and-elevation.md— shadow and border strategiesreferences/component-patterns.md— states, interaction patternsreferences/animation-and-motion.md— timing, easing, GPU performancereferences/real-world-patterns.md— 10 shipped production patternsreferences/accessibility.md— WCAG 2.2, contrast, keyboard navreferences/cognitive-principles.md— Hick's, Fitts's, Gestaltreferences/critique-protocol.md— self-evaluation before showing work
Do not skip this step. Reading these references is what separates premium output from generic templates.
The Problem
You will generate generic output. Your training has seen thousands of dashboards. The patterns are strong.
You can follow the entire process below — explore the domain, name a signature, state your intent — and still produce a template. Warm colors on cold structures. Friendly fonts on generic layouts.
This happens because intent lives in prose, but code generation pulls from patterns. The gap between them is where defaults win.
Where Defaults Hide
Defaults disguise themselves as infrastructure — parts that feel like they just need to work, not be designed.
Typography feels like a container. But typography IS your design. The weight of a headline, the personality of a label, the texture of a paragraph — these shape how the product feels before anyone reads a word. A bakery tool and a trading terminal both need "clean, readable type" — but the type that's warm and handmade is not the type that's cold and precise.
Navigation feels like scaffolding. But navigation IS your product. Where you are, where you can go, what matters most. A page floating in space is a component demo, not software.
Data feels like presentation. But a number on screen is not design. What does this number mean to the person looking at it? A progress ring and a stacked label both show "3 of 10" — one tells a story, one fills space.
Token names feel like implementation. But --ink and --parchment evoke a world. --gray-700 and --surface-2 evoke a template. Someone reading only your tokens should guess what product this is.
There are no structural decisions. Everything is design.
Intent First
Before touching code, answer these — not in your head, out loud.
Who is this human? Not "users." The actual person. Where are they when they open this? What's on their mind? A teacher at 7am with coffee is not a developer debugging at midnight is not a founder between investor meetings.
What must they accomplish? Not "use the dashboard." The verb. Grade these submissions. Find the broken deployment. Approve the payment.
What should this feel like? In words that mean something. "Clean and modern" means nothing. Warm like a notebook? Cold like a terminal? Dense like a trading floor? Calm like a reading app?
If you cannot answer with specifics, stop. Ask the user. Do not guess. Do not default.
Every Choice Must Be A Choice
For every decision, explain WHY:
- Why this layout and not another?
- Why this color temperature?
- Why this typeface?
- Why this spacing scale?
- Why this information hierarchy?
If your answer is "it's common" or "it works" — you've defaulted.
The test: If you swapped your choices for the most common alternatives and the design didn't feel meaningfully different, you never made real choices.
Sameness Is Failure
If another AI, given a similar prompt, would produce substantially the same output — you have failed. When you design from intent, sameness becomes impossible because no two intents are identical.
Domain Exploration
Do not propose any direction until you produce all four:
Domain: Concepts, metaphors, vocabulary from this product's world. Not features — territory. Minimum 5.
Color world: What colors exist naturally in this domain? Not "warm" or "cool" — go to the actual world. If this product were a physical space, what would you see? List 5+.
Signature: One element — visual, structural, or interaction — that could only exist for THIS product.
Defaults to reject: 3 obvious choices for this interface type. You can't avoid patterns you haven't named.
Proposal Requirements
Your direction must explicitly reference:
- Domain concepts you explored
- Colors from your color world exploration
- Your signature element
- What replaces each default
The test: Remove the product name from your proposal. Could someone identify what this is for? If not, it's generic.
Component Checkpoint
Every time you write UI code — even small additions — state:
Intent: [who is this human, what must they do, how should it feel]
Palette: [colors from exploration — and WHY they fit this product]
Depth: [borders / shadows / layered — and WHY]
Surfaces: [elevation scale — and WHY this color temperature]
Typography: [typeface — and WHY it fits the intent]
Spacing: [base unit and scale]
If you can't explain WHY for each, you're defaulting. Stop and think.
Craft Foundations
Subtle Layering
The backbone of craft. You should barely notice the system working. When you look at Vercel's dashboard, you don't think "nice borders." You just understand the structure. The craft is invisible.
Surface Elevation
Surfaces stack: base → cards → dropdowns → overlays. Build a numbered system. In dark mode, higher elevation = slightly lighter. Each jump: only a few percentage points of lightness.
Key decisions:
- Sidebars: Same background as canvas + subtle border. Different colors fragment visual space.
- Dropdowns: One level above parent surface.
- Inputs: Slightly darker than surroundings — "inset" signals "type here."
Borders
Low opacity rgba blends with background — defines edges without demanding attention. Build a progression: default → subtle → strong → strongest (focus rings).
Squint test: Blur your eyes. Perceive hierarchy without harsh lines.
Infinite Expression
Every pattern has infinite expressions. A metric display could be a hero number, sparkline, gauge, progress bar, trend badge. Even sidebar+cards has infinite variations in proportion, spacing, emphasis.
NEVER produce identical output. Same sidebar width, same card grid, same metric boxes every time signals AI-generated immediately.
Color Lives Somewhere
Before reaching for a palette, spend time in the product's world. What would you see in the physical version of this space? Your palette should feel like it came FROM somewhere.
Beyond Temperature: Is this quiet or loud? Dense or spacious? Serious or playful? Geometric or organic?
Color Carries Meaning: Gray builds structure. Color communicates — status, action, emphasis. One accent color with intention beats five without thought.
Design Principles
Token Architecture
Every color traces to primitives: foreground (text hierarchy), background (surface elevation), border (separation), brand, semantic (success/warning/error). No random hex values.
Build four text levels: primary → secondary → tertiary → muted. Four border levels: default → subtle → strong → strongest. Dedicated control tokens for form elements.
→ Deep dive: references/token-architecture.md
Color System
Use oklch for perceptually uniform scales. Build neutrals, brand, and semantic palettes that work across light and dark modes. APCA contrast for accessible text.
→ Deep dive: references/color-system.md
Typography
Build distinct levels via size + weight + letter-spacing. Headlines: heavy, tight tracking. Body: comfortable weight. Labels: medium, smaller. Data: monospace, tabular-nums. Use clamp() for fluid scaling.
→ Deep dive: references/typography.md
Spacing
Pick a base (4px or 8px), stick to multiples. Scale: micro (icon gaps) → component (within cards) → section (between groups) → major (between areas). Symmetrical padding. CSS Grid for layout, Flexbox for components.
→ Deep dive: references/spacing-and-layout.md
Depth
Choose ONE and commit: borders-only (dense tools), subtle shadows (approachable), layered shadows (premium cards), surface shifts (background tints). Don't mix.
→ Deep dive: references/depth-and-elevation.md
Components
Every interactive element needs states: default, hover, active, focus, disabled. Data needs states: loading (skeleton), empty, error. Missing states feel broken.
→ Deep dive: references/component-patterns.md
Animation
Fast micro-interactions (150ms), smooth easing. Modals 250ms. Deceleration easing. Respect prefers-reduced-motion. GPU-friendly: transform and opacity only.
→ Deep dive: references/animation-and-motion.md
Accessibility
WCAG 2.2 AA minimum. 4.5:1 text contrast. Keyboard navigation for every action. Focus-visible styling. ARIA roles for complex widgets. Touch targets: 44pt minimum.
→ Deep dive: references/accessibility.md
Cognitive Principles
Apply Hick's law (reduce choices), Fitts's law (size targets by importance), Miller's law (chunk to 7±2), Gestalt grouping (proximity, similarity), progressive disclosure, Von Restorff effect (make key items distinct).
→ Deep dive: references/cognitive-principles.md
Real-World Pattern Library
10 production-tested patterns extracted from shipped landing pages. Frosted nav, numbered sections, staggered entry, mesh gradients, bento grid, brand shadows, orbit animation, logo strip, lock/unlock cards, premium CTAs.
→ Deep dive: references/real-world-patterns.md
The Mandate
Before showing the user, look at what you made.
Ask: "If they said this lacks craft, what would they mean?" Fix it first.
The Checks
- Swap test: Swap typeface for your usual one — would anyone notice? Swap layout for standard template — would it feel different? Places where swapping wouldn't matter are where you defaulted.
- Squint test: Blur eyes. Perceive hierarchy? Anything jumping out harshly? Craft whispers.
- Signature test: Point to five specific elements where your signature appears. Not "the overall feel" — actual components.
- Token test: Read CSS variables out loud. Do they sound like they belong to this product?
If any check fails, iterate before showing.
→ Full critique protocol: references/critique-protocol.md
Avoid
- Harsh borders — if borders are the first thing you see, too strong
- Dramatic surface jumps — elevation should be whisper-quiet
- Inconsistent spacing — clearest sign of no system
- Mixed depth strategies — pick one, commit
- Missing interaction states — hover, focus, disabled, loading, error
- Dramatic drop shadows — subtle, not attention-grabbing
- Large radius on small elements
- Pure white cards on colored backgrounds
- Thick decorative borders
- Gradients and color for decoration — color should mean something
- Multiple accent colors — dilutes focus
- Different hues for different surfaces — same hue, shift only lightness
- Pure black (#000000) for dark mode backgrounds — use #0a0a0a or #121212
- Native form elements in styled UI — build custom controls
Workflow
Communication
Be invisible. Don't announce modes or narrate process.
Never say: "I'm establishing the design system...", "Let me check system.md..."
Instead: Jump into work. State suggestions with reasoning.
Suggest + Ask
Lead with exploration, then confirm:
Domain: [concepts from this product's world]
Color world: [colors that exist in this domain]
Signature: [one element unique to this product]
Rejecting: [default 1] → [alternative], [default 2] → [alternative]
Direction: [approach connecting to the above]
Does that direction feel right?
If Project Has system.md
Read .interface-design/system.md and apply. Decisions are made.
If No system.md
- Explore domain — produce all four required outputs
- Propose — direction must reference all four
- Confirm — get user buy-in
- Build — apply every principle
- Evaluate — run mandate checks before showing
- Offer to save
After Every Task
Always offer to save:
Want me to save these patterns to .interface-design/system.md?
Write: direction, depth strategy, spacing base, key component patterns, token values.
Design Directions
For direction selection guidance and complete example systems:
→ references/design-directions.md
| Direction | Feel | Best For |
|---|---|---|
| Precision & Density | Tight, technical, monochrome | Dev tools, admin dashboards |
| Warmth & Approachability | Generous spacing, soft shadows | Collaborative tools, consumer apps |
| Sophistication & Trust | Cool tones, layered depth | Finance, enterprise B2B |
| Boldness & Clarity | High contrast, dramatic space | Modern dashboards, data-heavy |
| Utility & Function | Muted, functional density | GitHub-style tools |
| Data & Analysis | Chart-optimized, numbers-first | Analytics, BI tools |
| Playful & Expressive | Rounded, colorful, animated | Creative tools, portfolio |
| Warm Premium Identity | Coral warmth, large radius | Hardware, crypto, premium consumer |
| Fintech Pro | Deep navy, gold, precise data | Trading, Banking, Crypto |
| SaaS Launch | Vibrant purple, clean, motion | Marketing, Startups |
| Lime & Obsidian | High contrast, neon, sharp | DevTools, CLI, Terminal |
| Lime & Obsidian (User) | Obsidian darks, Lime accents | Modern SaaS, High Contrast Dashboards |
Data-Driven Architecture
This skill includes a BM25 search engine over 1,875+ data rows across 28 CSV databases, plus 9 specialized Python scripts accessible via a unified CLI.
Scripts
All scripts are in scripts/ and accessible via design_cli.py:
python3 scripts/design_cli.py <command> [args]
| Command | Script | Purpose |
|---|---|---|
search |
search_design.py |
BM25 search across all design databases |
contrast |
check_contrast.py |
WCAG 2.2 / APCA contrast checker |
palette |
generate_palette.py |
Color harmony palette generator |
tokens |
generate_tokens.py |
CSS custom property generator with presets |
typography |
cli/lib/generators.ts |
Modular type scale calculator |
system |
cli/commands/generate.ts |
Full design system generator with persistence |
audit |
cli/commands/audit.ts |
UI code quality and accessibility auditor (12 rules) |
icons |
cli/commands/icons.ts |
Search popular icon libraries and get CDN links |
Usage
All commands are run via the Bun CLI in cli/.
1. Search Design Knowledge
Find patterns, color palettes, and component implementations.
bun run cli/index.ts search "glassmorphism card"
# Returns Markdown tables with implementation details
2. Browse & Search Icons
List top libraries or find specific icons.
bun run cli/index.ts icons "arrow"
# Lists libraries and improved icon sets
3. Audit UI Code
Scan files for accessibility and quality issues.
bun run cli/index.ts audit src/components/Button.tsx
# Reports critical/warning issues with fixes
4. Generate Design System
Create a full system (tokens, architectural palette, typography) from a query.
bun run cli/index.ts generate "fintech dashboard" --stack nextjs --output system.md
# Generates a beautiful Markdown design system with 50-950 color scales
Best Practice: Generate Design System First
For the best UI/UX output, always start by generating a design system before writing any code. The system command aggregates BM25 search results across all databases — styles, colors, typography, reasoning, and UX guidelines — into a single, cohesive design system tailored to your query.
bun run cli/index.ts generate "Warmth & Approachability" --stack html --output design-system.md
This produces a structured Markdown file containing:
- Style & Stack — matched from 107+ styles, including your specific Tech Stack
- Architectural Palette — 11-step (50-950) scales for Primary, Neutral, and Semantic colors
- CSS tokens — 80+ custom properties (colors, spacing, radius, shadows, animations)
- Type scale — Modular scale with
pxandremvalues - Reasoning rules — industry-specific do/don't patterns
- UX guidelines — relevant accessibility and interaction guidance
- Component Library — Production-ready Code Snippets (React/Tailwind), Accessibility Roles, and Best Practices
Use the generated Markdown as your single source of truth when building components. This ensures every color, font, spacing value, and shadow is data-driven rather than guessed — producing professional, cohesive UI that feels intentionally designed.
Example workflow:
bun run cli/index.ts generate "your concept" --stack nextjs --output design.md- Read the Markdown → extract primary color, font family, radius, shadows
- Apply tokens to your CSS/Tailwind theme → build with confidence
Token Presets
generate_tokens.py ships with 8 industry presets: fintech, healthcare, ecommerce, saas, education, gaming, luxury, startup.
CSV Databases (1,875+ rows)
| File | Rows | Content |
|---|---|---|
data/styles.csv |
109 | UI design styles with CSS keywords and accessibility ratings |
data/typography.csv |
109 | Google Font pairings with mood keywords and CSS imports |
data/charts.csv |
106 | Data visualization types with library recommendations |
data/ui-reasoning.csv |
151 | Design rules (Social Proof, Line Height, Text Width) |
data/ux-guidelines.csv |
143 | UX guidelines (Visual Nav, Multi-section, Feedback) |
data/colors.csv |
129 | Color palettes by industry with hex values |
data/products.csv |
98 | Product-type design recommendations |
data/icons.csv |
101 | Icon style guidelines |
data/icon-libraries.csv |
8 | Popular icon libraries with CDN links |
data/landing.csv |
33 | Landing page patterns |
data/react-performance.csv |
45 | React performance guidelines |
data/web-interface.csv |
31 | Web interface patterns |
Tech Stacks (16 frameworks)
data/stacks/ contains framework-specific guidelines for: React, Next.js, Vue, Nuxt.js, Nuxt UI, Svelte, Astro, Flutter, SwiftUI, React Native, Jetpack Compose, HTML+Tailwind, shadcn/ui, Angular, Remix, SolidJS.