In wenigen Tagen werde ich diesen PR in den Core mergen, der eine Änderung an der Kompilierung von Plugin-Stylesheets vornimmt. Die Änderung betrifft SCSS-Farbvariablen, die in Plugin-Stylesheets verwendet werden. Die Kurzfassung lautet: Sie müssen durch CSS-Eigeneigenschaften ersetzt werden. Die meisten Plugins wurden bereits aktualisiert, und in vielen Fällen ist dies eine einfache Änderung: Die SCSS-Variable muss durch eine CSS-Eigeneigenschaft ersetzt werden:
- background-color: $primary-low;
+ background-color: var(--primary-low);
Der Leitfaden unter Update themes and plugins to support automatic dark mode enthält weitere Beispiele und zeigt zudem, wie komplexere Farbtransformationen zu handhaben sind. (Dieser Leitfaden sollte für Plugin-Autoren ausreichen, um sicherzustellen, dass ihre Styles korrekt funktionieren.)
Falls Sie sich fragen, warum wir diese Änderung vornehmen, lesen Sie weiter.
Bisher wurden Core- und Plugin-Stylesheets pro Theme kompiliert, um das Farbschema des Themas an allen Stellen einzubeziehen, an denen SCSS-Farbvariablen verwendet wurden. Das bedeutete, dass eine Website mit vielen Themes (oder eine Multisite-Umgebung) lange zum Vorkompilieren benötigte, da die Anzahl der Core- und Plugin-Stylesheets mit der Anzahl der aktiven Themes multipliziert werden musste, um alle erforderlichen Kombinationen abzudecken.
Seit August 2020 haben wir, um den automatischen Wechsel des dunklen Modus zu unterstützen, ein separates Stylesheet für Farbdefinitionen hinzugefügt, das die Farbvariablen als CSS-Eigeneigenschaften speichert. Diese Änderung ermöglichte es uns, Farbschemata dynamisch zu wechseln, abstrahierte Farben jedoch auch aus den meisten Stylesheets. Dank der Magie der CSS-Eigeneigenschaften können wir nun Farben überall (Core, Plugins, Themes) referenzieren, ohne jedes Theme beim Kompilieren des Stylesheets laden zu müssen.
In den letzten Monaten haben wir alle Plugins auf die Verwendung von CSS-Eigeneigenschaften umgestellt. Die überwiegende Mehrheit der Discourse-Plugins ist nun auf dem neuesten Stand, aber es gibt wahrscheinlich noch vereinzelte Plugins, die weiterhin SCSS-Variablen für Farben verwenden und aktualisiert werden müssen.
