From 83f0b5ae864b50fbeed65e87a1b44ab0f6998f05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Bombeck?= Date: Sun, 17 May 2026 12:21:31 +0200 Subject: [PATCH] ux(nav): pin active tab-strip chip to the scroll start The Settings + Admin shells centred the active chip via `scrollIntoView({ inline: "center" })`. On narrow viewports the strip over-scrolled past the leading chips so the first one or two were unreachable until the user manually swiped right. `inline: "start"` lands the active chip at the leading edge so the trail of preceding chips remains visible. --- src/components/admin/admin-shell.tsx | 6 +++++- src/components/settings/settings-shell.tsx | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/components/admin/admin-shell.tsx b/src/components/admin/admin-shell.tsx index a7601abf6..65a764c62 100644 --- a/src/components/admin/admin-shell.tsx +++ b/src/components/admin/admin-shell.tsx @@ -171,7 +171,11 @@ export function AdminShell({ active, children }: AdminShellProps) { if (!activeChip) return; activeChip.scrollIntoView({ block: "nearest", - inline: "center", + // v1.4.36 W4b — `inline: "start"` pins the active chip to the + // left edge of the scroller. `inline: "center"` over-scrolled + // and the first one or two chips were unreachable on narrow + // viewports. + inline: "start", behavior: "smooth", }); }, [activeSlug]); diff --git a/src/components/settings/settings-shell.tsx b/src/components/settings/settings-shell.tsx index dca91628b..bd03d5bcd 100644 --- a/src/components/settings/settings-shell.tsx +++ b/src/components/settings/settings-shell.tsx @@ -164,7 +164,11 @@ export function SettingsShell({ active, children }: SettingsShellProps) { if (!active) return; active.scrollIntoView({ block: "nearest", - inline: "center", + // v1.4.36 W4b — `inline: "start"` pins the active chip to the + // left edge of the scroller. `inline: "center"` over-scrolled + // and the first one or two chips were unreachable on narrow + // viewports. + inline: "start", behavior: "smooth", }); }, [activeSlug]);