BMAD-METHOD/test-samples/sample-a/theme.css

217 lines
5.8 KiB
CSS

/**
* 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;
}
}