/** * Design System Tokens * Layer 1: Base design tokens as CSS custom properties */ :root { /* Color Tokens */ --color-primary: oklch(0.65 0.18 250); --color-primary-hover: oklch(0.55 0.18 250); --color-primary-active: oklch(0.45 0.18 250); --color-primary-light: oklch(0.85 0.08 250); --color-secondary: oklch(0.60 0.12 120); --color-secondary-hover: oklch(0.50 0.12 120); --color-accent: oklch(0.70 0.20 40); --color-accent-hover: oklch(0.60 0.20 40); --color-destructive: oklch(0.63 0.25 30); --color-destructive-hover: oklch(0.53 0.25 30); --color-success: oklch(0.65 0.18 140); --color-warning: oklch(0.68 0.22 60); --color-info: oklch(0.62 0.18 230); --color-foreground: oklch(0.20 0.02 280); --color-foreground-secondary: oklch(0.40 0.02 280); --color-muted-foreground: oklch(0.55 0.02 280); --color-background: oklch(0.98 0.01 280); --color-surface: oklch(0.95 0.01 280); --color-surface-secondary: oklch(0.92 0.01 280); --color-muted: oklch(0.88 0.01 280); --color-border: oklch(0.82 0.01 280); --color-ring: oklch(0.65 0.18 250); --color-input: oklch(0.95 0.01 280); --color-card: oklch(0.98 0.01 280); /* Semantic Colors */ --primary: var(--color-primary); --primary-hover: var(--color-primary-hover); --primary-active: var(--color-primary-active); --primary-foreground: var(--color-foreground); --secondary: var(--color-secondary); --secondary-hover: var(--color-secondary-hover); --secondary-foreground: var(--color-foreground); --accent: var(--color-accent); --accent-hover: var(--color-accent-hover); --accent-foreground: var(--color-foreground); --destructive: var(--color-destructive); --destructive-hover: var(--color-destructive-hover); --destructive-foreground: var(--color-foreground); --success: var(--color-success); --warning: var(--color-warning); --info: var(--color-info); --foreground: var(--color-foreground); --muted-foreground: var(--color-muted-foreground); --background: var(--color-background); --surface: var(--color-surface); --surface-secondary: var(--color-surface-secondary); --muted: var(--color-muted); --card: var(--color-card); --input: var(--color-input); --border: var(--color-border); --ring: var(--color-ring); /* Spacing Scale (4px base unit) */ --space-0: 0; --space-1: 0.25rem; /* 4px */ --space-2: 0.5rem; /* 8px */ --space-3: 0.75rem; /* 12px */ --space-4: 1rem; /* 16px */ --space-5: 1.25rem; /* 20px */ --space-6: 1.5rem; /* 24px */ --space-7: 1.75rem; /* 28px */ --space-8: 2rem; /* 32px */ /* Typography */ --font-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; --font-mono: 'Monaco', 'Courier New', monospace; --font-semibold: 600; --font-medium: 500; --font-bold: 700; --text-xs: 0.75rem; /* 12px */ --text-sm: 0.875rem; /* 14px */ --text-base: 1rem; /* 16px */ --text-lg: 1.125rem; /* 18px */ --text-xl: 1.25rem; /* 20px */ --text-2xl: 1.5rem; /* 24px */ /* Border Radius */ --radius-none: 0; --radius-sm: 0.25rem; /* 4px */ --radius: 0.375rem; /* 6px */ --radius-md: 0.5rem; /* 8px */ --radius-lg: 0.75rem; /* 12px */ --radius-full: 9999px; /* Shadows */ --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05); --shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06); --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); /* Animation */ --duration-fast: 150ms; --duration-normal: 200ms; --duration-slow: 300ms; --ease-default: cubic-bezier(0.4, 0, 0.2, 1); --ease-in: cubic-bezier(0.4, 0, 1, 1); --ease-out: cubic-bezier(0, 0, 0.2, 1); --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1); --popover: oklch(0.98 0.01 280); --popover-foreground: oklch(0.20 0.02 280); } /* Dark Mode */ @media (prefers-color-scheme: dark) { :root { --color-foreground: oklch(0.92 0.02 280); --color-foreground-secondary: oklch(0.75 0.02 280); --color-muted-foreground: oklch(0.60 0.02 280); --color-background: oklch(0.12 0.02 280); --color-surface: oklch(0.15 0.02 280); --color-surface-secondary: oklch(0.18 0.02 280); --color-muted: oklch(0.25 0.02 280); --color-border: oklch(0.30 0.02 280); --color-input: oklch(0.18 0.02 280); --color-card: oklch(0.15 0.02 280); --popover: oklch(0.15 0.02 280); --popover-foreground: oklch(0.92 0.02 280); } }