Corp/docs/guides/SCSS_QUICK_REFERENCE.md
Игорь Надеин 8363cbd541 feat: Complete CSS to SCSS migration (100%)
- Migrated all 28 CSS components to SCSS architecture
- Deleted 29 source CSS files (kept only compiled app.css & bootstrap-custom.css)
- Created 30 SCSS component modules in scss/components/
- Cleaned 24 templates from duplicate CSS links
- Updated main.scss with new imports (layout-spacing, spacing-utils, rightbar-calendar)
- Filled empty _navbar.scss with content
- Refactored css/ folder: removed obsolete files, updated README.md
- Created comprehensive documentation (migration complete, quick reference, reports)

Migration Statistics:
- Components migrated: 28 (~4,768 lines SCSS)
- CSS files deleted: 29
- Templates cleaned: 24
- app.css size: 95 KB (compiled from SCSS)
- bootstrap-custom.css: 301 KB
- Total: 396 KB

Phase 6 Complete: 100% SCSS architecture achieved ✅
2026-01-15 13:48:11 +03:00

4.9 KiB
Raw Blame History

SCSS Quick Reference - EUSRR Project

🚀 Быстрый старт

Компиляция SCSS

# Перейти в директорию со статикой
cd backend/static

# Собрать app.css (один раз)
npm run build:app

# Watch режим (автоматическая пересборка при изменении)
npm run dev

Добавление нового компонента

  1. Создать файл scss/components/_my-component.scss
  2. Добавить импорт в scss/main.scss:
    @import 'components/my-component';
    
  3. Пересобрать CSS: npm run build:app

📁 Структура

scss/
├── main.scss                    ← ENTRY POINT
├── abstracts/
│   ├── _variables.scss          ← SCSS переменные ($var)
│   ├── _css-variables.scss      ← CSS переменные (--var)
│   └── _mixins.scss             ← Миксины
├── layout/
│   └── _base-app.scss           ← Grid layout
└── components/
    └── _*.scss                  ← 30 компонентов

🎨 Использование переменных

CSS Custom Properties (runtime)

.my-component {
  padding: var(--space-2);        // 8px
  gap: var(--layout-gap);         // 16px
  border-radius: var(--card-radius);
}

Доступные CSS переменные

Spacing (8px grid):

--space-1: 4px    // минимальный отступ
--space-2: 8px    // стандартный
--space-3: 12px   // между секциями
--space-4: 16px   // между блоками
--space-5: 24px   // большой разделитель

Layout:

--navbar-h: 60px
--sidebar-w: 200px
--rightbar-w: 350px
--layout-gap: 16px
--layout-padding-y: 24px

Components:

--card-padding: 16px
--card-padding-sm: 8px
--card-padding-lg: 24px
--card-radius: 14px
--feed-radius: 18px

📝 Код стайл

Вложенность

.card {
  padding: var(--card-padding);
  
  .card-header {
    background: var(--bs-tertiary-bg);
  }
  
  .card-body {
    padding: var(--space-3);
  }
}

Родительский селектор (&)

.button {
  background: var(--bs-primary);
  
  &:hover {
    opacity: 0.9;
  }
  
  &--large {
    padding: var(--space-4);
  }
}

Media queries

.component {
  display: block;
  
  @media (min-width: 768px) {
    display: flex;
  }
}

⚙️ Кастомизация Bootstrap

Файл: scss/custom-bootstrap.scss

// Переопределить переменные Bootstrap
$primary: #0d6efd;
$spacer: 0.5rem;  // 8px

// Spacers (8px grid)
$spacers: (
  0: 0,
  1: 0.25rem,  // 4px
  2: 0.5rem,   // 8px
  3: 0.75rem,  // 12px
  4: 1rem,     // 16px
  5: 1.5rem,   // 24px
);

🛠️ Полезные команды

# Собрать app.css
npm run build:app

# Собрать bootstrap-custom.css
npm run build:bootstrap

# Watch режим (оба файла)
npm run dev

# Проверить размер
ls -lh css/app.css

🎯 Частые задачи

Добавить spacing между элементами

.container {
  display: flex;
  gap: var(--space-2);  // 8px между элементами
}

Создать адаптивный компонент

.responsive-card {
  padding: var(--space-2);  // 8px на мобильных
  
  @media (min-width: 768px) {
    padding: var(--space-3);  // 12px на планшетах
  }
  
  @media (min-width: 992px) {
    padding: var(--space-4);  // 16px на десктопе
  }
}

Использовать цвета Bootstrap

.element {
  color: var(--bs-primary);
  background: var(--bs-secondary);
  border-color: var(--bs-border-color);
}

📦 Что включено в app.css

  • ✅ Все 30 SCSS компонентов
  • ✅ CSS Custom Properties
  • ✅ Layout системы (grid, chat)
  • ✅ Utility классы spacing
  • ✅ Responsive стили

Размер: 95 KB compressed

⚠️ Важно

  1. Не создавать новые CSS файлы - только SCSS в scss/ папке
  2. Всегда добавлять импорт в main.scss для новых компонентов
  3. Использовать CSS переменные вместо хардкода значений
  4. Пересобирать после изменений: npm run build:app

📚 Документация


Обновлено: 15 января 2026
Версия: 1.0