diff --git a/docs/references/design-patterns.md b/docs/references/design-patterns.md index 8e06d3b68..a968247a4 100644 --- a/docs/references/design-patterns.md +++ b/docs/references/design-patterns.md @@ -19,6 +19,20 @@ function Page() { } ``` +### Viewport height & on-screen keyboard + +Page shells are height-locked to the viewport (`TopBar + scroll container + ActionBar`), so they must use the +**dynamic** viewport units — `h-dvh` / `min-h-dvh`, never `h-screen` / `100vh`. `vh` resolves against the +*large* viewport (browser UI retracted), so on Android — Firefox, Edge, Kiwi alike — a `100vh` shell is taller +than the visible area while the toolbar is showing, and because the shell scrolls internally the document +itself can't scroll, leaving `BottomTabBar` / ActionBar unreachable below the fold (issue #1555). + +The full-page entries (`options` / `install` / `import` / `batchupdate` / `confirm`) additionally declare +`interactive-widget=resizes-content` in their ``: the default `resizes-visual` shrinks +only the visual viewport when the on-screen keyboard opens, leaving a `dvh` shell (and the editor toolbar under +it) hidden behind the keyboard. `resizes-content` shrinks the layout viewport instead, so the shell reflows +above the keyboard. `popup.html` is excluded — it is a fixed-size panel that scrolls as a whole. + ### Desktop ↔ mobile transforms | Desktop (≥768px) | Mobile (<768px) | diff --git a/src/pages/batchupdate.html b/src/pages/batchupdate.html index 53a01f254..1bd8b2251 100644 --- a/src/pages/batchupdate.html +++ b/src/pages/batchupdate.html @@ -2,7 +2,7 @@
- +