Вы можете легко перекомпилировать всю страницу динамически, выполнив две вещи:
Сначала создайте дубликат таблицы стилей и добавьте селектор класса тела, например body.other-theme
, в начало каждого селектора, который вы хотите изменить. Таким образом, ваши две таблицы стилей могут выглядеть так:
/* main-theme.css */
#content {
background: white;
}
/* other-theme.css */
body.other-theme #content {
background: black;
}
Затем, когда пользователь установит флажок, просто добавьте класс other-theme
в тело документа. Это вызовет отображение всех стилей других тем.
В каждой таблице стилей вы можете установить цвета темы и другие переменные, которые будут характерны для этой темы.