From e4baecb00f317fa14e50a61c96a2ea5661374b0c Mon Sep 17 00:00:00 2001 From: yigitdot Date: Tue, 12 May 2026 01:20:55 +0300 Subject: [PATCH 1/3] fix(nav): extend mobile drawer through tablet widths MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The drawer was gated to phones at 768px, which left iPad portrait (~768–834px) and similar tablet widths showing the crowded desktop nav. Lift the gate to 1280px so the drawer covers phones through small laptops, and scale the panel width to clamp(380px, 48vw, 520px) above 768px so tablets get a proportional drawer without shrinking at the 768px crossover. - app/globals.css: gate 768px → 1280px; new tablet panel-width rule - components/site/MobileMenu.tsx: matchMedia 768px → 1280px to keep the auto-close listener in lockstep with the CSS gate - components/site/Chrome.tsx: md:flex → xl:flex on the four desktop nav clusters Closes #91 Co-Authored-By: Claude Opus 4.7 (1M context) --- app/globals.css | 13 +++++++++++-- components/site/Chrome.tsx | 8 ++++---- components/site/MobileMenu.tsx | 2 +- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/app/globals.css b/app/globals.css index f5d1384..216315f 100644 --- a/app/globals.css +++ b/app/globals.css @@ -1090,6 +1090,15 @@ a.underline-brutal:hover .arrow { transform: translate3d(0, 0, 0); } +/* Tablet widths up to the desktop gate (1280px) get a wider panel. + The clamp floor matches the phone cap (380px) so the panel never + shrinks across the 768px crossover. */ +@media (min-width: 768px) { + .mm-panel { + width: clamp(380px, 48vw, 520px); + } +} + .mm-head { display: flex; align-items: center; @@ -1237,10 +1246,10 @@ a.underline-brutal:hover .arrow { } } -/* Phones only. Gated in CSS instead of Tailwind's md:hidden because +/* Phones and tablets. Gated in CSS instead of Tailwind's xl:hidden because these custom rules are unlayered and would beat the utilities layer, leaking the toggle onto desktop. */ -@media (min-width: 768px) { +@media (min-width: 1280px) { .mm-toggle, .mm-overlay, .mm-panel { diff --git a/components/site/Chrome.tsx b/components/site/Chrome.tsx index 4323ef1..0ab3322 100644 --- a/components/site/Chrome.tsx +++ b/components/site/Chrome.tsx @@ -166,7 +166,7 @@ export function Chrome() { labs -