diff --git a/src/components/layout/AppShell/AppShell.tsx b/src/components/layout/AppShell/AppShell.tsx index ad9e7c8..a8370f3 100644 --- a/src/components/layout/AppShell/AppShell.tsx +++ b/src/components/layout/AppShell/AppShell.tsx @@ -147,22 +147,25 @@ export function AppShell({ children }: AppShellProps) { onClick={handleNavClick} aria-label={label} className={cn( - 'relative flex shrink-0 items-center gap-1.5 rounded-lg px-2.5 py-1.5 text-[13px] font-medium transition-colors duration-200', + 'relative flex shrink-0 items-center gap-1.5 rounded-full px-3 py-1.5 text-[13px] font-medium transition-colors duration-200', active ? admin - ? 'text-warning-400' + ? 'text-warning-300' : 'text-dark-50' : admin - ? 'text-warning-500/70 hover:bg-warning-500/10 hover:text-warning-400' - : 'text-dark-400 hover:bg-dark-800/50 hover:text-dark-100', + ? 'text-warning-500/70 hover:bg-warning-500/10 hover:text-warning-300' + : 'text-dark-400 hover:bg-dark-800/60 hover:text-dark-100', )} > {active && ( @@ -214,19 +217,21 @@ export function AppShell({ children }: AppShellProps) { {appName} - {/* Navigation — labels always visible, all items shown, no scroll/shrink */} - + {/* Navigation — единая «капсула» (segmented control): все пункты видны + всегда, без скролла/сжатия/сворачивания. Капсула центрируется в + свободном пространстве между логотипом и кнопками (mx-auto). */} + {desktopNav.map((item) => renderNavLink(item.path, item.label, item.icon))} {isAdmin && ( <> - + {renderNavLink('/admin', t('admin.nav.title'), ShieldIcon, true)} > )} - {/* Right side actions — pinned right, never shrink */} - + {/* Right side actions — pinned right (nav centers via mx-auto), never shrink */} + { haptic.impact('light');