From 6503d1863720b7b0e02af23b945e180b4cd4b1bd Mon Sep 17 00:00:00 2001 From: Scarriffle Date: Thu, 7 May 2026 20:01:48 +0200 Subject: [PATCH] =?UTF-8?q?fix(pwa):=20Layout=20ber=C3=BCcksichtigt=20iOS-?= =?UTF-8?q?Safe-Area=20auch=20im=20Hauptbereich?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bisher bekam nur .topbar Safe-Area-Padding, aber .content-wrapper rechnete weiter starr mit --topbar-h. Im PWA-Standalone-Modus auf iPhones mit Notch lief der Kalender dadurch oben in die Status-Bar und unten in den Home-Indicator hinein — die Wochentag-Header und Tagesnummern der ersten Zeile waren verdeckt, die letzte Zeile zu kurz. - .content-wrapper: margin-top und height berechnen jetzt safe-top und safe-bottom mit ein - .sidebar (Mobile-Overlay): top startet ebenfalls unterhalb der vergrösserten Topbar Version v10 → v11. --- frontend/css/app.css | 15 ++++++++++++++- frontend/index.html | 20 ++++++++++---------- frontend/js/version.js | 2 +- frontend/sw.js | 2 +- 4 files changed, 26 insertions(+), 13 deletions(-) diff --git a/frontend/css/app.css b/frontend/css/app.css index d2d4da2..944e58a 100644 --- a/frontend/css/app.css +++ b/frontend/css/app.css @@ -1534,7 +1534,20 @@ a { color: var(--primary); text-decoration: none; } /* iOS notch / home-indicator safe areas (PWA standalone) */ @supports (padding: env(safe-area-inset-top)) { - .topbar { padding-top: env(safe-area-inset-top); height: calc(var(--topbar-h) + env(safe-area-inset-top)); } + .topbar { + padding-top: env(safe-area-inset-top); + height: calc(var(--topbar-h) + env(safe-area-inset-top)); + } .sidebar { padding-bottom: env(safe-area-inset-bottom); } + /* The main content sits below the (now taller) topbar and must not + extend behind the home indicator at the bottom. */ + .content-wrapper { + margin-top: calc(var(--topbar-h) + env(safe-area-inset-top)); + height: calc(100vh - var(--topbar-h) - env(safe-area-inset-top) - env(safe-area-inset-bottom)); + } + /* On mobile the slide-in sidebar also needs to start below the larger topbar */ + @media (max-width: 768px) { + .sidebar { top: calc(var(--topbar-h) + env(safe-area-inset-top)); } + } } diff --git a/frontend/index.html b/frontend/index.html index c61f3c6..6043c48 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -4,7 +4,7 @@ - Calendarr v10 + Calendarr v11 @@ -80,7 +80,7 @@ - + @@ -185,7 +185,7 @@ Meine Kalender
- + @@ -235,7 +235,7 @@
- +
@@ -243,7 +243,7 @@
- +
@@ -253,7 +253,7 @@
- +
@@ -261,7 +261,7 @@
- +
@@ -311,7 +311,7 @@
- +
@@ -870,7 +870,7 @@ scarriffleservices@gmail.com

diff --git a/frontend/js/version.js b/frontend/js/version.js index 31ecc0c..3fc6af0 100644 --- a/frontend/js/version.js +++ b/frontend/js/version.js @@ -1,2 +1,2 @@ // Increment APP_VERSION with every code change -export const APP_VERSION = 'v10'; +export const APP_VERSION = 'v11'; diff --git a/frontend/sw.js b/frontend/sw.js index 11b9f36..a76f4fb 100644 --- a/frontend/sw.js +++ b/frontend/sw.js @@ -1,7 +1,7 @@ // Calendarr Service Worker // Cache-first for static assets, network-first for /api/* (graceful offline) -const CACHE_VERSION = 'calendarr-v10'; +const CACHE_VERSION = 'calendarr-v11'; const STATIC_ASSETS = [ '/', '/index.html',