# Bold Designs Skill
Create **bold, distinctive, production-grade** frontend interfaces. This skill produces expressive, modern designs that look nothing like generic AI output.
---
## When to Apply This Skill
Use this when:
- Building landing pages, marketing sites, or product interfaces
- Creating UI components (buttons, cards, heroes, navigation)
- Writing frontend code in React, Next.js, Vue, Svelte, or plain HTML/CSS
- Generating Tailwind CSS or vanilla CSS
---
## ⚠️ Project Styling Respect Rule
**This skill provides PRINCIPLES and TACTICS, not specific styling.**
When working in an existing project:
1. **ALWAYS** use the project's existing design system, colors, and tokens
2. **ALWAYS** match the project's existing spacing scale and typography
3. **ALWAYS** follow the project's component patterns and naming conventions
4. **NEVER** override existing Tailwind config, CSS variables, or theme settings
5. **NEVER** introduce new colors/fonts that conflict with the established palette
**What this skill DOES provide:**
- Anti-generic aesthetic principles (what to avoid, what makes designs feel templated)
- Accessibility requirements (APCA contrast, keyboard nav, ARIA)
- Animation performance rules (compositor properties, timing)
- Typography best practices (`text-balance`, `text-pretty`, hierarchy)
- Layout discipline (z-index scale, safe areas, optical alignment)
- Interaction patterns (focus-visible, touch targets, states)
**What this skill does NOT impose:**
- Specific color palettes (use the project's palette)
- Specific fonts (use the project's typography)
- Specific component library (adapt to project's stack)
- Specific spacing values (use the project's scale)
The color palettes and component examples below are **reference examples only** — use them for new/greenfield projects, or when no existing design system exists.
---
## Design Philosophy
### Core Principles
1. **Bold over safe** — Make visual choices that have a point of view. Boring is worse than slightly wrong.
2. **Intentional over uniform** — Every spacing, color, and size decision should serve a purpose.
3. **Expressive over minimal** — Users want personality, not sterile tech aesthetics.
4. **Readable over clever** — Visual interest must never sacrifice readability.
5. **Native over custom** — Use semantic HTML and CSS before JavaScript solutions.
### Anti-Generic Rules
**NEVER do these (they scream "AI generated"):**
- Uniform padding/margins everywhere (8px everywhere = AI)
- Default blue buttons without context
- Overly rounded corners on everything (rounded-2xl on everything = AI)
- Generic gradients (blue-to-purple is the new clipart)
- Centered everything with identical spacing
- Stock "hero + 3 features + testimonials + CTA" layout
- Sans-serif body text with no typographic personality
- Identical card components repeated without variation
**ALWAYS do these:**
- Mix spacing intentionally (tight headlines, generous section breaks)
- Use asymmetry where it serves hierarchy
- Add one unexpected visual element per section
- Vary component sizes based on importance
- Use color strategically, not decoratively
- Create visual rhythm through contrast, not repetition
---
## Visual Design System
### Typography
**Hierarchy (most important → least):**
| Level | Use | Size | Weight | Line Height |
|-------|-----|------|--------|-------------|
| Display | Hero headlines | 4xl-7xl | 700-900 | 1.0-1.1 |
| H1 | Page titles | 3xl-5xl | 700-800 | 1.1-1.2 |
| H2 | Section heads | 2xl-3xl | 600-700 | 1.2 |
| H3 | Card titles | xl-2xl | 600 | 1.3 |
| Body Large | Intro paragraphs | lg-xl | 400 | 1.6-1.7 |
| Body | Default text | base | 400 | 1.6 |
| Small | Captions, labels | sm | 500 | 1.4 |
**Typography Rules:**
- Apply `text-balance` to all headings
- Apply `text-pretty` to body paragraphs
- Use `tabular-nums` for any numerical data
- Use `truncate` or `line-clamp` for dense UI
- Never modify letter-spacing unless explicitly requested
- Font size ≥16px on mobile to prevent iOS auto-zoom
- Curly quotes (" ") not straight quotes (" ")
- Ellipsis character (…) not three periods (...)
**Font Pairing Strategy:**
- Headlines: Bold geometric sans (Inter, Satoshi, Plus Jakarta) or expressive display (Clash Display, Cabinet Grotesk)
- Body: Readable neutral sans (Inter, System UI) or humanist (Source Sans, Open Sans)
- Accent: Monospace for technical content, serif for editorial
### Color Strategy
**Palette Approach:**
- Bold primaries as accents, not backgrounds
- High contrast text (APCA preferred over WCAG 2)
- One accent color per view maximum
- Neon/vibrant colors for CTAs and highlights
- Dark mode should feel native, not inverted
**Contrast Requirements:**
- Text on backgrounds: APCA Lc 75+ for body, Lc 60+ for large text
- Interactive states (hover/active/focus) must have HIGHER contrast than rest state
- Never rely on color alone — always include text labels or icons
**Color Palette Examples:**
```css
/* Electric & Bold */
--primary: #7C3AED; /* Vibrant purple */
--accent: #06B6D4; /* Cyan pop */
--surface: #0F172A; /* Deep slate */
--text: #F8FAFC; /* Bright white */
/* Warm Energy */
--primary: #F97316; /* Orange energy */
--accent: #FBBF24; /* Golden highlight */
--surface: #1C1917; /* Warm black */
--text: #FAFAF9; /* Warm white */
/* Neo Brutalist */
--primary: #000000; /* Pure black */
--accent: #CCFF00; /* Acid green */
--surface: #FFFFFF; /* Pure white */
--border: #000000; /* Hard edges */
```
### Spacing System
**Use intentional, varied spacing:**
| Token | Value | Use Case |
|-------|-------|----------|
| xs | 4px | Icon gaps, tight inline |
| sm | 8px | Button padding, compact lists |
| md | 16px | Default element spacing |
| lg | 24px | Card padding, comfortable spacing |
| xl | 32px | Section element gaps |
| 2xl | 48px | Section padding |
| 3xl | 64px | Major section breaks |
| 4xl | 96px | Hero/footer margins |
**Spacing Rules:**
- Headlines: Tight line-height (1.0-1.2), generous margin-bottom
- Cards: Asymmetric padding (more bottom, less top creates visual lift)
- Sections: Large gaps between (3xl-4xl), tight within (md-lg)
- Never use identical spacing for everything
### Layout Discipline
**Grid & Alignment:**
- Every element aligns intentionally to grid, baseline, edge, or center
- Use optical alignment (±1px adjustment) when perception beats geometry
- Implement fixed z-index scale (never arbitrary values like z-[9999])
- Use `h-dvh` instead of `h-screen` for full viewport
- Respect `safe-area-inset` for fixed positioning
**Z-Index Scale:**
```css
--z-base: 0;
--z-dropdown: 100;
--z-sticky: 200;
--z-modal: 300;
--z-popover: 400;
--z-toast: 500;
```
**Responsive Approach:**
- Mobile-first breakpoints
- Touch targets: 44px minimum on mobile, 24px minimum on desktop
- Use `size-*` utilities for square elements (icons, avatars)
- Scrollbars: Only render necessary ones, fix overflow issues
---
## Interaction Design
### Animation Standards
**Performance Rules:**
- ONLY animate compositor properties: `transform`, `opacity`
- NEVER animate: `width`, `height`, `top`, `left`, `margin`, `padding`
- NEVER use `transition: all` — explicitly list properties
- Max `200ms` for interaction feedback
- Use `ease-out` for entrances, `ease-in` for exits
**Timing Functions:**
```css
--ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
--ease-out: cubic-bezier(0, 0, 0.2, 1);
--ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
```
**Motion Preferences:**
```css
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
animation-duration: 0.01ms !important;
transition-duration: 0.01ms !important;
}
}
```
**Animation Use Cases:**
- Hover states: subtle scale (1.02-1.05) or translateY (-2px)
- Page transitions: fade + slight translate
- Loading: skeleton shimmer, not spinners
- Micro-interactions: button press feedback, toggle switches
### Interactive States
**Every interactive element needs:**
1. **Rest** — Default appearance
2. **Hover** — Visual change on mouse over
3. **Focus** — Keyboard navigation (use `:focus-visible`)
4. **Active** — During click/tap
5. **Disabled** — Reduced opacity + cursor-not-allowed
**Focus Visibility:**
```css
/* Only show focus ring for keyboard users */
:focus-visible {
outline: 2px solid var(--primary);
outline-offset: 2px;
}
:focus:not(:focus-visible) {
outline: none;
}
```
### Button Patterns
**Primary CTA:**
```jsx
```
**Secondary/Ghost:**
```jsx
```
---
## Accessibility Requirements
### Non-Negotiable Checklist
**Every component MUST:**
- [ ] Have proper heading hierarchy (h1 → h2 → h3, no skips)
- [ ] Include alt text for all images
- [ ] Support full keyboard navigation
- [ ] Have sufficient color contrast (APCA Lc 75+ for body text)
- [ ] Use ARIA labels for icon-only buttons
- [ ] Have visible focus indicators
- [ ] Work without JavaScript where possible
### HTML Semantics
```html
Page Title
Features
{error}
``` ### Icon Buttons ```jsx // Always include aria-label for icon-only buttons ``` --- ## Component Patterns ### Hero Sections (Bold, Not Generic) **Pattern 1: Asymmetric Split** ```jsxNew Feature
Stop shipping interfaces that look like every other AI-generated page. Create something memorable.
Generate layouts, color schemes, and components with natural language.
Build in minutes, not hours. Our components are optimized for speed.
Clean, semantic code that your team will actually want to maintain.
WCAG AA compliant out of the box.
How we maintain consistency across 50+ products.
Bold colors, authentic voice, instant engagement.
Get started by creating your first project. It only takes a minute.