[drawer] Preserve cross-axis scrolling during touch gestures#4187
[drawer] Preserve cross-axis scrolling during touch gestures#4187atomiks merged 5 commits intomui:masterfrom
Conversation
commit: |
Bundle size report
Check out the code infra dashboard for more information about this PR. |
✅ Deploy Preview for base-ui ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
faa8bef to
e48a317
Compare
|
I tested this on iOS and found this issue. On Chrome (iOS), if I scroll the page vertically and then open a left drawer (swipeDirection="left", Y overflow) while the scrollbar still visible, I’m still able to scroll the underlying page after the drawer opens. On Safari this doesnt happen. bug-chrome.mp4 |
This is a pretty unlikely edge case, so it’s not something users would commonly hit, but, it might still be worth exploring. I’m not sure whether this scroll leakage could lead to other issues. |
Interesting. Usually iOS is the same no matter the browser due to the underlying WebKit engine, so it's a bit annoying when they diverge. Not sure if this is fixable or if it's a browser quirk as scroll locking on iOS without issues is really hard. |
Codex ReviewOverviewThis branch addresses drawer cross-axis touch scrolling by latching native cross-axis intent during a gesture, adds targeted regression coverage for jitter and mixed-axis cases, and introduces an experiments matrix/demo for manual verification. Findings1. [Non-blocking] Reduce duplication in the new cross-axis regression testsImpact: The four axis-specific Evidence: Recommendation: Convert these into a table-driven test ( 2. [Informational] Touchmove hot-path perf check does not show actionable regression signalImpact: The cross-axis helper sits on a hot Evidence: Lightweight benchmark ( Recommendation: No immediate code change required for runtime perf based on this check; continue relying on bundle-size CI/snapshot signals for shipped size tracking. No blocking issues found in this patch. Confidence: 4/5High confidence from full-branch inspection, targeted touch-path review, and rerunning relevant checks; residual uncertainty is mostly around platform-specific touch behavior that only broad device coverage can fully validate. Notes
|
88a3cef to
c847c65
Compare
83fa7a5 to
1ceeca4
Compare
Fixes drawer touch handling so cross-axis scrolling remains native (for example, vertical scroll inside side drawers and horizontal scroll inside top/bottom drawers) instead of being incorrectly blocked by swipe-dismiss prevention
Fixes #4180