fix(website): one scroller on the phone spec page, the pane itself - #1034
Merged
gHashTag merged 1 commit intoSep 16, 2026
Merged
Conversation
gHashTag#1019 capped an open spec brief at 45vh and let it scroll, which is right where the pane is a fixed column that must leave the tabs and the code their height. On a phone the detail pane is the one document that scrolls (SpecExplorer.tsx: main with overflow-y auto, the layer body asking for 70vh), so the capped brief became a second live scroller inside the first, and qa/explorer-viewport-contract.mjs has failed on main since: "390x844 specs: 2 live vertical scrollers for 1 pane(s): main 792/1232, details.spec-x-brief 380/552" (website-checks run 35009106631 on fe4d5ed). On the phone tier the brief now takes its height and the pane scrolls past it: the contract passes 6 sizes x 7 explorers, 390x844 specs with scrollers=1. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This was referenced Sep 16, 2026
github-actions Bot
added a commit
that referenced
this pull request
Sep 16, 2026
fix(website): one scroller on the phone spec page, the pane itself (#1034) #1019 capped an open spec brief at 45vh and let it scroll, which is right where the pane is a fixed column that must leave the tabs and the code their height. On a phone the detail pane is the one document that scrolls (SpecExplorer.tsx: main with overflow-y auto, the layer body asking for 70vh), so the capped brief became a second live scroller inside the first, and qa/explorer-viewport-contract.mjs has failed on main since: "390x844 specs: 2 live vertical scrollers for 1 pane(s): main 792/1232, details.spec-x-brief 380/552" (website-checks run 35009106631 on fe4d5ed). On the phone tier the brief now takes its height and the pane scrolls past it: the contract passes 6 sizes x 7 explorers, 390x844 specs with scrollers=1. Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
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
The "Explorer viewport contract" step of website-checks.yml has been red on
mainsince #1019 (2026-09-15):390x844 specs FAIL 2 live vertical scrollers for 1 pane(s): main.- 792/1232, details.spec-x-brief 380/552(run 35009106631 on fe4d5ed; the same line on every website PR since, #1032 and #1033 included).#1019 capped an open
.spec-x-briefat 45vh withoverflow: autoso that, in a fixed column, the brief could not collapse onto the tab strip and the code kept their height. That is the desktop's problem. On a phone the detail pane is the one document that scrolls (SpecExplorer.tsx:mainwithoverflow-y: auto, the layer body asking for 70vh instead of competing), so the capped brief is a second live scroller inside the first — exactly whatspecs/ui/viewport.t27forbids withONE_SCROLLER_PER_PANE.One rule in
src/styles/explorer-viewport.css, phone tier only: the open brief takes its height (max-height: none; overflow: visible) and the pane scrolls past it. Tablet, desktop and wide keep #1019 unchanged.Checks
npx vite build, thennode qa/explorer-viewport-contract.mjs --no-build: PASS (6 sizes × 7 explorers); at 390x844 every explorer reportsscrollers=1,specsincluded (was the one FAIL)..spec-x-briefon the phone tier differently.Once this is on
main, thechecksjob of #1032 and #1033 goes green on a rebase (their only failing step is this one).Do not merge without the owner's approval.
Work report
{ "version": 1, "head_sha": "4c8343323bb80afddb769bdc9a66551ea021c30d", "summary": "Restores one scroller per pane on the phone spec page: on the phone tier an open .spec-x-brief drops its 45vh cap and overflow so the detail pane itself scrolls, which is what specs/ui/viewport.t27 requires with ONE_SCROLLER_PER_PANE.", "changes": [ "apps/website/src/styles/explorer-viewport.css: one additional rule for the phone tier removes max-height and overflow from an open .spec-x-brief, leaving the detail pane as the single live vertical scroller." ], "tests": [ { "command": "node qa/explorer-viewport-contract.mjs --no-build", "result": "PASS for all 6 by 7 viewport and pane combinations; 390x844 specs reports scrollers=1", "status": "passed", "evidence": "Local run 2026-09-16 on commit 4c834332 over origin/main fe4d5edc; the same contract fails on main since #1019 with two live scrollers (main and details.spec-x-brief)" } ], "limitations": [ "Desktop keeps the #1019 behaviour (45vh cap with overflow auto on an open brief); only the phone tier changes.", "Not verified on a physical phone; the contract run uses headless Chrome device emulation.", "Website-checks on #1032 and #1033 stay red on the Explorer viewport contract step until this fix is merged and those branches are rebased." ], "tags": [ "explorer", "viewport", "mobile", "website" ], "blog": { "title": "One scroller on the phone spec page, the pane itself", "summary": "How a desktop-oriented cap on the spec brief became a second scroller on phones, why the viewport spec forbids exactly that, and the one-rule fix that made the explorer viewport contract pass again.", "outline": [ "Since #1019 the Explorer viewport contract step of website-checks has been red on main: at 390 by 844 the specs page had two live vertical scrollers, the main pane and the open brief capped at 45vh with overflow auto.", "The cap solved a desktop problem, where a brief in a fixed column could collapse onto the tab strip, but on a phone the detail pane is already the one document that scrolls, so a capped brief inside it violates the ONE_SCROLLER_PER_PANE rule in specs/ui/viewport.t27.", "The fix is a single phone-tier rule that lets an open brief grow to its content and hands scrolling back to the pane; the contract passes for all forty-two viewport and pane combinations, and the red step on the two sibling pull requests clears once they are rebased on this change." ] } }🤖 Generated with Claude Code