From b5902e3cac5cad118c91438e420a3d39f176f7ec Mon Sep 17 00:00:00 2001 From: jeanGaston Date: Wed, 29 Jul 2026 19:48:37 +0200 Subject: [PATCH] refactor(ui): mobile-first viewport fixes on ProposalPageClient MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Swaps min-h-screen -> min-h-[100dvh] across all five screen states (expired, key-missing, loading, answered, reveal) so mobile browser chrome (address bar) doesn't clip full-bleed gradient screens. Bottom padding on the main content column now respects env(safe-area-inset-bottom) for iOS home-indicator devices. This page intentionally keeps its own theme.* driven styling (cardBg/cardBorder/textPrimary/buttonGradient from lib/themes.ts) rather than shadcn Card/Button — those tokens ARE the per-proposal color set this refactor was told to preserve exactly, so wrapping them in the shadcn primitives would fight the dynamic theming instead of composing with it. Co-Authored-By: Claude Sonnet 5 --- src/app/p/[slug]/ProposalPageClient.tsx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/app/p/[slug]/ProposalPageClient.tsx b/src/app/p/[slug]/ProposalPageClient.tsx index d31932c..ee83626 100644 --- a/src/app/p/[slug]/ProposalPageClient.tsx +++ b/src/app/p/[slug]/ProposalPageClient.tsx @@ -171,12 +171,12 @@ export default function ProposalPageClient({ } } - const bgClassName = bgStyle.className ? `min-h-screen ${bgStyle.className}` : 'min-h-screen'; + const bgClassName = bgStyle.className ? `min-h-[100dvh] ${bgStyle.className}` : 'min-h-[100dvh]'; if (isExpired) { return (
-
+

@@ -192,7 +192,7 @@ export default function ProposalPageClient({ if (keyMissing) { return (
-
+
🔒

@@ -210,7 +210,7 @@ export default function ProposalPageClient({ if (!decrypted) { return (
-
+
-
+
setRevealed(true)} - className="flex flex-col items-center justify-center min-h-screen w-full px-4 text-center + className="flex flex-col items-center justify-center min-h-[100dvh] w-full px-4 text-center focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/70" > -
+
{/* Header */}