This commit implements a complete brand system overhaul including: TYPOGRAPHY SYSTEM: - Add Exo font family (Thin, Light, Regular, ExtraLight) as primary brand font - Implement SF Pro Display/Text hierarchy for UI components - Create comprehensive Typography component with all brand variants - Update all components to use new typography tokens DESIGN TOKEN SYSTEM: - Create complete design token system in theme/designTokens.ts - Define Carbon Black (#1a1a1a), Walnut Brown (#8B4513), Brushed Aluminum (#A8A8A8) palette - Implement CSS custom properties for consistent theming - Update Ant Design theme integration COMPONENT UPDATES: - Enhance Hero section with Exo Thin typography and improved layout - Update navigation with SF Pro font hierarchy - Redesign Button component with new variants and accessibility - Apply brand colors and typography across all showcase sections - Improve Footer with consistent brand application PERFORMANCE & ACCESSIBILITY: - Self-host Exo fonts for optimal loading performance - Implement proper font-display strategies - Add comprehensive accessibility audit documentation - Include responsive testing verification DOCUMENTATION: - Add brand system demo and implementation guides - Include QA testing reports and accessibility audits - Document design token usage and component patterns 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
819 lines
19 KiB
CSS
819 lines
19 KiB
CSS
@tailwind base;
|
|
@tailwind components;
|
|
@tailwind utilities;
|
|
|
|
/* =============================================================================
|
|
FONT LOADING - OPTIMIZED WEB FONTS
|
|
============================================================================= */
|
|
|
|
/* Self-hosted Exo fonts for display typography */
|
|
@font-face {
|
|
font-family: 'Exo';
|
|
src: url('/fonts/Exo-Thin.ttf') format('truetype');
|
|
font-weight: 100;
|
|
font-style: normal;
|
|
font-display: swap;
|
|
}
|
|
|
|
@font-face {
|
|
font-family: 'Exo';
|
|
src: url('/fonts/Exo-ExtraLight.ttf') format('truetype');
|
|
font-weight: 200;
|
|
font-style: normal;
|
|
font-display: swap;
|
|
}
|
|
|
|
@font-face {
|
|
font-family: 'Exo';
|
|
src: url('/fonts/Exo-Light.ttf') format('truetype');
|
|
font-weight: 300;
|
|
font-style: normal;
|
|
font-display: swap;
|
|
}
|
|
|
|
@font-face {
|
|
font-family: 'Exo';
|
|
src: url('/fonts/Exo-Regular.ttf') format('truetype');
|
|
font-weight: 400;
|
|
font-style: normal;
|
|
font-display: swap;
|
|
}
|
|
|
|
/* Import Google Fonts for fallbacks */
|
|
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
|
|
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;600;700&display=swap');
|
|
|
|
/* =============================================================================
|
|
DESIGN TOKENS - CSS CUSTOM PROPERTIES
|
|
============================================================================= */
|
|
|
|
:root {
|
|
/* Core Brand Colors */
|
|
--chorus-carbon-black: #000000;
|
|
--chorus-carbon-dark: #0f0f0f;
|
|
--chorus-carbon-medium: #1a1a1a;
|
|
--chorus-carbon-light: #2a2a2a;
|
|
|
|
--chorus-walnut-deep: #8B4513;
|
|
--chorus-walnut-medium: #A0522D;
|
|
--chorus-walnut-warm: #D2691E;
|
|
--chorus-walnut-light: #DEB887;
|
|
|
|
--chorus-aluminum-metallic: #C0C0C0;
|
|
--chorus-aluminum-slate: #708090;
|
|
--chorus-aluminum-light: #E5E5E5;
|
|
--chorus-aluminum-subtle: #F8F9FA;
|
|
|
|
--chorus-paper-natural: #F5F5DC;
|
|
--chorus-paper-pure: #FFFEF7;
|
|
--chorus-paper-aged: #F0E68C;
|
|
--chorus-paper-cream: #FDF6E3;
|
|
|
|
/* System Colors */
|
|
--chorus-orchestration-blue: #007AFF;
|
|
--chorus-orchestration-deep: #0051D5;
|
|
--chorus-orchestration-light: #4A90E2;
|
|
--chorus-orchestration-pale: #E3F2FD;
|
|
|
|
--chorus-harmony-green: #30D158;
|
|
--chorus-harmony-forest: #228B22;
|
|
--chorus-harmony-sage: #9CAF88;
|
|
--chorus-harmony-mint: #F0FFF4;
|
|
|
|
--chorus-resonance-amber: #FF9F0A;
|
|
--chorus-resonance-golden: #FFD700;
|
|
--chorus-resonance-copper: #B87333;
|
|
--chorus-resonance-cream: #FFFAF0;
|
|
|
|
--chorus-alert-coral: #FF453A;
|
|
--chorus-alert-warm: #FF6B6B;
|
|
--chorus-alert-rose: #E55B5B;
|
|
--chorus-alert-blush: #FFF5F5;
|
|
|
|
/* Semantic Colors (Dark Mode Default) */
|
|
--color-primary: var(--chorus-orchestration-blue);
|
|
--color-secondary: var(--chorus-aluminum-slate);
|
|
--color-success: var(--chorus-harmony-green);
|
|
--color-warning: var(--chorus-resonance-amber);
|
|
--color-error: var(--chorus-alert-coral);
|
|
--color-info: var(--chorus-orchestration-light);
|
|
|
|
/* Background Hierarchy */
|
|
--bg-primary: var(--chorus-carbon-black);
|
|
--bg-secondary: var(--chorus-carbon-medium);
|
|
--bg-tertiary: var(--chorus-carbon-light);
|
|
--bg-elevated: var(--chorus-carbon-dark);
|
|
|
|
/* Text Hierarchy */
|
|
--text-primary: #F2F2F7;
|
|
--text-secondary: #A1A1A6;
|
|
--text-tertiary: #6D6D73;
|
|
--text-disabled: #48484A;
|
|
--text-inverse: var(--chorus-carbon-black);
|
|
|
|
/* Interactive Colors */
|
|
--interactive-primary: var(--chorus-orchestration-blue);
|
|
--interactive-primary-hover: var(--chorus-orchestration-deep);
|
|
--interactive-secondary: var(--chorus-aluminum-metallic);
|
|
--interactive-secondary-hover: var(--chorus-aluminum-slate);
|
|
|
|
/* Borders */
|
|
--border-primary: #48484A;
|
|
--border-secondary: #2a2a2a;
|
|
--border-accent: var(--chorus-orchestration-blue);
|
|
|
|
/* Typography Scale */
|
|
--font-display: 'Exo', -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Inter', sans-serif;
|
|
--font-interface: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Inter', 'Segoe UI', 'Roboto', sans-serif;
|
|
--font-body: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
--font-mono: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Code', monospace;
|
|
|
|
/* Responsive Font Sizes */
|
|
--text-hero: clamp(48px, 8vw, 84px);
|
|
--text-display-1: clamp(32px, 5vw, 48px);
|
|
--text-display-2: clamp(24px, 4vw, 36px);
|
|
--text-body-large: 18px;
|
|
--text-body: 16px;
|
|
--text-body-small: 14px;
|
|
--text-interface: 16px;
|
|
--text-interface-small: 14px;
|
|
--text-code: 14px;
|
|
|
|
/* Line Heights */
|
|
--leading-tight: 1.0;
|
|
--leading-snug: 1.1;
|
|
--leading-normal: 1.2;
|
|
--leading-relaxed: 1.4;
|
|
--leading-loose: 1.5;
|
|
--leading-reading: 1.6;
|
|
|
|
/* Letter Spacing */
|
|
--tracking-tight: -0.02em;
|
|
--tracking-snug: -0.015em;
|
|
--tracking-normal: 0;
|
|
--tracking-wide: 0.005em;
|
|
--tracking-wider: 0.01em;
|
|
|
|
/* Spacing Scale */
|
|
--space-xs: 4px;
|
|
--space-sm: 8px;
|
|
--space-md: 12px;
|
|
--space-lg: 16px;
|
|
--space-xl: 24px;
|
|
--space-2xl: 32px;
|
|
--space-3xl: 48px;
|
|
--space-4xl: 64px;
|
|
--space-5xl: 96px;
|
|
--space-6xl: 128px;
|
|
|
|
/* Border Radius */
|
|
--radius-sm: 4px;
|
|
--radius-md: 8px;
|
|
--radius-lg: 12px;
|
|
--radius-xl: 16px;
|
|
--radius-2xl: 24px;
|
|
--radius-button: 8px;
|
|
--radius-card: 12px;
|
|
--radius-input: 8px;
|
|
--radius-modal: 16px;
|
|
|
|
/* Shadows */
|
|
--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
|
|
--shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);
|
|
--shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.15);
|
|
--shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.25);
|
|
--shadow-2xl: 0 25px 50px rgba(0, 0, 0, 0.35);
|
|
--shadow-button: 0 2px 8px rgba(0, 122, 255, 0.2);
|
|
--shadow-button-hover: 0 4px 12px rgba(0, 122, 255, 0.3);
|
|
--shadow-card: 0 4px 20px rgba(0, 0, 0, 0.25);
|
|
--shadow-card-hover: 0 8px 30px rgba(0, 0, 0, 0.35);
|
|
--shadow-focus: 0 0 0 3px rgba(0, 122, 255, 0.2);
|
|
|
|
/* Motion */
|
|
--duration-fast: 150ms;
|
|
--duration-normal: 250ms;
|
|
--duration-slow: 350ms;
|
|
--duration-slower: 500ms;
|
|
|
|
--easing-linear: linear;
|
|
--easing-ease: ease;
|
|
--easing-ease-in: cubic-bezier(0.4, 0, 1, 1);
|
|
--easing-ease-out: cubic-bezier(0, 0, 0.2, 1);
|
|
--easing-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
|
|
--easing-spring: cubic-bezier(0.175, 0.885, 0.32, 1.275);
|
|
}
|
|
|
|
/* Base styles */
|
|
* {
|
|
box-sizing: border-box;
|
|
padding: 0;
|
|
margin: 0;
|
|
}
|
|
|
|
html {
|
|
scroll-behavior: smooth;
|
|
scroll-padding-top: 80px; /* Account for fixed navigation */
|
|
}
|
|
|
|
body {
|
|
font-family: var(--font-body);
|
|
font-size: var(--text-body);
|
|
background-color: var(--bg-primary);
|
|
color: var(--text-primary);
|
|
line-height: var(--leading-reading);
|
|
-webkit-font-smoothing: antialiased;
|
|
-moz-osx-font-smoothing: grayscale;
|
|
}
|
|
|
|
/* Remove focus outline and add custom focus styles */
|
|
button:focus,
|
|
input:focus,
|
|
textarea:focus,
|
|
select:focus {
|
|
outline: none;
|
|
}
|
|
|
|
/* Custom focus ring */
|
|
.focus-ring {
|
|
@apply ring-2 ring-chorus-blue ring-opacity-50 ring-offset-2 ring-offset-chorus-charcoal;
|
|
}
|
|
|
|
/* Scrollbar styling for webkit browsers */
|
|
::-webkit-scrollbar {
|
|
width: 8px;
|
|
}
|
|
|
|
::-webkit-scrollbar-track {
|
|
background: var(--chorus-charcoal);
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb {
|
|
background: var(--chorus-charcoal-light);
|
|
border-radius: 4px;
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb:hover {
|
|
background: var(--border-color-light);
|
|
}
|
|
|
|
/* Selection styling */
|
|
::selection {
|
|
background-color: rgba(0, 122, 255, 0.3);
|
|
color: var(--text-primary);
|
|
}
|
|
|
|
::-moz-selection {
|
|
background-color: rgba(0, 122, 255, 0.3);
|
|
color: var(--text-primary);
|
|
}
|
|
|
|
/* =============================================================================
|
|
TYPOGRAPHY SYSTEM
|
|
============================================================================= */
|
|
|
|
/* Base typography settings */
|
|
h1, h2, h3, h4, h5, h6 {
|
|
font-family: var(--font-display);
|
|
font-weight: 600;
|
|
line-height: var(--leading-normal);
|
|
letter-spacing: var(--tracking-snug);
|
|
margin: 0;
|
|
}
|
|
|
|
/* Hero Display Typography - Exo Thin for maximum impact */
|
|
.text-hero {
|
|
font-family: var(--font-display);
|
|
font-size: var(--text-hero);
|
|
font-weight: 100;
|
|
line-height: var(--leading-tight);
|
|
letter-spacing: var(--tracking-tight);
|
|
}
|
|
|
|
/* Display Typography Hierarchy */
|
|
.text-display-1,
|
|
h1 {
|
|
font-family: var(--font-display);
|
|
font-size: var(--text-display-1);
|
|
font-weight: 200;
|
|
line-height: var(--leading-snug);
|
|
letter-spacing: var(--tracking-snug);
|
|
}
|
|
|
|
.text-display-2,
|
|
h2 {
|
|
font-family: var(--font-display);
|
|
font-size: var(--text-display-2);
|
|
font-weight: 300;
|
|
line-height: var(--leading-normal);
|
|
letter-spacing: var(--tracking-snug);
|
|
}
|
|
|
|
/* Interface Typography - SF Pro for UI elements */
|
|
.text-interface {
|
|
font-family: var(--font-interface);
|
|
font-size: var(--text-interface);
|
|
font-weight: 500;
|
|
line-height: var(--leading-normal);
|
|
letter-spacing: var(--tracking-wide);
|
|
}
|
|
|
|
.text-interface-small {
|
|
font-family: var(--font-interface);
|
|
font-size: var(--text-interface-small);
|
|
font-weight: 500;
|
|
line-height: var(--leading-normal);
|
|
letter-spacing: var(--tracking-wider);
|
|
}
|
|
|
|
/* Body Typography - Roboto for readability */
|
|
.text-body-large {
|
|
font-family: var(--font-body);
|
|
font-size: var(--text-body-large);
|
|
font-weight: 400;
|
|
line-height: var(--leading-reading);
|
|
letter-spacing: var(--tracking-normal);
|
|
}
|
|
|
|
.text-body,
|
|
p {
|
|
font-family: var(--font-body);
|
|
font-size: var(--text-body);
|
|
font-weight: 400;
|
|
line-height: var(--leading-loose);
|
|
letter-spacing: var(--tracking-normal);
|
|
}
|
|
|
|
.text-body-small {
|
|
font-family: var(--font-body);
|
|
font-size: var(--text-body-small);
|
|
font-weight: 400;
|
|
line-height: var(--leading-relaxed);
|
|
letter-spacing: var(--tracking-wide);
|
|
}
|
|
|
|
/* Technical Typography - Monospace for code */
|
|
.text-code,
|
|
code,
|
|
pre {
|
|
font-family: var(--font-mono);
|
|
font-size: var(--text-code);
|
|
line-height: var(--leading-relaxed);
|
|
letter-spacing: var(--tracking-normal);
|
|
}
|
|
|
|
/* Button Typography */
|
|
.text-button {
|
|
font-family: var(--font-body);
|
|
font-weight: 600;
|
|
line-height: var(--leading-tight);
|
|
letter-spacing: var(--tracking-wider);
|
|
}
|
|
|
|
/* Semantic text colors */
|
|
.text-primary {
|
|
color: var(--text-primary);
|
|
}
|
|
|
|
.text-secondary {
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
.text-tertiary {
|
|
color: var(--text-tertiary);
|
|
}
|
|
|
|
.text-disabled {
|
|
color: var(--text-disabled);
|
|
}
|
|
|
|
.text-inverse {
|
|
color: var(--text-inverse);
|
|
}
|
|
|
|
/* Utility classes */
|
|
.text-gradient {
|
|
background: linear-gradient(135deg, var(--chorus-blue) 0%, var(--chorus-green) 100%);
|
|
background-size: 200% 200%;
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
background-clip: text;
|
|
animation: gradient-shift 5s ease-in-out infinite;
|
|
}
|
|
|
|
@keyframes gradient-shift {
|
|
0%, 100% {
|
|
background-position: 0% 50%;
|
|
}
|
|
50% {
|
|
background-position: 100% 50%;
|
|
}
|
|
}
|
|
|
|
/* Respect reduced motion preferences */
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.text-gradient {
|
|
animation: none;
|
|
background-position: 0% 50%;
|
|
}
|
|
}
|
|
|
|
.bg-gradient-chorus {
|
|
background: linear-gradient(135deg, var(--chorus-blue) 0%, var(--chorus-green) 100%);
|
|
}
|
|
|
|
.glass-effect {
|
|
background: rgba(26, 26, 26, 0.8);
|
|
backdrop-filter: blur(12px);
|
|
-webkit-backdrop-filter: blur(12px);
|
|
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
}
|
|
|
|
.card-hover {
|
|
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
}
|
|
|
|
.card-hover:hover {
|
|
transform: translateY(-4px);
|
|
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
|
|
}
|
|
|
|
/* Performance optimizations */
|
|
.will-change-transform {
|
|
will-change: transform;
|
|
}
|
|
|
|
.will-change-opacity {
|
|
will-change: opacity;
|
|
}
|
|
|
|
.gpu-accelerated {
|
|
transform: translateZ(0);
|
|
backface-visibility: hidden;
|
|
perspective: 1000px;
|
|
}
|
|
|
|
/* Animation utilities */
|
|
.animate-float {
|
|
animation: float 6s ease-in-out infinite;
|
|
will-change: transform;
|
|
}
|
|
|
|
@keyframes float {
|
|
0%, 100% {
|
|
transform: translateY(0px);
|
|
}
|
|
50% {
|
|
transform: translateY(-10px);
|
|
}
|
|
}
|
|
|
|
.animate-pulse-slow {
|
|
animation: pulse-slow 3s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
|
}
|
|
|
|
@keyframes pulse-slow {
|
|
0%, 100% {
|
|
opacity: 1;
|
|
}
|
|
50% {
|
|
opacity: 0.7;
|
|
}
|
|
}
|
|
|
|
.animate-slide-up {
|
|
animation: slideUp 0.6s ease-out forwards;
|
|
}
|
|
|
|
@keyframes slideUp {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(30px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
/* Container utilities */
|
|
.container-chorus {
|
|
max-width: 1200px;
|
|
margin: 0 auto;
|
|
padding: 0 1rem;
|
|
}
|
|
|
|
@media (min-width: 640px) {
|
|
.container-chorus {
|
|
padding: 0 2rem;
|
|
}
|
|
}
|
|
|
|
/* =============================================================================
|
|
BUTTON SYSTEM
|
|
============================================================================= */
|
|
|
|
.btn-primary {
|
|
font-family: var(--font-body);
|
|
font-weight: 600;
|
|
font-size: var(--text-interface);
|
|
line-height: var(--leading-tight);
|
|
letter-spacing: var(--tracking-wider);
|
|
|
|
background-color: var(--interactive-primary);
|
|
color: #ffffff;
|
|
border: none;
|
|
border-radius: var(--radius-button);
|
|
padding: var(--space-md) var(--space-xl);
|
|
|
|
box-shadow: var(--shadow-button);
|
|
transition: all var(--duration-normal) var(--easing-ease-out);
|
|
cursor: pointer;
|
|
}
|
|
|
|
.btn-primary:hover {
|
|
background-color: var(--interactive-primary-hover);
|
|
box-shadow: var(--shadow-button-hover);
|
|
transform: translateY(-2px);
|
|
}
|
|
|
|
.btn-primary:focus {
|
|
outline: none;
|
|
box-shadow: var(--shadow-focus);
|
|
}
|
|
|
|
.btn-primary:active {
|
|
transform: translateY(0);
|
|
box-shadow: var(--shadow-button);
|
|
}
|
|
|
|
.btn-secondary {
|
|
font-family: var(--font-body);
|
|
font-weight: 600;
|
|
font-size: var(--text-interface);
|
|
line-height: var(--leading-tight);
|
|
letter-spacing: var(--tracking-wider);
|
|
|
|
background-color: transparent;
|
|
color: var(--interactive-primary);
|
|
border: 2px solid var(--interactive-primary);
|
|
border-radius: var(--radius-button);
|
|
padding: calc(var(--space-md) - 2px) calc(var(--space-xl) - 2px);
|
|
|
|
transition: all var(--duration-normal) var(--easing-ease-out);
|
|
cursor: pointer;
|
|
}
|
|
|
|
.btn-secondary:hover {
|
|
background-color: var(--interactive-primary);
|
|
color: #ffffff;
|
|
transform: translateY(-2px);
|
|
box-shadow: var(--shadow-button);
|
|
}
|
|
|
|
.btn-secondary:focus {
|
|
outline: none;
|
|
box-shadow: var(--shadow-focus);
|
|
}
|
|
|
|
.btn-secondary:active {
|
|
transform: translateY(0);
|
|
}
|
|
|
|
.btn-tertiary {
|
|
font-family: var(--font-body);
|
|
font-weight: 500;
|
|
font-size: var(--text-interface);
|
|
line-height: var(--leading-tight);
|
|
letter-spacing: var(--tracking-wider);
|
|
|
|
background-color: var(--interactive-secondary);
|
|
color: var(--text-inverse);
|
|
border: none;
|
|
border-radius: var(--radius-button);
|
|
padding: var(--space-md) var(--space-xl);
|
|
|
|
transition: all var(--duration-normal) var(--easing-ease-out);
|
|
cursor: pointer;
|
|
}
|
|
|
|
.btn-tertiary:hover {
|
|
background-color: var(--interactive-secondary-hover);
|
|
transform: translateY(-2px);
|
|
box-shadow: var(--shadow-md);
|
|
}
|
|
|
|
.btn-ghost {
|
|
font-family: var(--font-interface);
|
|
font-weight: 500;
|
|
font-size: var(--text-interface);
|
|
line-height: var(--leading-tight);
|
|
letter-spacing: var(--tracking-wider);
|
|
|
|
background-color: transparent;
|
|
color: var(--text-secondary);
|
|
border: 1px solid var(--border-secondary);
|
|
border-radius: var(--radius-button);
|
|
padding: var(--space-md) var(--space-xl);
|
|
|
|
transition: all var(--duration-normal) var(--easing-ease-out);
|
|
cursor: pointer;
|
|
}
|
|
|
|
.btn-ghost:hover {
|
|
color: var(--text-primary);
|
|
border-color: var(--border-primary);
|
|
background-color: var(--bg-tertiary);
|
|
}
|
|
|
|
/* Loading states */
|
|
.loading-shimmer {
|
|
background: linear-gradient(
|
|
90deg,
|
|
transparent,
|
|
rgba(255, 255, 255, 0.05),
|
|
transparent
|
|
);
|
|
background-size: 200% 100%;
|
|
animation: shimmer 1.5s infinite;
|
|
}
|
|
|
|
@keyframes shimmer {
|
|
0% {
|
|
background-position: -200% 0;
|
|
}
|
|
100% {
|
|
background-position: 200% 0;
|
|
}
|
|
}
|
|
|
|
/* Responsive text utilities */
|
|
.text-responsive-xl {
|
|
@apply text-2xl sm:text-3xl md:text-4xl lg:text-5xl xl:text-6xl;
|
|
}
|
|
|
|
.text-responsive-lg {
|
|
@apply text-lg sm:text-xl md:text-2xl lg:text-3xl;
|
|
}
|
|
|
|
.text-responsive-md {
|
|
@apply text-base sm:text-lg md:text-xl;
|
|
}
|
|
|
|
/* Next.js specific overrides */
|
|
#__next {
|
|
min-height: 100vh;
|
|
}
|
|
|
|
/* Ant Design customizations */
|
|
.ant-layout {
|
|
background: var(--chorus-charcoal) !important;
|
|
}
|
|
|
|
.ant-layout-header {
|
|
background: var(--chorus-charcoal-dark) !important;
|
|
border-bottom: 1px solid var(--border-color);
|
|
}
|
|
|
|
.ant-layout-footer {
|
|
background: var(--chorus-charcoal-dark) !important;
|
|
border-top: 1px solid var(--border-color);
|
|
}
|
|
|
|
/* Custom component spacing */
|
|
.section-padding {
|
|
@apply py-16 sm:py-20 md:py-24 lg:py-32;
|
|
}
|
|
|
|
.section-padding-sm {
|
|
@apply py-8 sm:py-12 md:py-16;
|
|
}
|
|
|
|
/* Hide scrollbar but keep functionality */
|
|
.hide-scrollbar {
|
|
-ms-overflow-style: none;
|
|
scrollbar-width: none;
|
|
}
|
|
|
|
.hide-scrollbar::-webkit-scrollbar {
|
|
display: none;
|
|
}
|
|
|
|
/* Section Navigation Tooltip Styles */
|
|
.section-nav-tooltip .ant-tooltip-content {
|
|
background: rgba(26, 26, 26, 0.95) !important;
|
|
backdrop-filter: blur(12px);
|
|
}
|
|
|
|
.section-nav-tooltip .ant-tooltip-inner {
|
|
background: transparent !important;
|
|
color: #ffffff !important;
|
|
border: 1px solid rgba(255, 255, 255, 0.1) !important;
|
|
}
|
|
|
|
/* Technical Specs Page Styles */
|
|
.glass-tabs .ant-tabs-nav {
|
|
background: rgba(26, 26, 26, 0.8);
|
|
backdrop-filter: blur(12px);
|
|
-webkit-backdrop-filter: blur(12px);
|
|
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
border-radius: 12px;
|
|
padding: 8px;
|
|
margin-bottom: 24px;
|
|
}
|
|
|
|
.glass-tabs .ant-tabs-tab {
|
|
border-radius: 8px !important;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.glass-tabs .ant-tabs-tab-active {
|
|
background: rgba(0, 122, 255, 0.2) !important;
|
|
border-color: transparent !important;
|
|
}
|
|
|
|
.glass-tabs .ant-tabs-tab:hover {
|
|
background: rgba(255, 255, 255, 0.05) !important;
|
|
}
|
|
|
|
.glass-search .ant-input {
|
|
background: rgba(26, 26, 26, 0.8) !important;
|
|
backdrop-filter: blur(12px);
|
|
-webkit-backdrop-filter: blur(12px);
|
|
border: 1px solid rgba(255, 255, 255, 0.1) !important;
|
|
color: #ffffff !important;
|
|
}
|
|
|
|
.glass-search .ant-input:focus {
|
|
border-color: var(--chorus-blue) !important;
|
|
box-shadow: 0 0 0 2px rgba(0, 122, 255, 0.2) !important;
|
|
}
|
|
|
|
.glass-search .ant-input::placeholder {
|
|
color: #6d6d6d !important;
|
|
}
|
|
|
|
/* Table customizations for technical specs */
|
|
.ant-table-thead > tr > th {
|
|
background: rgba(42, 42, 42, 0.8) !important;
|
|
border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
|
|
color: #ffffff !important;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.ant-table-tbody > tr > td {
|
|
border-bottom: 1px solid rgba(255, 255, 255, 0.05) !important;
|
|
}
|
|
|
|
.ant-table-tbody > tr:hover > td {
|
|
background: rgba(255, 255, 255, 0.02) !important;
|
|
}
|
|
|
|
/* Progress bar customizations */
|
|
.ant-progress-bg {
|
|
background: linear-gradient(135deg, var(--chorus-blue) 0%, var(--chorus-green) 100%) !important;
|
|
}
|
|
|
|
/* Collapse panel customizations */
|
|
.ant-collapse-ghost > .ant-collapse-item > .ant-collapse-header {
|
|
background: rgba(42, 42, 42, 0.5);
|
|
border-radius: 8px;
|
|
margin-bottom: 8px;
|
|
padding: 12px 16px;
|
|
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
}
|
|
|
|
.ant-collapse-ghost > .ant-collapse-item > .ant-collapse-content > .ant-collapse-content-box {
|
|
background: rgba(26, 26, 26, 0.5);
|
|
border-radius: 8px;
|
|
border: 1px solid rgba(255, 255, 255, 0.05);
|
|
margin-top: 8px;
|
|
}
|
|
|
|
/* Badge customizations */
|
|
.ant-badge-status-success {
|
|
background-color: var(--chorus-green) !important;
|
|
}
|
|
|
|
/* Tag customizations for technical specs */
|
|
.ant-tag {
|
|
border-radius: 6px;
|
|
font-weight: 500;
|
|
padding: 2px 8px;
|
|
}
|
|
|
|
/* Description list customizations */
|
|
.ant-descriptions-bordered .ant-descriptions-row > th,
|
|
.ant-descriptions-bordered .ant-descriptions-row > td {
|
|
border-color: rgba(255, 255, 255, 0.1) !important;
|
|
}
|
|
|
|
.ant-descriptions-bordered .ant-descriptions-row > th {
|
|
background: rgba(42, 42, 42, 0.5) !important;
|
|
color: #ffffff !important;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.ant-descriptions-bordered .ant-descriptions-row > td {
|
|
background: rgba(26, 26, 26, 0.3) !important;
|
|
color: #ffffff !important;
|
|
} |