# CSS Architecture

> ITCSS-based modular CSS architecture with component-driven development and utility-first approach.

## 📁 File Structure

```
resources/css/
├── styles.css                    # Main import file
├── settings/
│   ├── colors.css               # Color definitions
│   ├── typography.css           # Font sizes, fonts
│   ├── spacing.css              # Spacing (margin, padding)
│   └── variables.css            # Duration, easing, radius, z-index etc.
├── base/
│   ├── reset.css                # Reset/Normalize
│   ├── global.css               # Global styles for html, body, etc.
│   ├── typography.css           # h1, p, etc.
│   ├── focus.css                # Focus states
│   ├── media.css                # Media queries
│   └── index.css                # Base layer imports
├── layout/
│   ├── container.css            # .page-container, max-widths, etc.
│   └── grid.css                 # Custom grid system
├── components/
│   ├── header.css
│   ├── nav.css
│   ├── footer.css
│   ├── buttons.css
│   ├── card.css
│   └── sidebar.css
├── forms/
│   └── inputs.css
├── utilities/
│   ├── animations.css           # .fade-in, .shake, etc.
│   ├── helpers.css              # .skip-link, .hidden, .visually-hidden
│   ├── scroll.css               # scroll-behavior, scrollbar-style
│   ├── transitions.css
│   └── noise.css
└── themes/
    └── dark.css                 # Dark mode color adjustments
```

## 🏗 ITCSS Layer Hierarchy

1. **Settings** - Variables, colors, typography scales
2. **Base** - Reset, normalize, global element styles
3. **Layout** - Grid systems, containers, structural components
4. **Components** - UI components and modules
5. **Utilities** - Helper classes and overrides
6. **Themes** - Color scheme variations

## 🎨 Design Tokens

### Colors
```css
/* Primary Palette */
--color-primary: #007bff;
--color-primary-dark: #0056b3;
--color-primary-light: #66b3ff;

/* Semantic Colors */
--color-success: #28a745;
--color-warning: #ffc107;
--color-error: #dc3545;
--color-info: #17a2b8;

/* Neutral Palette */
--color-gray-50: #f8f9fa;
--color-gray-100: #e9ecef;
--color-gray-900: #212529;
```

### Typography
```css
/* Font Stacks */
--font-family-sans: system-ui, -apple-system, sans-serif;
--font-family-mono: 'SF Mono', Monaco, 'Cascadia Code', monospace;

/* Type Scale */
--font-size-xs: 0.75rem;    /* 12px */
--font-size-sm: 0.875rem;   /* 14px */
--font-size-base: 1rem;     /* 16px */
--font-size-lg: 1.125rem;   /* 18px */
--font-size-xl: 1.25rem;    /* 20px */
--font-size-2xl: 1.5rem;    /* 24px */
--font-size-3xl: 1.875rem;  /* 30px */
--font-size-4xl: 2.25rem;   /* 36px */
```

### Spacing System
```css
/* 8pt Grid System */
--space-1: 0.25rem;   /* 4px */
--space-2: 0.5rem;    /* 8px */
--space-3: 0.75rem;   /* 12px */
--space-4: 1rem;      /* 16px */
--space-5: 1.25rem;   /* 20px */
--space-6: 1.5rem;    /* 24px */
--space-8: 2rem;      /* 32px */
--space-10: 2.5rem;   /* 40px */
--space-12: 3rem;     /* 48px */
--space-16: 4rem;     /* 64px */
--space-20: 5rem;     /* 80px */
```

## 🧩 Component Patterns

### BEM Methodology
```css
/* Block */
.card { }

/* Element */
.card__header { }
.card__body { }
.card__footer { }

/* Modifier */
.card--large { }
.card--featured { }
.card__header--centered { }
```

### Component States
```css
.button {
  /* Base styles */
  
  &:hover { }
  &:focus { }
  &:active { }
  &:disabled { }
  
  &[aria-pressed="true"] { }
  &[aria-expanded="true"] { }
}
```

## 📱 Responsive Design

### Breakpoints
```css
/* Mobile First Approach */
--breakpoint-sm: 640px;
--breakpoint-md: 768px;
--breakpoint-lg: 1024px;
--breakpoint-xl: 1280px;
--breakpoint-2xl: 1536px;
```

### Media Query Mixins
```css
@media (min-width: 768px) {
  /* Tablet and up */
}

@media (min-width: 1024px) {
  /* Desktop and up */
}

@media (prefers-reduced-motion: reduce) {
  /* Reduced motion accessibility */
}

@media (prefers-color-scheme: dark) {
  /* Dark mode preferences */
}
```

## 🎯 Admin-Specific Extensions

### Admin Color Palette
```css
/* Admin Theme Colors */
--admin-primary: #6366f1;
--admin-secondary: #8b5cf6;
--admin-success: #10b981;
--admin-warning: #f59e0b;
--admin-error: #ef4444;

/* Admin Neutral Palette */
--admin-bg: #f8fafc;
--admin-surface: #ffffff;
--admin-border: #e2e8f0;
--admin-text: #1e293b;
--admin-text-muted: #64748b;
```

### Admin Components
```css
/* Admin Layout */
.admin-layout { }
.admin-header { }
.admin-nav { }
.admin-main { }
.admin-sidebar { }

/* Admin UI Components */
.admin-card { }
.admin-table { }
.admin-button { }
.admin-form { }
.admin-stats { }
```

## 🔧 Build Process

### CSS Processing
1. **PostCSS** for modern CSS features
2. **Autoprefixer** for browser compatibility
3. **CSS Nano** for minification
4. **PurgeCSS** for unused style removal

### Development Workflow
```bash
# Development with hot reload
npm run dev

# Production build
npm run build

# Watch for changes
npm run watch
```

## 📋 Best Practices

### Performance
- Use CSS custom properties for theme values
- Minimize selector specificity
- Leverage cascade and inheritance
- Use `contain` property for layout optimization
- Implement critical CSS loading

### Maintainability
- Follow BEM naming conventions
- Keep components isolated and reusable
- Use meaningful class names
- Document complex selectors
- Regular architecture reviews

### Accessibility
- Ensure sufficient color contrast ratios
- Support reduced motion preferences
- Use semantic markup structure
- Implement focus management
- Test with assistive technologies

---

*For component examples and live demos, visit [Admin Style Guide](/admin/docs)*