Corp/backend/static/scss/abstracts/_variables.scss
Игорь Надеин 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

224 lines
6.5 KiB
SCSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// =============================================================================
// Design Tokens - Centralized Variables
// =============================================================================
// Централизованная система переменных для всего проекта
// Все компоненты должны использовать эти токены вместо hardcoded значений
// =============================================================================
// 1. ЦВЕТОВАЯ СИСТЕМА
// =============================================================================
// Telegram colors
$telegram-blue: #0088cc;
$telegram-mention-bg: #0088cc;
// Gradient colors
$gradient-purple-start: #667eea;
$gradient-purple-end: #764ba2;
$gradient-pink-start: #f093fb;
$gradient-pink-end: #f5576c;
// Base colors
$color-white: #fff;
$color-black: #000;
// Gray scale
$gray-50: #f8f9fa;
$gray-100: #f0f0f0;
$gray-200: #e3e3e3;
$gray-300: #dee2e6;
$gray-400: #ced4da;
$gray-500: #adb5bd;
$gray-600: #6c757d;
$gray-700: #495057;
$gray-800: #343a40;
$gray-900: #212529;
// Semantic colors
$color-danger: #ef4444;
$color-success-light: #e3f2fd;
$color-warning-light: #fffbeb;
// =============================================================================
// 2. SPACING SYSTEM (уже определена в custom-bootstrap.scss)
// =============================================================================
// Используем Bootstrap переменные $spacers
// 0: 0, 1: 4px, 2: 8px, 3: 12px, 4: 16px, 5: 24px
// =============================================================================
// 3. BORDER RADIUS TOKENS
// =============================================================================
$radius-xs: 4px; // extra small
$radius-sm: 6px; // small
$radius-md: 10px; // medium (most common)
$radius-lg: 12px; // large
$radius-xl: 14px; // extra large
$radius-2xl: 16px; // 2x large
$radius-3xl: 18px; // 3x large
$radius-4xl: 20px; // 4x large
$radius-pill: 999px; // perfect pill shape
// Badge specific (perfect circles)
$badge-radius: 10px;
$badge-radius-sm: 9px;
$badge-radius-lg: 12px;
$badge-radius-xl: 14px;
// =============================================================================
// 4. SHADOW TOKENS
// =============================================================================
$shadow-none: none;
$shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.06);
$shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.1);
$shadow-md: 0 2px 4px rgba(0, 0, 0, 0.1);
$shadow-lg: 0 2px 8px rgba(0, 0, 0, 0.15);
$shadow-xl: 0 4px 12px rgba(0, 0, 0, 0.15);
$shadow-2xl: 0 4px 16px rgba(0, 0, 0, 0.2);
$shadow-3xl: 0 6px 20px rgba(0, 0, 0, 0.3);
// Badge specific shadows
$badge-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
$badge-shadow-hover: 0 3px 6px rgba(0, 0, 0, 0.2);
$badge-shadow-dark: 0 2px 4px rgba(0, 0, 0, 0.3);
// Context menu shadows
$context-menu-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
// =============================================================================
// 5. BLUR TOKENS (для backdrop-filter)
// =============================================================================
$blur-none: blur(0);
$blur-sm: blur(8px);
$blur-md: blur(10px);
$blur-lg: blur(12px);
$blur-xl: blur(16px);
// =============================================================================
// 6. OPACITY TOKENS
// =============================================================================
$opacity-glass-light: 0.1;
$opacity-glass-medium: 0.15;
$opacity-glass-high: 0.2;
$opacity-overlay-light: 0.05;
$opacity-overlay-medium: 0.1;
$opacity-overlay-dark: 0.3;
$opacity-border-light: 0.08;
$opacity-border-medium: 0.1;
$opacity-border-dark: 0.25;
// =============================================================================
// 7. TRANSITION TOKENS
// =============================================================================
$transition-fast: 0.15s ease;
$transition-base: 0.2s ease;
$transition-medium: 0.3s ease;
$transition-slow: 0.4s ease;
// Специальные easing функции
$ease-bounce: cubic-bezier(0.175, 0.885, 0.32, 1.275);
$ease-smooth: cubic-bezier(0.4, 0, 0.2, 1);
// Badge specific
$badge-transition: transform 0.2s $ease-bounce;
// =============================================================================
// 8. Z-INDEX TOKENS
// =============================================================================
$z-base: 1;
$z-dropdown: 1000;
$z-sticky: 1020;
$z-fixed: 1030;
$z-modal-backdrop: 1040;
$z-modal: 1050;
$z-popover: 1060;
$z-tooltip: 1070;
$z-notification: 1080;
// =============================================================================
// 9. SIZE TOKENS (avatars, badges, icons)
// =============================================================================
// Badge heights
$badge-height-sm: 18px;
$badge-height-base: 20px;
$badge-height-lg: 24px;
$badge-height-xl: 28px;
// Badge padding
$badge-padding-x: 7px;
$badge-padding-y: 2px;
// Avatar sizes
$avatar-xs: 24px;
$avatar-sm: 32px;
$avatar-md: 40px;
$avatar-lg: 44px;
$avatar-xl: 48px;
$avatar-2xl: 56px;
// Icon button sizes
$btn-icon-sm: 32px;
$btn-icon-base: 36px;
$btn-icon-lg: 44px;
// =============================================================================
// 10. GLASSMORPHISM PRESETS
// =============================================================================
// Light theme glassmorphism
$glass-light-bg: rgba(255, 255, 255, 0.1);
$glass-light-border: rgba(0, 0, 0, 0.08);
// Dark theme glassmorphism
$glass-dark-bg: rgba(52, 58, 64, 0.95);
$glass-dark-border: rgba(255, 255, 255, 0.1);
// Card glassmorphism
$card-glass-bg: rgba(255, 255, 255, 0.05);
$card-glass-border: rgba(255, 255, 255, 0.1);
$card-glass-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37);
// =============================================================================
// 11. TYPOGRAPHY TOKENS (дополнительные)
// =============================================================================
$font-weight-normal: 400;
$font-weight-medium: 500;
$font-weight-semibold: 600;
$font-weight-bold: 700;
$font-size-xs: 11px;
$font-size-sm: 12px;
$font-size-base: 14px;
$font-size-md: 16px;
$font-size-lg: 18px;
// Badge specific
$badge-font-size: 11px;
$badge-font-weight: 600;
// =============================================================================
// 12. LAYOUT TOKENS
// =============================================================================
// Navbar
$navbar-height: 56px;
$navbar-mobile-height: 90px;
$bottom-navbar-height: 60px;
// Sidebar
$sidebar-width: 240px;
$sidebar-collapsed-width: 60px;
// Chat specific
$chat-composer-height: auto;
$chat-message-max-width: 70%;