Files
metabuilder/scss/_variables.scss
2026-03-09 22:30:41 +00:00

168 lines
6.3 KiB
SCSS

// ============================================
// Theme Variables - Material Design 3 + Legacy Aliases
// ============================================
//
// This file provides legacy CSS variable aliases that map to M3 tokens.
// The actual M3 tokens are defined in scss/tokens.scss and scss/theme.scss.
// These aliases ensure backward compatibility with existing code.
:root {
// ============================================
// Legacy Color Aliases → M3 Tokens
// ============================================
// Primary colors
--color-primary: var(--mat-sys-primary);
--color-primary-dark: var(--mat-sys-primary);
--color-primary-light: var(--mat-sys-primary-container);
--color-primary-alpha: color-mix(in srgb, var(--mat-sys-primary) 20%, transparent);
--color-secondary: var(--mat-sys-secondary);
// Background colors → M3 surface hierarchy
--color-bg: var(--mat-sys-surface);
--color-bg-paper: var(--mat-sys-surface-container-low);
--color-bg-elevated: var(--mat-sys-surface-container);
--color-bg-hover: color-mix(in srgb, var(--mat-sys-on-surface) 8%, transparent);
// Text colors → M3 on-surface variants
--color-text: var(--mat-sys-on-surface);
--color-text-secondary: var(--mat-sys-on-surface-variant);
--color-text-disabled: color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent);
// Border/divider colors → M3 outline
--color-border: var(--mat-sys-outline);
--color-divider: var(--mat-sys-outline-variant);
// ============================================
// Extended Semantic Colors (not in M3 spec)
// ============================================
// M3 only defines error. We extend with success/warning/info.
// These follow M3 naming conventions: color, on-color, color-container, on-color-container
// Success (green)
--color-success: #4caf50;
--color-on-success: #ffffff;
--color-success-container: color-mix(in srgb, #4caf50 12%, var(--mat-sys-surface));
--color-on-success-container: #2e7d32;
// Warning (amber/orange)
--color-warning: #ff9800;
--color-on-warning: #000000;
--color-warning-container: color-mix(in srgb, #ff9800 12%, var(--mat-sys-surface));
--color-on-warning-container: #e65100;
// Info (blue)
--color-info: #2196f3;
--color-on-info: #ffffff;
--color-info-container: color-mix(in srgb, #2196f3 12%, var(--mat-sys-surface));
--color-on-info-container: #0d47a1;
// Search/Find highlight (yellow - universal standard)
--color-search-highlight: #ffeb3b;
--color-on-search-highlight: #000000;
--color-search-highlight-current: #fdd835;
--color-search-highlight-ring: #fbc02d;
// Error (from M3)
--color-error: var(--mat-sys-error);
--color-on-error: var(--mat-sys-on-error);
--color-error-container: var(--mat-sys-error-container);
--color-on-error-container: var(--mat-sys-on-error-container);
// Legacy background aliases
--color-success-bg: var(--color-success-container);
--color-warning-bg: var(--color-warning-container);
--color-error-bg: var(--color-error-container);
--color-info-bg: var(--color-info-container);
// ============================================
// Legacy Spacing Aliases (M3 uses 4px grid)
// ============================================
--spacing-xs: 4px;
--spacing-sm: 8px;
--spacing-md: 16px;
--spacing-lg: 24px;
--spacing-xl: 32px;
// ============================================
// Legacy Border Radius → M3 Corner Tokens
// ============================================
--radius-sm: var(--mat-sys-corner-small);
--radius-md: var(--mat-sys-corner-medium);
--radius-lg: var(--mat-sys-corner-large);
--radius-full: var(--mat-sys-corner-full);
// ============================================
// Legacy Shadows → M3 Elevation Levels
// ============================================
--shadow-sm: var(--mat-sys-level1);
--shadow-md: var(--mat-sys-level2);
--shadow-lg: var(--mat-sys-level3);
--shadow-xl: var(--mat-sys-level4);
// ============================================
// State Layer & Disabled Opacities (M3 spec)
// ============================================
--state-hover-opacity: 0.08;
--state-focus-opacity: 0.12;
--state-pressed-opacity: 0.12;
--state-dragged-opacity: 0.16;
--disabled-container-opacity: 0.12;
--disabled-content-opacity: 0.38;
// ============================================
// Legacy Typography → M3 Type Scale
// ============================================
--font-family: var(--mat-sys-body-large-font);
--font-mono: 'JetBrains Mono', 'Fira Code', 'SF Mono', Consolas, monospace;
--font-size-xs: var(--mat-sys-label-small-size);
--font-size-sm: var(--mat-sys-body-small-size);
--font-size-md: var(--mat-sys-body-medium-size);
--font-size-lg: var(--mat-sys-body-large-size);
--font-size-xl: var(--mat-sys-title-large-size);
--font-size-2xl: var(--mat-sys-headline-medium-size);
// ============================================
// Code Block Colors (extended theme)
// ============================================
--color-code-bg: var(--mat-sys-surface-container-highest);
--color-code-text: var(--mat-sys-on-surface);
--color-code-keyword: #569cd6;
--color-code-string: #ce9178;
--color-code-comment: #6a9955;
--color-code-function: #dcdcaa;
// ============================================
// Legacy Transitions → M3 Motion Tokens
// ============================================
--transition-fast: var(--mat-sys-motion-duration-short4) var(--mat-sys-motion-easing-standard);
--transition-normal: var(--mat-sys-motion-duration-medium2) var(--mat-sys-motion-easing-standard);
--transition-slow: var(--mat-sys-motion-duration-long2) var(--mat-sys-motion-easing-standard);
// ============================================
// Z-index Layers (M3-aligned stacking order)
// ============================================
// Local stacking (within components)
--z-local: 1;
--z-local-elevated: 10;
// Global stacking (overlays)
--z-dropdown: 1000;
--z-sticky: 1100;
--z-drawer: 1200;
--z-modal: 1300;
--z-snackbar: 1400;
--z-tooltip: 1500;
--z-overlay-max: 9999;
}
// ============================================
// Theme variant overrides are now handled by M3
// theme.scss generates --mat-sys-* tokens which
// automatically cascade to these legacy aliases.
//
// For custom themes, override --mat-sys-* tokens
// rather than these legacy variables.
// ============================================