Используйте цветовую схему, если включена тёмная тема, иначе используйте мой цвет в теме

Я хочу сделать что-то вроде этого:

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

но, конечно, это невозможно, потому что в CSS нет конструкции if, а SCSS не обрабатывается во время выполнения.

Насколько я понимаю, Discourse не добавляет никаких классов, чтобы указать, активна ли тёмная схема, а CSS не позволяет использовать пользовательские свойства в селекторах.

Есть какие-то идеи, какой может быть лучшее решение?

Я думаю, это то, что вы ищете:

Таким образом, в color_definitions.scss вы можете написать:

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

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

а затем использовать новое пользовательское свойство для смены тёмной/светлой темы в вашей теме:

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

Ура, кажется, работает :yum:

Немного странно, что параметры не в том же порядке, что и в названии функции.

Поэтому должно быть dark-light-choose(#3b5998, $primary)