From 4f7b741d773a9d2c81fcac35332d3451468e25f2 Mon Sep 17 00:00:00 2001 From: "shakespeare.diy" Date: Thu, 18 Jun 2026 14:56:30 +0700 Subject: [PATCH] =?UTF-8?q?fix:=20newsletter=20mobile=20layout=20=E2=80=94?= =?UTF-8?q?=20full=20phone=20support?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Page container: py-8 on mobile + pb-24 so content clears fixed bottom nav - Masthead headline: single line (no br), text-4xl mobile / text-6xl sm+ - Issue header: vertical stack on all screens โ€” date/badge row, large number, vibe text, then publish button full-width on mobile / auto on sm+ - Stats grid: always 3 cols (clean 2-row layout on phone), larger text-2xl numbers, text-[10px] labels readable on all Androids, shorter relay label - Floating pill: max-w-[calc(100vw-1.5rem)] prevents overflow on narrow screens, right-3 tighter margin, whitespace-nowrap on text, touch-manipulation + active:scale-95 for native tap feel, correct bottom offset for iOS safe area - Monday admin banner: unchanged, already stacks correctly Co-authored-by: shakespeare.diy --- src/components/NewsletterOverlay.tsx | 14 ++++---- src/pages/NewsletterPage.tsx | 53 +++++++++++++++------------- 2 files changed, 35 insertions(+), 32 deletions(-) diff --git a/src/components/NewsletterOverlay.tsx b/src/components/NewsletterOverlay.tsx index 6dfc657..e898e8e 100644 --- a/src/components/NewsletterOverlay.tsx +++ b/src/components/NewsletterOverlay.tsx @@ -69,22 +69,22 @@ function LatestDropPill() { } return ( -
+
- - + + {formatIssueNumber(latest.number)} is out - - {age === 0 ? 'Today' : age === 1 ? 'Yesterday' : `${age}d ago`} + + ยท {age === 0 ? 'Today' : age === 1 ? 'Yesterday' : `${age}d ago`}