From 10d55a6a27a3d1b9d9d79697a730037a50369ce3 Mon Sep 17 00:00:00 2001 From: Julien Gautier Date: Sun, 17 May 2026 02:29:14 +0200 Subject: [PATCH] fix(portal-shell): same html/body overflow-y hidden shield as admin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit portal-shell's app.scss has the same "100vh shell, internal main scroll" shape as portal-admin. Mirroring the shield keeps the two apps consistent — any future layout escape stops at the shell boundary instead of producing a phantom body scrollbar. --- apps/portal-shell/src/styles.css | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/apps/portal-shell/src/styles.css b/apps/portal-shell/src/styles.css index 9713bed..7744749 100644 --- a/apps/portal-shell/src/styles.css +++ b/apps/portal-shell/src/styles.css @@ -20,3 +20,18 @@ /* Brand palette tokens — shared with `portal-admin` once it ships. */ @import '../../../libs/shared/tokens/src/brand-tokens.css'; + +/* + * The shell is a "fills the viewport, never scrolls the body" layout: + * is locked at height: 100vh, and
owns its own + * overflow-y. If anything inside the shell ever pushes content past + * the viewport (a wide chart, a flex sizing bug, a third-party + * iframe), we'd rather clip than show a phantom body scrollbar plus + * the empty space below the footer that comes with it. The element- + * level overflow on
still produces a real, scrollable region + * for content that overflows by design. Same shield as portal-admin. + */ +html, +body { + overflow-y: hidden; +}