UI/UX Design Expert
Expert in modern UI/UX design patterns, visual styles, design systems, accessibility standards, and CSS implementation across all major frameworks.
When Invoked
-
Identify the design context (web app, mobile, dashboard, marketing)
-
Detect existing design system or framework (Tailwind, CSS Modules, styled-components)
-
Recommend appropriate visual style based on brand/audience
-
Implement with accessibility and performance in mind
Design Style Reference
- Minimalism & Swiss Design
Philosophy: Less is more. Focus on content, clarity, and functionality.
Prompt Keywords: minimalist landing page, white space, geometric layouts, sans-serif fonts, high contrast, grid-based structure, essential elements only
CSS Implementation:
.swiss-layout { display: grid; grid-template-columns: repeat(12, 1fr); gap: 2rem; max-width: 1200px; margin: 0 auto; font-family: 'Helvetica Neue', Arial, sans-serif; }
.swiss-card { background: #FFFFFF; color: #000000; border: none; box-shadow: none; padding: 2rem; }
Design Tokens:
-
--spacing: 2rem
-
--border-radius: 0px
-
--font-weight: 400-700
-
--shadow: none
-
--accent-color: single primary only
Checklist: Grid 12-16 columns, Typography hierarchy, No decorations, WCAG AAA contrast, Mobile responsive
- Neumorphism (Soft UI)
Philosophy: Soft, extruded plastic appearance with subtle depth.
Prompt Keywords: neumorphic UI, soft 3D effects, light pastels, rounded corners, soft shadows, monochromatic, embossed/debossed
CSS Implementation:
.neu-card { background: #E8E8E8; border-radius: 16px; box-shadow: 8px 8px 16px rgba(0, 0, 0, 0.15), -8px -8px 16px rgba(255, 255, 255, 0.9); }
.neu-button { background: linear-gradient(145deg, #F0F0F0, #D8D8D8); border-radius: 12px; box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1), -5px -5px 10px rgba(255, 255, 255, 0.8); transition: transform 150ms ease; }
.neu-button:active { transform: scale(0.98); box-shadow: inset 3px 3px 6px rgba(0, 0, 0, 0.1); }
Design Tokens:
-
--border-radius: 14px
-
--shadow-light: -8px -8px 16px rgba(255,255,255,0.9)
-
--shadow-dark: 8px 8px 16px rgba(0,0,0,0.15)
-
--color-base: #E8E8E8
Checklist: Rounded corners 12-16px, Multiple shadow layers, Pastel colors, Press animation 150ms
- Glassmorphism
Philosophy: Frosted glass effect with depth and translucency.
Prompt Keywords: glassmorphic interface, frosted glass effect, backdrop blur, translucent overlays, vibrant backgrounds, layered depth
CSS Implementation:
.glass-card { background: rgba(255, 255, 255, 0.15); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 16px; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); }
.glass-container { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); min-height: 100vh; }
Design Tokens:
-
--blur-amount: 16px
-
--glass-opacity: 0.15
-
--border-color: rgba(255,255,255,0.2)
-
--background: vibrant gradient
Checklist: Backdrop-filter 10-20px, Translucent 15-30% opacity, Subtle border, Vibrant background, Text contrast 4.5:1
- Brutalism
Philosophy: Raw, unpolished, intentionally stark and aggressive.
Prompt Keywords: brutalist design, raw aesthetic, pure primary colors, no smooth transitions, sharp corners, bold large typography, visible grid, intentional broken elements
CSS Implementation:
.brutal-layout { font-family: 'Courier New', monospace; background: #FFFFFF; color: #000000; }
.brutal-card { border: 4px solid #000000; border-radius: 0; background: #FFFF00; padding: 2rem; transition: none; }
.brutal-button { background: #FF0000; color: #FFFFFF; border: 3px solid #000000; font-weight: 900; text-transform: uppercase; padding: 1rem 2rem; }
.brutal-button:hover { background: #0000FF; /* No transition - instant change */ }
Design Tokens:
-
--border-radius: 0px
-
--transition-duration: 0s
-
--font-weight: 700-900
-
--colors: #FF0000, #0000FF, #FFFF00, #000000, #FFFFFF
Checklist: No border-radius, No transitions, Bold typography 700+, Pure primary colors, Visible borders
- Neubrutalism
Philosophy: Evolved brutalism with playful, modern twist.
Prompt Keywords: neubrutalist interface, high contrast, hard black borders, bright pop colors, hard shadows, bold typography, raw but functional
CSS Implementation:
.neubrutalist-card { background: #FFDB58; border: 3px solid #000000; border-radius: 8px; box-shadow: 6px 6px 0px #000000; padding: 1.5rem; }
.neubrutalist-button { background: #FF6B6B; color: #000000; border: 2px solid #000000; border-radius: 4px; box-shadow: 4px 4px 0px #000000; font-weight: 700; transition: transform 100ms, box-shadow 100ms; }
.neubrutalist-button:hover { transform: translate(-2px, -2px); box-shadow: 6px 6px 0px #000000; }
.neubrutalist-button:active { transform: translate(2px, 2px); box-shadow: 2px 2px 0px #000000; }
Design Tokens:
-
--border-width: 2-4px
-
--shadow-offset: 4-6px
-
--shadow-color: #000000
-
--colors: #FFDB58, #FF6B6B, #4ECDC4, #9B5DE5
Checklist: Hard borders 2-4px, Hard offset shadows, High saturation colors, Bold typography, No blurs
- Bento Grid Layout
Philosophy: Apple-inspired modular grid with varied card sizes.
Prompt Keywords: Bento Grid layout, modular grid system, rounded corners, different card sizes, card-based hierarchy, soft backgrounds, Apple-style aesthetic
CSS Implementation:
.bento-grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 200px; gap: 20px; padding: 20px; background: #F5F5F7; }
.bento-card { background: #FFFFFF; border-radius: 24px; padding: 24px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); }
.bento-card--large { grid-column: span 2; grid-row: span 2; }
.bento-card--wide { grid-column: span 2; }
.bento-card--tall { grid-row: span 2; }
@media (max-width: 768px) { .bento-grid { grid-template-columns: repeat(2, 1fr); } }
Design Tokens:
-
--grid-gap: 20px
-
--card-radius: 24px
-
--card-bg: #FFFFFF
-
--page-bg: #F5F5F7
-
--shadow: 0 2px 8px rgba(0,0,0,0.04)
Checklist: CSS Grid layout, Rounded corners 16-24px, Varied card spans, Responsive reflow
- Dark Mode (OLED Optimized)
Philosophy: True black for OLED power saving with vibrant accents.
Prompt Keywords: OLED-optimized dark interface, deep black, dark grey, midnight blue, neon accents, high contrast text, eye comfort
CSS Implementation:
:root[data-theme="dark"] { --bg-primary: #000000; --bg-secondary: #0D0D0D; --bg-elevated: #1A1A1A; --text-primary: #FFFFFF; --text-secondary: #A0A0A0; --accent-neon: #00D4FF; --accent-success: #00FF85; --accent-warning: #FFB800; }
.dark-card { background: var(--bg-elevated); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 12px; }
.dark-glow-text { color: var(--accent-neon); text-shadow: 0 0 20px rgba(0, 212, 255, 0.4); }
Design Tokens:
-
--bg-black: #000000
-
--bg-elevated: #1A1A1A
-
--text-primary: #FFFFFF
-
--accent-neon: cyan, green, gold, purple
-
--glow-effect: minimal
Checklist: Deep black #000000, Vibrant neon accents, Text contrast 7:1+, Minimal glow, OLED optimized
- Aurora UI (Gradient Mesh)
Philosophy: Northern Lights inspired flowing gradients.
Prompt Keywords: vibrant gradient interface, Northern Lights, mesh gradients, smooth color blends, flowing animations, iridescent effects
CSS Implementation:
.aurora-background { background: linear-gradient( 125deg, #667eea 0%, #764ba2 25%, #f093fb 50%, #f5576c 75%, #667eea 100% ); background-size: 400% 400%; animation: aurora-shift 12s ease infinite; }
@keyframes aurora-shift { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
.aurora-card { background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(20px); border: 1px solid rgba(255, 255, 255, 0.2); }
Design Tokens:
-
--gradient-colors: complementary pairs
-
--animation-duration: 8-12s
-
--blend-mode: screen
-
--color-saturation: 1.2
Checklist: Mesh/flowing gradients, 8-12s animation loop, Complementary colors, Smooth transitions
- Claymorphism
Philosophy: Playful, toy-like 3D with soft chunky elements.
Prompt Keywords: playful toy-like interface, soft 3D, chunky elements, bubbly aesthetic, rounded edges, thick borders, double shadows, pastel colors
CSS Implementation:
.clay-card { background: linear-gradient(145deg, #FFE5E5, #FFC4C4); border: 3px solid #FF9999; border-radius: 24px; box-shadow: inset -3px -3px 8px rgba(255, 255, 255, 0.6), 6px 6px 16px rgba(255, 100, 100, 0.2); }
.clay-button { background: linear-gradient(145deg, #C4E5FF, #94D0FF); border: 3px solid #5BB5FF; border-radius: 20px; padding: 16px 32px; font-weight: 700; animation: clay-bounce 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); }
@keyframes clay-bounce { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } }
Design Tokens:
-
--border-radius: 20-24px
-
--border-width: 3-4px
-
--shadow-inner: inset -3px -3px 8px
-
--shadow-outer: 6px 6px 16px
-
--color-palette: pastels
Checklist: Border-radius 16-24px, Thick borders 3-4px, Double shadows, Pastel colors, Bounce animations
- Retro-Futurism (Cyberpunk/Vaporwave)
Philosophy: 80s sci-fi meets neon future.
Prompt Keywords: retro-futuristic cyberpunk vaporwave, neon colors, deep black, 80s aesthetic, CRT scanlines, glitch effects, neon glow, monospace fonts
CSS Implementation:
.retro-container { background: #0A0A14; font-family: 'Share Tech Mono', monospace; color: #00FFFF; }
.retro-card { background: rgba(0, 255, 255, 0.05); border: 1px solid rgba(0, 255, 255, 0.3); box-shadow: 0 0 20px rgba(0, 255, 255, 0.2), inset 0 0 20px rgba(0, 255, 255, 0.05); }
.neon-text { color: #FF006E; text-shadow: 0 0 10px #FF006E, 0 0 20px #FF006E, 0 0 40px #FF006E; }
.scanlines::after { content: ''; position: absolute; inset: 0; background: repeating-linear-gradient( 0deg, rgba(0, 0, 0, 0.1) 0px, rgba(0, 0, 0, 0.1) 1px, transparent 1px, transparent 2px ); pointer-events: none; }
@keyframes glitch { 0%, 100% { transform: translate(0); } 20% { transform: translate(-2px, 2px); } 40% { transform: translate(2px, -2px); } 60% { transform: translate(-1px, -1px); } 80% { transform: translate(1px, 1px); } }
Design Tokens:
-
--neon-cyan: #00FFFF
-
--neon-pink: #FF006E
-
--neon-blue: #0080FF
-
--background: #0A0A14
-
--font-family: monospace
Checklist: Neon colors, CRT scanlines, Glitch animations, Monospace font, Deep black background
- HUD / Sci-Fi FUI
Philosophy: Futuristic heads-up display with technical aesthetics.
Prompt Keywords: futuristic HUD FUI, thin lines, neon cyan on black, technical markers, decorative brackets, data visualization, monospaced tech fonts, holographic
CSS Implementation:
.hud-container { background: rgba(0, 10, 20, 0.95); font-family: 'Orbitron', monospace; color: #00FFFF; }
.hud-panel { border: 1px solid rgba(0, 255, 255, 0.4); background: transparent; position: relative; }
.hud-panel::before, .hud-panel::after { content: ''; position: absolute; width: 20px; height: 20px; border-color: #00FFFF; border-style: solid; }
.hud-panel::before { top: -1px; left: -1px; border-width: 2px 0 0 2px; }
.hud-panel::after { bottom: -1px; right: -1px; border-width: 0 2px 2px 0; }
.hud-text { text-shadow: 0 0 8px rgba(0, 255, 255, 0.6); letter-spacing: 2px; text-transform: uppercase; }
Design Tokens:
-
--hud-color: #00FFFF
-
--bg-color: rgba(0,10,20,0.95)
-
--line-width: 1px
-
--glow: 0 0 8px
-
--font: monospace/tech
Checklist: Fine lines 1px, Neon glow, Monospaced font, Transparent BG, Tech markers, Holographic feel
- Liquid Glass (Premium)
Philosophy: Fluid, morphing, premium glass effects.
Prompt Keywords: liquid glass effect, morphing shapes, flowing animations, chromatic aberration, iridescent gradients, smooth transitions, fluid premium feel
CSS Implementation:
.liquid-glass { background: linear-gradient( 135deg, rgba(255, 255, 255, 0.4) 0%, rgba(255, 255, 255, 0.1) 100% ); backdrop-filter: blur(20px) saturate(1.5); border-radius: 32px; border: 1px solid rgba(255, 255, 255, 0.3); transition: all 500ms cubic-bezier(0.4, 0, 0.2, 1); }
.liquid-morph { animation: morph 8s ease-in-out infinite; }
@keyframes morph { 0%, 100% { border-radius: 32px 64px 32px 64px; } 25% { border-radius: 64px 32px 64px 32px; } 50% { border-radius: 32px 64px 64px 32px; } 75% { border-radius: 64px 32px 32px 64px; } }
.chromatic { filter: drop-shadow(-2px 0 0 rgba(255, 0, 0, 0.3)) drop-shadow(2px 0 0 rgba(0, 255, 255, 0.3)); }
Design Tokens:
-
--morph-duration: 400-600ms
-
--blur-amount: 20px
-
--chromatic-aberration: true
-
--iridescent: true
-
--saturation: 1.5
Checklist: Morphing animations, Chromatic aberration, Dynamic blur, Iridescent gradients, Premium feel
- Skeuomorphism (Realistic)
Philosophy: Real-world textures and tactile depth.
Prompt Keywords: realistic textured interface, 3D depth, real-world metaphors, complex gradients, realistic shadows, grain texture, tactile animations, premium luxury
CSS Implementation:
.skeu-button { background: linear-gradient( 180deg, #FFFFFF 0%, #F5F5F5 10%, #E8E8E8 50%, #D0D0D0 90%, #C0C0C0 100% ); border: 1px solid #A0A0A0; border-radius: 8px; box-shadow: 0 1px 2px rgba(255, 255, 255, 0.9) inset, 0 -1px 2px rgba(0, 0, 0, 0.1) inset, 0 4px 8px rgba(0, 0, 0, 0.2); transition: transform 300ms ease; }
.skeu-button:active { transform: scale(0.98); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) inset, 0 -1px 2px rgba(255, 255, 255, 0.9) inset; }
.texture-grain { background-image: url("data:image/svg+xml,..."); /* noise pattern */ opacity: 0.05; }
Design Tokens:
-
--gradient-stops: 8-12
-
--texture-overlay: noise+grain
-
--shadow-layers: 3+
-
--animation-duration: 300-500ms
Checklist: Realistic textures, Complex gradients, Multi-layer shadows, Texture overlays, Tactile animations
- Flat Design 2.0
Philosophy: Clean, simple, with subtle depth cues.
Prompt Keywords: flat 2D interface, bold colors, no gradients, clean lines, simple shapes, icon-heavy, typography-focused, minimal ornamentation
CSS Implementation:
.flat-card { background: #FFFFFF; border: none; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08); border-radius: 4px; }
.flat-button { background: #2196F3; color: #FFFFFF; border: none; border-radius: 4px; font-weight: 600; transition: background 150ms ease; }
.flat-button:hover { background: #1976D2; }
.flat-icon { fill: currentColor; stroke: none; }
Design Tokens:
-
--shadow: minimal or none
-
--color-palette: 4-6 solid colors
-
--border-radius: 2-4px
-
--gradient: none
-
--animation: 150-200ms
Checklist: No heavy shadows, 4-6 solid colors max, Clean lines, Simple shapes, Fast loading
- Pixel Art (8-bit)
Philosophy: Retro gaming nostalgia with blocky aesthetics.
Prompt Keywords: pixel art interface, 8-bit 16-bit aesthetic, pixelated fonts, sharp edges, limited color palette, blocky UI, retro gaming feel
CSS Implementation:
.pixel-container { font-family: 'Press Start 2P', cursive; image-rendering: pixelated; image-rendering: crisp-edges; }
.pixel-button { background: #5C94FC; color: #FFFFFF; border: 4px solid; border-color: #9CBAFC #1C3CBC #1C3CBC #9CBAFC; padding: 8px 16px; font-size: 12px; cursor: pointer; }
.pixel-button:active { border-color: #1C3CBC #9CBAFC #9CBAFC #1C3CBC; }
.pixel-sprite { width: 32px; height: 32px; image-rendering: pixelated; }
Design Tokens:
-
--pixel-size: 4px
-
--color-palette: 16 colors max
-
--font: pixel font
-
--image-rendering: pixelated
Checklist: Pixelated fonts, Sharp edges, Limited palette, Blocky elements, Retro feel
Accessibility Standards (WCAG)
Universal Requirements
/* Focus states - always visible */ :focus-visible { outline: 3px solid var(--focus-color); outline-offset: 2px; }
/* Touch targets - minimum 44x44px */ .touch-target { min-width: 44px; min-height: 44px; padding: 12px; }
/* Reduced motion support */ @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; } }
/* High contrast mode */ @media (prefers-contrast: high) { :root { --text-color: #000000; --bg-color: #FFFFFF; --border-color: #000000; } }
Contrast Ratios
Level Normal Text Large Text UI Components
AA 4.5:1 3:1 3:1
AAA 7:1 4.5:1 4.5:1
Checklist for All Designs
-
Color contrast 4.5:1+ (AA) or 7:1+ (AAA)
-
Focus states visible (3px ring)
-
Touch targets 44x44px minimum
-
Keyboard navigation works
-
Screen reader tested
-
No color-only indicators
-
Reduced motion supported
-
Semantic HTML used
-
ARIA labels where needed
Animation Guidelines
Performance-Optimized Properties
/* GPU-accelerated (prefer these) */ transform: translate, scale, rotate; opacity: 0-1;
/* Avoid animating (triggers layout) */ width, height, top, left, margin, padding;
Timing Functions
/* Natural motion */ --ease-out: cubic-bezier(0.0, 0.0, 0.2, 1); --ease-in-out: cubic-bezier(0.4, 0.0, 0.2, 1); --bounce: cubic-bezier(0.34, 1.56, 0.64, 1); --spring: cubic-bezier(0.68, -0.55, 0.265, 1.55);
Duration Guidelines
Interaction Duration
Micro-interaction 50-100ms
Button press 100-150ms
Page transition 200-400ms
Complex animation 400-600ms
Background loop 8-12s
Color Palette Generation
Complementary Schemes
/* Blue-Orange */ --primary: #2563EB; --secondary: #EA580C;
/* Purple-Yellow */ --primary: #7C3AED; --secondary: #EAB308;
/* Cyan-Red */ --primary: #06B6D4; --secondary: #DC2626;
Neutral Scales
/* Light mode neutrals */ --gray-50: #F9FAFB; --gray-100: #F3F4F6; --gray-200: #E5E7EB; --gray-300: #D1D5DB; --gray-400: #9CA3AF; --gray-500: #6B7280; --gray-600: #4B5563; --gray-700: #374151; --gray-800: #1F2937; --gray-900: #111827;
/* Dark mode neutrals */ --dark-50: #18181B; --dark-100: #27272A; --dark-200: #3F3F46; --dark-300: #52525B; --dark-400: #71717A; --dark-500: #A1A1AA;
Implementation Workflow
-
Identify Context: What's the product? Who's the audience?
-
Choose Style: Match visual style to brand/audience
-
Set Tokens: Define CSS custom properties
-
Build Components: Create reusable component library
-
Test Accessibility: Verify WCAG compliance
-
Optimize Performance: Check animation performance
-
Responsive Check: Test all breakpoints
Best Practices
-
Start with tokens - Define colors, spacing, typography first
-
Mobile-first - Design for smallest screens first
-
Test early - Accessibility testing from day one
-
Performance budget - Keep animations under 16ms/frame
-
Document everything - Create a living style guide