diff --git a/apps/app/src/components-v2/layout/AppSidebar.vue b/apps/app/src/components-v2/layout/AppSidebar.vue index f7680f35..70e328d6 100644 --- a/apps/app/src/components-v2/layout/AppSidebar.vue +++ b/apps/app/src/components-v2/layout/AppSidebar.vue @@ -124,6 +124,23 @@ const mobileVisible = computed({ SidebarHeader's brand row, which renders an X ("Sluit menu") on mobile — a single, non-overlapping control in the same top-right slot the desktop sidebar uses for its collapse chevron. No duplicate, no overlap. + + Bottom anchoring (MOBILE-SHELL-PARITY defect 3 — WorkspaceSwitcher): + the content pt is a full-height flex COLUMN (`flex flex-col h-full + min-h-0`). PrimeVue's @primeuix base styles already give + `.p-drawer-left .p-drawer-content { height: 100% }` + `flex-grow: 1`, + and `.p-drawer-left .p-drawer { height: 100% }` inside the `height:100%` + mask — so the content fills the panel's full viewport height. With the + flex column, SidebarNav (`flex-1 min-h-0 overflow-y-auto`) claims the + slack and WorkspaceSwitcher (`flex-shrink-0`) anchors to the true bottom, + exactly as the desktop