@jsenv/navi 0.29.403 → 0.29.406

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/docs/safe_area.md CHANGED
@@ -145,7 +145,8 @@ brings its target to.
145
145
 
146
146
  Which element scrolls is the app's business, so navi never picks one. `:root`
147
147
  gets the `scroll-padding` unconditionally, since the document is the scrollport
148
- in the common case.
148
+ in the common case — and, while nothing is marked, the keyboard's room at its
149
+ end (see below).
149
150
 
150
151
  Beware of making that container scrollable by accident — see
151
152
  [mobile_layout_pitfalls.md](./mobile_layout_pitfalls.md).
@@ -208,6 +209,19 @@ visual viewport instead, and `--navi-keyboard-inset-bottom` stays 0. Either way
208
209
  `--navi-app-height` and the popup ceilings answer the part of the screen left
209
210
  visible.
210
211
 
212
+ An overlaying keyboard is one the browser no longer scrolls the focused field
213
+ out from under, so navi does: when the keyboard rises or resizes, and when focus
214
+ moves to another field with the keyboard up, a focused field that is not fully
215
+ inside the document's `scroll-padding` box is centered in it. Chrome paints an
216
+ autofill/suggestion strip above the keyboard that neither
217
+ `env(keyboard-inset-height)` nor `geometrychange` counts, so
218
+ `scroll-padding-bottom` adds `--navi-keyboard-strip-allowance` on top of the
219
+ keyboard — which also keeps Chrome's own caret-following, as a textarea grows
220
+ under typing, clear of the strip. The room to scroll into comes from the marked
221
+ element's `padding-bottom`, or, on a page that marked nothing, from a block navi
222
+ adds at the end of the document while the keyboard is up — both count the
223
+ keyboard and the allowance.
224
+
211
225
  `position: fixed` — so every `FixedBar` — is laid out against the **layout**
212
226
  viewport. Where the visual viewport is what shrinks, a bottom bar therefore
213
227
  stays at the bottom of a window the keyboard is covering: it ends up _behind_
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jsenv/navi",
3
- "version": "0.29.403",
3
+ "version": "0.29.406",
4
4
  "type": "module",
5
5
  "description": "Library of components including navigation to create frontend applications",
6
6
  "repository": {
@@ -34,7 +34,7 @@
34
34
  "preact": "^11.0.0-rc.2"
35
35
  },
36
36
  "dependencies": {
37
- "@jsenv/dom": "0.17.77",
37
+ "@jsenv/dom": "0.17.78",
38
38
  "@jsenv/humanize": "1.8.6",
39
39
  "@jsenv/validity": "0.4.5"
40
40
  },