Header CTA is clipped at 768px — iPad portrait loses Request Consultation #214
Labels
No Label
P0
P1
P2
P3
accessibility
backend
bug
content
data-integrity
enhancement
frontend
infra
integration
owner
owner-input
performance
phase-7
phase-8
release-blocker
security
seo
ui
ux
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: null/Queue-North-Website#214
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Found by rendering the deployed site, not by reading markup. Build SHA
cf92354, live at v0.9.4.What is true now. At exactly 768px the desktop layout switches on (
md:), and the header's primary CTA does not fit:Why nobody noticed.
src/index.csssetsoverflow-x: hiddenon html and body, so the overflow produces no scrollbar and no horizontal scroll — the button is simply sliced off at the right edge with nothing indicating it.What it costs. 768px is iPad portrait, one of the most common tablet viewports there is. The clipped element is the site's primary conversion action, and at that width the mobile menu is already hidden (
md:hidden), so the CTA is not reachable from the burger either.Severity P1 rather than P2: it is not cosmetic, it is the conversion path, and it is materially wrong on a mainstream device.
Where.
src/components/layout/Header.jsx— the nav ishidden md:flex items-center gap-6and the CTA ishidden md:blockwithh-9 px-3. The nav's fivegap-6(24px) gaps are the slack: dropping togap-4at md frees 40px, more than the 10px needed, without pushing the CTA out tolg:and leaving 768-1023px with no CTA at all.The trap. Do not fix this by removing
overflow-x: hidden— that is load-bearing elsewhere, and removing it converts a clipped button into a horizontally scrolling page on every narrow viewport.Verify:
node scripts/qa-browser.mjs --paths / --viewports 768reports no element past the right edge, and the CTA's getBoundingClientRect().right is <= 768 at a 768px viewport.Fixed in
231f07c, released as v0.9.5 and DEPLOYED to production on 2026-08-18.The nav's md gap went from
gap-6togap-4 lg:gap-6in src/components/layout/Header.jsx, freeing 40px where 10 were needed. The CTA stays atmd:rather than being deferred tolg:, so 768-1023px keeps its conversion button instead of losing it.Measured on the live site, at the viewport in the title:
scripts/qa-browser.mjs --paths / --viewports 768reports no element past the right edge, where before the fix it reported two (the wrapper div and the anchor, both at right=809).Verify: at a 768px viewport on https://queuenorth.com/, the header 'Request Consultation' link's getBoundingClientRect().right is 752 against a viewport of 768.