Design Polish
Elevate a frontend project from generic to distinctive. This skill helps you avoid "AI slop" aesthetics by applying intentional design choices with consistent quality.
Step 1: Assess the Current State
First, explore the project to understand:
- What framework/technology is being used (React, Vue, plain HTML, Tailwind, etc.)
- What pages/components exist
- The current visual state and what feels generic or lacking
Read the main entry point and key component files. Identify 2-3 files that would have the highest visual impact if improved.
Step 2: Ask for Design Vibe
Use the AskUserQuestion tool to present these style options:
Question: "What vibe should this site convey?"
Options:
Refined & Professional
- Clean, editorial feel with generous whitespace
- Sophisticated typography with serif/sans pairings
- Subtle animations, muted color palette with one accent
- Feels like: Apple, Stripe, Linear
Bold & Energetic
- High contrast, saturated colors, dramatic shadows
- Strong geometric shapes, asymmetric layouts
- Punchy animations with personality
- Feels like: Vercel, Figma, Notion
Warm & Approachable
- Soft edges, organic shapes, friendly colors
- Playful micro-interactions, rounded corners
- Comfortable spacing, inviting atmosphere
- Feels like: Slack, Mailchimp, Airbnb
Technical & Precise
- Monospace accents, code-inspired aesthetics
- Dark themes with terminal vibes, sharp edges
- Grid-based layouts, systematic color use
- Feels like: GitHub, VS Code, Linear dark mode
Step 3: Apply Design System Based on Vibe
Based on the user's choice, apply these specific guidelines:
Refined & Professional
Typography:
- Display: Playfair Display, Newsreader, or Fraunces (serif)
- Body: Source Sans 3, IBM Plex Sans, or DM Sans
- Weights: 300/400 for body, 600/700 for headings only
- Size ratio: 1.33 (perfect fourth scale)
Colors (CSS variables):
:root {
--bg: #FAFAFA;
--bg-subtle: #F5F5F5;
--text: #1A1A1A;
--text-muted: #6B6B6B;
--accent: #2563EB; /* or sophisticated green/burgundy */
--border: #E5E5E5;
}
Spatial composition:
- Max content width: 720px for reading, 1200px for layouts
- Section padding: 80-120px vertical
- Generous line-height: 1.7-1.8 for body text
Motion:
- Subtle fade-ins on scroll (opacity + 20px translate)
- 0.3s ease-out transitions
- Avoid bounce/spring - keep it understated
Bold & Energetic
Typography:
- Display: Clash Display, Cabinet Grotesk, or Space Grotesk
- Body: Inter (acceptable here), Satoshi, or General Sans
- Weights: Extremes - 200 vs 800/900
- Size ratio: 1.5+ (dramatic jumps)
Colors (CSS variables):
:root {
--bg: #0A0A0A;
--bg-card: #141414;
--text: #FFFFFF;
--text-muted: #A1A1A1;
--accent: #FF3366; /* or electric blue, vivid orange */
--accent-glow: rgba(255, 51, 102, 0.3);
--border: #262626;
}
Spatial composition:
- Full-bleed hero sections
- Asymmetric grids, overlapping elements
- Tight spacing in clusters, dramatic gaps between sections
Motion:
- Staggered entrance animations (0.1s delay increments)
- Scale + opacity on hover for cards
- Gradient animations on backgrounds
Backgrounds:
.hero-gradient {
background:
radial-gradient(ellipse at 20% 50%, var(--accent-glow) 0%, transparent 50%),
radial-gradient(ellipse at 80% 20%, rgba(99, 102, 241, 0.2) 0%, transparent 40%),
var(--bg);
}
Warm & Approachable
Typography:
- Display: Bricolage Grotesque, Nunito, or Quicksand
- Body: Lato, Open Sans, or Nunito Sans
- Weights: 400/500 for body, 600/700 for headings
- Size ratio: 1.25 (comfortable reading)
Colors (CSS variables):
:root {
--bg: #FFF8F5;
--bg-card: #FFFFFF;
--text: #2D2A26;
--text-muted: #7A756E;
--accent: #E85D04; /* warm orange, coral, or teal */
--accent-soft: #FFF0E6;
--border: #F0E6DE;
}
Spatial composition:
- Rounded corners: 12-16px on cards, 8px on buttons
- Comfortable padding: 24-32px on cards
- Breathing room between elements
Motion:
- Gentle bounce on buttons (transform: scale(1.02))
- Soft shadows that lift on hover
- Smooth 0.2s transitions
Details:
- Soft drop shadows:
0 4px 20px rgba(0,0,0,0.08)
- Decorative illustrations or icons if appropriate
- Emoji or friendly iconography
Technical & Precise
Typography:
- Display: JetBrains Mono, Fira Code, or IBM Plex Mono
- Body: IBM Plex Sans, Inter, or system-ui
- Weights: 400 for body, 500/600 for emphasis
- Monospace for data, labels, and navigation
Colors (CSS variables):
:root {
--bg: #0D1117;
--bg-card: #161B22;
--bg-elevated: #21262D;
--text: #E6EDF3;
--text-muted: #8B949E;
--accent: #58A6FF; /* GitHub blue, or green/amber */
--border: #30363D;
--syntax-keyword: #FF7B72;
--syntax-string: #A5D6FF;
}
Spatial composition:
- Grid-based layouts with consistent gutters
- Compact, information-dense design
- Sharp corners (4px max) or none
Motion:
- Minimal - focus on instant feedback
- Subtle opacity transitions
- No playful animations - functional only
Details:
- Syntax highlighting inspiration for accents
- Terminal-style borders or code-block styling
- Tabular data presentation
Step 4: Implementation Checklist
Apply these in order of visual impact:
1. Typography (Highest Impact)
2. Color System
3. Spacing & Layout
4. Animation (Final Polish)
/* Universal fade-in base */
.fade-in {
opacity: 0;
transform: translateY(20px);
animation: fadeUp 0.6s ease forwards;
}
@keyframes fadeUp {
to {
opacity: 1;
transform: translateY(0);
}
}
.delay-1 { animation-delay: 0.1s; }
.delay-2 { animation-delay: 0.2s; }
.delay-3 { animation-delay: 0.3s; }
Quality Standards (All Vibes)
Regardless of chosen style, every implementation must:
Avoid Generic Defaults
- Never use: Inter (except Bold vibe), Roboto, Arial, system fonts as primary
- Never use: Purple gradients on white backgrounds
- Never use: Default shadows/borders without intentional styling
Commit to the Aesthetic
- Every choice should reinforce the vibe
- Inconsistency is worse than being boring
Focus High-Impact Areas
- Hero sections and first impressions
- Navigation and key CTAs
- Card/content containers
Test Dark/Light Appropriateness
- Some vibes suit dark themes, others light
- Don't force dark mode if it fights the vibe
Your Task
$ARGUMENTS
If no specific arguments, analyze the current project and:
- Read key frontend files to assess current state
- Ask the user for their preferred vibe
- Apply the design system systematically
- Focus on 2-3 highest-impact changes first
- Ensure the result feels intentional and distinctive
1---2name: design-polish3description: Polish frontend design with distinctive aesthetics - asks for style vibe first. Use when the user wants to improve, polish, or elevate the visual design of a web project.4---56# Design Polish78Elevate a frontend project from generic to distinctive. This skill helps you avoid "AI slop" aesthetics by applying intentional design choices with consistent quality.910## Step 1: Assess the Current State1112First, explore the project to understand:13- What framework/technology is being used (React, Vue, plain HTML, Tailwind, etc.)14- What pages/components exist15- The current visual state and what feels generic or lacking1617Read the main entry point and key component files. Identify 2-3 files that would have the highest visual impact if improved.1819## Step 2: Ask for Design Vibe2021Use the AskUserQuestion tool to present these style options:2223**Question**: "What vibe should this site convey?"2425**Options**:26271. **Refined & Professional**28 - Clean, editorial feel with generous whitespace29 - Sophisticated typography with serif/sans pairings30 - Subtle animations, muted color palette with one accent31 - Feels like: Apple, Stripe, Linear32332. **Bold & Energetic**34 - High contrast, saturated colors, dramatic shadows35 - Strong geometric shapes, asymmetric layouts36 - Punchy animations with personality37 - Feels like: Vercel, Figma, Notion38393. **Warm & Approachable**40 - Soft edges, organic shapes, friendly colors41 - Playful micro-interactions, rounded corners42 - Comfortable spacing, inviting atmosphere43 - Feels like: Slack, Mailchimp, Airbnb44454. **Technical & Precise**46 - Monospace accents, code-inspired aesthetics47 - Dark themes with terminal vibes, sharp edges48 - Grid-based layouts, systematic color use49 - Feels like: GitHub, VS Code, Linear dark mode5051## Step 3: Apply Design System Based on Vibe5253Based on the user's choice, apply these specific guidelines:5455---5657### Refined & Professional5859**Typography**:60- Display: Playfair Display, Newsreader, or Fraunces (serif)61- Body: Source Sans 3, IBM Plex Sans, or DM Sans62- Weights: 300/400 for body, 600/700 for headings only63- Size ratio: 1.33 (perfect fourth scale)6465**Colors** (CSS variables):66```css67:root {68 --bg: #FAFAFA;69 --bg-subtle: #F5F5F5;70 --text: #1A1A1A;71 --text-muted: #6B6B6B;72 --accent: #2563EB; /* or sophisticated green/burgundy */73 --border: #E5E5E5;74}75```7677**Spatial composition**:78- Max content width: 720px for reading, 1200px for layouts79- Section padding: 80-120px vertical80- Generous line-height: 1.7-1.8 for body text8182**Motion**:83- Subtle fade-ins on scroll (opacity + 20px translate)84- 0.3s ease-out transitions85- Avoid bounce/spring - keep it understated8687---8889### Bold & Energetic9091**Typography**:92- Display: Clash Display, Cabinet Grotesk, or Space Grotesk93- Body: Inter (acceptable here), Satoshi, or General Sans94- Weights: Extremes - 200 vs 800/90095- Size ratio: 1.5+ (dramatic jumps)9697**Colors** (CSS variables):98```css99:root {100 --bg: #0A0A0A;101 --bg-card: #141414;102 --text: #FFFFFF;103 --text-muted: #A1A1A1;104 --accent: #FF3366; /* or electric blue, vivid orange */105 --accent-glow: rgba(255, 51, 102, 0.3);106 --border: #262626;107}108```109110**Spatial composition**:111- Full-bleed hero sections112- Asymmetric grids, overlapping elements113- Tight spacing in clusters, dramatic gaps between sections114115**Motion**:116- Staggered entrance animations (0.1s delay increments)117- Scale + opacity on hover for cards118- Gradient animations on backgrounds119120**Backgrounds**:121```css122.hero-gradient {123 background:124 radial-gradient(ellipse at 20% 50%, var(--accent-glow) 0%, transparent 50%),125 radial-gradient(ellipse at 80% 20%, rgba(99, 102, 241, 0.2) 0%, transparent 40%),126 var(--bg);127}128```129130---131132### Warm & Approachable133134**Typography**:135- Display: Bricolage Grotesque, Nunito, or Quicksand136- Body: Lato, Open Sans, or Nunito Sans137- Weights: 400/500 for body, 600/700 for headings138- Size ratio: 1.25 (comfortable reading)139140**Colors** (CSS variables):141```css142:root {143 --bg: #FFF8F5;144 --bg-card: #FFFFFF;145 --text: #2D2A26;146 --text-muted: #7A756E;147 --accent: #E85D04; /* warm orange, coral, or teal */148 --accent-soft: #FFF0E6;149 --border: #F0E6DE;150}151```152153**Spatial composition**:154- Rounded corners: 12-16px on cards, 8px on buttons155- Comfortable padding: 24-32px on cards156- Breathing room between elements157158**Motion**:159- Gentle bounce on buttons (transform: scale(1.02))160- Soft shadows that lift on hover161- Smooth 0.2s transitions162163**Details**:164- Soft drop shadows: `0 4px 20px rgba(0,0,0,0.08)`165- Decorative illustrations or icons if appropriate166- Emoji or friendly iconography167168---169170### Technical & Precise171172**Typography**:173- Display: JetBrains Mono, Fira Code, or IBM Plex Mono174- Body: IBM Plex Sans, Inter, or system-ui175- Weights: 400 for body, 500/600 for emphasis176- Monospace for data, labels, and navigation177178**Colors** (CSS variables):179```css180:root {181 --bg: #0D1117;182 --bg-card: #161B22;183 --bg-elevated: #21262D;184 --text: #E6EDF3;185 --text-muted: #8B949E;186 --accent: #58A6FF; /* GitHub blue, or green/amber */187 --border: #30363D;188 --syntax-keyword: #FF7B72;189 --syntax-string: #A5D6FF;190}191```192193**Spatial composition**:194- Grid-based layouts with consistent gutters195- Compact, information-dense design196- Sharp corners (4px max) or none197198**Motion**:199- Minimal - focus on instant feedback200- Subtle opacity transitions201- No playful animations - functional only202203**Details**:204- Syntax highlighting inspiration for accents205- Terminal-style borders or code-block styling206- Tabular data presentation207208---209210## Step 4: Implementation Checklist211212Apply these in order of visual impact:213214### 1. Typography (Highest Impact)215- [ ] Add Google Fonts import for chosen font pairing216- [ ] Set font-family on body and headings217- [ ] Establish type scale with CSS variables218- [ ] Apply proper weights (avoid 400 vs 500 - use extremes)219220### 2. Color System221- [ ] Define CSS variables in :root222- [ ] Apply background colors to body/sections223- [ ] Update text colors and muted variants224- [ ] Add accent color to interactive elements225226### 3. Spacing & Layout227- [ ] Increase section padding for breathing room228- [ ] Establish consistent max-width for content229- [ ] Apply the vibe's spatial philosophy230231### 4. Animation (Final Polish)232- [ ] Add page-load entrance animation233- [ ] Implement hover states with transitions234- [ ] Use animation-delay for staggered reveals235236```css237/* Universal fade-in base */238.fade-in {239 opacity: 0;240 transform: translateY(20px);241 animation: fadeUp 0.6s ease forwards;242}243244@keyframes fadeUp {245 to {246 opacity: 1;247 transform: translateY(0);248 }249}250251.delay-1 { animation-delay: 0.1s; }252.delay-2 { animation-delay: 0.2s; }253.delay-3 { animation-delay: 0.3s; }254```255256## Quality Standards (All Vibes)257258Regardless of chosen style, every implementation must:2592601. **Avoid Generic Defaults**261 - Never use: Inter (except Bold vibe), Roboto, Arial, system fonts as primary262 - Never use: Purple gradients on white backgrounds263 - Never use: Default shadows/borders without intentional styling2642652. **Commit to the Aesthetic**266 - Every choice should reinforce the vibe267 - Inconsistency is worse than being boring2682693. **Focus High-Impact Areas**270 - Hero sections and first impressions271 - Navigation and key CTAs272 - Card/content containers2732744. **Test Dark/Light Appropriateness**275 - Some vibes suit dark themes, others light276 - Don't force dark mode if it fights the vibe277278## Your Task279280$ARGUMENTS281282If no specific arguments, analyze the current project and:2831. Read key frontend files to assess current state2842. Ask the user for their preferred vibe2853. Apply the design system systematically2864. Focus on 2-3 highest-impact changes first2875. Ensure the result feels intentional and distinctive