Ich hatte bereits beschrieben, wie man Iframes zur Darstellung von Informationen im Lovelace-Dashboard nutzen kann. Sofern man diese Inhalte selbst zur Verfรผgung stellt, sollte man darauf achten, dass diese auch Dark-Theme freundlich bereitgestellt werden. Aber der Reihe nach ๐
Vor wenigen Jahren wurde die Darstellung von Webseiten/APPs im Dark-Theme Modus populรคr. Mit anderen Worten: Wรคhrend bis dahin Inhalte klassisch vor einem weiรen Hintergrund mit dunkler Schrift dargestellt wurden, drehte man die Farben einfach um: Dunkler Hintergrund und helle Schrift.
Keine Raketenwissenschaft und deswegen ist es fรผr mich auch nicht wirklich verstรคndlich, warum darum damals so ein Hype gemacht wurde.
Jede App „muss“ seit dem auch รผber einen Dark-Mode verfรผgen, damit die Nutzer diesen aktivieren kรถnnen. Zugegeben: Ich selbst bevorzuge den Dark-Mode tatsรคchlich auch.
Also habe ich diesen auch in der Home Assistant App aktiviert. Doof war nun, dass die per IFrame [Wikipedia: IFrame] eingebundenen Inhalte durch die „klassische Darstellung“ (also weiรer Hintergrund und dunkler Text) enorm hervorstechen, wรคhrend alle anderen Inhalte schรถn dunkel sind.
Du magst Home Assistant? Dann abonniere kostenlos meine Beitrรคge mit Tipps, Tricks und Anleitungen rund um Home Assistant:
Follow Home Assistant
Garantiert kein Spam, keine Werbung und immer mit Abmelde-Link, solltest du es dir anders รผberlegen!
Da im Browser jedoch das Light-Mode zum Einsatz kommt, wรคhrend die App bei mir im Dark-Mode ist, kann ich nicht einfach den HTML-Code des IFrames รคndern, so dass dieser „dunkel“ ist. Je nach Gerรคt, mit welchem Home Assistant angezeigt wird, kann die Darstellung also im Light- oder Dark-Mode erfolgen.
Die per IFrame eingebundenen Inhalte mรผssen hierauf also situativ reagieren kรถnnen.
Dank ein wenig CSS ist dies natรผrlich mit wenigen Zeilen Code mรถglich:
<style>
@media (prefers-color-scheme: light) {
body {
background-color: white;
color: black;
}
}
@media (prefers-color-scheme: dark) {
body {
background-color: #1c1c1c;
color: white;
}
}
</style>
Den zuvor gezeigten Code habe ich einfach im HTML-Header eingebaut, und schon wird beim Aufruf des IFrames situativ zwischen Light-Mode und Dark-Mode unterschieden/gewechselt.
Natรผrlich setzt dies voraus, dass in dem im Body folgenden HTML keine Klassen oder รคhnliches fรผr die Farbgebund/Gestaltung genutzt werden. In diesem Fall muss der CSS-Code natรผrlich um die jeweiligen Klassen ergรคnzt werden, damit die automatisch richtige Darstellung wie gewรผnscht funktioniert!
Produktempfehlungen