Как менять скриптом переменные заданные в препроцессоре SASS

Верстка сайта сделана в препроцессоре sass.

Основные цвета сайта записанные в переменные, типа:

$primary = #000

Сейчас веду работу над скриптом который будет менять основной цвет сайта.

Вопрос как менять эту переменную?

Была мысль что в основной css передаются эти переменные, но нет, классические css переменные и в sass разные вещи.

Если какое то решение или придется переписать на классические?


Ответы (1 шт):

Автор решения: Vasily

Вы планируете менять цвета в runtime, тогда как sass работает на этапе компиляции, приводя все к обычному CSS.

Вам следует использовать несколько переменных для нужных цветов:

$color-primary: red;
$color-secondary: blue;

Определить их для отдельных классов:

.primary {
   color: %color-primary;
}

.secondary {
   color: %color-secondary;
}

После чего Вы сможете управлять сменой цвета через добавление / удаление классов:

const changeColor = () => {
   const p = document.querySelector("p")
   p.classList.add("secondary")
}
→ Ссылка