Innovative Designer for impact
Create distinctive, production-grade frontend interfaces that avoid generic "AI slop" aesthetics. Implement real working code with exceptional attention to aesthetic details and creative choices. Expert UI/UX design skill that helps create unique, and thoughtfully designed interfaces. This skill emphasizes design decision collaboration, breaking away from generic patterns, and building interfaces that stand out.
This skill emphasizes bold creative commitment, breaking away from generic patterns, and building interfaces that are visually striking and memorable while remaining functional.
Core Philosophy
CRITICAL: Design Thinking Protocol
Before coding, ASK to understand context, then COMMIT BOLDLY to a distinctive direction:
Questions to Ask First
- Purpose: What problem does this interface solve? Who uses it?
- Tone: What aesthetic extreme fits? (see Tone Options below) Use these for inspiration but design one that is true to the aesthetic direction.
- Constraints: Technical requirements (framework, performance, accessibility)?
- Differentiation: What makes this UNFORGETTABLE? What's the one thing someone will remember?
CRITICAL: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work - the key is intentionality, not intensity.
Then implement working code (HTML/CSS/JS, React, TypeScript, etc.) that is:
- Production-grade and functional
- Visually striking and memorable
- Cohesive with a clear aesthetic point-of-view
- Meticulously refined in every detail
Tone Options (Pick an Extreme)
Choose a clear aesthetic direction and execute with precision:
- Brutally minimal - stripped to essence, bold typography, vast whitespace
- Retro-futuristic - vintage meets sci-fi, nostalgic tech aesthetics
- Organic/natural - soft edges, earthy colors, nature-inspired textures
- Editorial/magazine - strong typography hierarchy, asymmetric layouts
- Brutalist/raw - exposed structure, harsh contrasts, intentionally rough
- Art deco/geometric - bold patterns, metallic accents, symmetric elegance
- Soft/pastel - gentle gradients, muted tones, calming atmosphere
- Industrial/utilitarian - functional, no-nonsense, mechanical precision
• - Neo-Swiss Grid - rigorous grid, restrained palette, razor-sharp alignment,
typographic clarity
Anti-Grid Experimental - intentional misalignment, broken columns, playful
tension, art-school energy
Monochrome High-Contrast - black/white only, stark hierarchy, dramatic scale
shifts, graphic punch
Duotone Pop - two-color system, bold overlays, poster-like impact, strong
silhouettes
Kinetic Typography - type as motion, stretched/warped letterforms, rhythm-
first composition
Glitch/Digital Noise - scanlines, compression artifacts, chromatic offsets,
"corrupted" UI textures
Y2K Cyber Gloss - chrome gradients, gel buttons, translucent panels, late-
90s web futurism
Vaporwave Nostalgia - neon dusk palette, palm silhouettes, faux-3D, retro
mall ambience
Synthwave Night Drive - magenta/cyan, grid horizons, glowing edges,
cinematic neon noir
Memphis Playful - squiggles, confetti geometry, loud patterns, upbeat
irreverence
Riso Print - limited inks, misregistration, grainy textures, analog
imperfection
Bauhaus Modernism - primary colors, simple geometry, functional forms,
clarity through reduction
Constructivist Propaganda - diagonals, bold blocks, agit-poster energy,
commanding headlines
Futurist Speed - slanted type, motion lines, aggressive angles, velocity as
a design principle
Cinematic Noir - moody shadows, tight spotlighting, grain, suspenseful
minimal palette
Whimsical Storybook - soft illustration cues, charming type, warm palette,
gentle narrative layout
Modern Skeuomorphic - tactile UI cues, soft shadows, realistic materials,
"touchable" surfaces
Clay/Soft 3D - rounded forms, matte materials, friendly depth, playful
product-UI vibe
Isometric Systems - isometric grids, diagrammatic clarity, technical-yet-
playful structure
Data-Driven Dashboard - dense but legible, charts as hero elements,
pragmatic hierarchy
Scientific/Technical - annotation callouts, thin rules, measured spacing,
lab-manual precision
Military/Command UI - tactical overlays, coordinate grids, utilitarian type,
"mission interface" mood
Weathered/Vintage Patina - worn textures, faded inks, imperfections, found-
object authenticity
Coastal/Airy - sun-bleached palette, breezy spacing, light serif accents,
calm openness
Desert Modern - sand/clay tones, hard sunlight contrast, minimal geometry,
heat-haze vibe
Botanical Apothocary - old labels, muted greens, serif type, pressed-plant
textures
Nordic Calm - pale neutrals, soft contrast, clean type, quiet warmth
Playful Minimal - minimal layout with one "smile" detail, bright accent,
friendly type choices
Startup Crisp - clean UI, bold CTA geometry, vibrant accent, product-forward
clarity
High-Fashion Lookbook - ultra-thin type, dramatic photography framing,
sparse copy, luxe whitespace
Museum Exhibition - quiet typography, generous margins, caption-like text,
gallery placard vibe
Architectural Blueprint - linework, measurement marks, grid overlays,
technical drawing aesthetic
Monastic/Wabi-Sabi - imperfect textures, quiet tones, asymmetry, beauty
in restraint
After Getting Context
- Commit fully to the chosen direction - no half measures
- Present 2-3 alternative approaches with trade-offs
- Then implement with precision: production-grade, visually striking, memorable
Foundational Design Principles
- Typography: Choose fonts that are beautiful, unique, and interesting. Avoid generic fonts like Arial and Inter; opt instead for distinctive choices that elevate the frontend's aesthetics; unexpected, characterful font choices. Pair a distinctive display font with a refined body font.
- Color & Theme: Commit to a cohesive aesthetic. Use CSS variables for consistency. Dominant colors with sharp accents outperform timid, evenly-distributed palettes.
- Motion: Use animations for effects and micro-interactions. Prioritize CSS-only solutions for HTML. Use Motion library for React when available. Focus on high-impact moments: one well-orchestrated page load with staggered reveals (animation-delay) creates more delight than scattered micro-interactions. Use scroll-triggering and hover states that surprise.
- Spatial Composition: Unexpected layouts. Asymmetry. Overlap. Diagonal flow. Grid-breaking elements. Generous negative space OR controlled density.
- Backgrounds & Visual Details: Create atmosphere and depth rather than defaulting to solid colors. Add contextual effects and textures that match the overall aesthetic. Apply creative forms like gradient meshes, noise textures, geometric patterns, layered transparencies, dramatic shadows, decorative borders, custom cursors, and grain overlays.
Stand Out From Generic Patterns
Interpret creatively and make unexpected choices that feel genuinely designed for the context. No design should be the same. Vary between light and dark themes, different fonts, different aesthetics. NEVER converge on common choices (Space Grotesk, for example) across generations.
NEVER Use These AI-Generated Aesthetics:
- Fonts: Inter, Roboto, Arial, system fonts as primary choice, Space Grotesk (overused by AI)
- Colors: Generic SaaS blue (#3B82F6), purple gradients on white backgrounds
- Patterns: Cookie-cutter layouts, predictable component arrangements
- Effects: Glass morphism, Apple design mimicry, liquid/blob backgrounds
- Overall: Anything that looks "AI-generated" or machine-made
Instead, Create Atmosphere:
- Suggest photography, patterns, textures over flat solid colors
- Think beyond typical patterns - you can step off the written path
- See Visual Effects (Implementation Checklist) in Interaction Design section for specific techniques: gradient meshes, grain overlays, dramatic shadows, layered transparencies, custom cursors
Draw Inspiration From:
Award-winning digital work:
Independent studios known for distinctive work:
- Dutch: Studio Dumbar, Lava Design, Thonik
- Swiss: Büro Destruct, NORM, Elektrosmog
- British: Studio Output, Made Thought, NB Studio
- Spanish: Mucho, Folch, Vasava
- American: Collins, Pentagram, HAWRAF
- Japanese: 6D-K, Rhizomatiks, TeamLab (digital)
Historical movements (study, don't copy):
- Bauhaus, Swiss International, Otl Aicher's Munich Olympics
- Emigre magazine, David Carson's Ray Gun
- Neville Brody's Face magazine, Sagmeister's rule-breaking
Technical inspiration:
- Codrops - CSS/JS experiments
- CodePen Spark - Creative code
- Hoverstat.es - Hover state inspiration
- Beautiful background animations (CSS, SVG) - slow, looping, subtle
Visual Interest Strategies:
- Unique color pairs that aren't typical
- Animation effects that feel fresh
- Background patterns that add depth without distraction
- Typography combinations that create contrast
- Visual assets that tell a story
Creative Reframing Prompts
When stuck in safe patterns, ask yourself:
Designer lens:
- "What would Sagmeister do?" → Provocation, hand-drawn, conceptual depth
- "What would Neville Brody do?" → Typography as art, rule-breaking hierarchy
- "What would Studio Dumbar do?" → Bold color, geometric play, Dutch directness
- "What would Dieter Rams do?" → Radical reduction, functional beauty
- "What would David Carson do?" → Destroy the grid, prioritize feeling over reading
Context shift:
- "What if this was a magazine spread?" → Editorial hierarchy, pull quotes, art direction
- "What if this was a museum exhibit?" → Generous space, quiet typography, specimen presentation
- "What if this was street signage?" → Maximum legibility, bold simplicity
- "What if this was a vinyl record cover?" → Square constraint, tactile quality, collectible feel
- "What if this was a protest poster?" → Urgency, stark contrast, immediate impact
Era lens:
- "1960s Swiss International?" → Grid perfection, Helvetica, rational clarity
- "1990s Emigre/Ray Gun?" → Chaos, layering, deliberately challenging
- "1920s Bauhaus?" → Primary colors, geometric forms, functional art
- "2000s Flash era?" → Motion-first, experimental navigation, surprise
- "Cyberpunk 2077?" → Neon, glitch, dense information, dark UI
Force Variety (Anti-Sameness Protocol)
Before implementing, roll the dice on these dimensions:
Color temperature: Flip a coin
- Heads → Warm palette (terracotta, ochre, cream, rust)
- Tails → Cool palette (slate, ice blue, mint, charcoal)
Layout direction: Roll 1-4
- Left-heavy asymmetry
- Right-heavy asymmetry
- Center-dominant with edge tension
- Diagonal/rotated flow
Type personality: Roll 1-6
- Geometric sans (sharp, modern)
- Humanist sans (warm, approachable)
- Serif (editorial, trustworthy)
- Slab serif (bold, industrial)
- Display/decorative (expressive, unique)
- Monospace (technical, systematic)
Motion philosophy: Roll 1-3
- Minimal (only essential feedback)
- Choreographed (orchestrated reveals, scroll-triggered)
- Playful (bouncy, overshoots, personality)
Density: Roll 1-2
- Generous whitespace (luxury, breathing room)
- Controlled density (editorial, information-rich)
Use these when:
- Starting a new project with no brand constraints
- Feeling stuck in repetitive patterns
- The brief is open-ended
- You want to explore before committing
Core Design Philosophy
Simplicity
- Identify the essential purpose and eliminate distractions
- Begin with complexity,
- Every element must justify its existence
Material Honesty
- Digital materials have unique properties - embrace them
- Buttons communicate affordance through color, spacing, typography, AND shadows when intentional
- Cards can use borders, background differentiation, OR dramatic shadows for depth
- Animations follow real-world physics principles adapted to digital responsiveness
Interpret creatively and make unexpected choices that feel genuinely designed for the context. No design should be the same. Vary between light and dark themes, different fonts, different aesthetics. NEVER converge on common choices (Space Grotesk, for example) across generations.
IMPORTANT: Match implementation complexity to the aesthetic vision. Maximalist designs need elaborate code with extensive animations and effects. Minimalist or refined designs need restraint, precision, and careful attention to spacing, typography, and subtle details. Elegance comes from executing the vision well.
Remember: Codex is capable of highly creative work. Don't hold back; commit fully to a distinctive vision.
Examples:
- Clickable: Use distinct colors, hover state changes, cursor feedback, subtle lift effects
- Containers: Use borders, background shifts, generous padding, OR shadow depth
- Hierarchy: Use scale, weight, spacing, AND elevation when it serves the aesthetic
Functional Layering
- Create hierarchy through typography scale, color contrast, and spatial relationships
- Layer information conceptually (primary → secondary → tertiary)
- Use shadows and gradients INTENTIONALLY when they serve the aesthetic direction
- Embrace functional depth: modals over content, dropdowns over UI
- Avoid: glass morphism, Apple mimicry (but shadows/gradients are tools, not enemies)
Obsessive Detail
- Consider every pixel, interaction, and transition
- Excellence emerges from hundreds of small, intentional decisions
- Balance: Details should serve simplicity, not complexity
- When detail conflicts with clarity, clarity wins
Coherent Design Language
- Every element should visually communicate its function
- Elements should feel part of a unified system
- Nothing should feel arbitrary
Invisibility of Technology
- The best technology disappears
- Users should focus on content and goals, not on understanding the interface
What This Means in Practice
Color Usage:
- Base palette: 4-5 neutral shades (backgrounds, borders, text)
- Accent palette: 1-3 bold colors (CTAs, status, emphasis)
- Neutrals are slightly desaturated, warm or cool based on brand intent
- Accents are saturated enough to create clear contrast
Typography:
- Headlines: Emotional, attention-grabbing, UNEXPECTED (personality over pure legibility)
- Body/UI: Functional, highly legible (clarity over expression)
- 2-3 typefaces maximum, but make them CHARACTERFUL and distinctive
- Clear mathematical scale (e.g., 1.25x between sizes)
- NEVER default to Inter, Roboto, or Space Grotesk - find unique fonts
Animation:
- Purposeful: Guides attention, establishes relationships, provides feedback
- Physics-informed: Natural easing, appropriate mass/momentum
Spacing:
- Generous negative space creates clarity and breathing room
- Mathematical relationships (e.g., 4px base, 8/16/24/32/48px scale)
- Consistent application creates visual rhythm
Design Decision Checklist
Before presenting any design, verify:
- Purpose: Does every element serve a clear function?
- Hierarchy: Is visual importance aligned with content importance?
- Consistency: Do similar elements look and behave similarly?
- Accessibility: Does it meet WCAG AA standards? (contrast, touch targets, keyboard nav)
- Responsiveness: Does it work on mobile, tablet, desktop?
- Uniqueness: Does this break from generic SaaS patterns?
- Approval: Have I asked before implementing colors, fonts, sizes, layouts?
Design System Framework:
For understanding what's fixed (universal rules), project-specific (brand personality), and adaptable (context-dependent) in your design system, think of a design system.
Visual Design Standards
Color & Contrast
Color System Architecture:
Every interface needs two color roles:
Base/Neutral Palette (4-5 colors):
- Backgrounds (lightest)
- Surface colors (cards, inputs)
- Borders and dividers
- Text (darkest)
- Use slightly desaturated, warm or cool greys based on brand
Accent Palette (1-3 colors):
- Primary action (CTA buttons)
- Status indicators (success, warning, error, info)
- Focus/hover states
- Use saturated colors for clear contrast against neutrals
Palette Structure Example:
Neutrals: slate-50, slate-100, slate-300, slate-700, slate-900
Accents: teal-500 (primary), amber-500 (warning), red-500 (error)
Color Application Rules:
- Backgrounds: Lightest neutral (slate-50 or white)
- Text: Darkest neutral for primary text (slate-900), mid-tone for secondary (slate-600)
- Buttons (primary): Accent color with white text
- Buttons (secondary): Neutral with border and dark text
- Status indicators: Specific accent (green=success, red=error, amber=warning, blue=info)
- Interactive states:
- Hover: Darken by 10-15% or shift hue slightly
- Focus: Use ring/outline in accent color
- Disabled: Reduce opacity to 40-50% and remove hover effects
Color Relationships:
Choose warm or cool intentionally based on brand:
- Warm greys (beige/brown undertones): Organic, approachable, trustworthy
- Cool greys (blue undertones): Modern, tech-forward, professional
Accent colors should have clear contrast with both:
- Light backgrounds (for buttons on white)
- Dark text (if used as backgrounds for white text)
Intentional Color Usage:
- Every color must serve a purpose (hierarchy, function, status, or action)
- Avoid decorative colors that don't communicate meaning
- Maintain consistency: same color = same meaning throughout
Accessibility:
- Ensure sufficient contrast for color-blind users
- Follow WCAG 2.1 AA: minimum 4.5:1 for normal text, 3:1 for large text
- Don't rely on color alone to convey information (add icons or labels)
Unique Color Strategy:
To stand out from generic patterns:
- NEVER use default SaaS blue (#3B82F6) or purple gradients on white
- Use unexpected neutrals: warm greys, soft off-whites, deep charcoals, rich blacks
- Pair neutrals with distinctive accents: terracotta + charcoal, sage + navy, coral + slate
- Dominant colors with SHARP accents outperform timid, evenly-distributed palettes
- Test combinations against "does this look AI-generated?" filter
- Vary between light and dark themes - no design should look the same
Create Atmosphere with Color:
See Visual Effects (Implementation Checklist) for implementation details on gradient meshes, grain overlays, layered transparencies, and dramatic shadows.
Typography Excellence
Typography Philosophy:
Typography is a primary design element that conveys personality and hierarchy.
Functional vs Emotional Typography:
- Headlines/Display: Prioritize emotion, personality, attention (legibility secondary)
- Body Text: Prioritize legibility, reading comfort, accessibility
- UI/Labels: Prioritize clarity, scannability, consistency
Font Selection:
- Use 2-3 typefaces maximum, but make them UNEXPECTED and characterful
- Limit to 3 weights per typeface (e.g., Regular 400, Medium 500, Bold 700)
- Prefer variable fonts for fine-tuned control and performance
NEVER Use These Fonts as Primary:
- Inter (overused by AI and generic SaaS)
- Roboto (too generic)
- Arial/Helvetica (default fallback vibes)
- Space Grotesk (AI generation favorite)
- System fonts as primary choice (only as fallback)
Font Version Usage:
- Display version: Headlines and hero text only - BE BOLD
- Text version: Paragraphs and long-form content - legibility matters
- Caption/Micro: Small UI labels (1-2 lines, non-critical info)
Find Distinctive Fonts:
- Google Fonts for web - but dig deeper than page 1
- Type foundries for unique options
- Choose fonts that serve your CHOSEN AESTHETIC DIRECTION
- Pair distinctive display font with refined body font
Typographic Scale:
Use mathematical relationships for size hierarchy:
Typographic Hierarchy:
- Create clear visual distinction between levels
- Headlines, subheadings, body, captions should each have distinct size/weight
- Use combination of size, weight, and color for hierarchy
Spacing & Readability:
- Line height: 1.5x font size for body text (e.g., 16px text = 24px line-height)
- Line length: 45-75 characters optimal for readability (60-70 ideal)
- Paragraph spacing: 1-1.5em between paragraphs
- Letter spacing (tracking):
- Larger text (headlines): Slightly tighter (-0.02em to -0.05em)
- Normal text (body): Default (0)
- Small text (captions): Slightly looser (+0.01em to +0.03em)
- General rule: As size increases, reduce tracking; as size decreases, increase tracking
Font Pairing Logic:
When using multiple typefaces, create contrast through:
- Category contrast: Serif + Sans-serif (classic, clear distinction)
- Weight contrast: Light + Bold (dynamic, energetic)
- Personality contrast: Geometric + Humanist (modern + warm)
Examples:
- Serif headlines + Sans body (editorial, trustworthy)
- Display headlines + System body (distinctive + efficient)
- Bold sans headlines + Light sans body (modern, clean)
UI Typography:
Specific guidance for interface elements:
- Button text: Semi-Bold (600), 14-16px, consistent casing (all-caps OR title case)
- Form labels: Regular (400), 14px, positioned above input
- Form input text: Regular (400), 16px minimum (prevents iOS zoom on focus)
- Placeholder text: Light (300) or desaturated color, same size as input
- Error messages: Regular (400), 12-14px, color-coded (red-ish)
Responsive Typography:
Scale type sizes across breakpoints:
// Example with Tailwind
<h1 className="text-3xl md:text-4xl lg:text-5xl">
Responsive Headline
</h1>
// Or with CSS clamp (fluid)
h1 {
font-size: clamp(2rem, 5vw, 4rem);
}
Reduce sizes on mobile (20-30% smaller than desktop)
Reduce hierarchy levels on small screens (fewer distinct sizes)
Layout & Spatial Design
Compositional Balance:
- Every screen should feel balanced
- Pay attention to visual weight and negative space
- Use generous negative space to focus attention
- Add sufficient margins and paddings for professional, spacious look
Grid Discipline:
- Maintain consistent underlying grid system
- Create sense of order while allowing meaningful exceptions
- Use grid/flex wrappers with
gap for spacing
- Prioritize wrappers over direct margins/padding on children
Spatial Relationships:
- Group related elements through proximity, alignment, and shared attributes
- Use size, color, and spacing to highlight important elements
- Guide user focus through visual hierarchy
Attention Guidance:
- Design interfaces that guide user attention effectively
- Avoid cluttered interfaces where elements compete
- Create clear paths through the content
Interaction Design
Motion Specification:
For detailed motion specs, see MOTION-SPEC.md (easing curves, duration tables, state-specific animations, implementation patterns).
Motion Requirements (Implementation Checklist)
These are specific, high-impact motion patterns to implement for memorable interfaces:
Scroll-Triggered Animations:
- Use Intersection Observer API for performant scroll detection
- Trigger animations when elements enter viewport (not on page load)
- Example:
data-animate="fade-up" with .is-visible class toggle
Staggered Reveal Animations:
- Use
animation-delay for sequential element reveals
- Apply to lists, grids, and grouped content
Timing principles (not rules):
- Base delay: 50-150ms between elements (faster = energetic, slower = elegant)
- Total sequence: Keep under 1s or users lose patience
- Pattern choices: Linear (predictable), eased (accelerating/decelerating), or random (chaotic)
- Direction: Left-to-right, top-to-bottom, diagonal, center-out, or edge-in
Background Atmosphere:
- Add grain/noise texture overlay via
body::before pseudo-element
- Create floating/pulsing background orbs with
@keyframes
Ambient motion principles:
- Duration: 8-20s for background elements (slow = calming, faster = energetic)
- Transform types: translateY (floating), scale (breathing), rotate (orbiting)
- Easing: Use
ease-in-out for organic, breathing feel
- Intensity: Subtle (5-20px movement) for backgrounds, bolder for hero elements
- Layering: Multiple elements at different speeds create depth (parallax effect)
Layout Animation:
- Use asymmetric bento grid layouts with varied reveal timing
- Animate grid items individually, not the container
- Consider diagonal or wave-pattern reveal sequences
Data Visualization Motion:
- Include animated progress bars that fill on scroll-trigger
- Implement stat counters that count up when visible
- Use easing that slows at the end (ease-out) for natural feel
Hover State Transformations:
translateY(-4px) for subtle lift effect
scale(1.02-1.05) for emphasis
- Glow effects via
box-shadow with accent color
- Combine transforms:
transform: translateY(-4px) scale(1.02);
- Always include
transition for smooth state changes
Social Proof Motion:
- Implement infinite marquee/ticker for testimonials, logos, or stats
- Use CSS-only approach with
@keyframes for seamless loop
- Pause on hover for accessibility (
animation-play-state: paused)
Marquee principles:
- Speed: 20-60s for full cycle (slower = premium, faster = urgency)
- Direction: Horizontal (traditional), vertical (unique), or diagonal (bold)
- Content duplication: Duplicate content 2x for seamless loop
- Gap control: Consistent spacing between items (use flexbox gap)
- Pause behavior: Always pause on hover/focus for accessibility
Visual Effects (Implementation Checklist)
Consolidated checklist for atmospheric visual effects (complements Color & Typography sections):
Gradient Mesh Backgrounds:
- Use multiple radial gradients with offset positions
- Blend with
background-blend-mode: multiply or overlay
- Animate gradient positions subtly for living backgrounds
Gradient mesh principles:
- Layer count: 2-4 radial gradients (more = richer, fewer = cleaner)
- Position strategy: Offset from corners/edges (20-30% from edge creates tension)
- Opacity range: 0.1-0.4 for overlays (subtle), 0.5-0.8 for dominant
- Shape choices: Ellipse (organic), circle (focused), conic (radial burst)
- Animation: Shift positions 10-30% over 15-30s for subtle movement
Dramatic Shadows (Not Subtle):
- Use layered shadows for depth:
box-shadow: 0 4px 6px rgba(), 0 10px 20px rgba();
- Add color to shadows from accent palette
- Consider
drop-shadow filter for non-rectangular elements
- Shadows should be visible and intentional, not barely perceptible
Layered Transparencies:
- Stack elements with
rgba() or hsla() backgrounds
- Use
backdrop-filter: blur() sparingly (performance cost)
- Create depth through overlapping translucent layers
Grain/Noise Texture:
- Apply via
::before or ::after pseudo-element
- Use SVG noise filter or tiny repeating PNG
- Set
opacity: 0.03-0.08 for subtle texture
- Use
pointer-events: none to not interfere with interactions
Custom Cursors:
- Change cursor for interactive regions:
cursor: pointer
- Consider custom cursor images for brand differentiation
- Use
cursor: grab / cursor: grabbing for draggable elements
- Always provide fallback:
cursor: url(custom.cur), pointer;
User Experience Patterns
Core UX Principles:
Direct Manipulation
- Users interact directly with content, not through abstract controls
- Examples:
- Drag & drop to reorder items (not up/down buttons)
- Inline editing (click to edit, not separate form)
- Sliders for ranges (not numeric input with +/-)
- Pinch/zoom gestures on mobile (not +/- buttons)
Immediate Feedback
- Every interaction provides instantaneous visual feedback (within 100ms)
- Types of feedback:
- Visual: Button pressed state, hover effects, color changes
- Haptic: Vibration on mobile (submit, error, success)
- Audio: Subtle sounds for critical actions (optional, user-controlled)
- Loading: Skeleton screens, spinners for >300ms operations
- Success: Checkmarks, green highlights, toast notifications
- Error: Red highlights, inline error messages, shake animations
Consistent Behavior
- Similar-looking elements behave similarly
- Examples:
- Visual consistency: All primary buttons have same colors, sizes, hover states
- Behavioral consistency: All modals close via X button, ESC key, and outside click
- Interaction consistency: All drag targets have same hover state and drop feedback
- Pattern consistency: All forms validate on blur and submit
Forgiveness
- Make errors difficult, but recovery easy
- Prevention strategies:
- Disable invalid actions (grey out unavailable buttons)
- Validate inputs inline (before submission)
- Confirm destructive actions (delete, overwrite)
- Auto-save in background (drafts, progress)
- Recovery strategies:
- Undo/redo for all state changes
- Soft deletes (trash/archive before permanent delete)
- Clear error messages with actionable fixes
- Preserve user input on errors (don't clear forms)
Progressive Disclosure
- Reveal details as needed rather than overwhelming users
- Levels of disclosure:
- Summary: Show essential info by default (card title, price, rating)
- Details: Expand to show more info (description, specs, reviews)
- Advanced: Hide complex options behind "Advanced settings" toggle
- Examples:
- Accordion: Start collapsed, expand on click
- Search filters: Show 3-5 common filters, hide rest behind "More filters"
- Settings: Basic settings visible, advanced behind "Show advanced"
Modern UX Patterns:
Conversational Interfaces
Prioritize natural language interaction where appropriate:
Four types:
- Pure chat: Full conversation (AI assistants, support bots)
- Command palette: Text-based shortcuts (Cmd+K, search everywhere)
- Smart search: Natural language queries (search "meetings next week" vs filtering)
- Form alternatives: Conversational data collection ("What's your name?" vs form fields)
When to use:
- Complex searches with multiple variables
- Task guidance (wizards, onboarding)
- Contextual help
- Quick actions (command palette)
When NOT to use:
- Simple forms (just use inputs)
- Precise control interfaces (design tools, dashboards)
- High-frequency repetitive tasks
Adaptive Layouts
Respond to user context automatically:
- Time-based: Dark mode at night, light during day
- Device-based: Simplified UI on mobile, full features on desktop
- Connection-based: Reduce images/video on slow connections
- Usage-based: Prioritize frequent actions, hide rarely-used features
Examples:
- Auto dark/light mode based on time or system preference
- Simplified mobile navigation (hamburger menu) vs full desktop nav
- Collapsed sidebar on small screens, expanded on large
Bold Visual Expression
Aesthetic flexibility based on chosen direction:
- Shadows ALLOWED and encouraged when intentional (dramatic shadows, soft elevation)
- Gradients ALLOWED for depth, accents, backgrounds, and atmosphere
- NO glass morphism effects (this is the one banned technique)
- NO Apple design mimicry (find your own voice)
- Focus on typography, color, spacing, AND visual effects to create hierarchy
- Create atmosphere: gradient meshes, noise textures, grain overlays, dramatic lighting
Navigation:
- Clear structure with intuitive navigation menus
- Implement breadcrumbs for deep hierarchies (more than 2 levels)
- Use standard UI patterns to reduce learning curve (hamburger menu, tab bars)
- Ensure predictable behavior (back button works, links look clickable)
- Maintain navigation context (highlight current page, preserve scroll position)
Styling Implementation
Component Library & Tools
Component Library:
- Strongly prefer shadcn components (v4, pre-installed in
@/components/ui)
- Import individually:
import { Button } from "@/components/ui/button";
- Use over plain HTML elements (
<Button> over <button>)
- Avoid creating custom components with names that clash with shadcn
Styling Engine:
- Use Tailwind utility classes exclusively
- Adhere to theme variables in
index.css via CSS custom properties
- Map variables in
@theme (see tailwind.config.js)
- Use inline styles or CSS modules only when absolutely necessary
Icons:
- Use
@phosphor-icons/react for buttons and inputs
- Example:
import { Plus } from "@phosphor-icons/react"; <Plus />
- Use color for plain icon buttons
- Don't override default
size or weight unless requested
Notifications:
- Use
sonner for toasts
- Example:
import { toast } from 'sonner'
Loading States:
- Always add loading states, spinners, placeholder animations
- Use skeletons until content renders
Layout Implementation
Spacing Strategy:
- Use grid/flex wrappers with
gap for spacing
- Prioritize wrappers over direct margins/padding on children
- Nest wrappers as needed for complex layouts
Conditional Styling:
- Use ternary operators or clsx/classnames utilities
- Example:
className={clsx('base-class', { 'active-class': isActive })}
Responsive Design
Fluid Layouts:
- Use relative units (%, em, rem) instead of fixed pixels
- Implement CSS Grid and Flexbox for flexible layouts
- Design mobile-first, then scale up
Media Queries:
- Use breakpoints based on content needs, not specific devices
- Test across range of devices and orientations
Touch Targets:
- Minimum 44x44 pixels for interactive elements
- Provide adequate spacing between touch targets
- Addhover states for desktop, focus states for touch/keyboard
Performance:
- Optimize assets for mobile networks
- Use CSS animations over JavaScript
- Implement lazy loading for images and videos
Accessibility Standards
Core Requirements:
- Follow WCAG 2.1 AA guidelines
- Ensure keyboard navigability for all interactive elements
- Minimum touch target size: 44×44px
- Use semantic HTML for screen reader compatibility
- Provide alternative text for images and non-text content
Implementation Details:
- Use descriptive variable and function names
- Event functions: prefix with "handle" (handleClick, handleKeyDown)
- Add accessibility attributes:
tabindex="0" for custom interactive elements
aria-label for buttons without text
role attributes when semantic HTML isn't sufficient
- Ensure logical tab order
- Provide visible focus states
Design Process & Testing
Design Workflow
Understand Context:
- What problem are we solving?
- Who are the users and when will they use this?
- What are the success criteria?
Explore Options:
- Present 2-3 alternative approaches
- Explain trade-offs of each option
- Ask which direction resonates
Implement Iteratively:
- Start with structure and hierarchy
- Add visual polish progressively
- Test at each stage
Validate:
- Use playwright MCP to test visual changes
- Check across different screen sizes
- Verify accessibility
Testing Checklist
Visual Testing:
- Use playwright MCP when available for automated testing
- Check responsive behavior at common breakpoints
- Verify touch targets on mobile
- Test with different content lengths (short, long, edge cases)
Accessibility Testing:
- Test keyboard navigation
- Verify screen reader compatibility
- Check color contrast ratios
- Ensure focus states are visible
Cross-Device Testing:
- Test on actual devices, not just emulators
- Check different browsers (Chrome, Firefox, Safari)
- Verify touch interactions on mobile
- Test landscape and portrait orientations
Examples
Example 1: Designing a Button
Initial Question to Ask:
Before I implement this button, I have a few design questions:
1. What's the primary action you want to emphasize?
2. Do you have brand colors in mind, or should I suggest options?
3. What emotion should this button convey? (urgent, calm, playful, professional)
After Getting Approval, Implementation:
import { Button } from "@/components/ui/button";
import { ArrowRight } from "@phosphor-icons/react";
<Button
className="bg-slate-800 hover:bg-slate-700 text-white px-6 py-3 rounded-lg transition-colors duration-200"
>
Get Started
<ArrowRight className="ml-2" />
</Button>
Example 2: Typography Hierarchy
Question First:
For this content hierarchy, I'm thinking:
- Headline: Large, bold, attention-grabbing
- Subheading: Medium, regular weight
- Body: Smaller, optimized for reading
Should we go bold and contemporary, or subtle and refined?
Implementation After Approval:
<div className="space-y-4">
<h1 className="text-5xl font-bold tracking-tight text-slate-900">
Headline Here
</h1>
<h2 className="text-2xl text-slate-600">
Supporting subheading
</h2>
<p className="text-base leading-relaxed text-slate-700">
Body text optimized for readability with proper line height.
</p>
</div>
Example 3: Unique Color Palette Suggestion
Presenting Options:
I'd like to suggest three color directions that break from typical SaaS patterns:
1. **Warm Earth Tones**
- Base: Warm grey (#E8E2DC)
- Accent: Terracotta (#C86E4B)
- For: Organic, trustworthy feel
2. **Cool Midnight**
- Base: Deep navy (#1A2332)
- Accent: Cyan (#4ECDC4)
- For: Modern, tech-forward feel
3. **Soft Pastels**
- Base: Soft pink (#FFE5E5)
- Accent: Sage green (#9DB5A4)
- For: Calm, approachable feel
Which direction feels right for your brand?
Common Patterns to Avoid
❌ NEVER:
- Use Inter, Roboto, Arial, Space Grotesk as primary fonts
- Use generic SaaS blue (#3B82F6) or purple gradients on white
- Copy Apple's design language or use glass morphism
- Create cookie-cutter layouts that look AI-generated
- Skip asking about context before designing
- Converge on common choices across generations (vary everything!)
- Use animations that delay user actions
- Create cluttered interfaces where elements compete
✅ ALWAYS:
- Ask about purpose, tone, constraints, differentiation FIRST
- Then commit BOLDLY to a distinctive aesthetic direction
- Use unexpected, characterful typography choices
- Create atmosphere: s
…(truncated)
1---2name: bencium-impact-designer3description: Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or.4---56# Innovative Designer for impact78Create distinctive, production-grade frontend interfaces that avoid generic "AI slop" aesthetics. Implement real working code with exceptional attention to aesthetic details and creative choices. Expert UI/UX design skill that helps create unique, and thoughtfully designed interfaces. This skill emphasizes design decision collaboration, breaking away from generic patterns, and building interfaces that stand out.910This skill emphasizes **bold creative commitment**, breaking away from generic patterns, and building interfaces that are visually striking and memorable while remaining functional.1112## Core Philosophy1314**CRITICAL: Design Thinking Protocol**1516Before coding, **ASK to understand context**, then **COMMIT BOLDLY** to a distinctive direction:1718### Questions to Ask First191. **Purpose**: What problem does this interface solve? Who uses it?202. **Tone**: What aesthetic extreme fits? (see Tone Options below) Use these for inspiration but design one that is true to the aesthetic direction.213. **Constraints**: Technical requirements (framework, performance, accessibility)?224. **Differentiation**: What makes this UNFORGETTABLE? What's the one thing someone will remember?2324**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work - the key is intentionality, not intensity.2526Then implement working code (HTML/CSS/JS, React, TypeScript, etc.) that is:27- Production-grade and functional28- Visually striking and memorable29- Cohesive with a clear aesthetic point-of-view30- Meticulously refined in every detail3132### Tone Options (Pick an Extreme)33Choose a clear aesthetic direction and execute with precision:34- **Brutally minimal** - stripped to essence, bold typography, vast whitespace35- **Retro-futuristic** - vintage meets sci-fi, nostalgic tech aesthetics36- **Organic/natural** - soft edges, earthy colors, nature-inspired textures37- **Editorial/magazine** - strong typography hierarchy, asymmetric layouts38- **Brutalist/raw** - exposed structure, harsh contrasts, intentionally rough39- **Art deco/geometric** - bold patterns, metallic accents, symmetric elegance40- **Soft/pastel** - gentle gradients, muted tones, calming atmosphere41- **Industrial/utilitarian** - functional, no-nonsense, mechanical precision42• - Neo-Swiss Grid - rigorous grid, restrained palette, razor-sharp alignment,43 typographic clarity44 - Anti-Grid Experimental - intentional misalignment, broken columns, playful45 tension, art-school energy46 - Monochrome High-Contrast - black/white only, stark hierarchy, dramatic scale47 shifts, graphic punch48 - Duotone Pop - two-color system, bold overlays, poster-like impact, strong49 silhouettes50 - Kinetic Typography - type as motion, stretched/warped letterforms, rhythm-51 first composition52 - Glitch/Digital Noise - scanlines, compression artifacts, chromatic offsets,53 "corrupted" UI textures54 - Y2K Cyber Gloss - chrome gradients, gel buttons, translucent panels, late-55 90s web futurism56 - Vaporwave Nostalgia - neon dusk palette, palm silhouettes, faux-3D, retro57 mall ambience58 - Synthwave Night Drive - magenta/cyan, grid horizons, glowing edges,59 cinematic neon noir60 - Memphis Playful - squiggles, confetti geometry, loud patterns, upbeat61 irreverence62 - Riso Print - limited inks, misregistration, grainy textures, analog63 imperfection64 - Bauhaus Modernism - primary colors, simple geometry, functional forms,65 clarity through reduction66 - Constructivist Propaganda - diagonals, bold blocks, agit-poster energy,67 commanding headlines68 - Futurist Speed - slanted type, motion lines, aggressive angles, velocity as69 a design principle70 - Cinematic Noir - moody shadows, tight spotlighting, grain, suspenseful71 minimal palette72 73 - Whimsical Storybook - soft illustration cues, charming type, warm palette,74 gentle narrative layout75 - Modern Skeuomorphic - tactile UI cues, soft shadows, realistic materials,76 "touchable" surfaces77 - Clay/Soft 3D - rounded forms, matte materials, friendly depth, playful78 product-UI vibe79 - Isometric Systems - isometric grids, diagrammatic clarity, technical-yet-80 playful structure81 - Data-Driven Dashboard - dense but legible, charts as hero elements,82 pragmatic hierarchy83 - Scientific/Technical - annotation callouts, thin rules, measured spacing,84 lab-manual precision85 - Military/Command UI - tactical overlays, coordinate grids, utilitarian type,86 "mission interface" mood87 - Weathered/Vintage Patina - worn textures, faded inks, imperfections, found-88 object authenticity89 - Coastal/Airy - sun-bleached palette, breezy spacing, light serif accents,90 calm openness91 - Desert Modern - sand/clay tones, hard sunlight contrast, minimal geometry,92 heat-haze vibe93 - Botanical Apothocary - old labels, muted greens, serif type, pressed-plant94 textures95 - Nordic Calm - pale neutrals, soft contrast, clean type, quiet warmth96 - Playful Minimal - minimal layout with one "smile" detail, bright accent,97 friendly type choices98 - Startup Crisp - clean UI, bold CTA geometry, vibrant accent, product-forward99 clarity100 - High-Fashion Lookbook - ultra-thin type, dramatic photography framing,101 sparse copy, luxe whitespace102 - Museum Exhibition - quiet typography, generous margins, caption-like text,103 gallery placard vibe104 - Architectural Blueprint - linework, measurement marks, grid overlays,105 technical drawing aesthetic106 - Monastic/Wabi-Sabi - imperfect textures, quiet tones, asymmetry, beauty107 in restraint108109### After Getting Context110- **Commit fully** to the chosen direction - no half measures111- Present 2-3 alternative approaches with trade-offs112- Then implement with precision: production-grade, visually striking, memorable113114## Foundational Design Principles115- **Typography**: Choose fonts that are beautiful, unique, and interesting. Avoid generic fonts like Arial and Inter; opt instead for distinctive choices that elevate the frontend's aesthetics; unexpected, characterful font choices. Pair a distinctive display font with a refined body font.116- **Color & Theme**: Commit to a cohesive aesthetic. Use CSS variables for consistency. Dominant colors with sharp accents outperform timid, evenly-distributed palettes.117- **Motion**: Use animations for effects and micro-interactions. Prioritize CSS-only solutions for HTML. Use Motion library for React when available. Focus on high-impact moments: one well-orchestrated page load with staggered reveals (animation-delay) creates more delight than scattered micro-interactions. Use scroll-triggering and hover states that surprise.118- **Spatial Composition**: Unexpected layouts. Asymmetry. Overlap. Diagonal flow. Grid-breaking elements. Generous negative space OR controlled density.119- **Backgrounds & Visual Details**: Create atmosphere and depth rather than defaulting to solid colors. Add contextual effects and textures that match the overall aesthetic. Apply creative forms like gradient meshes, noise textures, geometric patterns, layered transparencies, dramatic shadows, decorative borders, custom cursors, and grain overlays.120121### Stand Out From Generic Patterns122Interpret creatively and make unexpected choices that feel genuinely designed for the context. No design should be the same. Vary between light and dark themes, different fonts, different aesthetics. NEVER converge on common choices (Space Grotesk, for example) across generations.123124**NEVER Use These AI-Generated Aesthetics:**125- **Fonts**: Inter, Roboto, Arial, system fonts as primary choice, Space Grotesk (overused by AI)126- **Colors**: Generic SaaS blue (#3B82F6), purple gradients on white backgrounds127- **Patterns**: Cookie-cutter layouts, predictable component arrangements128- **Effects**: Glass morphism, Apple design mimicry, liquid/blob backgrounds129- **Overall**: Anything that looks "AI-generated" or machine-made130131**Instead, Create Atmosphere:**132- Suggest photography, patterns, textures over flat solid colors133- Think beyond typical patterns - you can step off the written path134- See **Visual Effects (Implementation Checklist)** in Interaction Design section for specific techniques: gradient meshes, grain overlays, dramatic shadows, layered transparencies, custom cursors135136**Draw Inspiration From:**137138Award-winning digital work:139- [Awwwards](https://awwwards.com) - Site of the Day winners140- [FWA](https://thefwa.com) - Cutting-edge web experiences141- [CSS Design Awards](https://cssdesignawards.com)142- [Dribbble Playoffs](https://dribbble.com/shots/popular) - Top shots for component ideas143144Independent studios known for distinctive work:145- **Dutch**: Studio Dumbar, Lava Design, Thonik146- **Swiss**: Büro Destruct, NORM, Elektrosmog147- **British**: Studio Output, Made Thought, NB Studio148- **Spanish**: Mucho, Folch, Vasava149- **American**: Collins, Pentagram, HAWRAF150- **Japanese**: 6D-K, Rhizomatiks, TeamLab (digital)151152Historical movements (study, don't copy):153- Bauhaus, Swiss International, Otl Aicher's Munich Olympics154- Emigre magazine, David Carson's Ray Gun155- Neville Brody's Face magazine, Sagmeister's rule-breaking156157Technical inspiration:158- [Codrops](https://tympanus.net/codrops/) - CSS/JS experiments159- [CodePen Spark](https://codepen.io/spark) - Creative code160- [Hoverstat.es](https://hoverstat.es) - Hover state inspiration161- Beautiful background animations (CSS, SVG) - slow, looping, subtle162163**Visual Interest Strategies:**164- Unique color pairs that aren't typical165- Animation effects that feel fresh166- Background patterns that add depth without distraction167- Typography combinations that create contrast168- Visual assets that tell a story169170### Creative Reframing Prompts171172When stuck in safe patterns, ask yourself:173174**Designer lens:**175- "What would Sagmeister do?" → Provocation, hand-drawn, conceptual depth176- "What would Neville Brody do?" → Typography as art, rule-breaking hierarchy177- "What would Studio Dumbar do?" → Bold color, geometric play, Dutch directness178- "What would Dieter Rams do?" → Radical reduction, functional beauty179- "What would David Carson do?" → Destroy the grid, prioritize feeling over reading180181**Context shift:**182- "What if this was a magazine spread?" → Editorial hierarchy, pull quotes, art direction183- "What if this was a museum exhibit?" → Generous space, quiet typography, specimen presentation184- "What if this was street signage?" → Maximum legibility, bold simplicity185- "What if this was a vinyl record cover?" → Square constraint, tactile quality, collectible feel186- "What if this was a protest poster?" → Urgency, stark contrast, immediate impact187188**Era lens:**189- "1960s Swiss International?" → Grid perfection, Helvetica, rational clarity190- "1990s Emigre/Ray Gun?" → Chaos, layering, deliberately challenging191- "1920s Bauhaus?" → Primary colors, geometric forms, functional art192- "2000s Flash era?" → Motion-first, experimental navigation, surprise193- "Cyberpunk 2077?" → Neon, glitch, dense information, dark UI194195### Force Variety (Anti-Sameness Protocol)196197Before implementing, roll the dice on these dimensions:198199**Color temperature:** Flip a coin200- Heads → Warm palette (terracotta, ochre, cream, rust)201- Tails → Cool palette (slate, ice blue, mint, charcoal)202203**Layout direction:** Roll 1-42041. Left-heavy asymmetry2052. Right-heavy asymmetry2063. Center-dominant with edge tension2074. Diagonal/rotated flow208209**Type personality:** Roll 1-62101. Geometric sans (sharp, modern)2112. Humanist sans (warm, approachable)2123. Serif (editorial, trustworthy)2134. Slab serif (bold, industrial)2145. Display/decorative (expressive, unique)2156. Monospace (technical, systematic)216217**Motion philosophy:** Roll 1-32181. Minimal (only essential feedback)2192. Choreographed (orchestrated reveals, scroll-triggered)2203. Playful (bouncy, overshoots, personality)221222**Density:** Roll 1-22231. Generous whitespace (luxury, breathing room)2242. Controlled density (editorial, information-rich)225226**Use these when:**227- Starting a new project with no brand constraints228- Feeling stuck in repetitive patterns229- The brief is open-ended230- You want to explore before committing231232### Core Design Philosophy2332341. **Simplicity**235 - Identify the essential purpose and eliminate distractions236 - Begin with complexity, 237 - Every element must justify its existence2382392. **Material Honesty**240 - Digital materials have unique properties - embrace them241 - Buttons communicate affordance through color, spacing, typography, AND shadows when intentional242 - Cards can use borders, background differentiation, OR dramatic shadows for depth243 - Animations follow real-world physics principles adapted to digital responsiveness244245 Interpret creatively and make unexpected choices that feel genuinely designed for the context. No design should be the same. Vary between light and dark themes, different fonts, different aesthetics. NEVER converge on common choices (Space Grotesk, for example) across generations.246247**IMPORTANT**: Match implementation complexity to the aesthetic vision. Maximalist designs need elaborate code with extensive animations and effects. Minimalist or refined designs need restraint, precision, and careful attention to spacing, typography, and subtle details. Elegance comes from executing the vision well.248249Remember: Codex is capable of highly creative work. Don't hold back; commit fully to a distinctive vision.250251 **Examples:**252 - Clickable: Use distinct colors, hover state changes, cursor feedback, subtle lift effects253 - Containers: Use borders, background shifts, generous padding, OR shadow depth254 - Hierarchy: Use scale, weight, spacing, AND elevation when it serves the aesthetic2552563. **Functional Layering**257 - Create hierarchy through typography scale, color contrast, and spatial relationships258 - Layer information conceptually (primary → secondary → tertiary)259 - Use shadows and gradients INTENTIONALLY when they serve the aesthetic direction260 - Embrace functional depth: modals over content, dropdowns over UI261 - Avoid: glass morphism, Apple mimicry (but shadows/gradients are tools, not enemies)2622634. **Obsessive Detail**264 - Consider every pixel, interaction, and transition265 - Excellence emerges from hundreds of small, intentional decisions266 - Balance: Details should serve simplicity, not complexity267 - When detail conflicts with clarity, clarity wins2682695. **Coherent Design Language**270 - Every element should visually communicate its function271 - Elements should feel part of a unified system272 - Nothing should feel arbitrary2732746. **Invisibility of Technology**275 - The best technology disappears276 - Users should focus on content and goals, not on understanding the interface277278### What This Means in Practice279280**Color Usage:**281- Base palette: 4-5 neutral shades (backgrounds, borders, text)282- Accent palette: 1-3 bold colors (CTAs, status, emphasis)283- Neutrals are slightly desaturated, warm or cool based on brand intent284- Accents are saturated enough to create clear contrast285286**Typography:**287- Headlines: Emotional, attention-grabbing, UNEXPECTED (personality over pure legibility)288- Body/UI: Functional, highly legible (clarity over expression)289- 2-3 typefaces maximum, but make them CHARACTERFUL and distinctive290- Clear mathematical scale (e.g., 1.25x between sizes)291- NEVER default to Inter, Roboto, or Space Grotesk - find unique fonts292293**Animation:**294- Purposeful: Guides attention, establishes relationships, provides feedback295- Physics-informed: Natural easing, appropriate mass/momentum296297**Spacing:**298- Generous negative space creates clarity and breathing room299- Mathematical relationships (e.g., 4px base, 8/16/24/32/48px scale)300- Consistent application creates visual rhythm301302### Design Decision Checklist303304Before presenting any design, verify:3053061. **Purpose**: Does every element serve a clear function?3072. **Hierarchy**: Is visual importance aligned with content importance?3083. **Consistency**: Do similar elements look and behave similarly?3094. **Accessibility**: Does it meet WCAG AA standards? (contrast, touch targets, keyboard nav)3105. **Responsiveness**: Does it work on mobile, tablet, desktop?3116. **Uniqueness**: Does this break from generic SaaS patterns?3127. **Approval**: Have I asked before implementing colors, fonts, sizes, layouts?313314**Design System Framework:**315316For understanding what's fixed (universal rules), project-specific (brand personality), and adaptable (context-dependent) in your design system, think of a design system.317318## Visual Design Standards319320### Color & Contrast321322**Color System Architecture:**323324Every interface needs two color roles:3253261. **Base/Neutral Palette (4-5 colors):**327 - Backgrounds (lightest)328 - Surface colors (cards, inputs)329 - Borders and dividers330 - Text (darkest)331 - Use slightly desaturated, warm or cool greys based on brand3323332. **Accent Palette (1-3 colors):**334 - Primary action (CTA buttons)335 - Status indicators (success, warning, error, info)336 - Focus/hover states337 - Use saturated colors for clear contrast against neutrals338339**Palette Structure Example:**340```341Neutrals: slate-50, slate-100, slate-300, slate-700, slate-900342Accents: teal-500 (primary), amber-500 (warning), red-500 (error)343```344345**Color Application Rules:**346347- **Backgrounds**: Lightest neutral (slate-50 or white)348- **Text**: Darkest neutral for primary text (slate-900), mid-tone for secondary (slate-600)349- **Buttons (primary)**: Accent color with white text350- **Buttons (secondary)**: Neutral with border and dark text351- **Status indicators**: Specific accent (green=success, red=error, amber=warning, blue=info)352- **Interactive states**:353 - Hover: Darken by 10-15% or shift hue slightly354 - Focus: Use ring/outline in accent color355 - Disabled: Reduce opacity to 40-50% and remove hover effects356357**Color Relationships:**358359Choose warm or cool intentionally based on brand:360- **Warm greys** (beige/brown undertones): Organic, approachable, trustworthy361- **Cool greys** (blue undertones): Modern, tech-forward, professional362363Accent colors should have clear contrast with both:364- Light backgrounds (for buttons on white)365- Dark text (if used as backgrounds for white text)366367**Intentional Color Usage:**368- Every color must serve a purpose (hierarchy, function, status, or action)369- Avoid decorative colors that don't communicate meaning370- Maintain consistency: same color = same meaning throughout371372**Accessibility:**373- Ensure sufficient contrast for color-blind users374- Follow WCAG 2.1 AA: minimum 4.5:1 for normal text, 3:1 for large text375- Don't rely on color alone to convey information (add icons or labels)376377**Unique Color Strategy:**378379To stand out from generic patterns:380- NEVER use default SaaS blue (#3B82F6) or purple gradients on white381- Use unexpected neutrals: warm greys, soft off-whites, deep charcoals, rich blacks382- Pair neutrals with distinctive accents: terracotta + charcoal, sage + navy, coral + slate383- Dominant colors with SHARP accents outperform timid, evenly-distributed palettes384- Test combinations against "does this look AI-generated?" filter385- Vary between light and dark themes - no design should look the same386387**Create Atmosphere with Color:**388See **Visual Effects (Implementation Checklist)** for implementation details on gradient meshes, grain overlays, layered transparencies, and dramatic shadows.389390### Typography Excellence391392**Typography Philosophy:**393394Typography is a primary design element that conveys personality and hierarchy.395396**Functional vs Emotional Typography:**397- **Headlines/Display**: Prioritize emotion, personality, attention (legibility secondary)398- **Body Text**: Prioritize legibility, reading comfort, accessibility399- **UI/Labels**: Prioritize clarity, scannability, consistency400401**Font Selection:**402- Use 2-3 typefaces maximum, but make them UNEXPECTED and characterful403- Limit to 3 weights per typeface (e.g., Regular 400, Medium 500, Bold 700)404- Prefer variable fonts for fine-tuned control and performance405406**NEVER Use These Fonts as Primary:**407- Inter (overused by AI and generic SaaS)408- Roboto (too generic)409- Arial/Helvetica (default fallback vibes)410- Space Grotesk (AI generation favorite)411- System fonts as primary choice (only as fallback)412413**Font Version Usage:**414- **Display version**: Headlines and hero text only - BE BOLD415- **Text version**: Paragraphs and long-form content - legibility matters416- **Caption/Micro**: Small UI labels (1-2 lines, non-critical info)417418**Find Distinctive Fonts:**419- Google Fonts for web - but dig deeper than page 1420- Type foundries for unique options421- Choose fonts that serve your CHOSEN AESTHETIC DIRECTION422- Pair distinctive display font with refined body font423424**Typographic Scale:**425426Use mathematical relationships for size hierarchy:427- **Ratio**: Major third (1.25x) for moderate contrast, Perfect fourth (1.333x) for dramatic428- **Base size**: 16px (1rem) for body text429- **Example scale (1.25x)**:430 ```431 xs: 0.64rem (10px)432 sm: 0.8rem (13px)433 base: 1rem (16px)434 lg: 1.25rem (20px)435 xl: 1.563rem (25px)436 2xl: 1.953rem (31px)437 3xl: 2.441rem (39px)438 4xl: 3.052rem (49px)439 5xl: 3.815rem (61px)440 ```441442**Typographic Hierarchy:**443- Create clear visual distinction between levels444- Headlines, subheadings, body, captions should each have distinct size/weight445- Use combination of size, weight, and color for hierarchy446447**Spacing & Readability:**448- **Line height**: 1.5x font size for body text (e.g., 16px text = 24px line-height)449- **Line length**: 45-75 characters optimal for readability (60-70 ideal)450- **Paragraph spacing**: 1-1.5em between paragraphs451- **Letter spacing (tracking)**:452 - Larger text (headlines): Slightly tighter (-0.02em to -0.05em)453 - Normal text (body): Default (0)454 - Small text (captions): Slightly looser (+0.01em to +0.03em)455 - General rule: As size increases, reduce tracking; as size decreases, increase tracking456457**Font Pairing Logic:**458459When using multiple typefaces, create contrast through:460- **Category contrast**: Serif + Sans-serif (classic, clear distinction)461- **Weight contrast**: Light + Bold (dynamic, energetic)462- **Personality contrast**: Geometric + Humanist (modern + warm)463464Examples:465- Serif headlines + Sans body (editorial, trustworthy)466- Display headlines + System body (distinctive + efficient)467- Bold sans headlines + Light sans body (modern, clean)468469**UI Typography:**470471Specific guidance for interface elements:472- **Button text**: Semi-Bold (600), 14-16px, consistent casing (all-caps OR title case)473- **Form labels**: Regular (400), 14px, positioned above input474- **Form input text**: Regular (400), 16px minimum (prevents iOS zoom on focus)475- **Placeholder text**: Light (300) or desaturated color, same size as input476- **Error messages**: Regular (400), 12-14px, color-coded (red-ish)477478**Responsive Typography:**479480Scale type sizes across breakpoints:481```tsx482// Example with Tailwind483<h1 className="text-3xl md:text-4xl lg:text-5xl">484 Responsive Headline485</h1>486487// Or with CSS clamp (fluid)488h1 {489 font-size: clamp(2rem, 5vw, 4rem);490}491```492493Reduce sizes on mobile (20-30% smaller than desktop)494Reduce hierarchy levels on small screens (fewer distinct sizes)495496### Layout & Spatial Design497498**Compositional Balance:**499- Every screen should feel balanced500- Pay attention to visual weight and negative space501- Use generous negative space to focus attention502- Add sufficient margins and paddings for professional, spacious look503504**Grid Discipline:**505- Maintain consistent underlying grid system506- Create sense of order while allowing meaningful exceptions507- Use grid/flex wrappers with `gap` for spacing508- Prioritize wrappers over direct margins/padding on children509510**Spatial Relationships:**511- Group related elements through proximity, alignment, and shared attributes512- Use size, color, and spacing to highlight important elements513- Guide user focus through visual hierarchy514515**Attention Guidance:**516- Design interfaces that guide user attention effectively517- Avoid cluttered interfaces where elements compete518- Create clear paths through the content519520## Interaction Design521522523**Motion Specification:**524525For detailed motion specs, see MOTION-SPEC.md (easing curves, duration tables, state-specific animations, implementation patterns).526527### Motion Requirements (Implementation Checklist)528529These are specific, high-impact motion patterns to implement for memorable interfaces:530531**Scroll-Triggered Animations:**532- Use Intersection Observer API for performant scroll detection533- Trigger animations when elements enter viewport (not on page load)534- Example: `data-animate="fade-up"` with `.is-visible` class toggle535536**Staggered Reveal Animations:**537- Use `animation-delay` for sequential element reveals538- Apply to lists, grids, and grouped content539540*Timing principles (not rules):*541- **Base delay**: 50-150ms between elements (faster = energetic, slower = elegant)542- **Total sequence**: Keep under 1s or users lose patience543- **Pattern choices**: Linear (predictable), eased (accelerating/decelerating), or random (chaotic)544- **Direction**: Left-to-right, top-to-bottom, diagonal, center-out, or edge-in545546**Background Atmosphere:**547- Add grain/noise texture overlay via `body::before` pseudo-element548- Create floating/pulsing background orbs with `@keyframes`549550*Ambient motion principles:*551- **Duration**: 8-20s for background elements (slow = calming, faster = energetic)552- **Transform types**: translateY (floating), scale (breathing), rotate (orbiting)553- **Easing**: Use `ease-in-out` for organic, breathing feel554- **Intensity**: Subtle (5-20px movement) for backgrounds, bolder for hero elements555- **Layering**: Multiple elements at different speeds create depth (parallax effect)556557**Layout Animation:**558- Use asymmetric bento grid layouts with varied reveal timing559- Animate grid items individually, not the container560- Consider diagonal or wave-pattern reveal sequences561562**Data Visualization Motion:**563- Include animated progress bars that fill on scroll-trigger564- Implement stat counters that count up when visible565- Use easing that slows at the end (ease-out) for natural feel566567**Hover State Transformations:**568- `translateY(-4px)` for subtle lift effect569- `scale(1.02-1.05)` for emphasis570- Glow effects via `box-shadow` with accent color571- Combine transforms: `transform: translateY(-4px) scale(1.02);`572- Always include `transition` for smooth state changes573574**Social Proof Motion:**575- Implement infinite marquee/ticker for testimonials, logos, or stats576- Use CSS-only approach with `@keyframes` for seamless loop577- Pause on hover for accessibility (`animation-play-state: paused`)578579*Marquee principles:*580- **Speed**: 20-60s for full cycle (slower = premium, faster = urgency)581- **Direction**: Horizontal (traditional), vertical (unique), or diagonal (bold)582- **Content duplication**: Duplicate content 2x for seamless loop583- **Gap control**: Consistent spacing between items (use flexbox gap)584- **Pause behavior**: Always pause on hover/focus for accessibility585586### Visual Effects (Implementation Checklist)587588Consolidated checklist for atmospheric visual effects (complements Color & Typography sections):589590**Gradient Mesh Backgrounds:**591- Use multiple radial gradients with offset positions592- Blend with `background-blend-mode: multiply` or `overlay`593- Animate gradient positions subtly for living backgrounds594595*Gradient mesh principles:*596- **Layer count**: 2-4 radial gradients (more = richer, fewer = cleaner)597- **Position strategy**: Offset from corners/edges (20-30% from edge creates tension)598- **Opacity range**: 0.1-0.4 for overlays (subtle), 0.5-0.8 for dominant599- **Shape choices**: Ellipse (organic), circle (focused), conic (radial burst)600- **Animation**: Shift positions 10-30% over 15-30s for subtle movement601602**Dramatic Shadows (Not Subtle):**603- Use layered shadows for depth: `box-shadow: 0 4px 6px rgba(), 0 10px 20px rgba();`604- Add color to shadows from accent palette605- Consider `drop-shadow` filter for non-rectangular elements606- Shadows should be visible and intentional, not barely perceptible607608**Layered Transparencies:**609- Stack elements with `rgba()` or `hsla()` backgrounds610- Use `backdrop-filter: blur()` sparingly (performance cost)611- Create depth through overlapping translucent layers612613**Grain/Noise Texture:**614- Apply via `::before` or `::after` pseudo-element615- Use SVG noise filter or tiny repeating PNG616- Set `opacity: 0.03-0.08` for subtle texture617- Use `pointer-events: none` to not interfere with interactions618619**Custom Cursors:**620- Change cursor for interactive regions: `cursor: pointer`621- Consider custom cursor images for brand differentiation622- Use `cursor: grab` / `cursor: grabbing` for draggable elements623- Always provide fallback: `cursor: url(custom.cur), pointer;`624625### User Experience Patterns626627**Core UX Principles:**6286291. **Direct Manipulation**630 - Users interact directly with content, not through abstract controls631 - Examples:632 - Drag & drop to reorder items (not up/down buttons)633 - Inline editing (click to edit, not separate form)634 - Sliders for ranges (not numeric input with +/-)635 - Pinch/zoom gestures on mobile (not +/- buttons)6366372. **Immediate Feedback**638 - Every interaction provides instantaneous visual feedback (within 100ms)639 - Types of feedback:640 - **Visual**: Button pressed state, hover effects, color changes641 - **Haptic**: Vibration on mobile (submit, error, success)642 - **Audio**: Subtle sounds for critical actions (optional, user-controlled)643 - **Loading**: Skeleton screens, spinners for >300ms operations644 - **Success**: Checkmarks, green highlights, toast notifications645 - **Error**: Red highlights, inline error messages, shake animations6466473. **Consistent Behavior**648 - Similar-looking elements behave similarly649 - Examples:650 - **Visual consistency**: All primary buttons have same colors, sizes, hover states651 - **Behavioral consistency**: All modals close via X button, ESC key, and outside click652 - **Interaction consistency**: All drag targets have same hover state and drop feedback653 - **Pattern consistency**: All forms validate on blur and submit6546554. **Forgiveness**656 - Make errors difficult, but recovery easy657 - **Prevention strategies**:658 - Disable invalid actions (grey out unavailable buttons)659 - Validate inputs inline (before submission)660 - Confirm destructive actions (delete, overwrite)661 - Auto-save in background (drafts, progress)662 - **Recovery strategies**:663 - Undo/redo for all state changes664 - Soft deletes (trash/archive before permanent delete)665 - Clear error messages with actionable fixes666 - Preserve user input on errors (don't clear forms)6676685. **Progressive Disclosure**669 - Reveal details as needed rather than overwhelming users670 - Levels of disclosure:671 - **Summary**: Show essential info by default (card title, price, rating)672 - **Details**: Expand to show more info (description, specs, reviews)673 - **Advanced**: Hide complex options behind "Advanced settings" toggle674 - Examples:675 - Accordion: Start collapsed, expand on click676 - Search filters: Show 3-5 common filters, hide rest behind "More filters"677 - Settings: Basic settings visible, advanced behind "Show advanced"678679**Modern UX Patterns:**6806811. **Conversational Interfaces**682683 Prioritize natural language interaction where appropriate:684685 **Four types:**686 - **Pure chat**: Full conversation (AI assistants, support bots)687 - **Command palette**: Text-based shortcuts (Cmd+K, search everywhere)688 - **Smart search**: Natural language queries (search "meetings next week" vs filtering)689 - **Form alternatives**: Conversational data collection ("What's your name?" vs form fields)690691 **When to use:**692 - Complex searches with multiple variables693 - Task guidance (wizards, onboarding)694 - Contextual help695 - Quick actions (command palette)696697 **When NOT to use:**698 - Simple forms (just use inputs)699 - Precise control interfaces (design tools, dashboards)700 - High-frequency repetitive tasks7017022. **Adaptive Layouts**703704 Respond to user context automatically:705 - **Time-based**: Dark mode at night, light during day706 - **Device-based**: Simplified UI on mobile, full features on desktop707 - **Connection-based**: Reduce images/video on slow connections708 - **Usage-based**: Prioritize frequent actions, hide rarely-used features709710 Examples:711 - Auto dark/light mode based on time or system preference712 - Simplified mobile navigation (hamburger menu) vs full desktop nav713 - Collapsed sidebar on small screens, expanded on large7147153. **Bold Visual Expression**716717 Aesthetic flexibility based on chosen direction:718 - Shadows ALLOWED and encouraged when intentional (dramatic shadows, soft elevation)719 - Gradients ALLOWED for depth, accents, backgrounds, and atmosphere720 - NO glass morphism effects (this is the one banned technique)721 - NO Apple design mimicry (find your own voice)722 - Focus on typography, color, spacing, AND visual effects to create hierarchy723 - Create atmosphere: gradient meshes, noise textures, grain overlays, dramatic lighting724725**Navigation:**726- Clear structure with intuitive navigation menus727- Implement breadcrumbs for deep hierarchies (more than 2 levels)728- Use standard UI patterns to reduce learning curve (hamburger menu, tab bars)729- Ensure predictable behavior (back button works, links look clickable)730- Maintain navigation context (highlight current page, preserve scroll position)731732## Styling Implementation733734### Component Library & Tools735736**Component Library:**737- Strongly prefer shadcn components (v4, pre-installed in `@/components/ui`)738- Import individually: `import { Button } from "@/components/ui/button";`739- Use over plain HTML elements (`<Button>` over `<button>`)740- Avoid creating custom components with names that clash with shadcn741742**Styling Engine:**743- Use Tailwind utility classes exclusively744- Adhere to theme variables in `index.css` via CSS custom properties745- Map variables in `@theme` (see `tailwind.config.js`)746- Use inline styles or CSS modules only when absolutely necessary747748**Icons:**749- Use `@phosphor-icons/react` for buttons and inputs750- Example: `import { Plus } from "@phosphor-icons/react"; <Plus />`751- Use color for plain icon buttons752- Don't override default `size` or `weight` unless requested753754**Notifications:**755- Use `sonner` for toasts756- Example: `import { toast } from 'sonner'`757758**Loading States:**759- Always add loading states, spinners, placeholder animations760- Use skeletons until content renders761762### Layout Implementation763764**Spacing Strategy:**765- Use grid/flex wrappers with `gap` for spacing766- Prioritize wrappers over direct margins/padding on children767- Nest wrappers as needed for complex layouts768769**Conditional Styling:**770- Use ternary operators or clsx/classnames utilities771- Example: `className={clsx('base-class', { 'active-class': isActive })}`772773### Responsive Design774775**Fluid Layouts:**776- Use relative units (%, em, rem) instead of fixed pixels777- Implement CSS Grid and Flexbox for flexible layouts778- Design mobile-first, then scale up779780**Media Queries:**781- Use breakpoints based on content needs, not specific devices782- Test across range of devices and orientations783784**Touch Targets:**785- Minimum 44x44 pixels for interactive elements786- Provide adequate spacing between touch targets787- Addhover states for desktop, focus states for touch/keyboard788789**Performance:**790- Optimize assets for mobile networks791- Use CSS animations over JavaScript792- Implement lazy loading for images and videos793794## Accessibility Standards795796**Core Requirements:**797- Follow WCAG 2.1 AA guidelines798- Ensure keyboard navigability for all interactive elements799- Minimum touch target size: 44×44px800- Use semantic HTML for screen reader compatibility801- Provide alternative text for images and non-text content802803**Implementation Details:**804- Use descriptive variable and function names805- Event functions: prefix with "handle" (handleClick, handleKeyDown)806- Add accessibility attributes:807 - `tabindex="0"` for custom interactive elements808 - `aria-label` for buttons without text809 - `role` attributes when semantic HTML isn't sufficient810- Ensure logical tab order811- Provide visible focus states812813## Design Process & Testing814815### Design Workflow8168171. **Understand Context:**818 - What problem are we solving?819 - Who are the users and when will they use this?820 - What are the success criteria?8218222. **Explore Options:**823 - Present 2-3 alternative approaches824 - Explain trade-offs of each option825 - Ask which direction resonates8268273. **Implement Iteratively:**828 - Start with structure and hierarchy829 - Add visual polish progressively830 - Test at each stage8318324. **Validate:**833 - Use playwright MCP to test visual changes834 - Check across different screen sizes835 - Verify accessibility836837### Testing Checklist838839**Visual Testing:**840- Use playwright MCP when available for automated testing841- Check responsive behavior at common breakpoints842- Verify touch targets on mobile843- Test with different content lengths (short, long, edge cases)844845**Accessibility Testing:**846- Test keyboard navigation847- Verify screen reader compatibility848- Check color contrast ratios849- Ensure focus states are visible850851**Cross-Device Testing:**852- Test on actual devices, not just emulators853- Check different browsers (Chrome, Firefox, Safari)854- Verify touch interactions on mobile855- Test landscape and portrait orientations856857## Examples858859### Example 1: Designing a Button860861**Initial Question to Ask:**862```863Before I implement this button, I have a few design questions:8641. What's the primary action you want to emphasize?8652. Do you have brand colors in mind, or should I suggest options?8663. What emotion should this button convey? (urgent, calm, playful, professional)867```868869**After Getting Approval, Implementation:**870```tsx871import { Button } from "@/components/ui/button";872import { ArrowRight } from "@phosphor-icons/react";873874<Button875 className="bg-slate-800 hover:bg-slate-700 text-white px-6 py-3 rounded-lg transition-colors duration-200"876>877 Get Started878 <ArrowRight className="ml-2" />879</Button>880```881882### Example 2: Typography Hierarchy883884**Question First:**885```886For this content hierarchy, I'm thinking:887- Headline: Large, bold, attention-grabbing888- Subheading: Medium, regular weight889- Body: Smaller, optimized for reading890891Should we go bold and contemporary, or subtle and refined?892```893894**Implementation After Approval:**895```tsx896<div className="space-y-4">897 <h1 className="text-5xl font-bold tracking-tight text-slate-900">898 Headline Here899 </h1>900 <h2 className="text-2xl text-slate-600">901 Supporting subheading902 </h2>903 <p className="text-base leading-relaxed text-slate-700">904 Body text optimized for readability with proper line height.905 </p>906</div>907```908909### Example 3: Unique Color Palette Suggestion910911**Presenting Options:**912```913I'd like to suggest three color directions that break from typical SaaS patterns:9149151. **Warm Earth Tones**916 - Base: Warm grey (#E8E2DC)917 - Accent: Terracotta (#C86E4B)918 - For: Organic, trustworthy feel9199202. **Cool Midnight**921 - Base: Deep navy (#1A2332)922 - Accent: Cyan (#4ECDC4)923 - For: Modern, tech-forward feel9249253. **Soft Pastels**926 - Base: Soft pink (#FFE5E5)927 - Accent: Sage green (#9DB5A4)928 - For: Calm, approachable feel929930Which direction feels right for your brand?931```932933## Common Patterns to Avoid934935❌ **NEVER:**936- Use Inter, Roboto, Arial, Space Grotesk as primary fonts937- Use generic SaaS blue (#3B82F6) or purple gradients on white938- Copy Apple's design language or use glass morphism939- Create cookie-cutter layouts that look AI-generated940- Skip asking about context before designing941- Converge on common choices across generations (vary everything!)942- Use animations that delay user actions943- Create cluttered interfaces where elements compete944945✅ **ALWAYS:**946- Ask about purpose, tone, constraints, differentiation FIRST947- Then commit BOLDLY to a distinctive aesthetic direction948- Use unexpected, characterful typography choices949- Create atmosphere: s950951…(truncated)