Через несколько дней я объединю этот PR в основной репозиторий, который вносит изменения в процесс компиляции стилей плагинов. Эти изменения затрагивают переменные цветов SCSS, используемые в стилях плагинов. Если кратко: их необходимо заменить на пользовательские свойства CSS. Большинство плагинов уже обновлены, и во многих случаях это простое изменение — переменную SCSS нужно заменить на пользовательское свойство CSS:
- background-color: $primary-low;
+ background-color: var(--primary-low);
В руководстве по адресу Update themes and plugins to support automatic dark mode приведены дополнительные примеры, а также показано, как обрабатывать более сложные преобразования цветов. (Этого руководства должно быть достаточно авторам плагинов, чтобы убедиться, что их стили будут работать корректно.)
Если вы спрашиваете, почему мы вносим эти изменения, читайте дальше.
Ранее стили ядра и плагинов компилировались для каждой темы, чтобы включить цветовую схему темы в любом месте, где использовались переменные цветов SCSS. Это означало, что сайту с множеством тем (или в среде с несколькими сайтами) требовалось много времени для предварительной компиляции, так как ему приходилось умножать количество стилей ядра и плагинов на количество активных тем, чтобы охватить все необходимые комбинации.
С августа 2020 года, для поддержки автоматического переключения тёмного режима, мы добавили отдельный файл стилей с определениями цветов, в котором переменные цветов хранятся как пользовательские свойства CSS. Это изменение позволило нам переключать цветовые схемы на лету, но также абстрагировало цвета из большинства файлов стилей. Благодаря магии пользовательских свойств CSS мы теперь можем ссылаться на цвета повсюду (ядро, плагины, темы), не загружая каждую тему при компиляции стилей.
За последние несколько месяцев мы перевели все плагины на использование пользовательских свойств CSS. Подавляющее большинство плагинов Discourse уже обновлено, но, вероятно, где-то есть плагин, который всё ещё использует переменные SCSS для цветов, и его необходимо обновить.
