UNPKG

iobroker.lovelace

Version:

With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI

179 lines (135 loc) 7.08 kB
# Themes anpassen (Frontend-Update 2026) Mit dem Frontend-Update wurde die Theme-Engine von Home Assistant grundlegend überarbeitet. **Bestehende Themes funktionieren weiterhin** die alten Variablen bleiben erhalten. Es gibt aber ein paar Änderungen, die zu sichtbaren Problemen führen können. Das häufigste: **weiße Hintergründe bei Eingabefeldern**. ## Inhalt * [Das Problem: weiße Eingabefelder](#das-problem-weiße-eingabefelder) * [Schnelle Lösung](#schnelle-lösung) * [Empfohlene Theme-Vorlage (hell + dunkel)](#empfohlene-theme-vorlage-hell--dunkel) * [Was hat sich geändert?](#was-hat-sich-geändert) * [Häufige Fragen](#häufige-fragen) --- ## Das Problem: weiße Eingabefelder Mehrere Eingabe-Elemente (Textfelder, Auswahllisten, Schieberegler, Schalter, Checkboxen, Zeit-Eingaben …) verwenden jetzt neue Komponenten. Diese holen ihre Hintergrundfarbe **nicht mehr** aus den alten Variablen `--mdc-text-field-fill-color` / `--input-fill-color`, sondern aus einer **neuen Variable**: ``` --ha-color-form-background ``` Deren Standardwerte sind: | Modus | Standard | Ergebnis | |-------|----------|----------| | Hell | `--ha-color-neutral-95` | `#f3f3f3` (fast weiß) | | Dunkel | `--ha-color-neutral-20` | `#363636` (dunkel) | **Wichtig:** Der dunkle Wert greift **nur, wenn der Dunkelmodus aktiv ist**. `--ha-color-form-background` folgt **nicht** automatisch `--card-background-color`. Wenn dein Theme also nur `card-background-color` und die alten `--mdc-text-field-*`-Variablen setzt (wie z. B. das klassische *synthwave*-Theme), bleibt `--ha-color-form-background` auf dem hellen Standard **weiße Felder**, auch in einem ansonsten dunklen Theme. --- ## Schnelle Lösung Setze in deinem Theme die neue Variable `--ha-color-form-background` (plus die beiden Varianten für Hover und deaktiviert): ```yaml mein_theme: ha-color-form-background: 'var(--card-background-color)' # Feld-Hintergrund ha-color-form-background-hover: 'var(--light-primary-color)' # beim Überfahren ha-color-form-background-disabled: 'var(--primary-background-color)' # deaktiviert ``` Du kannst statt der `var(...)` auch direkt feste Farben angeben, z. B. `ha-color-form-background: '#34294f'`. ### Verwandt: weiße Accordions / Ausklapp-Bereiche Dieselbe Art neuer Variable betrifft aufgeklappte **Accordions / Ausklapp-Bereiche** (z. B. im Browser-Mod-Einstellungsbereich). Deren Kopfzeilen-Hintergrund nutzt `--ha-color-fill-neutral-normal-active`, das ebenfalls hell voreingestellt ist. Bei weißen Accordion-Kopfzeilen ergänze: ```yaml mein_theme: ha-color-fill-neutral-normal-active: 'var(--card-background-color)' ha-color-fill-neutral-normal-hover: 'var(--light-primary-color)' ``` Die Regel ist überall dieselbe: Themes, die nur alte Variablen setzen, überschreiben die neuen `--ha-color-*`-Variablen nicht außer der Dunkelmodus ist aktiv (siehe unten). > Beim *synthwave*-Theme reicht es genau, diese drei Zeilen zu ergänzen > es hat `card-background-color` bereits gesetzt, aber nicht > `ha-color-form-background`. Die aktuelle Upstream-Version des Themes setzt diese > Variable bereits selbst. --- ## Empfohlene Theme-Vorlage (hell + dunkel) Damit helle und dunkle Darstellung beide korrekt aussehen, benutze den `modes`-Block. Home Assistant wählt dann automatisch den passenden Satz: ```yaml mein_theme: # für beide Modi primary-color: "#18bcf2" accent-color: "#f36d00" modes: light: primary-background-color: "#fafafa" card-background-color: "#ffffff" secondary-background-color: "#e5e5e5" primary-text-color: "#212121" secondary-text-color: "#727272" dark: primary-background-color: "#111111" card-background-color: "#1c1c1c" secondary-background-color: "#282828" primary-text-color: "#e1e1e1" secondary-text-color: "#9b9b9b" ha-color-form-background: "#1c1c1c" ha-color-form-background-hover: "#282828" ha-color-form-background-disabled: "#111111" ``` `--ha-color-form-background` pro Modus zu setzen ist genau das, was die neuen Eingabefelder korrekt einfärbt. Im Hellmodus brauchst du es meist nicht, weil der helle Standard dort passt im Dunkelmodus (oder bei dunklen Themes ohne `modes`) ist es nötig. --- ## Was hat sich geändert? ### 1. Neues mehrschichtiges Farb-System Es gibt jetzt drei Ebenen von Farb-Variablen: | Ebene | Beispiele | Zweck | |-------|-----------|-------| | **Kern** | `--ha-color-primary-50`, `--ha-color-neutral-90` | Rohe Farbpalette. Nicht direkt verwenden. | | **Semantisch** | `--ha-color-text-primary`, `--ha-color-fill-neutral-normal-resting`, `--ha-color-surface-*` | Zweckgebundene Farben, abgeleitet aus der Kern-Ebene. | | **Alt (Kompatibilität)** | `--card-background-color`, `--primary-text-color`, `--primary-color` | Bleiben vorhanden und funktionieren weiter. | Themes, die die alten Variablen setzen, laufen weiter. Neue Komponenten lesen aber teils die semantischen oder `--wa-*`-Variablen die ein Theme, das nur alte Variablen setzt, nicht überschreibt. ### 2. `primary-color` erzeugt automatisch eine Palette Wenn ein Theme `primary-color` setzt, erzeugt das Frontend daraus automatisch die komplette `--ha-color-primary-*`-Palette. Eine einzelne `primary-color` wirkt sich also auf die neuen Variablen aus. **Hintergründe/Oberflächen werden nicht automatisch abgeleitet** die musst du selbst setzen. ### 3. Dunkelmodus Der Dunkelmodus setzt die dunklen Werte der neuen Farb-Ebenen **nur, wenn der Dunkelmodus auch wirklich aktiv ist**. Ein "dunkel aussehendes" Theme, das im Hellmodus angewendet wird (ohne `modes`), startet von den **hellen** Standard- Farben weiße Felder. Deshalb: `modes`-Block verwenden. ### 4. Entfernte interne Dateien Intern wurden alte Style-Dateien entfernt und durch ein neues Theme-System ersetzt. Themes, die nur dokumentierte HA-Variablen nutzen, sind nicht betroffen. Themes, die interne Variablennamen kopiert hatten, können kaputtgehen. --- ## Häufige Fragen **Muss ich mein Theme komplett neu schreiben?** Nein. In den meisten Fällen reicht es, `ha-color-form-background` (plus `-hover` und `-disabled`) zu ergänzen. **Mein Theme war nur für Dunkel gedacht und sieht jetzt teils hell aus (weiße Felder).** Das ist der häufigste Fall. Setze `ha-color-form-background` auf eine dunkle Farbe (z. B. `var(--card-background-color)`). Optional: die Werte in einen `modes: dark:`-Block verschieben und den Dunkelmodus aktivieren, dann greifen auch die dunklen Standardwerte der neuen Variablen automatisch. **Wo trage ich das Theme ein?** Wie bisher in den Adapter-Einstellungen unter "Themes" (YAML). Der Adapter liefert diese Themes unverändert an das Frontend. **Brauche ich die neuen `--ha-color-*`-Variablen?** Für die meisten Themes reicht es, **`ha-color-form-background`** zu ergänzen das ist die einzige neue Variable, die fast alle betrifft (weiße Eingabefelder). Die übrigen `--ha-color-*`-Variablen sind nur für Feinabstimmung nötig.