/** * AquaFlow Design System - Theme CSS * Generated by BMAD Design System Generator v1.0 * Source: ux-design-specification.md * Generated: 2025-12-25T12:44:30+08:00 * * Usage: Import this file in your main CSS or component library * @import './theme.css'; */ /* ============================================ CSS Custom Properties (Design Tokens) ============================================ */ :root { /* -------------------- Colors -------------------- */ /* Primary - Trust Blue */ --color-primary-50: #EFF6FF; --color-primary-100: #DBEAFE; --color-primary-500: #2563EB; --color-primary-600: #2563EB; --color-primary-700: #1D4ED8; --color-primary-900: #1E3A8A; /* Secondary */ --color-secondary-500: #3B82F6; --color-secondary-600: #2563EB; --color-secondary-700: #1D4ED8; /* Accent - CTA Orange */ --color-accent-500: #F97316; --color-accent-600: #EA580C; --color-accent-700: #C2410C; /* Neutral - Slate */ --color-neutral-50: #F8FAFC; --color-neutral-100: #F1F5F9; --color-neutral-200: #E2E8F0; --color-neutral-500: #64748B; --color-neutral-600: #475569; --color-neutral-700: #334155; --color-neutral-800: #1E293B; --color-neutral-900: #0F172A; /* Semantic Colors */ --color-success-500: #22C55E; --color-success-600: #16A34A; --color-success-700: #15803D; --color-warning-500: #EAB308; --color-warning-600: #CA8A04; --color-warning-700: #A16207; --color-error-500: #EF4444; --color-error-600: #DC2626; --color-error-700: #B91C1C; /* -------------------- Typography -------------------- */ --font-family-heading: 'Inter', system-ui, sans-serif; --font-family-body: 'Inter', system-ui, sans-serif; --font-family-mono: 'JetBrains Mono', 'Fira Code', monospace; --font-size-xs: 0.75rem; /* 12px */ --font-size-sm: 0.875rem; /* 14px */ --font-size-base: 1rem; /* 16px */ --font-size-lg: 1.25rem; /* 20px */ --font-size-xl: 1.5rem; /* 24px */ --font-size-2xl: 2rem; /* 32px */ --font-size-3xl: 2.5rem; /* 40px */ --font-size-4xl: 3rem; /* 48px */ --font-weight-normal: 400; --font-weight-medium: 500; --font-weight-semibold: 600; --font-weight-bold: 700; --line-height-tight: 1.2; --line-height-snug: 1.3; --line-height-normal: 1.5; --line-height-relaxed: 1.6; /* -------------------- Spacing -------------------- */ --space-0: 0; --space-1: 0.25rem; /* 4px */ --space-2: 0.5rem; /* 8px */ --space-3: 0.75rem; /* 12px */ --space-4: 1rem; /* 16px */ --space-6: 1.5rem; /* 24px */ --space-8: 2rem; /* 32px */ --space-10: 2.5rem; /* 40px */ --space-12: 3rem; /* 48px */ --space-16: 4rem; /* 64px */ /* -------------------- Border Radius -------------------- */ --radius-none: 0; --radius-sm: 0.25rem; /* 4px */ --radius-md: 0.5rem; /* 8px */ --radius-lg: 1rem; /* 16px */ --radius-xl: 1.5rem; /* 24px */ --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), 0 2px 4px -2px rgba(0, 0, 0, 0.1); --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1); --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1); /* -------------------- Animation -------------------- */ --duration-fast: 150ms; --duration-normal: 200ms; --duration-slow: 300ms; --easing-default: cubic-bezier(0.4, 0, 0.2, 1); --easing-in: cubic-bezier(0.4, 0, 1, 1); --easing-out: cubic-bezier(0, 0, 0.2, 1); --easing-in-out: cubic-bezier(0.4, 0, 0.2, 1); /* -------------------- Breakpoints (for reference) -------------------- */ /* Use @media queries with these values */ --breakpoint-sm: 320px; --breakpoint-md: 768px; --breakpoint-lg: 1024px; --breakpoint-xl: 1440px; --breakpoint-2xl: 1536px; /* -------------------- Layout -------------------- */ --max-width: 1280px; --sidebar-width: 240px; --card-padding: var(--space-4); --column-gap: var(--space-4); } /* ============================================ Semantic Aliases (for convenience) ============================================ */ :root { /* Background */ --bg-primary: var(--color-neutral-50); --bg-secondary: var(--color-neutral-100); --bg-card: white; --bg-overlay: rgba(0, 0, 0, 0.5); /* Text */ --text-primary: var(--color-neutral-800); --text-secondary: var(--color-neutral-600); --text-muted: var(--color-neutral-500); --text-inverse: white; /* Border */ --border-color: var(--color-neutral-200); --border-hover: var(--color-neutral-500); /* Focus */ --focus-ring-color: var(--color-primary-500); --focus-ring-width: 2px; --focus-ring-offset: 2px; } /* ============================================ Dark Mode Support (optional) ============================================ */ @media (prefers-color-scheme: dark) { :root { --bg-primary: var(--color-neutral-900); --bg-secondary: var(--color-neutral-800); --bg-card: var(--color-neutral-800); --text-primary: var(--color-neutral-50); --text-secondary: var(--color-neutral-200); --text-muted: var(--color-neutral-500); --border-color: var(--color-neutral-700); --border-hover: var(--color-neutral-500); } } /* ============================================ Reduced Motion Support ============================================ */ @media (prefers-reduced-motion: reduce) { :root { --duration-fast: 0ms; --duration-normal: 0ms; --duration-slow: 0ms; } }