fix: iOS PWA bottom nav shifting up in standalone mode
In iOS WebKit standalone (home screen) mode, position:fixed elements move with the page when the body itself becomes scrollable - unlike regular Safari where fixed elements stay pinned. The root cause was body having min-height: 100dvh without overflow: hidden, which allowed body scroll to occur when content overflowed. Fix: html and body are now overflow: hidden with fixed height (100% / 100dvh) so all scrolling is confined to .app-content. Service worker bumped to shell-v30 to force re-download of reset.css on installed PWAs.
This commit is contained in:
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [0.17.4] - 2026-04-13
|
||||
|
||||
### Fixed
|
||||
- iOS PWA: bottom navigation no longer shifts upward in standalone mode - root cause was `body` having `min-height: 100dvh` and no `overflow: hidden`, which allowed the body to scroll; in iOS WebKit standalone mode, body scroll moves `position: fixed` elements rather than keeping them pinned; fix: `html` and `body` are now `overflow: hidden` with fixed height so all scrolling is confined to `.app-content`
|
||||
- Service worker: cache bumped to `shell-v30` to ensure iOS devices receive the updated `reset.css`
|
||||
|
||||
## [0.17.3] - 2026-04-13
|
||||
|
||||
### Fixed
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "oikos",
|
||||
"version": "0.17.3",
|
||||
"version": "0.17.4",
|
||||
"description": "Self-hosted family planner - calendar, tasks, shopping, meal planning, budget and more. Private, open-source, no subscription.",
|
||||
"main": "server/index.js",
|
||||
"type": "module",
|
||||
|
||||
@@ -21,11 +21,14 @@ html {
|
||||
scroll-behavior: smooth;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
/* iOS PWA: verhindert Body-Scroll, der position:fixed-Elemente verschiebt */
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
body {
|
||||
min-height: 100dvh;
|
||||
overflow-x: hidden;
|
||||
height: 100dvh;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
img, svg, video {
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@
|
||||
* API: Immer Netzwerk (kein Caching von Nutzerdaten)
|
||||
*/
|
||||
|
||||
const SHELL_CACHE = 'oikos-shell-v29';
|
||||
const SHELL_CACHE = 'oikos-shell-v30';
|
||||
const PAGES_CACHE = 'oikos-pages-v28';
|
||||
const ASSETS_CACHE = 'oikos-assets-v27';
|
||||
const ALL_CACHES = [SHELL_CACHE, PAGES_CACHE, ASSETS_CACHE];
|
||||
|
||||
Reference in New Issue
Block a user