UI/UX
Searchable design intelligence database for web and mobile applications. Generates complete design systems with style, color palette, typography, and UX guidelines. BM25 search engine across 13 technology stacks.
When to Activate
- User requests UI/UX work: design, build, create, implement, review, fix, improve
- User asks for color palettes, font pairings, or style recommendations
- User builds a landing page, dashboard, portfolio, or any web/mobile interface
- User mentions dark mode, accessibility, responsive design, or layout issues
- User asks to review or audit existing UI for quality issues
Rule Categories by Priority
| Priority |
Category |
Impact |
Domain |
| 1 |
Accessibility |
CRITICAL |
ux |
| 2 |
Touch & Interaction |
CRITICAL |
ux |
| 3 |
Performance |
HIGH |
ux |
| 4 |
Layout & Responsive |
HIGH |
ux |
| 5 |
Typography & Color |
MEDIUM |
typography, color |
| 6 |
Animation |
MEDIUM |
ux |
| 7 |
Style Selection |
MEDIUM |
style, product |
| 8 |
Charts & Data |
LOW |
chart |
Quick Reference
Accessibility (CRITICAL)
color-contrast — Minimum 4.5:1 ratio for normal text
focus-states — Visible focus rings on interactive elements
alt-text — Descriptive alt text for meaningful images
aria-labels — aria-label for icon-only buttons
keyboard-nav — Tab order matches visual order
form-labels — Use label with for attribute
Touch & Interaction (CRITICAL)
touch-target-size — Minimum 44x44px touch targets
hover-vs-tap — Use click/tap for primary interactions
loading-buttons — Disable button during async operations
cursor-pointer — Add cursor-pointer to clickable elements
Performance (HIGH)
image-optimization — Use WebP, srcset, lazy loading
reduced-motion — Check prefers-reduced-motion
content-jumping — Reserve space for async content
Layout & Responsive (HIGH)
viewport-meta — width=device-width initial-scale=1
readable-font-size — Minimum 16px body text on mobile
horizontal-scroll — Ensure content fits viewport width
z-index-management — Define z-index scale (10, 20, 30, 50)
Prerequisites
python3 --version || python --version
If not installed — Windows: winget install Python.Python.3.12 | macOS: brew install python3 | Linux: sudo apt install python3
Workflow
Progress
Step 1: Analyze User Requirements
Extract from the user's request:
| Field |
Extract |
| Product type |
SaaS, e-commerce, portfolio, dashboard, landing page |
| Style keywords |
minimal, playful, professional, elegant, dark mode |
| Industry |
healthcare, fintech, gaming, education, beauty |
| Stack |
React, Vue, Next.js — default to html-tailwind |
Step 2: Generate Design System (REQUIRED)
Always start with --design-system to get comprehensive recommendations with reasoning:
python3 skills/ui-ux/scripts/search.py "<product_type> <industry> <keywords>" --design-system [-p "Project Name"]
This command:
- Searches 5 domains in parallel (product, style, color, landing, typography)
- Applies reasoning rules from
ui-reasoning.csv to select best matches
- Returns complete design system: pattern, style, colors, typography, effects
- Includes anti-patterns to avoid
Example:
python3 skills/ui-ux/scripts/search.py "beauty spa wellness service" --design-system -p "Serenity Spa"
Step 2b: Persist Design System (Optional)
Save for hierarchical retrieval across sessions with --persist:
python3 skills/ui-ux/scripts/search.py "<query>" --design-system --persist -p "Project Name"
Creates design-system/MASTER.md (source of truth) and design-system/pages/ for overrides.
With page override: Add --page "dashboard" to create page-specific deviations.
Retrieval rule: Check pages/<page>.md first → if exists, overrides Master → otherwise use Master exclusively.
Step 3: Supplement with Detailed Searches
After the design system, use domain searches for additional detail:
python3 skills/ui-ux/scripts/search.py "<keyword>" --domain <domain> [-n <max_results>]
| Need |
Domain |
Example |
| More style options |
style |
"glassmorphism dark" |
| Chart recommendations |
chart |
"real-time dashboard" |
| UX best practices |
ux |
"animation accessibility" |
| Alternative fonts |
typography |
"elegant luxury" |
| Landing structure |
landing |
"hero social-proof" |
Step 4: Stack Guidelines (Default: html-tailwind)
python3 skills/ui-ux/scripts/search.py "<keyword>" --stack html-tailwind
Available: html-tailwind, react, nextjs, vue, svelte, swiftui, react-native, flutter, shadcn, jetpack-compose
Search Reference
Domains
| Domain |
Use For |
Example Keywords |
product |
Product type recommendations |
SaaS, portfolio, healthcare |
style |
UI styles, colors, effects |
glassmorphism, dark mode, brutalism |
typography |
Font pairings, Google Fonts |
elegant, playful, modern |
color |
Color palettes by product type |
saas, ecommerce, fintech |
landing |
Page structure, CTA strategies |
hero, testimonial, pricing |
chart |
Chart types, library recs |
trend, comparison, funnel |
ux |
Best practices, anti-patterns |
animation, accessibility, z-index |
react |
React/Next.js performance |
suspense, memo, rerender |
web |
Web interface guidelines |
aria, focus, semantic |
Output Formats
# ASCII box (default)
python3 skills/ui-ux/scripts/search.py "fintech crypto" --design-system
# Markdown
python3 skills/ui-ux/scripts/search.py "fintech crypto" --design-system -f markdown
Constraints
- Do not use emoji as UI icons — always use SVG icons (Heroicons, Lucide, Simple Icons)
- Do not skip Step 2 (design system generation) — it's required before implementing any UI
- Do not use
scale transforms for hover states — they cause layout shift; use color/opacity instead
- Do not hardcode colors — always derive from the generated design system palette
- Do not leave interactive elements without
cursor-pointer
- Do not ignore
prefers-reduced-motion for animations
Example
Input: "Build a landing page for a luxury spa brand"
Workflow:
python3 skills/ui-ux/scripts/search.py "luxury spa wellness service" --design-system -p "Serenity Spa"
Output: Design system with elegant/organic style, warm muted palette (sage, cream, rose gold), Cormorant Garamond + Montserrat typography, subtle fade animations, and anti-patterns to avoid (no neon colors, no aggressive CTAs).
Common Rules for Professional UI
Icons & Visual Elements
| Do |
Don't |
| Use SVG icons (Heroicons, Lucide, Simple Icons) |
Use emojis 🎨 🚀 as UI icons |
| Use color/opacity transitions on hover |
Use scale transforms that shift layout |
| Research official SVG from Simple Icons |
Guess or use incorrect logo paths |
| Use fixed viewBox (24x24) with w-6 h-6 |
Mix different icon sizes randomly |
Interaction & Cursor
| Do |
Don't |
cursor-pointer on all clickable elements |
Default cursor on interactive elements |
| Visual feedback on hover (color, shadow, border) |
No indication element is interactive |
transition-colors duration-200 |
Instant or too-slow transitions (>500ms) |
Light/Dark Mode Contrast
| Do |
Don't |
bg-white/80 or higher opacity in light mode |
bg-white/10 (too transparent) |
#0F172A (slate-900) for light mode text |
#94A3B8 (slate-400) for body text |
border-gray-200 in light mode |
border-white/10 (invisible) |
Layout & Spacing
| Do |
Don't |
top-4 left-4 right-4 floating navbar |
Stick navbar to top-0 left-0 right-0 |
| Account for fixed navbar height |
Let content hide behind fixed elements |
Consistent max-w-6xl or max-w-7xl |
Mix different container widths |
Error Handling
If the search script fails:
- Verify Python is installed:
python3 --version || python --version
- Check the script path is correct:
ls skills/ui-ux/scripts/
- Run with help:
python3 skills/ui-ux/scripts/search.py --help
- Verify data files exist:
ls skills/ui-ux/data/
- If on Windows, try
python instead of python3
- Re-read the relevant section of this SKILL.md
Pre-Delivery Checklist
Visual Quality
Interaction
Light/Dark Mode
Layout
Accessibility
Changes Made Summary
Changes Made (MANDATORY)
[!CAUTION]
This is NON-NEGOTIABLE. Every single UI/UX task MUST end with a "Changes Made" summary. This is the LAST thing you do — present it before any other closing remarks. Never skip this step, even for small changes.
After completing any UI/UX work, present the user with a structured summary:
## ✅ Changes Made
| # | File | Action | Detail |
|---|------|--------|--------|
| 1 | `index.html` | Created / Modified | <what was done> |
| 2 | `styles.css` | Created / Modified | <what was done> |
| 3 | `components/nav.html` | Created | <what was done> |
**Summary:** <1-2 sentence recap of the overall change>
Rules:
- List every file created, modified, or deleted
- Action column:
Created, Modified, Deleted, Moved, or Renamed
- Detail column must be specific — not "updated file" but "added responsive navbar with dark mode toggle"
- End with a 1-2 sentence Summary of the overall impact
Worked example:
## ✅ Changes Made
| # | File | Action | Detail |
|---|------|--------|--------|
| 1 | `index.html` | Modified | Added floating navbar with glassmorphism effect, hero section with gradient overlay, testimonials grid |
| 2 | `styles.css` | Modified | Implemented design system tokens (--primary, --accent), added dark mode media query, responsive breakpoints at 375/768/1024px |
| 3 | `assets/hero-bg.webp` | Created | Generated hero background image with WebP format |
**Summary:** Built a luxury spa landing page using the Serenity Spa design system with dark mode support and responsive layout.
1---2name: ui-ux3description: UI/UX design intelligence. Activated when: designing UI, building pages, creating components, choosing colors, picking fonts, reviewing UX, building dashboards, landing pages, web design, mobile design, accessibility review, dark mode, light mode. Styles, color palettes, font pairings, UX guidelines, chart types across 13 stacks. Always delivers a structured Changes Made summary.4---56# UI/UX78Searchable design intelligence database for web and mobile applications. Generates complete design systems with style, color palette, typography, and UX guidelines. BM25 search engine across 13 technology stacks.910## When to Activate1112- User requests UI/UX work: design, build, create, implement, review, fix, improve13- User asks for color palettes, font pairings, or style recommendations14- User builds a landing page, dashboard, portfolio, or any web/mobile interface15- User mentions dark mode, accessibility, responsive design, or layout issues16- User asks to review or audit existing UI for quality issues1718---1920## Rule Categories by Priority2122| Priority | Category | Impact | Domain |23|----------|----------|--------|--------|24| 1 | Accessibility | CRITICAL | `ux` |25| 2 | Touch & Interaction | CRITICAL | `ux` |26| 3 | Performance | HIGH | `ux` |27| 4 | Layout & Responsive | HIGH | `ux` |28| 5 | Typography & Color | MEDIUM | `typography`, `color` |29| 6 | Animation | MEDIUM | `ux` |30| 7 | Style Selection | MEDIUM | `style`, `product` |31| 8 | Charts & Data | LOW | `chart` |3233## Quick Reference3435### Accessibility (CRITICAL)3637- `color-contrast` — Minimum 4.5:1 ratio for normal text38- `focus-states` — Visible focus rings on interactive elements39- `alt-text` — Descriptive alt text for meaningful images40- `aria-labels` — aria-label for icon-only buttons41- `keyboard-nav` — Tab order matches visual order42- `form-labels` — Use label with for attribute4344### Touch & Interaction (CRITICAL)4546- `touch-target-size` — Minimum 44x44px touch targets47- `hover-vs-tap` — Use click/tap for primary interactions48- `loading-buttons` — Disable button during async operations49- `cursor-pointer` — Add cursor-pointer to clickable elements5051### Performance (HIGH)5253- `image-optimization` — Use WebP, srcset, lazy loading54- `reduced-motion` — Check prefers-reduced-motion55- `content-jumping` — Reserve space for async content5657### Layout & Responsive (HIGH)5859- `viewport-meta` — width=device-width initial-scale=160- `readable-font-size` — Minimum 16px body text on mobile61- `horizontal-scroll` — Ensure content fits viewport width62- `z-index-management` — Define z-index scale (10, 20, 30, 50)6364---6566## Prerequisites6768```bash69python3 --version || python --version70```7172If not installed — **Windows:** `winget install Python.Python.3.12` | **macOS:** `brew install python3` | **Linux:** `sudo apt install python3`7374---7576## Workflow7778### Progress79- [ ] Analyzed user requirements (product type, style, industry, stack)80- [ ] Generated design system via `--design-system`81- [ ] Supplemented with domain searches (if needed)82- [ ] Applied stack guidelines83- [ ] Implemented UI with design system values84- [ ] Ran Pre-Delivery Checklist85- [ ] Delivered Changes Made summary8687### Step 1: Analyze User Requirements8889Extract from the user's request:9091| Field | Extract |92|-------|---------|93| **Product type** | SaaS, e-commerce, portfolio, dashboard, landing page |94| **Style keywords** | minimal, playful, professional, elegant, dark mode |95| **Industry** | healthcare, fintech, gaming, education, beauty |96| **Stack** | React, Vue, Next.js — default to `html-tailwind` |9798### Step 2: Generate Design System (REQUIRED)99100**Always start with `--design-system`** to get comprehensive recommendations with reasoning:101102```bash103python3 skills/ui-ux/scripts/search.py "<product_type> <industry> <keywords>" --design-system [-p "Project Name"]104```105106This command:1071. Searches 5 domains in parallel (product, style, color, landing, typography)1082. Applies reasoning rules from `ui-reasoning.csv` to select best matches1093. Returns complete design system: pattern, style, colors, typography, effects1104. Includes anti-patterns to avoid111112**Example:**113```bash114python3 skills/ui-ux/scripts/search.py "beauty spa wellness service" --design-system -p "Serenity Spa"115```116117### Step 2b: Persist Design System (Optional)118119Save for hierarchical retrieval across sessions with `--persist`:120121```bash122python3 skills/ui-ux/scripts/search.py "<query>" --design-system --persist -p "Project Name"123```124125Creates `design-system/MASTER.md` (source of truth) and `design-system/pages/` for overrides.126127**With page override:** Add `--page "dashboard"` to create page-specific deviations.128129**Retrieval rule:** Check `pages/<page>.md` first → if exists, overrides Master → otherwise use Master exclusively.130131### Step 3: Supplement with Detailed Searches132133After the design system, use domain searches for additional detail:134135```bash136python3 skills/ui-ux/scripts/search.py "<keyword>" --domain <domain> [-n <max_results>]137```138139| Need | Domain | Example |140|------|--------|---------|141| More style options | `style` | `"glassmorphism dark"` |142| Chart recommendations | `chart` | `"real-time dashboard"` |143| UX best practices | `ux` | `"animation accessibility"` |144| Alternative fonts | `typography` | `"elegant luxury"` |145| Landing structure | `landing` | `"hero social-proof"` |146147### Step 4: Stack Guidelines (Default: html-tailwind)148149```bash150python3 skills/ui-ux/scripts/search.py "<keyword>" --stack html-tailwind151```152153Available: `html-tailwind`, `react`, `nextjs`, `vue`, `svelte`, `swiftui`, `react-native`, `flutter`, `shadcn`, `jetpack-compose`154155---156157## Search Reference158159### Domains160161| Domain | Use For | Example Keywords |162|--------|---------|------------------|163| `product` | Product type recommendations | SaaS, portfolio, healthcare |164| `style` | UI styles, colors, effects | glassmorphism, dark mode, brutalism |165| `typography` | Font pairings, Google Fonts | elegant, playful, modern |166| `color` | Color palettes by product type | saas, ecommerce, fintech |167| `landing` | Page structure, CTA strategies | hero, testimonial, pricing |168| `chart` | Chart types, library recs | trend, comparison, funnel |169| `ux` | Best practices, anti-patterns | animation, accessibility, z-index |170| `react` | React/Next.js performance | suspense, memo, rerender |171| `web` | Web interface guidelines | aria, focus, semantic |172173### Output Formats174175```bash176# ASCII box (default)177python3 skills/ui-ux/scripts/search.py "fintech crypto" --design-system178179# Markdown180python3 skills/ui-ux/scripts/search.py "fintech crypto" --design-system -f markdown181```182183---184185## Constraints186187- Do **not** use emoji as UI icons — always use SVG icons (Heroicons, Lucide, Simple Icons)188- Do **not** skip Step 2 (design system generation) — it's required before implementing any UI189- Do **not** use `scale` transforms for hover states — they cause layout shift; use color/opacity instead190- Do **not** hardcode colors — always derive from the generated design system palette191- Do **not** leave interactive elements without `cursor-pointer`192- Do **not** ignore `prefers-reduced-motion` for animations193194---195196## Example197198**Input:** "Build a landing page for a luxury spa brand"199**Workflow:**200```bash201python3 skills/ui-ux/scripts/search.py "luxury spa wellness service" --design-system -p "Serenity Spa"202```203**Output:** Design system with elegant/organic style, warm muted palette (sage, cream, rose gold), Cormorant Garamond + Montserrat typography, subtle fade animations, and anti-patterns to avoid (no neon colors, no aggressive CTAs).204205---206207## Common Rules for Professional UI208209### Icons & Visual Elements210211| Do | Don't |212|----|-------|213| Use SVG icons (Heroicons, Lucide, Simple Icons) | Use emojis 🎨 🚀 as UI icons |214| Use color/opacity transitions on hover | Use scale transforms that shift layout |215| Research official SVG from Simple Icons | Guess or use incorrect logo paths |216| Use fixed viewBox (24x24) with w-6 h-6 | Mix different icon sizes randomly |217218### Interaction & Cursor219220| Do | Don't |221|----|-------|222| `cursor-pointer` on all clickable elements | Default cursor on interactive elements |223| Visual feedback on hover (color, shadow, border) | No indication element is interactive |224| `transition-colors duration-200` | Instant or too-slow transitions (>500ms) |225226### Light/Dark Mode Contrast227228| Do | Don't |229|----|-------|230| `bg-white/80` or higher opacity in light mode | `bg-white/10` (too transparent) |231| `#0F172A` (slate-900) for light mode text | `#94A3B8` (slate-400) for body text |232| `border-gray-200` in light mode | `border-white/10` (invisible) |233234### Layout & Spacing235236| Do | Don't |237|----|-------|238| `top-4 left-4 right-4` floating navbar | Stick navbar to `top-0 left-0 right-0` |239| Account for fixed navbar height | Let content hide behind fixed elements |240| Consistent `max-w-6xl` or `max-w-7xl` | Mix different container widths |241242---243244## Error Handling245246If the search script fails:2471. Verify Python is installed: `python3 --version || python --version`2482. Check the script path is correct: `ls skills/ui-ux/scripts/`2493. Run with help: `python3 skills/ui-ux/scripts/search.py --help`2504. Verify data files exist: `ls skills/ui-ux/data/`2515. If on Windows, try `python` instead of `python3`2526. Re-read the relevant section of this SKILL.md253254---255256## Pre-Delivery Checklist257258### Visual Quality259- [ ] No emojis used as icons (use SVG instead)260- [ ] All icons from consistent icon set (Heroicons/Lucide)261- [ ] Brand logos correct (verified from Simple Icons)262- [ ] Hover states don't cause layout shift263264### Interaction265- [ ] All clickable elements have `cursor-pointer`266- [ ] Hover states provide clear visual feedback267- [ ] Transitions are smooth (150-300ms)268- [ ] Focus states visible for keyboard navigation269270### Light/Dark Mode271- [ ] Light mode text has sufficient contrast (4.5:1 minimum)272- [ ] Glass/transparent elements visible in light mode273- [ ] Borders visible in both modes274275### Layout276- [ ] Floating elements have proper spacing from edges277- [ ] No content hidden behind fixed navbars278- [ ] Responsive at 375px, 768px, 1024px, 1440px279- [ ] No horizontal scroll on mobile280281### Accessibility282- [ ] All images have alt text283- [ ] Form inputs have labels284- [ ] Color is not the only indicator285- [ ] `prefers-reduced-motion` respected286287### Changes Made Summary288- [ ] **Changes Made summary delivered to user** (see below)289290---291292## Changes Made (MANDATORY)293294> [!CAUTION]295> **This is NON-NEGOTIABLE. Every single UI/UX task MUST end with a "Changes Made" summary.** This is the LAST thing you do — present it before any other closing remarks. Never skip this step, even for small changes.296297After completing any UI/UX work, present the user with a structured summary:298299```markdown300## ✅ Changes Made301302| # | File | Action | Detail |303|---|------|--------|--------|304| 1 | `index.html` | Created / Modified | <what was done> |305| 2 | `styles.css` | Created / Modified | <what was done> |306| 3 | `components/nav.html` | Created | <what was done> |307308**Summary:** <1-2 sentence recap of the overall change>309```310311**Rules:**312- List **every** file created, modified, or deleted313- Action column: `Created`, `Modified`, `Deleted`, `Moved`, or `Renamed`314- Detail column must be specific — not "updated file" but "added responsive navbar with dark mode toggle"315- End with a 1-2 sentence **Summary** of the overall impact316317**Worked example:**318319```markdown320## ✅ Changes Made321322| # | File | Action | Detail |323|---|------|--------|--------|324| 1 | `index.html` | Modified | Added floating navbar with glassmorphism effect, hero section with gradient overlay, testimonials grid |325| 2 | `styles.css` | Modified | Implemented design system tokens (--primary, --accent), added dark mode media query, responsive breakpoints at 375/768/1024px |326| 3 | `assets/hero-bg.webp` | Created | Generated hero background image with WebP format |327328**Summary:** Built a luxury spa landing page using the Serenity Spa design system with dark mode support and responsive layout.329```