OK, ich denke, das Problem war, dass bei jedem Farbschema die Option „Benutzer können dies auswählen…“ oder was auch immer nicht aktiviert war. Funktioniert jetzt.
Ich habe ein seltsames Problem, das nur 2 Kategorien zu betreffen scheint.
Wenn im Dunkelmodus ein Refresh das Might Site Logo anzeigt. . das Umschalten zu Hell und zurück zu Dunkel behebt es. Aber es tritt bei einem erneuten Refresh wieder auf.
Nach dem Refresh
Um genauer zu sein, scheint es nur das Thema Logos zu betreffen. Andere Themen in der Kategorie scheinen in Ordnung zu sein. Andere Themen in dieser Kategorie sind nicht betroffen. Könnte es damit zusammenhängen, dass in diesem Thema die 2 Logos hochgeladen wurden?
Korrektur, es scheint, dass dies auch beim ersten Laden der Seite der Fall ist. Vielleicht ein Problem mit Discoures Browsererkennung für den Dunkelmodus?
Ich kann dieses Problem nicht reproduzieren. Könnten Sie bitte die Schritte, den Browser und das Gerät, das Sie verwendet haben, detailliert beschreiben?
Unsere Nutzer berichteten, dass das Forum nach dem manuellen Wechsel in den Dunkelmodus automatisch wieder in den Hellmodus wechselt, sobald das Gerät in den Hellmodus zurückkehrt.
Zur Reproduktion:
- Stellen Sie die Geräteeinstellungen auf Hellmodus ein
- Aktivieren Sie den Umschaltknopf in der Seitenleiste
- Aktivieren Sie den Dunkelmodus auf Ihrem Gerät
- Deaktivieren Sie den Dunkelmodus auf Ihrem Gerät
→ Die Discourse-Instanz wechselt in den Hellmodus. Das erwartete Verhalten ist, dass das Forum aufgrund der manuellen Wahl des Nutzers im Dunkelmodus bleibt.
Grundsätzlich wäre es großartig, die Option des alten Verhaltens zu erhalten, um zwischen Dunkelmodus, Hellmodus und automatischer Umschaltung ein- und auszuschalten.
Ich glaube, ich benutze Android 10 auf einem LG G8X ThinQ, dem mit der Dual-Screen-Hülle.
Wenn ich die Apps wechsle, scheint es, als ob beim Zurückwechseln kurz das helle Thema geladen wird, bevor es zu Dunkel wechselt. Ähnlich wie beim Skinning von Fenstern. Das helle Logo bleibt bestehen (mobiles Logo).
@jrgong Die Erklärung, wie man es reproduziert und die vermutete Ursache, ist auch meine.
Der Browser ist im hellen Modus und der Schalter wechselt/erzwingt den dunklen Modus. Dann wechselt Discourse teilweise zum hellen Modus.
Ich sehe bei jedem Aktualisieren oder beim Öffnen eines Links in einem neuen Tab kurz das gegensätzliche Farbschema aufblitzen. Aus irgendeinem Grund sehe ich auch nach dem Absenden einer neuen Antwort ein ähnliches Aufblitzen.
Ich habe ein helles Thema aktiviert und mein Betriebssystem ist auf den Dunkelmodus eingestellt. Daher sehe ich den Unterschied, wenn ich zum hellen Modus zurückschalte.
Ich vermute, dass die Farben auf der Client-Seite vertauscht werden, aber die Benutzereinstellungen bleiben unberührt? Ist es möglich, die Benutzereinstellung „Farbschema“ beim Umschalten zu aktualisieren, um dies zu vermeiden? Der clientseitige Wechsel kann für einen nahtlosen Übergang sorgen, und die Änderung der Benutzereinstellung kann das kurze Aufblitzen des gegensätzlichen Farbschemas beim Aktualisieren vermeiden?
@jordan.vidrine Ich wollte das nur noch einmal zur Sprache bringen. ![]()
Es sollte im neuen Header-Dropdown angezeigt werden. (Derjenige, der die „Seitenleiste“ ist, aber in Dropdown-Form)
@awesomerobot und @jrgong nur ein Update. Dies wird untersucht ![]()
Leider hat es das nicht. Aber jetzt weiß ich warum.
navigation_menu ist auf Header-Drop-Down gesetzt, aber ich konnte die Option nicht sehen. Aber als ich add_color_scheme_toggle_to_header deaktivierte, erschien sie im Dropdown-Menü. Es scheint also, dass sie nur an einem Ort angezeigt wird.
Danke! ![]()
Diese Komponente kann zwischen „hellen“ und „dunklen“ Farbschemata wählen, aber sie wechselt nicht zwischen hellem und dunklem Modus, da @media (prefers-color-scheme) nicht beachtet wird.
Eine Theme-Komponente, die so aussieht:
CSS
@media (prefers-color-scheme: light) {
.darkonly { display: none; }
}
@media (prefers-color-scheme: dark) {
.lightonly { display: none; }
}
und HEAD
<script type='text/x-handlebars' data-template-name='/connectors/above-site-header/darkdetector'>
<span class="darkonly">Dunkel</span><span class="lightonly">Hell</span>
</script>
zeigt den Text „hell“ an, auch wenn der dunkle „Modus“ aktiviert ist (oder besser gesagt: zeigt „dunkel“ oder „hell“ an, abhängig vom Dunkelmodus des Betriebssystems und unabhängig vom gewählten Farbschema).
Gibt es dafür eine Lösung? Es gibt ziemlich viele Dinge, die von diesen Media Queries abhängen.
Wenn Discourse ähnlich wie Windows XP ist, versuchen Sie, den Browser/das Betriebssystem im hellen Modus zu belassen und Discourse im dunklen Modus zu verwenden. Unter Windows XP wird das Farbschema immer über das Standarddesign gelegt.
Wenn mehr als ein dunkles Farbschema vom Benutzer auswählbar ist, erscheinen die beiden Dropdowns und das Toggle-Symbol wird angezeigt.

Wenn nur ein dunkles Farbschema vom Benutzer auswählbar ist, verschwindet das Dropdown „Dunkel“ und stattdessen erscheint das Kontrollkästchen „Automatischer Dunkelmodus“.
Wenn ein Benutzer denkt: „Hey, ich möchte nicht, dass es automatisch ist, ich möchte den Schalter verwenden“ und das Kontrollkästchen „Automatisch“ deaktiviert, verschwindet der Schalter.
Um den manuellen Schalter zu erhalten, müssen Sie also die automatische Umschaltung aktivieren. ![]()
Die Notch eines iPhones erhält ihre Farbe also über die Tags <meta name="theme-color" media="(prefers-color-scheme: ...)" content="#...">, die in den HTML-Header injiziert werden. Das bedeutet, wenn sich Ihr Gerät im Dunkelmodus befindet und der Umschalter ein helles Farbschema ausgewählt hat, oder wenn sich das Gerät im Hellmodus befindet und der Umschalter ein dunkles Farbschema ausgewählt hat, ist die Farbe der iPhone-Notch falsch.
Ich glaube, dieses Verhalten ist unerwünscht:
Derzeit ist die Systemfarbe auf Dunkelmodus eingestellt. Ich verwende ein schwarz/weißes Logo für helle/dunkle Designs.
- Auf der Instanz stelle ich das Design auf Hell.
- Besuchen Sie eine Themenseite.
- Anfangs wird das richtige Logo geladen, aber:
- Scrollen Sie nach unten und oben (die Kopfzeile sollte vom vollständigen Logo zum Thema Titel zum vollständigen Logo wechseln).
- Beim Zurückscrollen nach oben (z. B. wo der Thema Titel wieder zum vollständigen Logo wird) erscheint das falsche Logo (weiß auf weiß).
Ich versuche, dies lokal zu reproduzieren, und selbst wenn nur ein dunkles Farbschema auswählbar ist, sehe ich immer noch das Dropdown-Menü anstelle des automatischen Modus (in den Admin-Einstellungen).
Reproduktion:
- Leere Discourse-Installation „out of the box“ von heute Morgen
- Siehe dies in meinem Profil → Oberfläche
- Entfernen Sie die Farbschemata „Dracula“, „Solarized Dark“ und „WCAG Dark“
- Gehen Sie zurück zum Profil
- Sehen Sie, wie das Dropdown-Menü verschwindet und die Überschrift „Dunkler Modus“ sowie die Checkbox erscheinen
Gesteuert durch showDarkColorSchemeSelector und showDarkModeToggle in interface.hbs. Siehe auch den Kommentar in interface.js
@discourseComputed("userSelectableDarkColorSchemes")
showDarkColorSchemeSelector(darkSchemes) {
// wenn ein Standard-Dark-Schema gesetzt ist
// Dropdown hat zwei Einträge (deaktivieren / Standard des Standorts verwenden)
// aber wir zeigen in diesem Fall eine Checkbox an
const minToShow = this.defaultDarkSchemeId > 0 ? 2 : 1;
return darkSchemes && darkSchemes.length > minToShow;
},
Danke für die ausführliche Antwort. Ich habe diese dunklen Themen nur "nicht zulässig" gemacht, sodass sie nicht ausgewählt werden konnten. Ich werde nun einige Tests durchführen und diese Themen komplett löschen.
Ja, das ist ein guter Grenzfall, den Sie gefunden haben. Dieser Schalter funktioniert in diesem Szenario nur, wenn der Benutzer auch diese persönliche Präferenz für discourse-core aktiviert hat.
Wir werden daran arbeiten, dies auch in diesem Fall zum Laufen zu bringen.




