---
name: design-excellence
description: >
Design system and anti-patterns for professional UI. Ensures apps don't look
"AI generated". Defines color palettes, typography, spacing, animations, and
common anti-patterns to avoid. Used by Design Reviewer sub-agent to polish UI.
Triggers: design review, polish UI, improve aesthetics, looks like AI made it,
design system, style guide, make it beautiful.
---
# Design Excellence
Make AI-built apps look human-crafted. No generic templates. No obvious patterns.
## The Craft Standard
If someone can tell it was AI-generated, we failed.
Good design is invisible. Users should feel the app is professional,
not notice it follows a template.
## Color Philosophy
### The Problem with AI Color Choices
AI tends to pick:
- Purple gradients on white (Lovable default look)
- Overly saturated accent colors
- Too many colors in one interface
- Gradients where solid colors work better
### Our Approach: Restraint
**Base Palette (Default)**
```css
/* Use Tailwind's slate scale for neutrals */
--background: slate-50 /* Page background */
--surface: white /* Cards, modals */
--border: slate-200 /* Dividers, borders */
--text-primary: slate-900 /* Headlines */
--text-secondary: slate-600 /* Body text */
--text-muted: slate-400 /* Placeholders, hints */
```
**Accent Colors (Pick ONE per app)**
```css
/* Default: Blue (professional, trustworthy) */
--accent: blue-600
--accent-hover: blue-700
--accent-light: blue-50
/* Alternative by app type: */
/* Finance/Banking → Green (money) */
/* Health/Wellness → Teal (calm) */
/* Food/Restaurant → Orange (appetite) */
/* Creative/Design → Purple (creativity) */
/* Urgent/Alert → Red (attention) */
```
**Rules**
1. ONE accent color per app, no exceptions
2. Use accent sparingly - buttons, links, highlights only
3. Never gradient on primary buttons
4. Background is white or near-white, not colored
5. Dark mode: invert properly, don't just make it gray
## Typography Rules
### The Font Stack
```css
/* Don't specify Inter everywhere - use system fonts */
font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
"Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
/* This looks native on every platform */
```
### Type Scale (Tailwind classes)
```
Page Title: text-2xl font-semibold (24px)
Section Title: text-lg font-medium (18px)
Card Title: text-base font-medium (16px)
Body: text-sm (14px)
Small/Caption: text-xs text-slate-500 (12px)
```
### Anti-Patterns
❌ Don't use `font-bold` on everything
❌ Don't mix too many font sizes in one card
❌ Don't use ALL CAPS for long text
❌ Don't center-align body paragraphs
❌ Don't use pure black (#000) - use slate-900
### Good Patterns
✅ Headlines: semibold or medium, never regular
✅ Body: regular weight, good line-height (1.5-1.6)
✅ Keep hierarchy: max 3 sizes per component
✅ Left-align most text (except headings in centered layouts)
## Spacing & Layout
### Spacing Scale
Use Tailwind's default scale consistently:
```
4 (1rem/16px) - Small gaps, inline elements
6 (1.5rem/24px) - Medium gaps, between components
8 (2rem/32px) - Large gaps, between sections
12 (3rem/48px) - XL gaps, page sections
```
### Page Layout
```tsx
// Standard page container
```
### Card Internal Spacing
```tsx
{/* Reduce default padding */}
Title
{/* Content with vertical gaps */}
```
### Anti-Patterns
❌ Inconsistent padding (p-3 here, p-5 there)
❌ Too little whitespace (cramped feel)
❌ Too much whitespace (disconnected feel)
❌ Different gap sizes for same-level elements
## Motion & Animation
### Philosophy
Animation should:
- Feel natural, not flashy
- Provide feedback, not distraction
- Be fast (150-300ms), not slow
- Be subtle, not dramatic
### Standard Transitions
```tsx
// Hover states - use transition-colors or transition-all
// Card hover - subtle lift
// Button hover - built into shadcn, don't override
```
### Framer Motion Patterns
```tsx
// Page transitions
// List stagger
{items.map(item => (
{item.content}
))}
// Micro-interaction - button tap
Click me
```
### Animation Timing
- Hover effects: 150ms
- Small transitions: 200ms
- Page transitions: 300ms
- Complex animations: 400-500ms max
### Anti-Patterns
❌ Bounce effects (feels cheap)
❌ Slow animations (>500ms feels sluggish)
❌ Animation on every element (overwhelming)
❌ Spinning loaders everywhere (use skeleton instead)
❌ Dramatic entrance animations
## Component Design Patterns
### Cards
```tsx
// Clean card - no excessive decoration
{/* Content */}
// DO NOT: rounded-3xl, heavy shadows, gradient borders
```
### Buttons
```tsx
// Primary action
// Secondary action
// Destructive action
// Icon button
// DO NOT: gradient buttons, 3D effects, icons in primary buttons (usually)
```
### Forms
```tsx
// Clean form layout
// DO NOT: zebra stripes (outdated), heavy borders, centered content
```
## AI-Generated Red Flags
### The "Lovable Look" (Avoid)
- Purple/violet as primary color
- Gradient backgrounds on white cards
- Rounded-3xl on everything
- Emoji in headers
- "Welcome back, User! 👋"
- Generic stock-photo-style illustrations
### The "Bootstrap Look" (Avoid)
- Heavy drop shadows
- Rounded pill buttons
- Blue links on everything
- Card decks with equal heights
- Jumbotron-style headers
### The "Material Look" (Avoid, unless requested)
- Floating action buttons
- Raised cards everywhere
- Ripple effects on everything
- Hamburger menu on desktop
### What Makes It Look "Human-Made"
1. **Restraint** - Not every feature is highlighted
2. **Hierarchy** - Clear primary, secondary, tertiary
3. **Whitespace** - Room to breathe
4. **Consistency** - Same patterns repeated
5. **Subtle details** - Tiny touches that don't scream
6. **Real content** - No placeholder text visible
## Design Review Checklist
### Color Check
- [ ] Only ONE accent color used
- [ ] No gradients on white backgrounds
- [ ] No pure black text
- [ ] Sufficient contrast for accessibility
### Typography Check
- [ ] Max 3 font sizes per component
- [ ] Proper hierarchy (semibold titles, regular body)
- [ ] No ALL CAPS paragraphs
- [ ] Line height is readable (1.5+)
### Spacing Check
- [ ] Consistent padding throughout
- [ ] Enough whitespace between sections
- [ ] Content doesn't feel cramped
- [ ] Mobile spacing is proportional
### Animation Check
- [ ] Transitions are subtle (150-300ms)
- [ ] No bounce/spring effects
- [ ] Loading uses skeleton, not spinner
- [ ] Hover states provide feedback
### Component Check
- [ ] Cards don't have excessive decoration
- [ ] Buttons follow hierarchy (primary/secondary)
- [ ] Forms are cleanly laid out
- [ ] Tables are readable and interactive
### Final Check
- [ ] Would a user know this is AI-made? (Should be NO)
- [ ] Does it look like a real product? (Should be YES)
- [ ] Is it consistent with modern SaaS apps? (Should be YES)