From 8f54993df5e7bf1fe12b1fd035bafe5a7aa93b24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Bombeck?= Date: Thu, 14 May 2026 15:15:08 +0200 Subject: [PATCH] style(layout): unify top-of-page padding between AuthShell, Settings, and Admin Settings and Admin pages render inside AuthShell, whose inner main already applies `mx-auto max-w-[76.8rem] px-4 py-6 md:px-6`. Both shells then re-applied `px-4 py-6 md:px-6 md:py-8` on their own container, which produced visibly more top/bottom whitespace on /settings/* and /admin/* than on /, /measurements, /medications, /mood, /insights, /coach, and /notifications. Drop the redundant padding from SettingsShell and AdminShell so the visual top-of-page baseline matches the rest of the app. The `mx-auto w-full max-w-screen-xl` wrapper stays for the wider content column that these two surfaces opt into. Mobile chip-strip `-mx-4` still cancels AuthShell's horizontal padding correctly. --- src/components/admin/admin-shell.tsx | 7 ++++++- src/components/settings/settings-shell.tsx | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/components/admin/admin-shell.tsx b/src/components/admin/admin-shell.tsx index 9b4f395f6..f6e68ef50 100644 --- a/src/components/admin/admin-shell.tsx +++ b/src/components/admin/admin-shell.tsx @@ -151,8 +151,13 @@ export function AdminShell({ active, children }: AdminShellProps) { const { t } = useTranslations(); const activeSlug = deriveActiveSlug(pathname, active); + // v1.4.25 W8 — AuthShell wraps the page in `px-4 py-6 md:px-6` + // already, so this inner shell only carries the wider max-width. + // Previously the duplicate `px-4 py-6 md:px-6 md:py-8` here was + // producing visibly more top/bottom whitespace on Settings/Admin + // pages than on Dashboard/Insights/Measurements. return ( -
+
{/* Mobile section strip — horizontal scroll, hidden on md+. `no-scrollbar` (defined in `globals.css`) suppresses the painted scrollbar at the top of every admin page; the diff --git a/src/components/settings/settings-shell.tsx b/src/components/settings/settings-shell.tsx index 9fea112ef..410d2379c 100644 --- a/src/components/settings/settings-shell.tsx +++ b/src/components/settings/settings-shell.tsx @@ -135,8 +135,13 @@ export function SettingsShell({ active, children }: SettingsShellProps) { const { t } = useTranslations(); const activeSlug = deriveActiveSlug(pathname, active); + // v1.4.25 W8 — AuthShell wraps the page in `px-4 py-6 md:px-6` + // already, so this inner shell only carries the wider max-width. + // Previously the duplicate `px-4 py-6 md:px-6 md:py-8` here was + // producing visibly more top/bottom whitespace on Settings/Admin + // pages than on Dashboard/Insights/Measurements. return ( -
+
{/* Mobile section strip — horizontal scroll, hidden on md+. `no-scrollbar` (defined in `globals.css`) suppresses the painted scrollbar; the horizontal swipe + keyboard arrow