Den „Dark Mode“ mit CSS abfragen

Mein Blog präsentiert sich seit Kurzem im Dark Mode, wenn das System und der Browser das unterstützen. In der Safari Technology Preview für macOS Mojave ist das zum Beispiel bereits möglich:

Seit Jahren verwende ich bereits dunkle Themes für die Editoren meiner Wahl, darum mag ich auch einen systemweiten Dark Mode. Ich finde ihn viel angenehmer für die Augen, und längere Texte lassen sich so – gerade am Abend – viel besser lesen. Darum denke ich auch, dass jedes Blog ein dunkles Theme mit sich bringen sollte. Ich habe das hier kurzerhand mit CSS Custom Properties (oder einfacher gesagt: CSS-Variablen) gelöst, etwa so:

:root {
  --text: gray;
  --background: white;
}

@media (prefers-color-scheme: dark) {
  :root {
    --text: white;
    --background: gray;
  }
}

Schon ziemlich lässig.

Entdeckt habe ich das übrigens ursprünglich in den Show Notes zu ATP #299 und dem anschließenden Forschen im CSS. Dort war zunächst das bereits seit dem IE9 in allen großen Browsern unterstützte @media (color-index: ...) im Einsatz, der technischen Basis von prefers-color-scheme.

Die Syntax ist allerdings deutlich kruder:

  • @media (color-index: 48) ist das Pendant zu @media (prefers-color-scheme: dark), weil 48 der Keycode für 0, dem Hexidezimalwert von Schwarz ist.
  • @media (color-index: 70) ist das Pendant zu @media (prefers-color-scheme: light), weil 70 der Keycode für F, dem Hexidezimalwert von Weiß ist.
  • @media (color-index: 22) ist das Pendant zu @media (prefers-color-scheme: no-preference).

Völlig Banane.

Andy Clarke geht in seinem Artikel Redesigning your product and website for dark mode noch etwas mehr ins Detail und zeigt auch einige typografische Anpassungen für den Dark Mode auf.

Marc hat ein Foto geknipst

Viel wird dieses Jahr nicht mehr passieren, oder zumindest nicht mehr so viel, dass es in den Top 9 für 2018 landen wird. Dieses Jahr habt Ihr nur zwei Essensfotos extrem geliket (und beide wurden nach einem Arbeitsamt-Besuch geknipst). Dafür hat es diesmal ein richtiges echtes Selfie in die Liste gebracht, WTF! 2018 war auf jeden Fall ein verrücktes Jahr, viel Auf und Ab und Hin und Her. 2019 kann gerne kommen! Bis nächstes Jahr, Internetfreunde! 🥂📸 #2018bestnine #marcsbestnine

Marc war hier: Egmont

Der alljährliche Weihnachtsbesuch aus Minneapolis läuft eigentlich ganz traditionell so ab: Currywurst, Star Wars im Kino und Kwak im Egmont. Star Wars gab‘s zwar dieses Jahr nicht, dafür viel Redebedarf bei einem guten Glas belgischen Bieres. In einem Jahr passiert doch schon so einiges … 🍻🎄

Karte mit dem Standort von Egmont

Marc war hier: Hanswurst

Karte mit dem Standort von Hanswurst

Marc war hier: El Pimiento

Weihnachtsessen mit der Familie. 🥘🍷

Karte mit dem Standort von El Pimiento

Marc war hier: Jumbo

Letzte Weihnachtseinkäufe … 🛒

Karte mit dem Standort von Jumbo

Marc war hier: Aquis Plaza

Karte mit dem Standort von Aquis Plaza

Marc war hier: Galeria Kaufhof

Karte mit dem Standort von Galeria Kaufhof

Marc war hier: Aachener Weihnachtsmarkt

Met und Waffeln! 😋 — mit Ina

Karte mit dem Standort von Aachener Weihnachtsmarkt

Marc war hier: Lindt Werksverkauf

Schokolade für den Verein kaufen. 🍫 — mit Ina

Karte mit dem Standort von Lindt Werksverkauf