Skip to content

Fix header full-bleed edge gap and readings-column overflow on mobile - #171

Merged
brianglass merged 2 commits into
mainfrom
readings-page-layout-redesign
Aug 11, 2026
Merged

Fix header full-bleed edge gap and readings-column overflow on mobile#171
brianglass merged 2 commits into
mainfrom
readings-page-layout-redesign

Conversation

@brianglass

Copy link
Copy Markdown
Owner

Summary

  • Fixes the day/date header banner's background/border falling short of the true left edge on mobile. It used width: 100vw plus a calculated negative margin to break out of its centered parent -- math that depends on vw exactly matching the real rendering width, which isn't reliable on some mobile browsers. Confirmed via a real-device screenshot. Replaced with a ::before pseudo-element spread far past its own bounds (clipped by body's existing overflow-x: hidden), which doesn't need that precision.
  • Fixes section.readings (a grid item in .readings-columns) rendering wider than its own grid track on narrow screens, pushing the passage text visibly right of center. Confirmed via devtools: column at 270px, section at 294px. Same root cause as the site-title fix from the prior PR -- an unshrinkable child (likely the translation <select>) was setting an implicit min-width on the grid item past its track width. min-width: 0 lets the track win; max-width: 100% on the <select> gives it something to shrink against.

Test plan

  • docker compose run --rm tests — 142 tests pass
  • Verified in Chrome that neither fix regresses desktop rendering
  • Author to re-verify both on the Galaxy S25 device that surfaced them

🤖 Generated with Claude Code

https://claude.ai/code/session_01Hf6j2xXQXywHVh3HAVRxB3

brianglass and others added 2 commits August 11, 2026 09:40
The day/date header banner used width:100vw with a calculated negative
margin to break out of its centered parent to the true viewport edges.
That math depends on vw exactly matching the real rendering width,
which isn't reliable on some mobile browsers -- confirmed via a real
device screenshot showing the banner falling short of the left edge.
Replaced it with a ::before pseudo-element spread far past its own
bounds (clipped by body's existing overflow-x:hidden), which doesn't
need vw precision to reach the true edges.

Also fixes section.readings (a grid item in .readings-columns)
rendering wider than its own grid track on narrow screens -- confirmed
via devtools showing the column at 270px but the section at 294px.
Same root cause as the site title fix from yesterday: an unshrinkable
child (looks like the translation <select>) was setting an implicit
min-width on the grid item past its track width. Adding min-width:0
lets the grid track's width win, and max-width:100% on the select
gives it something to actually shrink against.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Hf6j2xXQXywHVh3HAVRxB3
…on mobile

This was meant to fix a minor desktop-only centering offset (content
sitting ~15px left of true center on pages with a real scrollbar), but
it turned out to reserve its stable gutter width on both edges even on
Android Chrome, which normally uses overlay scrollbars that reserve no
layout space at all. Confirmed via devtools on the reporter's device:
page width 1358px, <html> width 1328px -- exactly two scrollbar-widths
of dead space that no visible scrollbar ever occupied. That inset was
also why the header's full-bleed background still fell short of the
true edge after the previous fix: it's clipped by body's overflow-x:
hidden, which itself was bounded by the shrunken html.

Dropping back to plain overflow-y:auto and accepting the minor desktop
offset -- it's real-scrollbar-only and much less costly than an
always-on inset that was never fixing anything on mobile in the first
place.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Hf6j2xXQXywHVh3HAVRxB3
@brianglass
brianglass merged commit ef8afda into main Aug 11, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant