Вы можете установить имя класса темы на root и изменить его на js. Я бы порекомендовал иметь все темы на карте, а не по отдельности. Например:
$themes: (
dark-theme: (
primary: #BB86FC,
...
),
light-theme: (
primary: #6200EE,
...
)
);
И затем выполните итерации по ним:
@each $theme in $themes {
body.#{$theme} .example-class{
color: map-get($theme, property);
}
}
Теперь вам нужно изменить класс тела, чтобы изменить тему:
const
[button] = document.getElementsByTagName('button'),
[body] = document.getElementsByTagName('body')
button.addEventListener('click', () => {
body.classList.add('light-theme')
})
Пусть Я добавлю очень простой пример:
const [ body ] = document.getElementsByTagName('body'),
[button] = document.getElementsByTagName('button')
button.addEventListener('click', () => body.classList.toggle('dark'))
body button {
background: #fff;
color: #000;
}
body.dark button {
background: #000;
color: #fff;
}
<body>
<button>Change color</button>
</body>