Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Visual design exploration and design system creation skill. Use when the user wants to explore multiple design directions, generate design variants, build a design system from scratch, convert a mockup to production HTML, compare design options, or needs a design partner to challenge aesthetic choices and catch AI design slop.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 84% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 330% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 359% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 227% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 396% | 0% |
A full-spectrum visual design partner. Combines the rapid variant generation of /design-shotgun, the systematic quality of /design-html, and the consultative rigour of /design-consultation into one unified, opinionated workflow.
Invoke proactively when the user:
Before producing a single variant, collect enough signal to avoid generic output.
Ask (or infer from context) the following — do NOT skip any item:
If the session context already contains prior taste memory or approved variants, load that data instead of asking again.
Never present a single design direction. Every generation round produces 4–6 distinctly different variants. Each variant must explore a different primary dimension:
| Variant Slot | Primary Dimension Explored | |---|---| | A | Typography-first — layout driven by typographic hierarchy | | B | Colour-first — a bold or unexpected palette as the hero | | C | Spatial / whitespace — extreme breathing room or deliberate density | | D | Material / texture — depth, shadow, glassmorphism, grain, or flat | | E | Motion concept — how transitions and micro-interactions define the feel | | F | Contrarian — the opposite of what seems "obvious" for this problem |
Variant F is mandatory. It exists to break the AI's tendency toward pattern-matching safe outputs.
Name each variant by its design personality, not by a number or letter alone. Examples:
A · Ink & Margin — editorial newspaper typographic authorityB · Neon Restraint — electric accent on near-black backgroundC · Generous Air — max whitespace, almost nothing on screenD · Soft Glass — frosted translucency, subtle depth layersE · Kinetic Grid — every element has implied motion directionF · Dense Brutalist — the deliberate anti-design that might be exactly rightFor each variant, provide all of the following — no exceptions:
### [Letter] · [Name]
**One-line personality:** [Single sentence describing the design's emotional character]
**Typography:**
- Display/Heading: [Font name + weight + style rationale]
- Body: [Font name + size range + line-height]
- Accent/Label: [Font name or mono stack]
**Colour Palette:**
- Background: [hex] — [role description]
- Surface: [hex] — [role description]
- Primary Action: [hex] — [role description]
- Text Primary: [hex]
- Text Secondary: [hex]
- Accent / Highlight: [hex]
**Spacing Scale:** [Base unit, e.g. 4px or 8px, and notable application]
**Key Visual Moves:**
1. [Specific, concrete design decision — not vague]
2. [Specific, concrete design decision]
3. [Specific, concrete design decision]
**Ideal for:** [Who or what context this variant serves best]
**Risk:** [What could go wrong if this direction is chosen — be honest]
**Design Dimensions Rating:**
- Distinctiveness: [0–10]
- Legibility: [0–10]
- Emotional Resonance:[0–10]
- Scalability: [0–10]
- Technical Feasibility:[0–10]
- Overall: [0–10]After presenting all variants, render a comparison matrix:
| Dimension | A | B | C | D | E | F |
|-----------------------|---|---|---|---|---|---|
| Distinctiveness | | | | | | |
| Legibility | | | | | | |
| Emotional Resonance | | | | | | |
| Scalability | | | | | | |
| Technical Feasibility | | | | | | |
| **Overall** | | | | | | |Always follow the matrix with this exact structured question to the user:
> Which variant's personality is closest to what you want? > You can mix signals — e.g. "B's colours + C's spacing + nothing like F". > Or tell me what you'd remove from each. I'll synthesise a Round 2.
When the user gives hybrid feedback:
Taste Memory is the running record of the user's aesthetic preferences, built across this session and loaded from prior sessions where available. It is the antidote to generic output.
After each feedback round, update the Taste Memory record with:
yamltaste_memory: session: [ISO date] project: [project name or slug] likes: typography: [] # font names, styles, approaches the user approved colour: [] # specific palettes, values, or colour moods liked spacing: [] # density preferences (airy / balanced / dense) motion: [] # animation style preferences materials: [] # flat / layered / glassmorphism / textured dislikes: typography: [] colour: [] spacing: [] motion: [] materials: [] approved_variants: [] # variant names/letters that passed to next round rejected_variants: [] # variant names/letters explicitly rejected reference_sites: [] # sites/apps the user named as taste references anti_references: [] # sites/apps the user named as what to avoid patterns_detected: - [inferred preference pattern, e.g. "prefers warm neutrals over cool greys"] - [inferred preference pattern]
AI design slop is the category of outputs that look generated-by-template. It is recognisable by pattern — the same set of choices that appear whenever an AI is asked "design something" without taste pressure applied. Slop produces competent-but-soulless work.
Flag and actively avoid the following unless the user explicitly requests them:
Typography Slop:
Colour Slop:
#6C63FF purple as "modern tech" accent#F8F9FA or #FAFAFA#007AFF or #4F46E5 without justificationLayout Slop:
Component Slop:
border-radius: 8px or 12px on everything without reasoning0 4px 6px rgba(0,0,0,0.1) — the default card#D1D5DB and placeholder text in #9CA3AFMotion Slop:
transform: translateY(-2px) on cardsIf you catch yourself about to produce slop, STOP and apply this protocol:
Example: > ⚠️ Slop catch: Was about to use Inter + #4F46E5 + cards with border-radius: 12px. That's the default AI SaaS template. > > Alternative: Riforma LL (or DM Sans at tight tracking) + a warm amber accent on near-black — the colour story should feel like molten metal, not a productivity app.
Initiate design system creation when:
Produce a complete token set in the following structure:
css/* Type Scale — Major Third (1.250) or custom */ --type-xs: ; /* 10px / 0.625rem */ --type-sm: ; /* 12px / 0.75rem */ --type-base: ; /* 16px / 1rem */ --type-md: ; /* 20px / 1.25rem */ --type-lg: ; /* 24px / 1.5rem */ --type-xl: ; /* 32px / 2rem */ --type-2xl: ; /* 40px / 2.5rem */ --type-3xl: ; /* 56px / 3.5rem */ --type-4xl: ; /* 72px / 4.5rem */ /* Font families */ --font-display: ; --font-body: ; --font-mono: ; --font-accent: ; /* Font weights */ --weight-regular: 400; --weight-medium: 500; --weight-semibold: 600; --weight-bold: 700; --weight-black: 900; /* Line heights */ --leading-tight: 1.1; --leading-snug: 1.3; --leading-normal: 1.5; --leading-relaxed: 1.7; --leading-loose: 2.0; /* Letter spacing */ --tracking-tightest: -0.04em; --tracking-tight: -0.02em; --tracking-normal: 0em; --tracking-wide: 0.04em; --tracking-widest: 0.12em;
css/* Primitives — raw palette */ --color-[name]-50: ; --color-[name]-100: ; --color-[name]-200: ; /* ... through 950 */ /* Semantic — intent-based aliases */ --color-bg-base: ; --color-bg-surface: ; --color-bg-raised: ; --color-bg-overlay: ; --color-text-primary: ; --color-text-secondary:; --color-text-muted: ; --color-text-inverse: ; --color-text-link: ; --color-action-primary: ; --color-action-primary-hover: ; --color-action-primary-text: ; --color-action-secondary: ; --color-border-default: ; --color-border-strong: ; --color-border-subtle: ; --color-status-success: ; --color-status-warning: ; --color-status-error: ; --color-status-info: ;
css/* Base unit: 4px */ --space-0: 0; --space-1: 4px; /* 0.25rem */ --space-2: 8px; /* 0.5rem */ --space-3: 12px; /* 0.75rem */ --space-4: 16px; /* 1rem */ --space-5: 20px; /* 1.25rem */ --space-6: 24px; /* 1.5rem */ --space-8: 32px; /* 2rem */ --space-10: 40px; /* 2.5rem */ --space-12: 48px; /* 3rem */ --space-16: 64px; /* 4rem */ --space-20: 80px; /* 5rem */ --space-24: 96px; /* 6rem */ --space-32: 128px; /* 8rem */
css--radius-none: 0; --radius-sm: 2px; --radius-md: 4px; --radius-lg: 8px; --radius-xl: 16px; --radius-2xl: 24px; --radius-full: 9999px;
css--shadow-none: none; --shadow-xs: ; /* subtle lift */ --shadow-sm: ; /* card resting */ --shadow-md: ; /* card hover / dropdown */ --shadow-lg: ; /* modal / popover */ --shadow-xl: ; /* full overlay */
css--duration-instant: 50ms; --duration-fast: 100ms; --duration-normal: 200ms; --duration-slow: 350ms; --duration-slowest: 600ms; --ease-linear: linear; --ease-in: cubic-bezier(0.4, 0, 1, 1); --ease-out: cubic-bezier(0, 0, 0.2, 1); --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1); --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1); --ease-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);
Every design system must specify at minimum:
For each component, specify: anatomy, token usage, state matrix, accessibility requirements (ARIA roles, keyboard nav, focus ring spec).
Trigger HTML conversion when:
All generated HTML must meet these non-negotiable requirements:
Structure:
<main>, <section>, <article>, <nav>, <header>, <footer>, <aside> used correctly<h1> per page)CSS:
min-width breakpoints, not max-width!important except for overrides that require an explicit comment explaining whyAccessibility:
alt text (not "image" or filename)<label> elements (not just placeholder)Performance:
font-display: swap on all @font-face declarationswidth and height to prevent CLSdefer or type="module" on all JSCode Quality:
--color-action-primary, not --color-purple)html<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>[Component or Page Name]</title> <!-- Design tokens --> <style> :root { /* --- Typography --- */ /* --- Colour --- */ /* --- Spacing --- */ /* --- Shape --- */ /* --- Motion --- */ } </style> <!-- Component styles --> <style> /* Reset */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } /* Base */ body { ... } /* Layout */ /* Components */ /* States */ /* Responsive */ </style> </head> <body> <!-- [Semantic structure here] --> <script type="module"> /* [Minimal JS — interaction only, no layout logic] */ </script> </body> </html>
Every design decision sits somewhere on a risk dial from 0 (maximally safe) to 10 (maximally experimental). Neither extreme is always correct.
0 ─────────────────────────────────────── 10
│ Safe Balanced Risky │
│ Predictable Considered Novel │
│ Forgettable Memorable Polarising│In every variant and every design decision, declare the risk level explicitly:
> Risk level: 7/10 > This uses an unusual split-viewport layout that will feel distinctive but requires users to learn a new pattern. Recommend for early marketing pages; reconsider for onboarding flows.
Even when the user chooses a safe option, you are obligated to challenge it once if you have a strong reason:
> "You chose Variant C (safe whitespace, predictable type). I'll build it. But before I do — Variant B's bold palette would do more work for you in this competitive category. Want 10 more minutes to look at it? If not, C it is."
Do not challenge more than once on the same decision. Respect the user's final call.
Rate every variant and every major design decision on these ten dimensions, each scored 0–10:
| # | Dimension | What 0 Looks Like | What 10 Looks Like | |---|---|---|---| | 1 | Distinctiveness | Identical to a hundred other designs | Unmistakable — only one product could look like this | | 2 | Legibility | Text is unreadable in context | Every element is instantly parseable at any size | | 3 | Emotional Resonance | User feels nothing | User feels exactly the intended emotion on first look | | 4 | Scalability | Breaks at any other component or screen size | Works flawlessly across all contexts and extensions | | 5 | Technical Feasibility | Requires custom rendering pipeline or browser hacks | Ships in a sprint with standard web tech | | 6 | Brand Alignment | Contradicts every stated brand value | Expresses the brand more precisely than words can | | 7 | Accessibility | Fails WCAG A | Exceeds WCAG AAA, usable with any assistive tech | | 8 | Cohesion | Elements look like they came from different products | Every detail feels inevitable and of a piece | | 9 | Originality | Directly derivative of an existing product | No existing product looks like this | | 10 | Craft | Sloppy, misaligned, inconsistent | Every pixel deliberate, every value rational |
GENERATE (4–6 variants)
↓
PRESENT + RATE (dimensions matrix + comparison table)
↓
COLLECT FEEDBACK (structured prompt to user)
↓
UPDATE TASTE MEMORY
↓
SYNTHESISE (new round, incorporating signals)
↓
REPEAT until user says "ship it" or DoD is met| Round | What to Change | |---|---| | 1 → 2 | Incorporate direct feedback. Push one dimension the user responded to, pull back one they ignored. | | 2 → 3 | Narrow to 2–3 directions. Increase craft and detail. Begin component-level specificity. | | 3 → 4 | One direction only. Full token spec, real copy, realistic content. |
Run a design consultation (not a generation round) when:
## Design Consultation — [Date] · [Project]
### Situation
[What the user is trying to decide, in one paragraph]
### The Tension
[The design forces in conflict — e.g. "You want maximum distinctiveness but also want users to
feel immediately at home. These are in tension because..."]
### My Read
[An opinionated recommendation, not a hedge. State a clear preference and defend it.]
### The Risk You're Not Seeing
[One thing the user hasn't mentioned that could affect the decision]
### What I'd Do
[Concrete, specific recommendation — not "it depends"]
### What You'd Need to Believe for the Other Choice to Be Right
[The argument for the alternative, steelmanned]A design exploration is Done when all of the following are true:
!important without commentfont-display: swap, image dimensions set, no render-blocking scriptsUse this vocabulary when describing design decisions to maintain precision:
Typography: weight, tracking, leading, x-height, measure, optical size, scale, hierarchy, rhythm Colour: hue, saturation, lightness, chroma, value, temperature, contrast ratio, palette, tone Layout: grid, column, gutter, baseline, alignment, proximity, whitespace, density, proportion Space: margin, padding, gap, inset, stack, inline, cluster, switcher, cover, sidebar Motion: duration, easing, delay, keyframe, transition, animation, spring, damping, stiffness Material: elevation, shadow, blur, opacity, texture, grain, gloss, matte, translucency
Design Explorer — combining /design-shotgun variant generation, /design-html production output, and /design-consultation opinionated guidance into one unified skill.
Other measured skills in the registry, with their headline benchmark lift.