From ed5cadf25d84e48c47e57fdc82d0040ca456fd65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Bombeck?= Date: Sat, 4 Jul 2026 15:51:46 +0200 Subject: [PATCH] fix(layout): start the sidebar on the icon rail at tablet widths MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A 256 px expanded sidebar next to a 768 px viewport leaves the content a 512 px column — an iPad held upright rendered every page squeezed. With no stored preference, md–lg widths now start collapsed to the icon rail; a manual toggle persists and wins on every later visit. --- src/components/layout/sidebar-nav.tsx | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/components/layout/sidebar-nav.tsx b/src/components/layout/sidebar-nav.tsx index e99c069ee..4abb16fbf 100644 --- a/src/components/layout/sidebar-nav.tsx +++ b/src/components/layout/sidebar-nav.tsx @@ -255,7 +255,17 @@ export function SidebarNav() { const [collapsed, setCollapsed] = useState(() => { if (typeof window === "undefined") return false; try { - return localStorage.getItem(STORAGE_KEY) === "true"; + const stored = localStorage.getItem(STORAGE_KEY); + if (stored !== null) return stored === "true"; + } catch { + return false; + } + // No stored preference: tablet widths (md–lg, e.g. an iPad held + // upright) start on the icon rail so the content column keeps its + // room — a 256 px sidebar squeezes a 768 px viewport down to 512 px. + // A manual toggle persists and wins on every later visit. + try { + return window.matchMedia("(max-width: 1023.98px)").matches; } catch { return false; }