Verwenden Sie das Farbschema "color", wenn das dunkle Schema verwendet wird, andernfalls verwenden Sie meine Farbe im Thema

Ich möchte etwas Ähnliches wie das hier umsetzen:

.some-link {
  @if var(--scheme-type) == 'dark' {
    color: var(--primary);
  } @else {
    color: #3b5998;
  }
}

Aber natürlich ist das nicht möglich, da es in CSS kein if gibt und SCSS nicht zur Laufzeit verarbeitet wird.

Soweit ich sehen kann, fügt Discourse keine Klassen hinzu, um anzuzeigen, ob der dunkle Modus aktiv ist, und CSS erlaubt keine benutzerdefinierten Eigenschaften in Selektoren.

Habt ihr Ideen, was die beste Workaround-Lösung sein könnte?

Ich glaube, das ist das, wonach du suchst:

Du kannst also in color_definitions.scss folgendes tun:

$my-theme-color: dark-light-choose($primary, red);

:root {
  --my-theme-color: #{$my-theme-color};
}

Und dann verwendest du die neue, für Dunkel-/Hellmodus angepasste Eigenschaftsvariable in deinem Theme:

body {
  color: var(--my-theme-color);
}

Yay, scheint zu funktionieren :yum:

Etwas seltsam, dass die Parameter nicht in derselben Reihenfolge wie der Funktionsname sind.

Es muss also dark-light-choose(#3b5998, $primary) sein.