feat(layout): migrate to full-width topbar with mobile drawer navigation
Move topbar outside the grid container as a standalone sticky header (Shopify/Stripe pattern). Sidebar and icon bar use position:sticky relative to topbar height. Mobile uses drawer pattern with backdrop, focus trap, ESC close, and scroll lock. Tenant branding moved from sidebar header into the topbar. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -35,11 +35,13 @@
|
||||
var sidebarHiddenKey = buildStorageKey('sidebar', 'sidebar-hidden');
|
||||
var contrastKey = buildStorageKey('contrast', 'contrast-mode');
|
||||
|
||||
if (sidebarCollapsedKey && window.localStorage.getItem(sidebarCollapsedKey) === '1') {
|
||||
root.classList.add('sidebar-collapsed');
|
||||
}
|
||||
if (sidebarHiddenKey && window.localStorage.getItem(sidebarHiddenKey) === '1') {
|
||||
root.classList.add('sidebar-hidden');
|
||||
if (window.innerWidth >= 768) {
|
||||
if (sidebarCollapsedKey && window.localStorage.getItem(sidebarCollapsedKey) === '1') {
|
||||
root.classList.add('sidebar-collapsed');
|
||||
}
|
||||
if (sidebarHiddenKey && window.localStorage.getItem(sidebarHiddenKey) === '1') {
|
||||
root.classList.add('sidebar-hidden');
|
||||
}
|
||||
}
|
||||
var contrastValue = contrastKey ? window.localStorage.getItem(contrastKey) : null;
|
||||
if (contrastValue === 'high') {
|
||||
|
||||
Reference in New Issue
Block a user