From 059002670add45784918e28ced1a1c3670f96499 Mon Sep 17 00:00:00 2001 From: rene Date: Sat, 16 May 2026 11:25:04 +0200 Subject: [PATCH] =?UTF-8?q?Feature:=20Karten-UI=20vollst=C3=A4ndig=20Dark-?= =?UTF-8?q?Mode-f=C3=A4hig?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Filter-Chips, Status-Pille und Popup-Ballons passen sich dem Dark-Mode an: - .map-legend-btn: dunkel frosted-glass (rgba(24,20,16,0.88)) statt weiß - .map-legend-all (Filter-Btn): entsprechend dunkler Ton - .map-statusbar: dunkler Hintergrund + helle Schrift - .leaflet-popup-content-wrapper/.tip: --c-surface (#241C14) statt weiß Aktive Tabs behalten Layer-Farbe, Marker-Farben bleiben unverändert. components.css ?v=1015, SW by-v1024, APP_VER 1024 --- backend/main.py | 2 +- backend/static/css/components.css | 67 +++++++++++++++++++++++++++++++ backend/static/index.html | 2 +- backend/static/js/app.js | 2 +- backend/static/sw.js | 2 +- 5 files changed, 71 insertions(+), 4 deletions(-) diff --git a/backend/main.py b/backend/main.py index d8998a4..7a5b407 100644 --- a/backend/main.py +++ b/backend/main.py @@ -410,7 +410,7 @@ async def serve_media(path: str, request: _Request): raise _HE(404, "Nicht gefunden.") return _media_response(filepath) -APP_VER = "1023" # muss mit APP_VER in app.js übereinstimmen +APP_VER = "1024" # muss mit APP_VER in app.js übereinstimmen @app.get("/.well-known/assetlinks.json") async def assetlinks(): diff --git a/backend/static/css/components.css b/backend/static/css/components.css index f492328..82274fc 100644 --- a/backend/static/css/components.css +++ b/backend/static/css/components.css @@ -3149,6 +3149,73 @@ html.modal-open { color: #fff; } +/* Dark-Mode: Karten-UI-Elemente (manuell + System) */ +:root[data-theme="dark"] .map-legend-btn, +:root:not([data-theme="light"]) .map-legend-btn.dark-map { + background: rgba(24,20,16,0.88); + color: rgba(255,255,255,0.8); + border-color: rgba(255,255,255,0.15); +} +:root[data-theme="dark"] .map-legend-btn { + background: rgba(24,20,16,0.88); + color: rgba(255,255,255,0.8); + border-color: rgba(255,255,255,0.15); +} +:root[data-theme="dark"] .map-legend-btn.active { + background: var(--layer-color, var(--c-primary)); + color: #fff; + border-color: var(--layer-color, var(--c-primary)); +} +:root[data-theme="dark"] .map-legend-all { + background: rgba(36,28,20,0.92); + border-color: rgba(255,255,255,0.2); + color: rgba(255,255,255,0.7); +} +:root[data-theme="dark"] .map-legend-all.all-off { + background: rgba(10,8,6,0.92); + border-color: rgba(255,255,255,0.1); + color: rgba(255,255,255,0.9); +} +:root[data-theme="dark"] .map-statusbar { + background: rgba(24,20,16,0.92); + border-color: rgba(255,255,255,0.1); + color: rgba(255,255,255,0.7); +} +:root[data-theme="dark"] .leaflet-popup-content-wrapper, +:root[data-theme="dark"] .leaflet-popup-tip { + background: #241C14; + color: rgba(255,255,255,0.85); + box-shadow: 0 4px 16px rgba(0,0,0,0.5); +} +@media (prefers-color-scheme: dark) { + :root:not([data-theme="light"]) .map-legend-btn { + background: rgba(24,20,16,0.88); + color: rgba(255,255,255,0.8); + border-color: rgba(255,255,255,0.15); + } + :root:not([data-theme="light"]) .map-legend-btn.active { + background: var(--layer-color, var(--c-primary)); + color: #fff; + border-color: var(--layer-color, var(--c-primary)); + } + :root:not([data-theme="light"]) .map-legend-all { + background: rgba(36,28,20,0.92); + border-color: rgba(255,255,255,0.2); + color: rgba(255,255,255,0.7); + } + :root:not([data-theme="light"]) .map-statusbar { + background: rgba(24,20,16,0.92); + border-color: rgba(255,255,255,0.1); + color: rgba(255,255,255,0.7); + } + :root:not([data-theme="light"]) .leaflet-popup-content-wrapper, + :root:not([data-theme="light"]) .leaflet-popup-tip { + background: #241C14; + color: rgba(255,255,255,0.85); + box-shadow: 0 4px 16px rgba(0,0,0,0.5); + } +} + /* FAB-Gruppe rechts unten — direkt über dem Zurück-Button */ .map-fabs { position: absolute; diff --git a/backend/static/index.html b/backend/static/index.html index a4528a0..b61d0f5 100644 --- a/backend/static/index.html +++ b/backend/static/index.html @@ -103,7 +103,7 @@ - + diff --git a/backend/static/js/app.js b/backend/static/js/app.js index 66db314..d03386c 100644 --- a/backend/static/js/app.js +++ b/backend/static/js/app.js @@ -3,7 +3,7 @@ Router, State-Management, Navigation, Initialisierung. ============================================================ */ -const APP_VER = '1023'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen +const APP_VER = '1024'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen const APP_VERSION = '1.6.0'; // ← semantische Version, wird bei make release gesetzt const IS_STAGING = location.hostname === 'staging.banyaro.app'; // Cache-Bust-Parameter nach Update-Reload sofort entfernen diff --git a/backend/static/sw.js b/backend/static/sw.js index c830f76..35b700a 100644 --- a/backend/static/sw.js +++ b/backend/static/sw.js @@ -3,7 +3,7 @@ Offline-Cache + Push Notifications + Tile-Cache ============================================================ */ -const CACHE_VERSION = 'by-v1023'; +const CACHE_VERSION = 'by-v1024'; const CACHE_STATIC = `${CACHE_VERSION}-static`; const CACHE_TILES = 'ban-yaro-tiles-v1'; // bleibt über SW-Updates erhalten const CACHE_API = 'ban-yaro-api-v1'; // API-Response-Cache