/** * navbar.css * Стили навбара: меню-тогглер, поиск, уведомления */ /* Navbar overflow visible для dropdown */ .app-navbar { overflow: visible !important; } .app-navbar .container-fluid { overflow: visible !important; } /* ───────────────────────────────────────────────────────────── MOBILE NAVBAR HEIGHT ────────────────────────────────────────────────────────────── */ /* Увеличенная высота navbar для мобильных устройств */ @media (max-width: 767.98px) { .app-navbar { min-height: 90px; } .app-navbar .container-fluid { min-height: 64px; padding-top: 0.75rem; padding-bottom: 0.75rem; } } /* ───────────────────────────────────────────────────────────── MENU TOGGLE (гамбургер) ────────────────────────────────────────────────────────────── */ /* Кнопка «гамбургера» — без круга/рамки */ .menu-toggle { padding: 0; border: 0; background: transparent; line-height: 1; color: #fff; } .menu-toggle:focus { outline: none; box-shadow: none; } /* ───────────────────────────────────────────────────────────── DROPDOWN AVATAR ────────────────────────────────────────────────────────────── */ /* Спрятать стрелочку у dropdown-аватара */ .dropdown-toggle.no-caret::after { display: none !important; } /* ───────────────────────────────────────────────────────────── MOBILE SEARCH OVERLAY ────────────────────────────────────────────────────────────── */ .mobile-search-overlay { position: fixed; top: var(--navbar-h); left: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.5); z-index: 1030; opacity: 0; pointer-events: none; transition: opacity 0.3s ease; } .mobile-search-overlay.active { opacity: 1; pointer-events: auto; } /* Светлая тема - забеливание */ [data-bs-theme="light"] .mobile-search-overlay { background-color: rgba(255, 255, 255, 0.85); } /* Темная тема - затемнение */ [data-bs-theme="dark"] .mobile-search-overlay { background-color: rgba(0, 0, 0, 0.7); } /* ───────────────────────────────────────────────────────────── BOTTOM NAVBAR (только для мобильных) ────────────────────────────────────────────────────────────── */ .bottom-navbar { position: fixed; bottom: 0; left: 0; right: 0; background-color: var(--bs-primary); border-top: 0.5px solid var(--bs-border-color); z-index: 1040; padding: 0; box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.08); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); } /* Темная тема */ [data-bs-theme="dark"] .bottom-navbar { background-color: var(--bs-tertiary-bg); border-top-color: var(--bs-border-color); box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.3); } .bottom-navbar-container { display: flex; justify-content: space-around; align-items: center; height: 60px; padding: 0 8px; max-width: 100%; } .bottom-nav-item { display: flex; flex-direction: column; align-items: center; justify-content: center; flex: 1; height: 100%; color: rgba(255, 255, 255, 0.7); text-decoration: none; border: none; background: transparent; padding: 4px 8px; transition: all 0.2s ease; position: relative; cursor: pointer; } /* Темная тема - другой цвет кнопок */ [data-bs-theme="dark"] .bottom-nav-item { color: var(--bs-secondary-color); } .bottom-nav-item:hover, .bottom-nav-item:focus, .bottom-nav-item:active { color: #fff; background: rgba(255, 255, 255, 0.1); outline: none; } [data-bs-theme="dark"] .bottom-nav-item:hover, [data-bs-theme="dark"] .bottom-nav-item:focus, [data-bs-theme="dark"] .bottom-nav-item:active { color: var(--bs-emphasis-color); background: var(--bs-secondary-bg); } .bottom-nav-item i { font-size: 1.4rem; margin-bottom: 2px; line-height: 1; } .bottom-nav-label { font-size: 0.65rem; font-weight: 500; text-align: center; line-height: 1; margin-top: 2px; } /* Иконка с бейджем для уведомлений */ .bottom-nav-icon-wrapper { position: relative; display: inline-block; } .bottom-nav-badge { position: absolute; top: -6px; right: -10px; background: var(--bs-danger); color: #fff; border-radius: 10px; /* Telegram использует фиксированный radius для круглых бэйджей */ padding: 0 6px; font-size: 11px; font-weight: 600; min-width: 20px; height: 20px; display: inline-flex; align-items: center; justify-content: center; text-align: center; line-height: 1; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); /* Более заметная тень */ transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275), background-color 0.2s ease; z-index: 10; } /* Мигание при новом сообщении */ .bottom-nav-badge.pulse { animation: badge-pulse 0.6s ease-out; } @keyframes badge-pulse { 0% { transform: scale(1); } 50% { transform: scale(1.15); } 100% { transform: scale(1); } } /* Серый для замьюченных чатов */ .bottom-nav-badge.badge-muted { background: var(--bs-secondary); } .bottom-nav-badge:empty { display: none; } /* Padding для body, чтобы контент не перекрывался нижней панелью */ @media (max-width: 767.98px) { body { padding-bottom: 60px; } /* Скрыть bottom navbar на странице чата - композер заменяет навигацию */ .chat-container ~ .bottom-navbar, .chat-page ~ .bottom-navbar, body:has(.chat-container) .bottom-navbar, body:has(.chat-page) .bottom-navbar { display: none; } /* Убрать padding, когда navbar скрыт */ body:has(.chat-container), body:has(.chat-page) { padding-bottom: 0; } }