Я создал файл sass, который определяет цвета, которые будут использоваться для некоторых компонентов в качестве переменных, а затем они используются в других файлах .sass.
Я подумал, что я бы просто нужно найти способ определять разные значения в зависимости от того, какая темная или светлая версия скомпилированного CSS мне нужна.
Я считаю невозможным заставить .sass присваивать разные значения переменные во время компиляции.
Я новичок в Sass, поэтому, вероятно, неправильно подхожу к этой проблеме.
Моей последней идеей было определить собственный в верхнем файле «light.sass» и используйте оператор @if в файле theme.sass, чтобы соответствующим образом установить переменные.
Код: Выделить всё
light_version.sass
@use "abstracts"
@use "base"
@use "components"
@use "layout"
@use "pages"
@use "themes"
@use "vendors"
@function application_theme()
@return 'light'
Код: Выделить всё
versions.sass
@if application_theme() == 'light'
$anchor-text-colour: colours.$black
$default-background-colour: colours.$white
$default-text-colour: colours.$black
Как указано выше. при компиляции ошибка
Код: Выделить всё
Error: Undefined variable.
14:18:44 css.1 | ╷
14:18:44 css.1 | 5 │ color: themes.$anchor-text-colour
14:18:44 css.1 | │ ^^^^^^^^^^^^^^^^^^^^^^^^^^
Я не уверен, заключается ли проблема в том, что переменная не возвращается функцией, как ожидалось, или более вероятно, что на данном этапе функция находится вне области видимости, потому что, если я неправильно напишу имя функции, ошибка компиляции не вернется.
Подробнее здесь: https://stackoverflow.com/questions/781 ... s-compiled
Мобильная версия