Meta theme-color respektiert das aktuelle Farbschema nicht

Ich habe mir das letzte Woche noch einmal angesehen und konnte diesen Fehler mit den folgenden Schritten reproduzieren:

  1. Konfigurieren Sie Ihr Betriebssystem so, dass es den Dunkelmodus verwendet (in Windows 11 geschieht dies unter Einstellungen → Personalisieren → Farben → Wählen Sie Ihren Modus).

  2. Wählen Sie in Ihren Discourse-Einstellungen unterschiedliche Farbschemata für den normalen und den Dunkelmodus aus und laden Sie die Seite neu.

  3. Nun sollte das für den Dunkelmodus ausgewählte Farbschema in der Benutzeroberfläche wirksam werden (wie erwartet), aber das theme-color-Metatag enthält den Wert der header_background-Farbe des Farbschemas, das Sie für den Hellmodus ausgewählt haben, obwohl es eigentlich der Dunkelmodus sein sollte.

Dies ist etwas schwierig zu beheben, da wir auf der Serverseite – wo alle Metatags gerendert werden – keinen Kontext darüber haben, ob der Client/Browser das helle oder dunkle Farbschema verwendet. Wir fügen einfach die Farbdefinitionen für beide Schemata hinzu, und der Client/Browser wählt dann dasjenige aus, das den Präferenzen des Benutzers gemäß der prefers-color-scheme-Media-Query entspricht.

Es sieht jedoch so aus, als ob das theme-color-Metatag ein media-Attribut akzeptiert, sodass wir ein weiteres theme-color-Metatag für das dunkle Schema mit media auf (prefers-color-scheme: dark) setzen können. Ich werde versuchen, dies diese Woche zu erledigen.

5 „Gefällt mir“