Skip to content

fix(mobile): clamp main scrollers — WebKit pans pre-transform overflow#131

Merged
bndct-devops merged 1 commit into
mainfrom
fix/mobile-app-feel
Jul 18, 2026
Merged

fix(mobile): clamp main scrollers — WebKit pans pre-transform overflow#131
bndct-devops merged 1 commit into
mainfrom
fix/mobile-app-feel

Conversation

@bndct-devops

Copy link
Copy Markdown
Owner

Follow-up to #130, which was merged before this commit landed on the branch — this is the half that fixes the behavior in the screen recording.

On iOS the content area itself pans ~150px sideways and rubber-bands back. Root cause: WebKit counts the Focus rotary's pre-transform 540px stage as scrollable overflow (Chromium uses the post-transform size, which is why the original emulator check missed it). #130's overscroll/touch-action work doesn't stop it because it's real horizontal scroll, not bounce.

overflow-x-hidden on the app's main scrollers (AppShell, DashboardPage) makes sideways panning impossible app-wide; deliberate horizontal scrollers (upcoming-covers strip, timeline ribbon) are their own scroll containers and keep working.

Verified on Playwright WebKit (iPhone 13 viewport): main.scrollLeft = 200 pins back to 0. Frontend build clean.

…-transform overflow

The user's screen recording showed the real failure: on iOS the content
area itself pans sideways and rubber-bands back. WebKit counts the focus
rotary's pre-transform 540px stage as scrollable overflow (Chromium uses
the post-transform size, which is why emulation missed it), giving the
main scroller ~150px of horizontal scroll on a phone.

overflow-x-hidden on the app's main scrollers makes sideways panning
impossible app-wide. Verified on Playwright WebKit (iPhone 13 viewport):
scrollLeft is pinned to 0.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@bndct-devops
bndct-devops merged commit dc0ae1b into main Jul 18, 2026
2 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