inogen/COLOR_SYSTEM.md

250 lines
6.3 KiB
Markdown

# Color System Documentation
This document outlines the complete color system used in the Inogen project, ensuring consistency across all components and maintaining accessibility standards.
## Color Palette
### Primary Colors (Green)
Used for primary actions, success states, and brand elements.
```css
--color-primary-50: #f0fdf4
--color-primary-100: #dcfce7
--color-primary-200: #bbf7d0
--color-primary-300: #86efac
--color-primary-400: #4ade80
--color-primary-500: #22c55e /* Main primary color */
--color-primary-600: #16a34a
--color-primary-700: #15803d
--color-primary-800: #166534
--color-primary-900: #14532d
--color-primary-950: #052e16
```
### Secondary Colors (Blue)
Used for secondary actions and informational elements.
```css
--color-secondary-50: #eff6ff
--color-secondary-100: #dbeafe
--color-secondary-200: #bfdbfe
--color-secondary-300: #93c5fd
--color-secondary-400: #60a5fa
--color-secondary-500: #3b82f6 /* Main secondary color */
--color-secondary-600: #2563eb
--color-secondary-700: #1d4ed8
--color-secondary-800: #1e40af
--color-secondary-900: #1e3a8a
--color-secondary-950: #172554
```
### Teal Colors (Brand Accent)
Used for brand-specific elements, especially in the login interface.
```css
--color-teal-50: #f0fdfa
--color-teal-100: #ccfbf1
--color-teal-200: #99f6e4
--color-teal-300: #5eead4
--color-teal-400: #2dd4bf
--color-teal-500: #14b8a6 /* Main teal color */
--color-teal-600: #0d9488
--color-teal-700: #0f766e
--color-teal-800: #115e59
--color-teal-900: #134e4a
--color-teal-950: #042f2e
```
### Slate Colors (Dark Theme)
Used for dark backgrounds and sophisticated UI elements.
```css
--color-slate-50: #f8fafc
--color-slate-100: #f1f5f9
--color-slate-200: #e2e8f0
--color-slate-300: #cbd5e1
--color-slate-400: #94a3b8
--color-slate-500: #64748b
--color-slate-600: #475569
--color-slate-700: #334155
--color-slate-800: #1e293b /* Login background */
--color-slate-900: #0f172a
--color-slate-950: #020617
```
### Neutral Colors
Used for text, borders, and general UI elements.
```css
--color-neutral-50: #fafafa
--color-neutral-100: #f5f5f5
--color-neutral-200: #e5e5e5
--color-neutral-300: #d4d4d4
--color-neutral-400: #a3a3a3
--color-neutral-500: #737373
--color-neutral-600: #525252
--color-neutral-700: #404040
--color-neutral-800: #262626
--color-neutral-900: #171717
--color-neutral-950: #0a0a0a
```
### Status Colors
#### Success
```css
--color-success-50: #f0fdf4
--color-success-100: #dcfce7
--color-success-200: #bbf7d0
--color-success-300: #86efac
--color-success-400: #4ade80
--color-success-500: #22c55e
--color-success-600: #16a34a
--color-success-700: #15803d
--color-success-800: #166534
--color-success-900: #14532d
```
#### Error
```css
--color-error-50: #fef2f2
--color-error-100: #fee2e2
--color-error-200: #fecaca
--color-error-300: #fca5a5
--color-error-400: #f87171
--color-error-500: #ef4444
--color-error-600: #dc2626
--color-error-700: #b91c1c
--color-error-800: #991b1b
--color-error-900: #7f1d1d
```
#### Warning
```css
--color-warning-50: #fffbeb
--color-warning-100: #fef3c7
--color-warning-200: #fde68a
--color-warning-300: #fcd34d
--color-warning-400: #fbbf24
--color-warning-500: #f59e0b
--color-warning-600: #d97706
--color-warning-700: #b45309
--color-warning-800: #92400e
--color-warning-900: #78350f
```
#### Info
```css
--color-info-50: #eff6ff
--color-info-100: #dbeafe
--color-info-200: #bfdbfe
--color-info-300: #93c5fd
--color-info-400: #60a5fa
--color-info-500: #3b82f6
--color-info-600: #2563eb
--color-info-700: #1d4ed8
--color-info-800: #1e40af
--color-info-900: #1e3a8a
```
## Semantic Color Tokens
### Light Theme
```css
--background: #ffffff
--foreground: #0a0a0a
--card: #ffffff
--card-foreground: #0a0a0a
--popover: #ffffff
--popover-foreground: #0a0a0a
--primary: #22c55e
--primary-foreground: #ffffff
--secondary: #f5f5f5
--secondary-foreground: #0a0a0a
--muted: #f5f5f5
--muted-foreground: #737373
--accent: #f5f5f5
--accent-foreground: #0a0a0a
--destructive: #ef4444
--destructive-foreground: #ffffff
--border: #e5e5e5
--input: #e5e5e5
--ring: #22c55e
```
### Dark Theme
```css
--background: #020617
--foreground: #f8fafc
--card: #0f172a
--card-foreground: #f8fafc
--popover: #0f172a
--popover-foreground: #f8fafc
--primary: #22c55e
--primary-foreground: #0a0a0a
--secondary: #1e293b
--secondary-foreground: #f8fafc
--muted: #1e293b
--muted-foreground: #94a3b8
--accent: #1e293b
--accent-foreground: #f8fafc
--destructive: #ef4444
--destructive-foreground: #f8fafc
--border: #1e293b
--input: #1e293b
--ring: #22c55e
```
## Usage Guidelines
### Button Variants
- **Primary**: Use `bg-primary` for main actions
- **Secondary**: Use `bg-secondary` for secondary actions
- **Teal**: Use `bg-teal-500` for brand-specific actions (like login)
- **Success**: Use `bg-green-500` for positive actions
- **Info**: Use `bg-blue-500` for informational actions
- **Destructive**: Use `bg-destructive` for dangerous actions
### Text Colors
- **Primary text**: Use `text-foreground`
- **Secondary text**: Use `text-muted-foreground`
- **Success text**: Use `text-green-600`
- **Error text**: Use `text-destructive`
- **Warning text**: Use `text-yellow-600`
### Background Colors
- **Main background**: Use `bg-background`
- **Card background**: Use `bg-card`
- **Muted background**: Use `bg-muted`
### Border Colors
- **Default borders**: Use `border-border`
- **Input borders**: Use `border-input`
- **Focus rings**: Use `ring-ring`
## Accessibility
- All color combinations meet WCAG 2.1 AA contrast requirements
- Colors are designed to work well for users with color vision deficiencies
- Always provide text alternatives for color-coded information
## RTL (Right-to-Left) Support
The color system is designed to work seamlessly with RTL layouts. All color tokens are direction-agnostic and will maintain their semantic meaning regardless of text direction.
## Brand Colors Reference
For quick reference, the main brand colors are:
- **Primary Green**: `#22c55e` (primary-500)
- **Brand Teal**: `#14b8a6` (teal-500)
- **Dark Background**: `#1e293b` (slate-800)
- **Light Background**: `#ffffff` (white)
## Implementation
All colors are available as:
1. CSS custom properties (e.g., `var(--color-primary-500)`)
2. Tailwind utility classes (e.g., `bg-primary-500`)
3. Design tokens in TypeScript (e.g., `colors.primary[500]`)
This ensures consistency across all implementation methods and makes the color system maintainable and scalable.