fix(dashboard): block pinch-zoom and overscroll on mobile globally
- touch-action is per-element, not inherited. Setting `pan-x pan-y` on
html/body alone didn't stop the kanban board: pinching on `.board`
reads `.board`'s own touch-action (auto by default), which permits
pinch-zoom. Switch to `* { touch-action: pan-x pan-y }` inside the
mobile media query so every element opts out of pinch by default;
element-specific overrides (touch-action: none on resize handles,
drag-source rules on TaskCard, etc.) still win on specificity.
- Add `overscroll-behavior: none` to html/body to prevent Chrome's
rubber-band scroll, which was letting users pull the page up to
expose empty space above the dashboard despite overflow:hidden.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -3219,10 +3219,18 @@ input[type="range"]:focus-visible {
|
||||
html,
|
||||
body {
|
||||
overflow: hidden;
|
||||
/* Disable pinch-zoom on mobile — Android Chrome ignores user-scalable=no
|
||||
for a11y, and the kanban board's horizontally-scrollable layout
|
||||
interacts badly with zoom-out (exposes the offscreen-right area).
|
||||
`pan-x pan-y` keeps scroll panning but blocks pinch-zoom. */
|
||||
/* Stop Chrome's overscroll/rubber-band on mobile — without this the user
|
||||
can pull the page up to expose empty space above the dashboard. */
|
||||
overscroll-behavior: none;
|
||||
}
|
||||
|
||||
/* Disable pinch-zoom globally on mobile. Android Chrome ignores
|
||||
`user-scalable=no` for a11y, and the kanban board's horizontally-
|
||||
scrollable layout interacts badly with zoom-out (exposes the
|
||||
offscreen-right area). `touch-action` is not inherited — it applies
|
||||
to the target element only — so we have to set `pan-x pan-y`
|
||||
(keep scroll panning, block pinch-zoom) on every element. */
|
||||
* {
|
||||
touch-action: pan-x pan-y;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user