diff --git a/templates/index.html b/templates/index.html index 2694bea..06948f4 100644 --- a/templates/index.html +++ b/templates/index.html @@ -101,21 +101,65 @@ a{color:var(--link)} .sidebar.collapsed ~ .main-content .header .header-filter { flex: 1; - max-width: 200px; - margin: 0; + max-width: none; + margin: 0 8px; + min-width: 150px; } .sidebar.collapsed ~ .main-content .header .header-controls { display: flex; align-items: center; gap: 8px; margin-left: auto; } -/* Скрыть тему в компактном header */ -.sidebar.collapsed ~ .main-content .header .theme-toggle { display: none; } +/* Скрыть кнопки loglevels в компактном header */ +.sidebar.collapsed ~ .main-content .header .header-compact-controls { display: none; } -/* Скрыть весь log-header в компактном режиме */ -.sidebar.collapsed ~ .main-content .log-header { display: none; } +/* Скрыть весь log-header */ +.log-header { display: none; } /* Минимальный padding для log-content в свернутом состоянии */ .sidebar.collapsed ~ .main-content .log-content { - padding: 2px; + padding: 0; +} + +/* Обеспечиваем правильное отображение логов при свернутом sidebar */ +.sidebar.collapsed ~ .main-content .log-area { + height: calc(100vh - var(--header-height)) !important; + overflow: hidden !important; +} + +.sidebar.collapsed ~ .main-content .log-content { + overflow: visible !important; + height: 100% !important; + padding: 0 !important; +} + +.sidebar.collapsed ~ .main-content .single-view-content .log, +.sidebar.collapsed ~ .main-content .multi-view-log { + height: calc(100vh - var(--header-height)) !important; + overflow: auto !important; + display: block !important; + max-height: none !important; + min-height: 200px !important; + position: relative !important; +} + +/* Обеспечиваем правильное отображение логов при развернутом sidebar */ +.sidebar:not(.collapsed) ~ .main-content .single-view-content .log, +.sidebar:not(.collapsed) ~ .main-content .multi-view-log { + height: 100% !important; + overflow: auto !important; + display: block !important; + min-height: 200px !important; + position: relative !important; +} + +/* Стили для multi-view-content контейнеров */ +.sidebar.collapsed ~ .main-content .multi-view-content { + height: calc(100vh - var(--header-height) - 60px) !important; + overflow: hidden !important; +} + +.sidebar:not(.collapsed) ~ .main-content .multi-view-content { + height: 100% !important; + overflow: hidden !important; } /* Multi-view panel для Single View режима */ @@ -236,64 +280,12 @@ a{color:var(--link)} .sidebar:not(.collapsed) .help-btn { display: none; } .sidebar.collapsed .help-btn { display: flex; } -/* Компактные контролы в header: по умолчанию скрыты, видны в свернутом режиме */ +/* Компактные контролы в header: по умолчанию скрыты */ .header-compact-controls { display: none; align-items: center; gap: 6px; } -.sidebar.collapsed ~ .main-content .header .header-compact-controls { display: flex; } -/* Стили для компактных кнопок в header - такие же как в развернутом состоянии */ -.sidebar.collapsed ~ .main-content .header .counter-btn { - display: inline-flex; - flex-direction: row; - align-items: center; - justify-content: center; - padding: 6px 12px; - margin: 0 4px; - border: none; - border-radius: 6px; - font-size: 11px; - font-weight: 500; - cursor: pointer; - transition: all 0.2s ease; - min-width: 70px; -} -.sidebar.collapsed ~ .main-content .header .counter-btn:hover { - transform: translateY(-1px); - box-shadow: 0 2px 4px rgba(0,0,0,0.2); -} -.sidebar.collapsed ~ .main-content .header .counter-label { - font-size: 10px; - opacity: 0.9; - margin-right: 4px; -} -.sidebar.collapsed ~ .main-content .header .counter-value { - font-size: 12px; - font-weight: bold; -} - -.sidebar.collapsed ~ .main-content .header .log-refresh-btn { - background: var(--accent); - color: white; - border: none; - border-radius: 6px; - transition: all 0.2s ease; - padding: 6px 24px; - font-size: 11px; - font-weight: 500; - display: inline-flex; - align-items: center; - justify-content: center; - height: fit-content; -} - -.sidebar.collapsed ~ .main-content .header .log-refresh-btn:hover { - background: var(--accent); - opacity: 0.8; - transform: translateY(-1px); - box-shadow: 0 2px 4px rgba(0,0,0,0.2); -} .options-btn:hover, .help-btn:hover, @@ -668,13 +660,13 @@ a{color:var(--link)} } /* Стили для кнопки refresh */ -#logRefreshBtn { +.log-refresh-btn { background: var(--accent); color: white; border: none; border-radius: 6px; transition: all 0.2s ease; - padding: 6px 24px; /* Увеличиваем ширину в 2 раза */ + padding: 6px 24px; font-size: 11px; font-weight: 500; display: inline-flex; @@ -683,7 +675,7 @@ a{color:var(--link)} height: fit-content; } -#logRefreshBtn:hover { +.log-refresh-btn:hover { background: var(--accent); opacity: 0.8; transform: translateY(-1px); @@ -737,48 +729,49 @@ a{color:var(--link)} /* Цвета для разных уровней логов */ .debug-btn { - background: #6c757d; + background: #6c757d; /* Серый */ color: white; } .debug-btn:hover { - background: #5a6268; + background: #5a6268; /* Затемненный серый */ } .info-btn { - background: #17a2b8; + background: var(--ok); /* Зеленый цвет */ color: white; + border: 1px solid var(--ok); } .info-btn:hover { - background: #138496; + background: #7ea855; /* Затемненный зеленый */ } .warn-btn { - background: #ffc107; + background: #ffc107; /* Оставляем текущий цвет */ color: #212529; } .warn-btn:hover { - background: #e0a800; + background: #e0a800; /* Затемненный желтый */ } .error-btn { - background: #dc3545; + background: #dc3545; /* Оставляем текущий цвет */ color: white; } .error-btn:hover { - background: #c82333; + background: #c82333; /* Затемненный красный */ } .other-btn { - background: #6c757d; - color: white; + background: #f8f9fa; /* Самый светлый серый */ + color: #212529; } .other-btn:hover { - background: #5a6268; + background: #dee2e6; /* Затемненный серый */ } .btn-group { @@ -815,6 +808,7 @@ a{color:var(--link)} align-items: center; padding: 0 20px; gap: 16px; + flex-wrap: wrap; } .header-title { @@ -947,7 +941,7 @@ a{color:var(--link)} .header-filter { flex: 1; min-width: 200px; - max-width: 400px; + max-width: none; padding: 8px 12px; border: 1px solid var(--border); border-radius: 6px; @@ -956,6 +950,7 @@ a{color:var(--link)} font-size: 12px; transition: border-color 0.2s ease; margin: 0 16px; + width: 100%; } .header-filter:focus { @@ -967,6 +962,64 @@ a{color:var(--link)} color: var(--muted); } +/* Адаптивность для header-filter */ +@media (max-width: 1200px) { + .header-filter { + min-width: 150px; + margin: 0 12px; + } + + .sidebar.collapsed ~ .main-content .header .header-filter { + min-width: 120px; + margin: 0 6px; + } +} + +@media (max-width: 768px) { + .header-filter { + min-width: 120px; + margin: 0 8px; + padding: 6px 10px; + font-size: 11px; + } + + .header { + gap: 12px; + padding: 0 16px; + } + + .sidebar.collapsed ~ .main-content .header .header-filter { + min-width: 100px; + margin: 0 4px; + padding: 4px 8px; + font-size: 10px; + } +} + +@media (max-width: 480px) { + .header-filter { + min-width: 100px; + margin: 0 4px; + padding: 4px 8px; + font-size: 10px; + } + + .header { + gap: 8px; + padding: 0 12px; + } + + .header-controls { + gap: 8px; + } + + /* Адаптивность для свернутого sidebar */ + .sidebar.collapsed ~ .main-content .header .header-filter { + min-width: 100px; + margin: 0 4px; + } +} + .header-project-select { padding: 6px 12px; border: 1px solid var(--border); @@ -1304,58 +1357,58 @@ a{color:var(--link)} /* Цвета для разных уровней */ .level-btn.debug-btn { - border-color: var(--ok); - color: var(--ok); + border-color: #6c757d; /* Серый */ + color: #6c757d; } .level-btn.debug-btn:hover, .level-btn.debug-btn.active { - background: var(--ok); - color: #0b0d12; + background: #5a6268; /* Затемненный серый */ + color: white; } .level-btn.info-btn { - border-color: var(--accent); - color: var(--accent); + border-color: var(--ok); /* Зеленый цвет */ + color: var(--ok); } .level-btn.info-btn:hover, .level-btn.info-btn.active { - background: var(--accent); - color: #0b0d12; + background: #7ea855; /* Затемненный зеленый */ + color: white; } .level-btn.warn-btn { - border-color: var(--warn); + border-color: var(--warn); /* Оставляем текущий цвет */ color: var(--warn); } .level-btn.warn-btn:hover, .level-btn.warn-btn.active { - background: var(--warn); + background: #e0a800; /* Затемненный желтый */ color: #0b0d12; } .level-btn.error-btn { - border-color: var(--err); + border-color: var(--err); /* Оставляем текущий цвет */ color: var(--err); } .level-btn.error-btn:hover, .level-btn.error-btn.active { - background: var(--err); - color: #0b0d12; + background: #c82333; /* Затемненный красный */ + color: white; } .level-btn.other-btn { - border-color: var(--muted); - color: var(--muted); + border-color: #f8f9fa; /* Самый светлый серый */ + color: #f8f9fa; } .level-btn.other-btn:hover, .level-btn.other-btn.active { - background: var(--muted); - color: #0b0d12; + background: #dee2e6; /* Затемненный серый */ + color: #212529; } .single-view-content { @@ -1426,7 +1479,7 @@ a{color:var(--link)} .log-content { flex: 1; overflow: hidden; - padding: 16px; + padding: 0; background: var(--bg); } @@ -1918,10 +1971,10 @@ footer{position:fixed;right:10px;bottom:10px;opacity:.6;font-size:11px} OTHER 0 - +