fix(website): docs polish 1/3 — sticky rails, anchor offsets, honest mobile widths - #861
Merged
Conversation
blove
enabled auto-merge (squash)
August 30, 2026 01:28
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
… 320px honest The structural third of the docs polish arc (findings §1, §2, §5, §6-partial). - body gets overflow-x: CLIP, not hidden. `hidden` made <body> a scroll container, so every sticky rail pinned against a thing that never scrolls - the docs sidebar and TOC have been dead since they were written. `clip` clips identically, creates no scroll container (sticky works), and keeps the mobile layout viewport pinned (without any body guard, min-content overflow forced phones to zoom out: measured vw 421 on a 320 device). - One nav height: --nav-h (58px / 81px at md) drives the docs shell padding (was a hardcoded 80px = 22px dead space on phones), both sticky rails, the mobile overlay offset, and html's scroll-padding-top - which stops every deep link landing under the fixed nav. - The sidebar gets align-self:flex-start + max-height so its own scrollbar finally engages (it was stretched to the article's 10,030px). - The overflow the old guards were hiding is fixed at the source: Steps' flex item, why-row's flex item and wp-cover-wrap's grid item (min-width:0), the wp cover's height-derived aspect-ratio width, five auto-fit grids with unclamped px minimums, five stacked 1fr breakpoints with auto minimums, and the about page's unbreakable repo URL. Measured: rails pin at var(--nav-h) at scrollY 3000; #anchor jumps land 16px clear of the nav; zero elements exceed a true pinned 320px viewport on /, /pilot-to-prod, /solutions, /about, /blog, /pricing, and the docs pages; and / and /pricing are hash-identical to production at 1280 (desktop untouched). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
blove
force-pushed
the
blove/docs-polish-1-structural
branch
from
August 30, 2026 01:32
6b9d10e to
db12b6a
Compare
Contributor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
PR 1 of 3 of the docs polish arc (plan · findings) — the structural fixes. This is deliberate visual change, the first of the whole arc; each item below was a measured defect.
top:-2920at scrollY 3000)body{overflow-x:clip}— clips likehiddenbut creates no scroll containervar(--nav-h)html{scroll-padding-top:calc(var(--nav-h)+16px)}--nav-h(58/81) drives shell, rails, overlayalign-self:flex-start+ max-heightmin-width:0flex/grid items, the wp cover's height-derivedaspect-ratiowidth, 5 unclampedauto-fitminimums, 5 stacked1frauto-minimums, one unbreakable URLThe mechanism worth knowing
overflow-x: hiddenonbodywas doing two jobs: pinning the mobile layout viewport and killing sticky (it makes<body>a scroll container; sticky descendants pin against a thing that never scrolls).overflow-x: clipdoes the first job without the second. The real overflow is still fixed at the source — clip is the belt, not the fix.Blast radius
/and/pricingare hash-identical to production at 1280 (644 and 420 elements × 26 properties) — desktop marketing is untouched. Docs pages change deliberately (rails, padding, anchors).nx test websitefully green, 0 lint errors, prod build green.PR 2 (breadcrumb, tables, rails, mdx details) and PR 3 (a11y + interaction) follow.
🤖 Generated with Claude Code