diff --git a/CHANGELOG.md b/CHANGELOG.md index ad4f482..d553301 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.23.11] - 2026-04-22 + +### Fixed +- iOS PWA: bottom navigation bar now extends into the home indicator safe area via `padding-bottom: env(safe-area-inset-bottom)`, reliably eliminating the gap at the screen bottom + ## [0.23.10] - 2026-04-22 ### Fixed diff --git a/package-lock.json b/package-lock.json index fc1c31a..8f41d7f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "oikos", - "version": "0.23.10", + "version": "0.23.11", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "oikos", - "version": "0.23.10", + "version": "0.23.11", "license": "MIT", "dependencies": { "bcrypt": "^6.0.0", diff --git a/package.json b/package.json index 0cd1cd1..143b333 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "oikos", - "version": "0.23.10", + "version": "0.23.11", "description": "Self-hosted family planner - calendar, tasks, shopping, meal planning, budget and more. Private, open-source, no subscription.", "main": "server/index.js", "type": "module", diff --git a/public/styles/layout.css b/public/styles/layout.css index f428a97..bebcd98 100755 --- a/public/styles/layout.css +++ b/public/styles/layout.css @@ -144,6 +144,10 @@ z-index: var(--z-nav); backdrop-filter: blur(16px) saturate(180%); -webkit-backdrop-filter: blur(16px) saturate(180%); + /* Füllt den iOS Home-Indicator-Bereich mit dem Nav-Hintergrund. + * Das padding erstreckt den Hintergrund der Nav bis zum physischen Bildschirmrand, + * ohne das Flex-Layout der App-Shell zu beeinflussen (nav-bottom hat kein flex-grow). */ + padding-bottom: env(safe-area-inset-bottom, 0px); } /* ── Items-Reihe ── */ diff --git a/public/styles/pwa.css b/public/styles/pwa.css index 411bdf5..0f29da8 100644 --- a/public/styles/pwa.css +++ b/public/styles/pwa.css @@ -84,16 +84,7 @@ nav, * Im Überlappungsbereich (Nav-Padding = Safe-Area) liegt die Nav darüber; * in einem eventuellen Spalt zwischen Nav-Unterkante und Displayrand liegt * body::after sichtbar - optisch identisch mit der Nav. */ - body::after { - content: ''; - position: fixed; - bottom: 0; - left: 0; - right: 0; - height: env(safe-area-inset-bottom, 0px); - background-color: color-mix(in srgb, var(--color-surface) 85%, transparent); - backdrop-filter: var(--blur-md) saturate(180%); - -webkit-backdrop-filter: var(--blur-md) saturate(180%); - z-index: calc(var(--z-nav) - 1); - } + /* body::after-Ansatz entfernt: layout.css setzt padding-bottom auf .nav-bottom + * direkt via env(safe-area-inset-bottom), was zuverlässiger ist als ein + * Fixed-Pseudo-Element (kann bei overflow:hidden auf html/body geclipt werden). */ }