From 7ab04e9f62d708ea4bebb8ab9721db85df3da442 Mon Sep 17 00:00:00 2001 From: Martin Dvorak Date: Wed, 7 Oct 2026 12:37:46 +0000 Subject: [PATCH] Screens that already fit no longer scroll or rubber-band - API-key gate is now a fixed, out-of-flow overlay (inset-0, overflow hidden, overscroll-none) with its own internal scroller, so the document has no scrollable height on phones. It can't be panned or bounced. - Home/create mains are flex columns with min-h-dvh and a flex-1 content area, and the empty state's mobile padding was trimmed, so a short/empty library is exactly viewport height instead of overflowing by ~76px. Long pages (the create form, decks) still scroll normally. - html/body get overscroll-behavior: none to stop pull-to-refresh and rubber-banding on fitting screens. Verified with a scroll probe (gate and empty library: scrollHeight == viewport; create still scrolls) plus zoom 6/6, install sheet 64/64, pwa 16/16, final-ux 12/12, retry 14/14, security 8/8, contrast 20/20. --- app/create/page.tsx | 4 ++-- app/globals.css | 1 + app/page.tsx | 4 ++-- components/ApiKeyGate.tsx | 4 ++-- components/ui.tsx | 2 +- 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/app/create/page.tsx b/app/create/page.tsx index 313748c..2d89599 100644 --- a/app/create/page.tsx +++ b/app/create/page.tsx @@ -15,9 +15,9 @@ export default function CreatePage() { -
+
-
+
diff --git a/app/globals.css b/app/globals.css index 97dd60b..278bf01 100644 --- a/app/globals.css +++ b/app/globals.css @@ -174,6 +174,7 @@ html, body { height: 100%; + overscroll-behavior: none; } body { diff --git a/app/page.tsx b/app/page.tsx index 9a159be..f65dbb3 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -11,9 +11,9 @@ export default function HomePage() { -
+
-
+
diff --git a/components/ApiKeyGate.tsx b/components/ApiKeyGate.tsx index bd8626f..39af5f4 100644 --- a/components/ApiKeyGate.tsx +++ b/components/ApiKeyGate.tsx @@ -118,7 +118,7 @@ function GateScreen() { }; return ( -
+
{/* corner controls: theme + help ---------------------------------- */}
{/* card ----------------------------------------------------------- */} -
+
+