name: dashboard-ui-ux-premium description: Transform the Voxanne AI dashboard into a premium, enterprise-grade interface using ONLY the approved 5-color monochromatic blue palette. Apply comprehensive UI/UX enhancements including proper typography hierarchy, component polish, micro-interactions, and premium patterns while strictly adhering to brand constraints. Use when redesigning dashboard pages, improving visual hierarchy, or enhancing user experience. NO semantic colors allowed (no green/yellow/red). allowed-tools: Read, Glob, Grep, Edit, Write
Dashboard UI/UX Premium Enhancement Skill
Transform the Voxanne AI dashboard into a premium, enterprise-grade interface using the approved monochromatic blue design system.
๐ฏ Quick Start (5 Minutes)
Core Principles:
- โ ONLY 5 approved colors - Deep Navy, Electric Blue, Medium Blue, Light Blue, Off-White
- โ NO semantic colors - Absolutely NO green, yellow, red, orange, purple
- โ Single font family - One geometric sans-serif, vary size/weight only
- โ Create richness through: Opacity variations, shadows, spacing, micro-interactions
When to Use This Skill:
- Redesigning dashboard pages or components
- Improving visual hierarchy
- Adding premium polish to UI elements
- Ensuring brand compliance
- Enhancing accessibility
What You'll Learn:
- How to create premium visuals with limited palette
- Proper typography hierarchy
- Component depth and elevation
- Micro-interactions and animations
- Accessibility best practices
๐จ CRITICAL BRAND CONSTRAINTS
Approved Brand Assets
Reference Files:
- Color Palette:
/public/Brand/9.png- Shows 5 approved colors ONLY - Typography:
/public/Brand/8.png- Shows single font family
Color Constraints (NON-NEGOTIABLE)
โ ONLY use these 5 colors:
1. Deep Navy: #0A0E27 // Darkest - primary text, strong contrast
2. Electric Blue: #0000FF // Vibrant - primary CTAs, high emphasis
3. Medium Blue: #3366FF // Mid-tone - secondary actions, links
4. Light Blue: #AACCFF // Soft - borders, subtle backgrounds
5. Off-White: #F5F5F5 // Lightest - card backgrounds, surfaces
โ ABSOLUTELY FORBIDDEN:
- โ Green (no success states)
- โ Red (no error states)
- โ Yellow/Orange (no warning states)
- โ Purple, pink, teal, or any other colors
- โ Any hex values not in the approved palette above
Typography Constraints (NON-NEGOTIABLE)
โ ONLY use one font family:
- Single geometric sans-serif throughout (Inter or similar)
- Create hierarchy through SIZE, WEIGHT, LETTER-SPACING only
- Available weights: 400 (regular), 500 (medium), 600 (semibold), 700 (bold)
โ ABSOLUTELY FORBIDDEN:
- โ Mixing font families (e.g., "Inter for body, Plus Jakarta for headers")
- โ Using fonts not in the approved family
- โ Using weights outside 400/500/600/700
๐จ Approved Color System
Base Palette with Hex Values
Use Tailwind arbitrary values bg-[#HEX] for immediate implementation:
// Deep Navy - Primary text, strong contrast elements
text-[#0A0E27]
bg-[#0A0E27]
border-[#0A0E27]
// Electric Blue - Primary CTAs, highest emphasis
text-[#0000FF]
bg-[#0000FF]
border-[#0000FF]
shadow-[#0000FF]/20
// Medium Blue - Secondary actions, medium emphasis
text-[#3366FF]
bg-[#3366FF]
border-[#3366FF]
shadow-[#3366FF]/15
// Light Blue - Tertiary elements, subtle backgrounds
text-[#AACCFF]
bg-[#AACCFF]
border-[#AACCFF]
// Off-White - Light backgrounds, card surfaces
bg-[#F5F5F5]
border-[#F5F5F5]
Creating Visual Richness with Opacity
Turn 5 colors into 100+ variations using alpha channels:
// Electric Blue Variations
bg-[#0000FF]/10 // 10% opacity - very subtle background
bg-[#0000FF]/20 // 20% opacity - subtle highlight
bg-[#0000FF]/50 // 50% opacity - medium presence
bg-[#0000FF]/80 // 80% opacity - strong presence
// Shadow Variations (colored shadows add premium feel)
shadow-sm shadow-[#0000FF]/5 // Subtle glow
shadow-md shadow-[#0000FF]/10 // Medium glow
shadow-lg shadow-[#0000FF]/20 // Strong glow
shadow-xl shadow-[#0000FF]/30 // Maximum glow
// Border Variations
border-[#0000FF]/30 // Subtle border
border-[#0000FF]/50 // Medium border
border-[#0000FF] // Solid border
// Ring Variations (for focus states)
ring-2 ring-[#0000FF]/50 // Focus ring
ring-[#0000FF]/10 ring-offset-2 // Offset focus ring
Status States WITHOUT Semantic Colors
How to indicate success/warning/error using ONLY blue shades:
// โ
SUCCESS STATE (Light Blue)
<div className="bg-[#AACCFF]/20 border border-[#AACCFF] rounded-lg p-4">
<div className="flex items-center gap-2">
<svg className="w-5 h-5 text-[#3366FF]">
{/* Checkmark icon */}
</svg>
<span className="text-sm font-medium text-[#0A0E27]">
Successfully saved
</span>
</div>
</div>
// โ ๏ธ WARNING STATE (Medium Blue)
<div className="bg-[#3366FF]/10 border border-[#3366FF]/30 rounded-lg p-4">
<div className="flex items-center gap-2">
<svg className="w-5 h-5 text-[#3366FF]">
{/* Warning triangle icon */}
</svg>
<span className="text-sm font-medium text-[#0A0E27]">
Action required
</span>
</div>
</div>
// โ ERROR STATE (Deep Navy)
<div className="bg-[#0A0E27]/5 border border-[#0A0E27]/20 rounded-lg p-4">
<div className="flex items-center gap-2">
<svg className="w-5 h-5 text-[#0A0E27]">
{/* X icon */}
</svg>
<span className="text-sm font-medium text-[#0A0E27]">
Error occurred
</span>
</div>
</div>
// โน๏ธ INFO STATE (Electric Blue)
<div className="bg-[#0000FF]/5 border border-[#0000FF]/20 rounded-lg p-4">
<div className="flex items-center gap-2">
<svg className="w-5 h-5 text-[#0000FF]">
{/* Info icon */}
</svg>
<span className="text-sm font-medium text-[#0A0E27]">
Learn more
</span>
</div>
</div>
Key Strategies:
- โ Use icons to reinforce meaning (โ checkmark, โ triangle, โ X, โน info)
- โ Use different blue shades for different severity
- โ Use opacity variations for backgrounds
- โ Use border thickness (1px for info, 2px for warning, 4px for error)
๐ Typography Hierarchy
Size Scale
// Display (Hero sections)
text-6xl // 60px - Hero headlines
text-5xl // 48px - Large metrics, display numbers
// Headings
text-4xl // 36px - Page titles
text-3xl // 30px - Section titles
text-2xl // 24px - Subsection headers
text-xl // 20px - Card titles
// Body
text-lg // 18px - Large body text
text-base // 16px - Standard body text
text-sm // 14px - Default dashboard text (PREFERRED)
text-xs // 12px - Labels, captions, helper text
Weight Scale
font-bold // 700 - Page titles, metric values
font-semibold // 600 - Section headers, card titles
font-medium // 500 - Labels, buttons, emphasis
font-normal // 400 - Body text, paragraphs (default)
Letter Spacing
tracking-tighter // -0.05em - Large display numbers (use sparingly)
tracking-tight // -0.025em - Headings, titles
tracking-normal // 0 - Body text (default)
tracking-wider // 0.05em - Uppercase labels
tracking-widest // 0.1em - Acronyms, special labels
Typography Patterns
// Page Title
className="text-4xl font-bold text-[#0A0E27] tracking-tight"
// Section Header
className="text-2xl font-semibold text-[#0A0E27] tracking-tight"
// Card Title
className="text-lg font-semibold text-[#0A0E27]"
// Metric Value (Large Display)
className="text-5xl font-bold text-[#0A0E27] tracking-tighter"
// Body Text (PREFERRED)
className="text-sm text-[#0A0E27]/80 font-normal leading-relaxed"
// Label (Small Caps)
className="text-xs font-medium text-[#0A0E27]/60 uppercase tracking-wider"
// Caption/Helper Text
className="text-xs text-[#0A0E27]/60 font-normal"
// Link/Interactive Text
className="text-sm text-[#0000FF] font-medium hover:text-[#3366FF] underline-offset-4 hover:underline transition-colors"
// Muted Text (Secondary Info)
className="text-sm text-[#0A0E27]/60 font-normal"
๐๏ธ Button System
Primary Button (Highest Emphasis)
<button className="
text-sm font-medium text-white
bg-[#0000FF] rounded-lg px-4 py-2.5
shadow-lg shadow-[#0000FF]/20
hover:shadow-xl hover:shadow-[#0000FF]/30
hover:scale-105
active:scale-100
focus:outline-none focus:ring-2 focus:ring-[#0000FF]/50 focus:ring-offset-2
transition-all duration-200
">
Primary Action
</button>
Use for: Main CTAs, submit buttons, important actions
Secondary Button (Medium Emphasis)
<button className="
text-sm font-medium text-white
bg-[#3366FF] rounded-lg px-4 py-2.5
shadow-md shadow-[#3366FF]/15
hover:shadow-lg hover:shadow-[#3366FF]/25
hover:scale-105
active:scale-100
focus:outline-none focus:ring-2 focus:ring-[#3366FF]/50 focus:ring-offset-2
transition-all duration-200
">
Secondary Action
</button>
Use for: Alternative actions, secondary CTAs
Outline Button (Low Emphasis)
<button className="
text-sm font-medium text-[#0000FF]
bg-white border-2 border-[#0000FF]
rounded-lg px-4 py-2.5
shadow-sm hover:shadow-md
hover:bg-[#0000FF]/5
active:bg-[#0000FF]/10
focus:outline-none focus:ring-2 focus:ring-[#0000FF]/50 focus:ring-offset-2
transition-all duration-200
">
Outline Action
</button>
Use for: Tertiary actions, cancel buttons, less important actions
Ghost Button (Minimal Emphasis)
<button className="
text-sm font-medium text-[#0000FF]
bg-transparent rounded-lg px-4 py-2.5
hover:bg-[#AACCFF]/20
active:bg-[#AACCFF]/30
focus:outline-none focus:ring-2 focus:ring-[#0000FF]/30
transition-all duration-200
">
Ghost Action
</button>
Use for: Subtle actions, links styled as buttons
Destructive Button (Danger Actions)
<button className="
text-sm font-medium text-white
bg-[#0A0E27] rounded-lg px-4 py-2.5
shadow-md shadow-[#0A0E27]/20
hover:shadow-lg hover:shadow-[#0A0E27]/30
hover:scale-105
active:scale-100
focus:outline-none focus:ring-2 focus:ring-[#0A0E27]/50 focus:ring-offset-2
transition-all duration-200
">
Delete
</button>
Use for: Delete, remove, destructive actions (NOT red!)
Button Size Variants
// Large (Hero CTAs)
className="text-base px-6 py-3"
// Default (Standard buttons)
className="text-sm px-4 py-2.5"
// Small (Compact spaces)
className="text-xs px-3 py-2"
// Icon Button
className="w-10 h-10 p-0 flex items-center justify-center"
Button States
// Disabled State
className="opacity-50 cursor-not-allowed pointer-events-none"
// Loading State
<button disabled className="relative opacity-75">
<span className="opacity-0">Button Text</span>
<div className="absolute inset-0 flex items-center justify-center">
<svg className="animate-spin h-5 w-5 text-white" />
</div>
</button>
// Success State (after action completes)
<button className="bg-[#AACCFF] text-[#0A0E27]">
<svg className="w-5 h-5">โ</svg>
Saved
</button>
๐ด Card Depth System
Level 1: Background Cards (Lowest Elevation)
<div className="
bg-white border border-[#AACCFF]/50 rounded-xl p-6
shadow-sm
">
{/* Content */}
</div>
Use for: Background containers, non-interactive cards
Level 2: Standard Cards (Medium Elevation)
<div className="
bg-white border border-[#AACCFF] rounded-xl p-6
shadow-md shadow-[#3366FF]/5
hover:shadow-lg hover:shadow-[#3366FF]/10
hover:-translate-y-0.5
transition-all duration-200
">
{/* Content */}
</div>
Use for: Standard content cards, most dashboard components
Level 3: Featured Cards (High Elevation)
<div className="
bg-white border border-[#3366FF]/30 rounded-xl p-6
shadow-lg shadow-[#0000FF]/10
ring-2 ring-[#0000FF]/5
hover:shadow-xl hover:shadow-[#0000FF]/15
hover:-translate-y-1
transition-all duration-200
">
{/* Content */}
</div>
Use for: Important cards, hot leads, priority items
Level 4: Premium Cards (Highest Elevation)
<div className="
bg-gradient-to-br from-white to-[#AACCFF]/5
border border-[#0000FF]/20 rounded-xl p-6
shadow-xl shadow-[#0000FF]/15
ring-2 ring-[#0000FF]/10
hover:shadow-2xl hover:shadow-[#0000FF]/20
hover:-translate-y-1 hover:scale-[1.02]
transition-all duration-200
">
{/* Content */}
</div>
Use for: Premium features, upsell cards, enterprise features
Card Background Variations
// Pure white (default, highest contrast)
bg-white
// Off-white (subtle warmth)
bg-[#F5F5F5]
// Very light blue tint (branded feel)
bg-[#AACCFF]/5
// Light blue tint (stronger presence)
bg-[#AACCFF]/10
// Gradient (premium feel)
bg-gradient-to-br from-white to-[#AACCFF]/10
๐ Spacing & Layout
Spacing Rhythm (4px Grid)
// Padding
p-2 // 8px - Very tight
p-3 // 12px - Tight
p-4 // 16px - Compact
p-5 // 20px - Comfortable
p-6 // 24px - Standard (PREFERRED for cards)
p-8 // 32px - Spacious
p-10 // 40px - Very spacious
// Gap (Grid/Flex)
gap-2 // 8px - Tight lists
gap-3 // 12px - Compact grids
gap-4 // 16px - Standard grid (PREFERRED)
gap-6 // 24px - Generous spacing
gap-8 // 32px - Spacious sections
// Margin
mb-4 // 16px - Tight section separation
mb-6 // 24px - Standard section separation (PREFERRED)
mb-8 // 32px - Large section separation
mb-12 // 48px - Very large section separation
Rounded Corners
rounded-sm // 2px - Subtle, barely visible
rounded // 4px - Small
rounded-md // 6px - Medium
rounded-lg // 8px - Large (PREFERRED for buttons)
rounded-xl // 12px - Extra large (PREFERRED for cards)
rounded-2xl // 16px - Very large
rounded-full // 9999px - Pill shape (use for badges, avatars)
โจ Animation & Transitions
Micro-interactions
// Scale on Hover (buttons, interactive elements)
hover:scale-105
active:scale-100
transition-transform duration-200
// Translate on Hover (cards, lift effect)
hover:-translate-y-1
transition-transform duration-200
// Shadow Intensity (depth on hover)
shadow-md
hover:shadow-xl
transition-shadow duration-200
// Combined (recommended for premium feel)
hover:shadow-xl hover:-translate-y-1 hover:scale-105
transition-all duration-200
Transition Durations
duration-75 // 75ms - Instant feedback (clicks)
duration-100 // 100ms - Very fast (toggles)
duration-150 // 150ms - Fast (hovers)
duration-200 // 200ms - Standard (PREFERRED)
duration-300 // 300ms - Slow (page transitions)
duration-500 // 500ms - Very slow (special effects)
Loading States
// Skeleton Loader (granular, not full-page)
<div className="animate-pulse">
<div className="h-4 bg-[#AACCFF]/30 rounded w-3/4 mb-2" />
<div className="h-4 bg-[#AACCFF]/30 rounded w-1/2" />
</div>
// Spinner
<svg className="animate-spin h-5 w-5 text-[#0000FF]" viewBox="0 0 24 24">
<circle className="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" strokeWidth="4" fill="none" />
<path className="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z" />
</svg>
// Progress Bar
<div className="w-full bg-[#AACCFF]/20 rounded-full h-2">
<div className="bg-[#0000FF] h-2 rounded-full transition-all duration-300" style={{ width: '60%' }} />
</div>
๐ Component Patterns
Metric Card
<div className="bg-white border border-[#AACCFF] rounded-xl p-6 shadow-md shadow-[#3366FF]/5">
{/* Icon Badge */}
<div className="flex items-center justify-between mb-4">
<div className="flex items-center gap-2">
<div className="p-2 rounded-lg bg-[#0000FF]/10">
<svg className="w-5 h-5 text-[#0000FF]">{/* Icon */}</svg>
</div>
<span className="text-sm font-medium text-[#0A0E27]">Total Calls</span>
</div>
<svg className="w-8 h-8 text-[#AACCFF]/20">{/* Large background icon */}</svg>
</div>
{/* Metric Value */}
<div className="text-4xl font-bold text-[#0A0E27] tracking-tight mb-2">
1,247
</div>
{/* Trend Badge */}
<div className="flex items-center gap-1">
<span className="text-xs font-medium px-2 py-1 rounded-full bg-[#AACCFF]/20 text-[#3366FF]">
โ 12%
</span>
<span className="text-xs text-[#0A0E27]/60">vs last month</span>
</div>
</div>
Lead Card
<div className="
bg-white rounded-xl p-6 flex flex-col
border-l-4 border-l-[#0000FF]
shadow-md shadow-[#0000FF]/5
hover:shadow-xl hover:shadow-[#0000FF]/10
hover:-translate-y-1
transition-all duration-200
">
{/* Header */}
<div className="flex items-start justify-between mb-4">
<div>
<h3 className="text-lg font-semibold text-[#0A0E27]">Sarah Johnson</h3>
<p className="text-sm text-[#0A0E27]/60 font-medium">+1 (555) 123-4567</p>
</div>
<span className="text-xs font-bold px-3 py-1.5 rounded-lg bg-[#0000FF] text-white shadow-md shadow-[#0000FF]/20">
๐ฅ HOT
</span>
</div>
{/* Summary */}
<p className="text-sm text-[#0A0E27]/80 mb-6 leading-relaxed">
Interested in Botox treatment. Mentioned budget of $500.
</p>
{/* CTA */}
<button className="
text-sm font-medium text-white bg-[#0000FF] rounded-lg px-4 py-2.5
shadow-lg shadow-[#0000FF]/20
hover:shadow-xl hover:shadow-[#0000FF]/30 hover:scale-105
focus:outline-none focus:ring-2 focus:ring-[#0000FF]/50 focus:ring-offset-2
active:scale-100 transition-all duration-200
">
Call Back Now
</button>
</div>
Badge Component
// Status Badge (using blue shades instead of semantic colors)
<span className="inline-flex items-center gap-1 px-3 py-1 rounded-full text-xs font-medium">
{/* Success (Light Blue) */}
<span className="bg-[#AACCFF]/20 text-[#3366FF]">
<svg className="w-3 h-3">โ</svg> Completed
</span>
{/* Warning (Medium Blue) */}
<span className="bg-[#3366FF]/20 text-[#0000FF]">
<svg className="w-3 h-3">โ </svg> Pending
</span>
{/* Error (Deep Navy) */}
<span className="bg-[#0A0E27]/10 text-[#0A0E27]">
<svg className="w-3 h-3">โ</svg> Failed
</span>
{/* Info (Electric Blue) */}
<span className="bg-[#0000FF]/10 text-[#0000FF]">
<svg className="w-3 h-3">โน</svg> New
</span>
</span>
Form Input
<div className="space-y-2">
{/* Label */}
<label className="text-sm font-medium text-[#0A0E27]">
Email Address
</label>
{/* Input */}
<input
type="email"
className="
w-full px-4 py-2.5 rounded-lg
text-sm text-[#0A0E27]
bg-white border border-[#AACCFF]
focus:outline-none focus:ring-2 focus:ring-[#0000FF]/50 focus:border-[#0000FF]
placeholder:text-[#0A0E27]/40
transition-all duration-200
"
placeholder="you@example.com"
/>
{/* Helper Text */}
<p className="text-xs text-[#0A0E27]/60">
We'll never share your email with anyone else.
</p>
</div>
{/* Error State */}
<div className="space-y-2">
<input
className="
border-[#0A0E27]/30 ring-2 ring-[#0A0E27]/10
focus:ring-[#0A0E27]/20 focus:border-[#0A0E27]
"
/>
<p className="text-xs text-[#0A0E27] flex items-center gap-1">
<svg className="w-4 h-4">โ</svg> Invalid email format
</p>
</div>
{/* Success State */}
<div className="space-y-2">
<input
className="
border-[#3366FF] ring-2 ring-[#3366FF]/10
focus:ring-[#3366FF]/20
"
/>
<p className="text-xs text-[#3366FF] flex items-center gap-1">
<svg className="w-4 h-4">โ</svg> Email verified
</p>
</div>
๐ Before/After Examples
Example 1: Button Transformation
BEFORE (Non-Premium):
<button className="text-xs font-medium text-surgical-600 hover:text-surgical-700 transition-colors bg-surgical-50 px-3 py-1.5 rounded-lg border border-surgical-200">
View All Activity
</button>
Issues:
- โ Uses unapproved color (surgical-600)
- โ Too small (text-xs = 12px)
- โ No shadow/elevation
- โ Weak hover (just color change)
- โ No focus state
AFTER (Premium):
<button className="text-sm font-medium text-white bg-[#0000FF] rounded-lg px-4 py-2.5 shadow-lg shadow-[#0000FF]/20 hover:shadow-xl hover:shadow-[#0000FF]/30 hover:scale-105 focus:outline-none focus:ring-2 focus:ring-[#0000FF]/50 focus:ring-offset-2 active:scale-100 transition-all duration-200">
View All Activity
</button>
Improvements:
- โ Approved Electric Blue (#0000FF)
- โ Larger size (text-sm = 14px)
- โ Elevated (shadow-lg with colored shadow)
- โ Enhanced hover (scale + stronger shadow)
- โ Accessible focus ring (WCAG AA)
- โ Active state feedback
Example 2: Card Header Transformation
BEFORE:
<h2 className="text-xl font-bold tracking-tight text-obsidian">
Clinical Command Center
</h2>
Issues:
- โ Uses unapproved color (obsidian)
- โ Small size (text-xl = 20px)
- โ tracking-tight makes cramped
- โ No visual distinction
AFTER:
<div className="flex items-center gap-3 mb-6">
<div className="p-2 rounded-lg bg-[#0000FF]/10">
<svg className="w-6 h-6 text-[#0000FF]">{/* Icon */}</svg>
</div>
<h2 className="text-2xl font-semibold text-[#0A0E27]">
Clinical Command Center
</h2>
</div>
Improvements:
- โ Approved Deep Navy (#0A0E27)
- โ Larger size (text-2xl = 24px)
- โ Normal tracking (not cramped)
- โ Icon badge adds visual interest
- โ Proper spacing (gap-3, mb-6)
Example 3: Sidebar Navigation Transformation
BEFORE:
<div className="border-l-2 border-surgical-600 bg-surgical-50/50 px-3 py-2">
<span className="text-sm font-medium text-obsidian">Dashboard</span>
</div>
Issues:
- โ Unapproved colors
- โ Thin border (barely visible)
- โ No hover animation
- โ Small text
AFTER:
<div className="
border-l-4 border-[#0000FF]
bg-gradient-to-r from-[#0000FF]/10 to-transparent
px-4 py-3 rounded-r-lg
hover:bg-[#0000FF]/15
transition-all duration-200
">
<div className="flex items-center gap-3">
<svg className="w-5 h-5 text-[#0000FF]">{/* Icon */}</svg>
<span className="text-sm font-semibold text-[#0A0E27]">Dashboard</span>
</div>
</div>
Improvements:
- โ Approved Electric Blue border
- โ Thicker border (4px vs 2px)
- โ Gradient background (premium feel)
- โ Hover animation (background intensifies)
- โ Icon with proper sizing
- โ Rounded right edge
โ Anti-Patterns (What NOT to Do)
โ Using Semantic Colors
// WRONG - Uses green for success (not approved)
<div className="bg-green-50 text-green-600">Success!</div>
// CORRECT - Uses light blue for success
<div className="bg-[#AACCFF]/20 text-[#3366FF]">
<svg className="w-4 h-4">โ</svg> Success!
</div>
โ Mixing Font Families
// WRONG - Uses different fonts
<div className="font-sans">Body</div>
<div className="font-serif">Heading</div>
// CORRECT - Single font family, vary weight
<div className="font-normal">Body</div>
<div className="font-bold">Heading</div>
โ Using Unapproved Tailwind Color Names
// WRONG - surgical-600 maps to unapproved hex value
<button className="bg-surgical-600">Click</button>
// CORRECT - Use approved Electric Blue
<button className="bg-[#0000FF]">Click</button>
โ No Hover States
// WRONG - No visual feedback on hover
<button className="bg-[#0000FF]">Click</button>
// CORRECT - Clear hover feedback
<button className="bg-[#0000FF] hover:shadow-xl hover:scale-105 transition-all">
Click
</button>
โ Missing Focus States
// WRONG - No focus ring (accessibility issue)
<button className="bg-[#0000FF]">Click</button>
// CORRECT - Visible focus ring (WCAG AA)
<button className="bg-[#0000FF] focus:outline-none focus:ring-2 focus:ring-[#0000FF]/50 focus:ring-offset-2">
Click
</button>
โ Inconsistent Spacing
// WRONG - Random spacing values
<div className="p-3">
<div className="mb-5">
<div className="gap-7">
// CORRECT - 4px grid rhythm
<div className="p-4">
<div className="mb-6">
<div className="gap-4">
โ Component Upgrade Checklist
When enhancing a component, verify ALL items:
Colors
- Uses ONLY approved 5-color palette (#0A0E27, #0000FF, #3366FF, #AACCFF, #F5F5F5)
- NO semantic colors (green, yellow, red, orange, purple)
- Leverages opacity variations for visual hierarchy (e.g., bg-[#0000FF]/10)
- Uses colored shadows (e.g., shadow-[#0000FF]/20)
Typography
- Single font family throughout
- Proper weight hierarchy (700 > 600 > 500 > 400)
- Consistent size scale (xs, sm, base, lg, xl, 2xl, 3xl, 4xl, 5xl)
- Appropriate letter spacing (tight for headings, normal for body)
- Sufficient line height for readability (leading-relaxed for body text)
Spacing
- Follows 4px grid rhythm (p-4, p-6, p-8, gap-4, gap-6)
- Consistent padding (p-6 for cards)
- Consistent gaps (gap-4 for grids)
- Proper section separation (mb-6 between sections)
Interactive States
- Hover state defined (hover:shadow-xl, hover:scale-105)
- Focus state defined (focus:ring-2 focus:ring-[#0000FF]/50)
- Active state defined (active:scale-100)
- Disabled state defined (opacity-50 cursor-not-allowed)
- Smooth transitions (transition-all duration-200)
Accessibility
- Focus rings visible and contrasting (WCAG AA)
- Sufficient color contrast (4.5:1 for text, 3:1 for UI)
- Interactive elements at least 44px tap target (mobile)
- Status indicated with icons, not just color
- No full-page loading states (use granular skeletons)
Visual Polish
- Shadows for depth (shadow-md, shadow-lg, shadow-xl)
- Rounded corners consistent (rounded-lg for buttons, rounded-xl for cards)
- Micro-interactions on hover (scale, translate, shadow)
- Loading states implemented (skeleton or spinner)
- Empty states with helpful messaging
๐ Best Practices Summary
Color Discipline
- Stick to the 5 approved colors religiously
- Use opacity to create variations
- Use icons to reinforce status meaning
Typography Clarity
- One font family, multiple weights
- Clear hierarchy through size and weight
- Avoid cramped tracking
Depth & Elevation
- Use shadows to create depth
- Use colored shadows for premium feel
- Layer cards with subtle borders
Micro-interactions
- Every interactive element needs hover state
- Use scale (105%) for emphasis
- Use translate-y (-1 or -2) for lift effect
- Smooth transitions (200ms standard)
Accessibility First
- Always include focus rings
- Use icons with status colors
- Ensure 44px minimum tap targets
- Test keyboard navigation
Spacing Consistency
- 4px grid system
- p-6 for card padding
- gap-4 for grids
- mb-6 for section separation
๐ Quick Implementation Guide
Step 1: Audit Current Component
- Read the component file
- Identify color violations (any non-approved colors)
- Check typography (font family mixing, inconsistent sizing)
- Review spacing (non-4px-grid values)
- Test interactions (missing hover/focus states)
Step 2: Apply Color System
- Replace all colors with approved hex values using
bg-[#HEX] - Add opacity variations where appropriate
- Replace semantic colors with blue variations + icons
- Add colored shadows for depth
Step 3: Fix Typography
- Ensure single font family
- Apply proper weight hierarchy
- Fix letter spacing (remove excessive tracking-tight)
- Use correct size scale
Step 4: Enhance Interactions
- Add hover states (shadow + scale/translate)
- Add focus rings (WCAG AA compliant)
- Add active states (scale back)
- Add smooth transitions (200ms)
Step 5: Polish Spacing
- Round to 4px grid values
- Standardize padding (p-6 for cards)
- Standardize gaps (gap-4 for grids)
- Ensure consistent section separation
Step 6: Verify & Test
- Check color compliance (only 5 approved colors)
- Test hover/focus/active states
- Test keyboard navigation
- Verify spacing consistency
- Check mobile responsiveness
๐ Reference
Approved Colors:
- Deep Navy:
#0A0E27 - Electric Blue:
#0000FF - Medium Blue:
#3366FF - Light Blue:
#AACCFF - Off-White:
#F5F5F5
Font Weights:
- 400 (normal), 500 (medium), 600 (semibold), 700 (bold)
Spacing Scale:
- xs (12px), sm (14px), base (16px), lg (18px), xl (20px), 2xl (24px), 3xl (30px), 4xl (36px), 5xl (48px)
Shadow Scale:
- sm, md, lg, xl, 2xl with colored variants (shadow-[#0000FF]/20)
Transition Duration:
- 200ms standard (duration-200)
End of Skill. Use this guide to transform the Voxanne AI dashboard into a premium, enterprise-grade interface while maintaining strict brand compliance.