/* LocalAI Theme - CSS Variables System */ /* Based on logo color palette: cyan, teal, navy, purple */ /* Dark Theme (Default) - Charcoal Gray Style */ :root, [data-theme="dark"], .dark { /* Base Colors - Charcoal Gray */ --color-bg-primary: #121212; /* Main background */ --color-bg-secondary: #1A1A1A; /* Elevated surfaces */ --color-bg-tertiary: #222222; /* Cards, panels */ --color-bg-overlay: rgba(18, 18, 18, 0.95); /* Modals, overlays */ /* Override tw-elements dark background */ background-color: #121212 !important; /* Brand Colors */ --color-primary: #38BDF8; /* Cyan - primary actions */ --color-primary-hover: #0EA5E9; /* Darker cyan on hover */ --color-primary-active: #0284C7; /* Active state */ --color-primary-text: #FFFFFF; /* Text on primary background */ --color-primary-light: rgba(56, 189, 248, 0.08); /* Light cyan backgrounds (reduced) */ --color-primary-border: rgba(56, 189, 248, 0.15); /* Cyan borders (reduced) */ --color-secondary: #14B8A6; /* Teal - secondary actions */ --color-secondary-hover: #0D9488; /* Darker teal on hover */ --color-secondary-light: rgba(20, 184, 166, 0.1); --color-accent: #8B5CF6; /* Purple - special states */ --color-accent-hover: #7C3AED; /* Darker purple on hover */ --color-accent-light: rgba(139, 92, 246, 0.1); --color-accent-purple: #A78BFA; /* Light purple for gradients */ --color-accent-teal: #2DD4BF; /* Light teal for gradients */ /* Text Colors */ --color-text-primary: #E5E7EB; /* Primary text */ --color-text-secondary: #94A3B8; /* Secondary text */ --color-text-muted: #64748B; /* Tertiary text */ --color-text-disabled: #475569; /* Disabled text */ --color-text-inverse: #FFFFFF; /* Text on light backgrounds */ /* Border Colors - Visible on charcoal */ --color-border-subtle: rgba(255, 255, 255, 0.08); /* Minimal borders */ --color-border-default: rgba(255, 255, 255, 0.12); /* Default borders */ --color-border-strong: rgba(56, 189, 248, 0.3); /* Focus borders */ --color-border-divider: rgba(255, 255, 255, 0.05); /* Section dividers */ --color-border-primary: rgba(56, 189, 248, 0.2); /* Primary borders */ --color-border-secondary: rgba(255, 255, 255, 0.1); --color-border-focus: rgba(56, 189, 248, 0.4); /* Focus borders */ /* Status Colors */ --color-success: #14B8A6; /* Use teal for success (aligned with logo) */ --color-success-light: rgba(20, 184, 166, 0.1); --color-warning: #F59E0B; --color-warning-light: rgba(245, 158, 11, 0.1); --color-error: #EF4444; --color-error-light: rgba(239, 68, 68, 0.1); --color-info: #38BDF8; /* Use cyan for info */ --color-info-light: rgba(56, 189, 248, 0.1); /* Gradient Definitions */ --gradient-primary: linear-gradient(135deg, #38BDF8 0%, #8B5CF6 50%, #14B8A6 100%); --gradient-hero: linear-gradient(135deg, #121212 0%, #1A1A1A 50%, #121212 100%); --gradient-card: linear-gradient(135deg, rgba(56, 189, 248, 0.04) 0%, rgba(139, 92, 246, 0.04) 100%); --gradient-text: linear-gradient(135deg, #38BDF8 0%, #8B5CF6 50%, #14B8A6 100%); /* Shadows - Charcoal theme */ --shadow-none: none; --shadow-subtle: 0 1px 2px rgba(0, 0, 0, 0.2); --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.25); --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.3); --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.35); --shadow-glow: 0 0 0 1px rgba(56, 189, 248, 0.15), 0 0 12px rgba(56, 189, 248, 0.2); --shadow-sidebar: 1px 0 3px rgba(0, 0, 0, 0.25); /* Animation Timing - Minimal */ --duration-instant: 100ms; --duration-fast: 150ms; --duration-normal: 200ms; --duration-slow: 300ms; /* Animation Easing */ --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); --ease-spring: cubic-bezier(0.68, -0.55, 0.265, 1.55); /* Spacing Scale (for reference, used via Tailwind) */ --spacing-xs: 0.25rem; /* 4px */ --spacing-sm: 0.5rem; /* 8px */ --spacing-md: 1rem; /* 16px */ --spacing-lg: 1.5rem; /* 24px */ --spacing-xl: 2rem; /* 32px */ --spacing-2xl: 3rem; /* 48px */ --spacing-3xl: 4rem; /* 64px */ /* Border Radius */ --radius-none: 0; --radius-sm: 4px; --radius-md: 6px; /* Updated per PRD */ --radius-lg: 8px; --radius-xl: 12px; --radius-full: 9999px; /* Width System - Container Sizes */ --width-xs: 20rem; /* 320px */ --width-sm: 24rem; /* 384px */ --width-md: 28rem; /* 448px */ --width-lg: 32rem; /* 512px */ --width-xl: 36rem; /* 576px */ --width-2xl: 42rem; /* 672px */ --width-3xl: 48rem; /* 768px */ --width-4xl: 56rem; /* 896px */ --width-5xl: 64rem; /* 1024px */ --width-6xl: 72rem; /* 1152px */ --width-7xl: 80rem; /* 1280px */ /* Sidebar */ --sidebar-width: 220px; --sidebar-bg: var(--color-bg-primary); --sidebar-border: var(--color-border-subtle); } /* Light Theme */ [data-theme="light"] { /* Base Colors */ --color-bg-primary: #F8FAFC; /* Soft gray background */ --color-bg-secondary: #FFFFFF; /* Elevated surfaces */ --color-bg-tertiary: #FFFFFF; /* Cards, panels */ --color-bg-overlay: rgba(248, 250, 252, 0.9); /* Modals, overlays */ /* Brand Colors - Slightly adjusted for light backgrounds */ --color-primary: #0EA5E9; /* Slightly darker cyan for better contrast */ --color-primary-hover: #0284C7; /* Darker on hover */ --color-primary-active: #0369A1; /* Active state */ --color-primary-text: #FFFFFF; /* Text on primary background */ --color-primary-light: rgba(14, 165, 233, 0.08); /* Light cyan backgrounds */ --color-primary-border: rgba(14, 165, 233, 0.2); /* Cyan borders */ --color-secondary: #0D9488; /* Teal - secondary actions */ --color-secondary-hover: #0F766E; /* Darker teal on hover */ --color-secondary-light: rgba(13, 148, 136, 0.1); --color-accent: #7C3AED; /* Purple - special states */ --color-accent-hover: #6D28D9; /* Darker purple on hover */ --color-accent-light: rgba(124, 58, 237, 0.1); --color-accent-purple: #A78BFA; /* Light purple for gradients */ --color-accent-teal: #2DD4BF; /* Light teal for gradients */ /* Text Colors */ --color-text-primary: #1E293B; /* Primary text - dark slate */ --color-text-secondary: #64748B; /* Secondary text */ --color-text-muted: #94A3B8; /* Tertiary text */ --color-text-disabled: #CBD5E1; /* Disabled text */ --color-text-inverse: #FFFFFF; /* Text on dark backgrounds */ /* Border Colors */ --color-border-subtle: rgba(15, 23, 42, 0.06); /* Minimal borders */ --color-border-default: rgba(15, 23, 42, 0.1); /* Default borders */ --color-border-strong: rgba(14, 165, 233, 0.3); /* Focus borders */ --color-border-divider: rgba(15, 23, 42, 0.04); /* Section dividers */ --color-border-primary: rgba(14, 165, 233, 0.2); /* Primary borders */ --color-border-secondary: rgba(15, 23, 42, 0.08); --color-border-focus: rgba(14, 165, 233, 0.4); /* Focus borders */ /* Status Colors - Adjusted for light theme */ --color-success: #0D9488; --color-success-light: rgba(13, 148, 136, 0.1); --color-warning: #D97706; --color-warning-light: rgba(217, 119, 6, 0.1); --color-error: #DC2626; --color-error-light: rgba(220, 38, 38, 0.1); --color-info: #0EA5E9; --color-info-light: rgba(14, 165, 233, 0.1); /* Gradient Definitions */ --gradient-primary: linear-gradient(135deg, #0EA5E9 0%, #7C3AED 50%, #0D9488 100%); --gradient-hero: linear-gradient(135deg, #F8FAFC 0%, #FFFFFF 50%, #F8FAFC 100%); --gradient-card: linear-gradient(135deg, rgba(14, 165, 233, 0.03) 0%, rgba(124, 58, 237, 0.03) 100%); --gradient-text: linear-gradient(135deg, #0EA5E9 0%, #7C3AED 50%, #0D9488 100%); /* Shadows - More visible in light theme */ --shadow-none: none; --shadow-subtle: 0 1px 2px rgba(0, 0, 0, 0.05); --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08); --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.07); --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.08); --shadow-glow: 0 0 0 1px rgba(14, 165, 233, 0.15), 0 0 8px rgba(14, 165, 233, 0.2); --shadow-sidebar: 1px 0 3px rgba(0, 0, 0, 0.08); /* Sidebar */ --sidebar-bg: #FFFFFF; --sidebar-border: rgba(15, 23, 42, 0.06); }