- 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 ✅
4.9 KiB
4.9 KiB
SCSS Quick Reference - EUSRR Project
🚀 Быстрый старт
Компиляция SCSS
# Перейти в директорию со статикой
cd backend/static
# Собрать app.css (один раз)
npm run build:app
# Watch режим (автоматическая пересборка при изменении)
npm run dev
Добавление нового компонента
- Создать файл
scss/components/_my-component.scss - Добавить импорт в
scss/main.scss:@import 'components/my-component'; - Пересобрать 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
⚠️ Важно
- Не создавать новые CSS файлы - только SCSS в
scss/папке - Всегда добавлять импорт в
main.scssдля новых компонентов - Использовать CSS переменные вместо хардкода значений
- Пересобирать после изменений:
npm run build:app
📚 Документация
- Полная документация: docs/completed/CSS_TO_SCSS_MIGRATION_100_PERCENT_COMPLETE.md
- Phase 6 отчет: docs/reports/CSS_TO_SCSS_PHASE6_FINAL_CLEANUP.md
Обновлено: 15 января 2026
Версия: 1.0