Karte: Legende Hintergrund theme-aware korrigieren #5
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Der Hintergrund der Kartenlegende wird nicht korrekt an das aktive Theme (Light/Dark) angepasst.
Ursachen
Hardcodierte Farben:
.legendhatbackground: #ffffff(Light) und[data-bs-theme="dark"] .legendhatbackground: #1e2128(Dark). Das Weiß im Light-Mode passt nicht zum Tabler-Hintergrundton.Kein JS-Update beim Theme-Wechsel:
map.jsreagiert aufthemechangenur mitsetMapTheme()(Kachel-Tausch). Die Legende selbst wird nicht aktualisiert – sie verlässt sich ausschließlich auf CSS, was in Leaflets eigenem Rendering-Kontext unzuverlässig ist.Leaflet-Control-Kontext: Leaflet rendert Controls in
position: absolute-Containern innerhalb des Map-Div. Eigene Leaflet-Styles können die Hintergrundfarbe überschreiben oder CSS-Variablen nicht auflösen.Lösung
static/js/map.js
themechange-Listener um explizites Setzen der Legende erweitern:updateLegendTheme(theme)perL.DomUtilden Hintergrund direkt auf dem Legend-Element setzenlegend.onAdd) ebenfalls das Theme auslocalStoragedirekt anwendenstatic/css/style.css
var(--tblr-bg-surface)oder#ffffffmit korrektem Border)var(--tblr-bg-surface)im Dark-Kontext)Betroffene Dateien
static/js/map.js– Legend-Init undthemechange-Handlerstatic/css/style.css–.legendund[data-bs-theme="dark"] .legendImplementierung abgeschlossen (v0.08.23)
static/css/style.css
.legend: Hardcodierte Farben ersetzt durch CSS-Variablen:background: var(--tblr-bg-surface, #ffffff)border-color: var(--tblr-border-color, rgba(0,0,0,.12))color: var(--tblr-body-color, #212529)[data-bs-theme="dark"] .legend: Nur noch Box-Shadow-Anpassung nötig – Farben kommen aus den CSS-Variablenstatic/js/map.js
legendDivals Modul-Variable gespeichertupdateLegendTheme(theme): setzt Inline-Styles direkt auf dem Leaflet-Control-Element (zuverlässig auch im Leaflet-Rendering-Kontext)legend.onAdd: ruftupdateLegendTheme()beim Init mit dem gespeicherten Theme aufthemechange-Listener: ruft zusätzlichupdateLegendTheme()auf