227 lines
7.7 KiB
CSS
227 lines
7.7 KiB
CSS
/* ========================================
|
|
MSPE CSS Variables - Unified Design Tokens
|
|
Single Source of Truth for Colors, Typography, Spacing, and Breakpoints
|
|
======================================== */
|
|
|
|
:root {
|
|
/* ==================== COLOR SYSTEM ==================== */
|
|
|
|
/* Primary Colors */
|
|
--color-primary: #10223b;
|
|
--color-primary-light: #1f3f69;
|
|
--color-primary-dark: #0b1930;
|
|
|
|
/* Accent Colors - Single Definition */
|
|
--color-accent: #0ea5e9;
|
|
--color-accent-light: #38bdf8;
|
|
--color-accent-dark: #0284c7;
|
|
--color-accent-glow: rgba(14, 165, 233, 0.3);
|
|
|
|
/* Secondary Colors */
|
|
--color-secondary: #0d9488;
|
|
--color-secondary-light: #14b8a6;
|
|
|
|
/* Status Colors */
|
|
--color-success: #10b981;
|
|
--color-warning: #f59e0b;
|
|
--color-danger: #ef4444;
|
|
|
|
/* Neutral Colors */
|
|
--color-white: #ffffff;
|
|
--color-gray-50: #f8fafc;
|
|
--color-gray-100: #f1f5f9;
|
|
--color-gray-200: #e2e8f0;
|
|
--color-gray-300: #cbd5e1;
|
|
--color-gray-400: #94a3b8;
|
|
--color-gray-500: #64748b;
|
|
--color-gray-600: #475569;
|
|
--color-gray-700: #334155;
|
|
--color-gray-800: #1e293b;
|
|
--color-gray-900: #0f172a;
|
|
|
|
/* Neon/Glow Colors */
|
|
--color-neon-cyan: #0ea5e9;
|
|
--color-neon-cyan-soft: #38bdf8;
|
|
--color-neon-purple: #0284c7;
|
|
--color-neon-purple-soft: #0369a1;
|
|
--color-neon-pink: #0c4a6e;
|
|
--color-neon-pink-soft: #075985;
|
|
--color-neon-blue: #2563eb;
|
|
--color-neon-blue-soft: #3b82f6;
|
|
--color-neon-green: #10b981;
|
|
--color-neon-gold: #e6c068;
|
|
--color-neon-orange: #f59e0b;
|
|
|
|
/* Text Colors */
|
|
--text-white: #ffffff;
|
|
--text-dark: #0a1628;
|
|
--text-body: #64748b;
|
|
--text-muted: #94a3b8;
|
|
|
|
/* Background Colors */
|
|
--bg-dark: #122a47;
|
|
--bg-light: #f8fafc;
|
|
--bg-ultra-dark: #0d2038;
|
|
--bg-darker: #17335a;
|
|
--bg-medium: #10223d;
|
|
|
|
/* Border Color */
|
|
--border-light: #e2e8f0;
|
|
--border-dark: rgba(255, 255, 255, 0.08);
|
|
--border-dark-hover: rgba(255, 255, 255, 0.15);
|
|
|
|
/* Glass Effect Colors */
|
|
--glass-bg: rgba(255, 255, 255, 0.03);
|
|
--glass-bg-hover: rgba(255, 255, 255, 0.08);
|
|
--glass-bg-active: rgba(255, 255, 255, 0.12);
|
|
|
|
/* ==================== TYPOGRAPHY ==================== */
|
|
|
|
/* Font Families */
|
|
--font-primary: 'DM Sans', sans-serif;
|
|
--font-display: 'Space Grotesk', sans-serif;
|
|
--font-heading: 'Space Grotesk', sans-serif;
|
|
|
|
/* Font Sizes - Heading Scale */
|
|
--font-size-h1: clamp(2.5rem, 5vw, 4rem);
|
|
--font-size-h2: clamp(2rem, 4vw, 2.75rem);
|
|
--font-size-h3: clamp(1.5rem, 3vw, 1.875rem);
|
|
--font-size-h4: clamp(1.25rem, 2.5vw, 1.5rem);
|
|
--font-size-h5: 1.25rem;
|
|
--font-size-h6: 1rem;
|
|
|
|
/* Font Sizes - Body */
|
|
--font-size-body: 1rem;
|
|
--font-size-body-lg: 1.125rem;
|
|
--font-size-body-sm: 0.875rem;
|
|
--font-size-body-xs: 0.75rem;
|
|
|
|
/* Font Weights */
|
|
--font-weight-regular: 400;
|
|
--font-weight-medium: 500;
|
|
--font-weight-semibold: 600;
|
|
--font-weight-bold: 700;
|
|
|
|
/* Line Heights */
|
|
--line-height-tight: 1.2;
|
|
--line-height-normal: 1.6;
|
|
--line-height-relaxed: 1.75;
|
|
|
|
/* ==================== SPACING SCALE ==================== */
|
|
|
|
--spacing-xs: 0.25rem;
|
|
--spacing-sm: 0.5rem;
|
|
--spacing-md: 1rem;
|
|
--spacing-lg: 1.5rem;
|
|
--spacing-xl: 2rem;
|
|
--spacing-2xl: 3rem;
|
|
--spacing-3xl: 4rem;
|
|
--spacing-4xl: 5rem;
|
|
--spacing-section: 5rem;
|
|
|
|
/* ==================== BORDER RADIUS ==================== */
|
|
|
|
--radius-sm: 0.375rem;
|
|
--radius-md: 0.5rem;
|
|
--radius-lg: 0.75rem;
|
|
--radius-xl: 1rem;
|
|
--radius-2xl: 1.5rem;
|
|
--radius-full: 9999px;
|
|
|
|
/* ==================== SHADOWS ==================== */
|
|
|
|
--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
|
|
--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
|
|
--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
|
|
--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
|
|
--shadow-glow: 0 0 20px rgba(14, 165, 233, 0.4);
|
|
--shadow-glass: 0 8px 32px 0 rgba(0, 0, 0, 0.4);
|
|
--shadow-glass-lg: 0 16px 48px 0 rgba(0, 0, 0, 0.5);
|
|
|
|
/* Neon Shadows */
|
|
--shadow-neon-cyan: 0 0 15px var(--color-neon-cyan), 0 0 30px rgba(14, 165, 233, 0.5), 0 0 45px rgba(14, 165, 233, 0.3);
|
|
--shadow-neon-purple: 0 0 15px var(--color-neon-purple), 0 0 30px rgba(2, 132, 199, 0.5);
|
|
--shadow-neon-pink: 0 0 15px var(--color-neon-pink), 0 0 30px rgba(12, 74, 110, 0.5);
|
|
--shadow-neon-multi: 0 0 20px var(--color-neon-cyan), 0 0 40px var(--color-neon-purple), 0 0 60px var(--color-neon-pink);
|
|
|
|
/* ==================== GRADIENTS ==================== */
|
|
|
|
--gradient-primary: linear-gradient(135deg, var(--color-neon-cyan) 0%, var(--color-neon-purple) 50%, var(--color-neon-pink) 100%);
|
|
--gradient-glass: linear-gradient(135deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0.02) 100%);
|
|
--gradient-shine: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
|
|
--gradient-accent: linear-gradient(135deg, var(--color-accent), var(--color-secondary));
|
|
|
|
/* ==================== TRANSITIONS ==================== */
|
|
|
|
--transition-fast: 0.15s ease;
|
|
--transition-base: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
--transition-base-alt: all 0.3s ease;
|
|
--transition-smooth: 0.5s cubic-bezier(0.22, 1, 0.36, 1);
|
|
--transition-bounce: 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
--transition-slow: 0.5s ease;
|
|
|
|
/* ==================== Z-INDEX SCALE ==================== */
|
|
|
|
--z-dropdown: 100;
|
|
--z-sticky: 1000;
|
|
--z-modal: 9000;
|
|
--z-preloader: 9999;
|
|
--z-skip-to-content: 10000;
|
|
|
|
/* ==================== RESPONSIVE BREAKPOINTS ==================== */
|
|
|
|
/* Mobile First Approach */
|
|
--bp-xs: 320px; /* Extra small phones */
|
|
--bp-sm: 480px; /* Small phones */
|
|
--bp-md: 768px; /* Tablets */
|
|
--bp-lg: 1024px; /* Desktops */
|
|
--bp-xl: 1280px; /* Large desktops */
|
|
--bp-2xl: 1536px; /* Extra large screens */
|
|
|
|
/* ==================== ALIASES FOR BACKWARD COMPATIBILITY ==================== */
|
|
|
|
/* Maintain compatibility with existing code */
|
|
--primary: var(--color-primary);
|
|
--primary-light: var(--color-primary-light);
|
|
--primary-dark: var(--color-primary-dark);
|
|
|
|
--accent: var(--color-accent);
|
|
--accent-light: var(--color-accent-light);
|
|
--accent-dark: var(--color-accent-dark);
|
|
--accent-glow: var(--color-accent-glow);
|
|
--accent-cyan: var(--color-accent);
|
|
|
|
--secondary: var(--color-secondary);
|
|
--secondary-light: var(--color-secondary-light);
|
|
--secondary-teal: var(--color-secondary);
|
|
|
|
--neon-cyan: var(--color-neon-cyan);
|
|
--neon-cyan-soft: var(--color-neon-cyan-soft);
|
|
--neon-purple: var(--color-neon-purple);
|
|
--neon-purple-soft: var(--color-neon-purple-soft);
|
|
--neon-pink: var(--color-neon-pink);
|
|
--neon-pink-soft: var(--color-neon-pink-soft);
|
|
--neon-blue: var(--color-neon-blue);
|
|
--neon-blue-soft: var(--color-neon-blue-soft);
|
|
--neon-green: var(--color-neon-green);
|
|
--neon-gold: var(--color-neon-gold);
|
|
--neon-orange: var(--color-neon-orange);
|
|
|
|
--white: var(--color-white);
|
|
--gray-50: var(--color-gray-50);
|
|
--gray-100: var(--color-gray-100);
|
|
--gray-200: var(--color-gray-200);
|
|
--gray-300: var(--color-gray-300);
|
|
--gray-400: var(--color-gray-400);
|
|
--gray-500: var(--color-gray-500);
|
|
--gray-600: var(--color-gray-600);
|
|
--gray-700: var(--color-gray-700);
|
|
--gray-800: var(--color-gray-800);
|
|
--gray-900: var(--color-gray-900);
|
|
|
|
--glass-bg-hover: var(--glass-bg-hover);
|
|
--glass-bg-active: var(--glass-bg-active);
|
|
--glass-shadow: var(--shadow-glass);
|
|
--glass-shadow-lg: var(--shadow-glass-lg);
|
|
}
|