diff --git a/frontend/src/App.css b/frontend/src/App.css index 6d4d700..c9391ba 100644 --- a/frontend/src/App.css +++ b/frontend/src/App.css @@ -1,5 +1,44 @@ /* Custom styles for S3 Lists Manager */ -/* Most styles are now provided by @tabler/core */ +/* Layout: Tabler Fluid Vertical (https://preview.tabler.io/layout-fluid-vertical.html) */ + +/* --- Fluid Vertical: page structure --- */ +.page { + min-height: 100vh; +} + +/* Sidebar: nav-link with icon (Tabler vertical) */ +.navbar-vertical .nav-link { + display: flex; + align-items: center; + gap: 0.5rem; +} +.navbar-vertical .nav-link-icon { + display: inline-flex; + align-items: center; + justify-content: center; + width: 1.25rem; + height: 1.25rem; + flex-shrink: 0; +} +.navbar-vertical .nav-link-icon .icon { + width: 1.25rem; + height: 1.25rem; +} +/* Sidebar dropdown: inline submenu (no popup) */ +.navbar-vertical .nav-item.dropdown .dropdown-menu { + position: static; + float: none; + border: none; + box-shadow: none; + background: transparent; + padding: 0 0 0.5rem 0; + margin: 0; +} +.navbar-vertical .nav-item.dropdown .dropdown-item { + padding-left: calc(0.5rem + 1.25rem + 0.5rem); + padding-top: 0.35rem; + padding-bottom: 0.35rem; +} /* Custom avatar background */ .avatar { diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index 24c2e0a..e35af57 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -233,113 +233,117 @@ function MainLayout() { const activeTab = getActiveTab(); + // Fluid Vertical: вертикальный сайдбар + верхний навбар + page-wrapper return ( -
+
{/* Skip link для доступности */} Перейти к основному содержанию - - {/* Верхнее меню Tabler Admin */} -
-
- {/* Логотип */} -
- - - S3 Lists Manager - -
- {/* Кнопка бургера для мобильных */} + {/* Левая вертикальная навигация (Tabler navbar-vertical) */} +
+
+ + + S3 Lists Manager + +
+ +
+ +
+
+ + {/* Верхний навбар (как в Tabler fluid vertical) */} +
+
- - {/* Основное меню */} - - - {/* Правая часть навбара: язык, тема и действия */} -
-
- - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - -
-
-
- Версия UI: {import.meta?.env?.VITE_APP_VERSION || 'dev'} + +
+
+
+
+ + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + +
+
-
+
+
+
    +
  • Версия UI: {import.meta?.env?.VITE_APP_VERSION || 'dev'}
  • +
+
+
+
setSettingsOpen(false)} />
diff --git a/frontend/src/components/PageHeader.jsx b/frontend/src/components/PageHeader.jsx index 8d2b756..37ff3b2 100644 --- a/frontend/src/components/PageHeader.jsx +++ b/frontend/src/components/PageHeader.jsx @@ -1,26 +1,25 @@ import React from 'react' +/** Заголовок страницы в стиле Tabler (page-header + page-title + опционально actions справа) */ function PageHeader({ title, pretitle, actions, meta }) { return (
- {/* Верхняя строка: только заголовок */}
-

{title}

{pretitle && ( -
{pretitle}
+
{pretitle}
)} +

{title}

{meta && (
{meta}
)}
+ {actions && ( +
+ {actions} +
+ )}
- {/* Отдельная строка под заголовком: действия страницы */} - {actions && ( -
- {actions} -
- )}
) }