fix: pin sidebar to viewport with sticky positioning

Sidebar was scrolling with page content. Fix by adding sticky top-0
h-screen. Widen collapsed width to 68px to prevent icon clipping.
This commit is contained in:
Usman Baig
2026-03-18 15:34:48 +01:00
parent 80ae8311dc
commit 61ce505ee5
2 changed files with 4 additions and 4 deletions

View File

@@ -13,9 +13,9 @@ export default function DashboardShell({
const { mobileOpen, closeMobile } = useSidebar()
return (
<div className="flex flex-1 min-h-0">
<div className="flex flex-1">
<Sidebar siteId={siteId} mobileOpen={mobileOpen} onMobileClose={closeMobile} />
<main className="flex-1 min-w-0 overflow-auto pb-8">
<main className="flex-1 min-w-0 pb-8">
{children}
</main>
</div>

View File

@@ -319,8 +319,8 @@ export default function Sidebar({
{/* Desktop sidebar */}
<aside
className={`hidden lg:flex flex-col shrink-0 border-r border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 transition-[width] duration-200 ${
collapsed ? 'w-16' : 'w-60'
className={`hidden lg:flex flex-col shrink-0 sticky top-0 h-screen border-r border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 transition-[width] duration-200 overflow-hidden ${
collapsed ? 'w-[68px]' : 'w-60'
}`}
>
{sidebarContent(false)}