Repository navigation
Clear the phone bars from every pane scroller with one token - #517
Merged
Merged
Conversation
Collaborator
Author
|
Review: Looks good Built this branch and origin/main side by side (fake GitHub, headless Playwright) and measured first-line-vs-top-bar and last-line-vs-bottom-bar at scroll ends.
Nice-to-have (non-blocking):
|
MaggieAppleton
enabled auto-merge (rebase)
October 12, 2026 11:54
MaggieAppleton
force-pushed
the
mobile/chrome-clearance
branch
from
October 12, 2026 11:54
012bddc to
5f006ac
Compare
The Decisions pane kept a 16px top padding from before panes ran full-bleed under the glass top bar, so its first card sat beneath the bar and could not be scrolled into view. Phone pane scrollers now take their top and bottom clearance from --phone-pane-top and --phone-pane-bottom, including scroll padding for focus and scrollIntoView, and a parametrised phone spec asserts the clearance for Document, Chat, Decisions and Build on 15 Pro and SE. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaggieAppleton
force-pushed
the
mobile/chrome-clearance
branch
from
October 12, 2026 12:13
5f006ac to
7d5c751
Compare
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.
Why
On an iPhone 15 Pro the Decisions pane's first card sat under the glass top bar and could not be scrolled into view (Phone lab note 2026-10-12, item 2). Since panes went full-bleed under both bars (#475), each pane scroller has to clear the bars itself.
.plan-decisions[data-phone] .plan-decisions-contentstill forcedpadding-top: 16pxfrom the older layout, which overrode the phone workspace's top-inset token.What changed
--phone-pane-top(top chrome + 16px) and--phone-pane-bottom(bottom chrome + 16px). Document, Decisions, Build and Chat take their top padding from it, and the child card adds its stack bar to it.scroll-padding-blockrule for all four phone pane scrollers, so focus, find-in-page andscrollIntoViewstop between the bars. Document keeps its 30% bottom (caret room) and the keyboard-dock override. Chat's bottom padding is 16px because its panel already ends above the tab bar and its composer is the only bar below.packages/editor/src/styles.css.[data-workspace-phone]or[data-phone].Screenshots
Decisions, iPhone 15 Pro (Safari tab). Before on the left, after on the right.

Decisions, iPhone 15 Pro on the home screen (59px top inset, 34px bottom inset)

Decisions, iPhone SE

Chat, iPhone 15 Pro on the home screen (12px to 16px top gap)

Audit
I measured each state on SE (375×667), 15 Pro (393×659), 15 Pro Max, 15 Pro landscape, and 15 Pro home screen in portrait and landscape (safe-area insets set through CDP). That is 6 devices × 13 states, at both scroll ends. Pass rule: when the pane is scrolled to the top, the first line of content is at or below the bottom of the top bar (or the stack bar on a child). When it is scrolled to the bottom, the last line is at or above the top of the tab bar, save bar or composer. "Gap" is the smallest clearance across devices.
At scroll bottom the top bar is usually hidden, so the pass rule is checked against the safe-area strip. I checked the documents sheet and comment sheet in screenshots on every device. They have their own edges and needed no change. I checked the empty and all-resolved Decisions state and the other Build states by code only: they use the same scroller and padding token.
Testing
e2e/responsive-phone-clearance.e2e.ts: checks the clearance rule for Document, Chat, Decisions (with and without the save bar) and Build, on 15 Pro and SE. It fails on main (both Decisions cases) and passes on this branch.bun run e2ewith the new spec plus decisions-phone, chat-phone, phone-workspace, responsive-child-phone, responsive-decisions, comment-sheet, phone-read-mode and discarded-mobile-geometry: 68 passed.bun run ci,bun run types,bun test packages/editor apps/web(1429 pass).Needs a design-contract review
None. The design contract and design record checks pass.
🤖 Generated with Claude Code