/** * Theme Documentation Component * Comprehensive reference for the glassmorphism design system */ export function ThemeDocumentation() { const glassComponents = [ { name: '.glass', description: 'Primary glass effect with backdrop blur and subtle borders', usage: 'Basic glass containers and overlays', }, { name: '.glass-card', description: 'Complete card component with padding and hover effects', usage: 'Content cards, feature boxes, sections', }, { name: '.glass-card-hero', description: 'Enhanced gradient background for featured content', usage: 'Hero sections, featured announcements', }, { name: '.glass-navigation', description: 'Navigation-specific styling with blue/purple gradients', usage: 'Top navigation bars, menu bars', }, { name: '.glass-modal', description: 'High-blur modal styling with enhanced effects', usage: 'Modals, dialogs, overlays', }, { name: '.glass-button-primary', description: 'Primary action button with sky-blue gradient', usage: 'Main CTAs, submit buttons', }, { name: '.glass-button-secondary', description: 'Secondary action button with violet gradient', usage: 'Secondary actions, cancel buttons', }, { name: '.glass-button-gold', description: 'Premium action button with gold accent', usage: 'Premium features, upgrade CTAs', }, ]; const colorTokens = [ { category: 'Glass Colors', tokens: [ { name: 'glass-50', value: 'rgba(255, 255, 255, 0.05)', usage: 'Subtle backgrounds', }, { name: 'glass-100', value: 'rgba(255, 255, 255, 0.1)', usage: 'Primary glass background', }, { name: 'glass-200', value: 'rgba(255, 255, 255, 0.15)', usage: 'Hover states', }, { name: 'glass-300', value: 'rgba(255, 255, 255, 0.2)', usage: 'Borders and accents', }, ], }, { category: 'Gold System', tokens: [ { name: 'gold-400', value: '#f2c55a', usage: 'Light gold accents' }, { name: 'gold-500', value: '#d99e34', usage: 'Primary gold (brand color)', }, { name: 'gold-600', value: '#c8852d', usage: 'Darker gold for text' }, ], }, { category: 'Gradient Colors', tokens: [ { name: 'gradient.primary.from', value: '#0ea5e9 (sky-500)', usage: 'Primary gradient start', }, { name: 'gradient.primary.to', value: '#2563eb (blue-600)', usage: 'Primary gradient end', }, { name: 'gradient.secondary.from', value: '#8b5cf6 (violet-500)', usage: 'Secondary gradient start', }, { name: 'gradient.secondary.to', value: '#9333ea (purple-600)', usage: 'Secondary gradient end', }, ], }, ]; const animations = [ { name: 'fade-in-up', duration: '0.6s', easing: 'cubic-bezier(0.16, 1, 0.3, 1)', description: 'Smooth entrance animation with scale and translate', }, { name: 'slide-in-left', duration: '0.5s', easing: 'cubic-bezier(0.16, 1, 0.3, 1)', description: 'Slide in from left side', }, { name: 'slide-in-right', duration: '0.5s', easing: 'cubic-bezier(0.16, 1, 0.3, 1)', description: 'Slide in from right side', }, { name: 'pulse-slow', duration: '4s', easing: 'cubic-bezier(0.4, 0, 0.6, 1)', description: 'Slow breathing effect for CTAs', }, { name: 'glow', duration: '2s', easing: 'ease-in-out infinite alternate', description: 'Gold glow effect animation', }, { name: 'float', duration: '6s', easing: 'ease-in-out infinite', description: 'Gentle floating motion', }, ]; const shadows = [ { name: 'shadow-glass', value: '0 8px 32px rgba(0, 0, 0, 0.1)', usage: 'Standard glass elevation', }, { name: 'shadow-glass-lg', value: '0 20px 64px rgba(0, 0, 0, 0.15)', usage: 'Elevated glass components', }, { name: 'shadow-glass-xl', value: '0 32px 96px rgba(0, 0, 0, 0.2)', usage: 'High elevation modals', }, { name: 'shadow-glow', value: '0 0 20px rgba(217, 158, 52, 0.3)', usage: 'Gold glow effect', }, ]; return (
{/* Header */}

Design System Documentation

Complete reference for Black Canyon Tickets glassmorphism theme

{/* Component Reference */}

Component Reference

{glassComponents.map((component, index) => (

{component.name}

{component.description}

Usage: {component.usage}

{component.name.includes('button') && ( Sample )}
))}
{/* Color Tokens */}

Color Tokens

{colorTokens.map((category, categoryIndex) => (

{category.category}

{category.tokens.map((token, tokenIndex) => (

{token.name}

{token.value}

{token.usage}

))}
))}
{/* Animations */}

Animation System

{animations.map((animation, index) => (

animate-{animation.name}

{animation.description}

Duration: {animation.duration} Easing: cubic-bezier
Preview
))}
{/* Shadows */}

Shadow System

{shadows.map((shadow, index) => (

{shadow.name}

{shadow.usage}

Shadow Preview

{shadow.value}
))}
{/* Usage Guidelines */}

Usage Guidelines

✅ Best Practices

  • • Use glass effects sparingly for maximum impact
  • • Layer glass components for depth hierarchy
  • • Maintain contrast ratios for accessibility
  • • Use consistent animation timing
  • • Apply hover effects for interactive elements
  • • Use semantic color variants for status

❌ Avoid

  • • Overusing blur effects on mobile devices
  • • Mixing different glass opacities randomly
  • • Applying glass effects to small text
  • • Using too many competing animations
  • • Ignoring reduced motion preferences
  • • Low contrast text on glass backgrounds
{/* Accessibility */}

Accessibility Features

Focus Management

All interactive elements include visible focus rings with gold accent colors.

Contrast Ratios

Text maintains WCAG AA compliance with minimum 4.5:1 contrast ratios.

Motion Control

Animations respect prefers-reduced-motion user settings.

{/* Performance Notes */}

Performance Considerations

Optimizations Included

  • • CSS transforms use GPU acceleration
  • • Backdrop-filter optimized for modern browsers
  • • Animation delays prevent simultaneous triggers
  • • Selective application of expensive effects
  • • Compressed gradient values for smaller CSS bundle
); } export default ThemeDocumentation;