From 0e0f4380d7ef224b37b89b7c358ad4772752ba35 Mon Sep 17 00:00:00 2001 From: shats Date: Mon, 16 Feb 2026 16:38:26 +0700 Subject: [PATCH] refactor(App): enhance vertical sidebar layout and styling for improved usability and consistency --- frontend/src/App.css | 22 ++++++ frontend/src/App.jsx | 157 +++++++++++++++++-------------------------- 2 files changed, 83 insertions(+), 96 deletions(-) diff --git a/frontend/src/App.css b/frontend/src/App.css index ccea005..0472c1c 100644 --- a/frontend/src/App.css +++ b/frontend/src/App.css @@ -54,6 +54,28 @@ .navbar-vertical > .container-fluid { padding-left: 1rem; padding-right: 1rem; + display: flex; + flex-direction: column; + min-height: 100%; +} +.navbar-vertical .collapse.navbar-collapse { + display: flex; + flex-direction: column; + flex: 1; + min-height: 0; +} +.navbar-vertical .collapse .navbar-nav.pt-lg-3 { + flex: 1 1 auto; + min-height: 0; + overflow-y: auto; +} +.navbar-vertical .navbar-sidebar-footer { + flex-shrink: 0; + border-top-color: rgba(255, 255, 255, 0.1) !important; +} +.navbar-vertical .navbar-sidebar-footer .nav-link { + padding-left: 0.75rem; + padding-right: 0.75rem; } /* Стрелка только у пунктов с подменю (dropdown-toggle), не у обычных ссылок и не у бренда */ .navbar-vertical .nav-link:not(.dropdown-toggle)::after { diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index 4f31193..f00f312 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -469,11 +469,71 @@ function MainLayout() { ))} + {/* Кнопки внизу сайдбара: язык, раскладка, тема, горячие клавиши, настройки */} +
+
+ e.preventDefault()} + title="Язык" + > + {lang.toUpperCase()} + +
+ { e.preventDefault(); setLang('ru'); }}>Русский + { e.preventDefault(); setLang('en'); }}>English +
+
+
+ e.preventDefault()} + title={t('layoutSidebar')} + > + {layout === LAYOUT_FLUID ? : } + +
+ { e.preventDefault(); setLayout(LAYOUT_FLUID); }}> + {t('layoutSidebar')} + + { e.preventDefault(); setLayout(LAYOUT_HORIZONTAL); }}> + {t('layoutHorizontal')} + +
+
+
+ e.preventDefault()} + title={t('light') + ' / ' + t('dark')} + > + {theme === 'dark' ? '🌙' : '☀️'} + +
+ { e.preventDefault(); setTheme('light'); }}>☀️ {t('light')} + { e.preventDefault(); setTheme('dark'); }}>🌙 {t('dark')} +
+
+
+ +
+
+ { e.preventDefault(); setSettingsOpen(true); }} title="Настройки"> + + +
+
- {/* Верхний навбар (как в Tabler fluid vertical) */} + {/* Верхний навбар (только тогглер меню на мобильных; кнопки — внизу сайдбара) */}
-
-
- e.preventDefault()} - > - {lang.toUpperCase()} - - -
-
- e.preventDefault()} - > - {layout === LAYOUT_FLUID ? : } - - -
-
- e.preventDefault()} - > - {theme === 'dark' ? '🌙' : '☀️'} - - -
-
- -
-
- { e.preventDefault(); setSettingsOpen(true); }} - title="Настройки" - > - - -
-