Bold Frontend Design Skill
Overview
Philosophy: Reject AI convergence. Claude naturally samples from high-probability design patterns (Inter fonts, purple gradients, centered layouts). This creates generic "AI slop" - safe, predictable, and forgettable designs.
Core Principle: "Make unexpected choices that feel genuinely designed for the context."
Key Insight: Steerability as a feature - Claude responds dramatically to specific guidance pushing away from convention. Dominant colors with sharp accents outperform timid, evenly-distributed palettes. Bold maximalism and refined minimalism both work - the key is intentionality, not intensity.
Prerequisites
Project Type: Next.js or React application
Dependencies (installed as needed):
npm install @react-three/fiber @react-three/drei @react-three/postprocessing framer-motion three
Verification: scripts/dependency_check.sh
Anti-Convergence Protocol
NEVER Use (Explicit Rejection List)
| Category |
Rejected Patterns |
| Fonts |
Inter, Roboto, Arial, Helvetica, system-ui |
| Colors |
Purple gradients (#6366f1, #8b5cf6, #a78bfa on light backgrounds) |
| Layouts |
Centered hero with symmetric two-column grid |
| Animations |
Simple fade-ins without choreography |
ALWAYS Verify (4 Questions)
Before implementing ANY design element:
- Have I seen this pattern in 100 other websites? → If yes, choose differently
- Is this choice safe or bold? → If safe, push further
- Does this reflect the specific context, or is it generic? → Must be context-specific
- Am I converging on a local maximum of safety? → Continuous pushback required
If answers are Yes/Safe/Generic/Converging → STOP and choose differently
Full anti-pattern checklist: [reference/anti-patterns.md](reference/anti-patterns.md)
Workflow Phases
Phase 1: Design Thinking (10-15 min) - PRE-CODE
Objective: Establish intentional creative direction before writing code.
- Define Purpose and Audience
- What problem does this interface solve? - Who is the target user? - What emotion/action should it inspire?
- Select Extreme Aesthetic Tone (choose ONE, commit fully):
- Brutalist: Raw, unstyled, stark contrasts, bold typography - Maximalist: Layered complexity, rich textures, abundant visuals - Retro-Futuristic: 80s neon, synthwave, chrome, grid perspectives - Organic: Flowing curves, natural movements, soft gradients - Luxury: Elegant restraint, premium materials (gold, marble) - Playful: Vibrant colors, unexpected interactions, whimsical - Editorial: Magazine-inspired, bold typography hierarchy
- Identify One Memorable Differentiator
- Interactive 3D visualization with bloom effects - Diagonal scroll-triggered reveals - Variable font weight animation on scroll - Asymmetric overlapping sections with parallax
- Document Constraints (framework, performance, accessibility)
Full guide: [reference/design-philosophy.md](reference/design-philosophy.md)
Phase 2: Rejection of Generic Patterns (5-10 min)
- Choose Distinctive Typography
- Display: Space Grotesk, Clash Display, Cabinet Grotesk, Syne - Body: Instrument Sans, Manrope, DM Sans, Outfit
- Define Dominant Color Palette (60-30-10 Rule)
- 60% Dominant: Deep background (e.g., #0a0e27) - 30% Secondary: Gradients (e.g., #06b6d4 → #3b82f6) - 10% Accent: Sharp highlights (#ffffff, #ef4444)
- Plan Unexpected Spatial Composition
- Asymmetry: 60/40 split instead of 50/50 - Overlap: Sections bleed into each other - Diagonal: Elements on rotated grids (-3deg, 5deg) - Viewport Units: Full-height sections with scroll-snap
Full checklist: [reference/anti-patterns.md](reference/anti-patterns.md)
Phase 3: Implementation (30-60 min)
- Install dependencies
- Set up typography system (next/font/google or @font-face)
- Build color system (Tailwind config or CSS variables)
- Create spatial composition (asymmetric grids, overlapping sections)
- Implement high-impact animations (orchestrated entrance, scroll parallax, 3D elements)
Full animation patterns: [reference/animation-techniques.md](reference/animation-techniques.md)
Phase 4: Refinement (15-20 min)
- Run Design Validation
``bash python .claude/skills/bold-frontend-design/scripts/validate_design.py frontend/ ``
- Check Performance: 60fps in Chrome DevTools
- Verify Accessibility: WCAG AA color contrast, keyboard navigation,
prefers-reduced-motion
- USER CONFIRMATION - CRITICAL
`` Can you confirm you see the design at http://localhost:3000? Does this feel bold and distinctive (not generic)? `` NEVER claim success without explicit user verification
Tool Selection Guide
When to Use React Three Fiber
- 3D objects (spheres, molecules, abstract shapes)
- Glass/metallic materials (MeshTransmissionMaterial)
- Bloom post-processing effects
- Floating/rotating 3D elements
Example: Hero section with molecular visualization
When to Use Framer Motion
- Orchestrated page entrance animations
- Scroll-triggered effects (useScroll, useTransform)
- Parallax compositions
- Gesture interactions (hover, tap, drag)
Example: Staggered text reveals on load
Decision Tree
Is the element 3D?
├─ Yes → React Three Fiber
│ └─ Need glow/glass? → MeshTransmissionMaterial + Bloom
│
└─ No → Framer Motion
└─ Triggered by scroll?
├─ Yes → useScroll + useTransform
└─ No → animate prop
Combining Both
<section className="relative">
{/* 3D Background */}
<div className="absolute inset-0 z-0">
<Canvas><Molecule /><Bloom /></Canvas>
</div>
{/* 2D Content Overlay */}
<motion.div className="relative z-10" initial={{ opacity: 0 }} animate={{ opacity: 1 }}>
<h1>Overlaid Content</h1>
</motion.div>
</section>
Full patterns: [reference/animation-techniques.md](reference/animation-techniques.md)
Success Criteria
Functional Requirements
Quality Requirements
MANDATORY
Troubleshooting
Design Feels Generic
- Run
validate_design.py to detect convergent patterns
- Check typography:
grep -r "font-family.*Inter" frontend/
- Check colors:
grep -r "#6366f1" frontend/
- Verify dominant color has 60%+ visual weight
- Add spatial break (asymmetry, overlap, rotation)
Animations Feel Scattered
- Consolidate to high-impact moments (not scattered micro-interactions)
- Page load: One orchestrated entrance sequence
- Scroll: One parallax effect with depth layers
- Hover: Dramatic state changes on key CTAs only
Full troubleshooting: [reference/design-philosophy.md](reference/design-philosophy.md)
Resources
Reference Materials
- [reference/design-philosophy.md](reference/design-philosophy.md) - Anti-convergence principles, aesthetic tones, case studies
- [reference/animation-techniques.md](reference/animation-techniques.md) - R3F + Framer Motion patterns (11 patterns)
- [reference/anti-patterns.md](reference/anti-patterns.md) - Explicit rejection checklist, detection scripts
Validation Scripts
scripts/validate_design.py - Detect generic fonts, colors, patterns
scripts/dependency_check.sh - Verify R3F, Framer Motion installed
Template
- [templates/hero-3d-parallax.tsx](templates/hero-3d-parallax.tsx) - Molecule hero section example
External
Final Checklist
Before completing this skill invocation:
- [ ] Design philosophy documented
- [ ] Anti-pattern checklist complete
- [ ] Typography distinctive (NO Inter/Roboto)
- [ ] Color palette dominant (NO purple gradients)
- [ ] Spatial composition intentional
- [ ] Animations high-impact (orchestrated)
- [ ]
validate_design.py passes
- [ ] Performance: 60fps verified
- [ ] Accessibility: WCAG AA checked
- [ ] USER CONFIRMATION RECEIVED
The Ultimate Test: If shown without branding, would 100 people remember this or think it's generic?
Remember: Bold design requires continuous resistance against ANY convergence toward safety. Think outside the box at every decision point.