From 8079c81e2249108dd6920d37c0a0281f6b41a549 Mon Sep 17 00:00:00 2001 From: Ulas Date: Mon, 6 Apr 2026 10:56:45 +0200 Subject: [PATCH] fix(pwa): disable pinch-to-zoom and block residual body scroll (#16) - Added user-scalable=no, maximum-scale=1 to viewport meta tag to prevent pinch-to-zoom in standalone PWA mode - Added overflow: hidden to html, body so any minimal content overflow cannot make the body scrollable (belt-and-suspenders alongside overscroll-behavior: none) - Service worker cache bumped to v28/v27 --- CHANGELOG.md | 7 +++++++ public/index.html | 4 ++-- public/styles/pwa.css | 6 +++++- public/sw.js | 6 +++--- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 09b36da..1ddcd8a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.14.4] - 2026-04-06 + +### Fixed +- PWA iOS: pinch-to-zoom disabled - added `user-scalable=no, maximum-scale=1` to viewport meta tag for native-app feel (#16) +- PWA iOS: residual body scroll fully blocked - added `overflow: hidden` to `html, body` so any minimal content overflow can no longer make the page body scrollable (#16) +- Service worker cache bumped to v28/v27 (#16) + ## [0.14.3] - 2026-04-06 ### Fixed diff --git a/public/index.html b/public/index.html index b18d2ea..4361a63 100644 --- a/public/index.html +++ b/public/index.html @@ -2,8 +2,8 @@ - - + + diff --git a/public/styles/pwa.css b/public/styles/pwa.css index 65de8c8..9c72759 100644 --- a/public/styles/pwa.css +++ b/public/styles/pwa.css @@ -4,8 +4,12 @@ * Abhängigkeiten: tokens.css, layout.css */ -/* ── Kein Rubber-Banding / Pull-to-Refresh des Browsers ── */ +/* ── Kein Rubber-Banding, kein Body-Scroll ── + * overflow: hidden verhindert, dass body scrollbar wird, falls ein + * Element minimal überläuft. overscroll-behavior: none deaktiviert + * Pull-to-Refresh und Rubber-Banding. */ html, body { + overflow: hidden; overscroll-behavior: none; } diff --git a/public/sw.js b/public/sw.js index 1125b31..d61ad6a 100644 --- a/public/sw.js +++ b/public/sw.js @@ -12,9 +12,9 @@ * API: Immer Netzwerk (kein Caching von Nutzerdaten) */ -const SHELL_CACHE = 'oikos-shell-v27'; -const PAGES_CACHE = 'oikos-pages-v26'; -const ASSETS_CACHE = 'oikos-assets-v26'; +const SHELL_CACHE = 'oikos-shell-v28'; +const PAGES_CACHE = 'oikos-pages-v27'; +const ASSETS_CACHE = 'oikos-assets-v27'; const ALL_CACHES = [SHELL_CACHE, PAGES_CACHE, ASSETS_CACHE]; // App-Shell: sofort benötigt für ersten Render