Как грамотно организовать переключение стилей сайта light/dark?
Решений уверен много, я вижу только два, помогите определиться, не пойму какое решение лучше применить:
1) Создать общий файл стилей, переключение между темами производить посредством навешивания класса, к примеру на body, и каскадом переопределять css.
Из плюсов:
Страница сайта перезагружаться не будет.
Из минусов:
Каскады.
Общий css файл, сайт не малых размеров..
2) Вынести стили в разные файлы и подключать по отдельности, при клике на переключатель страница сайта обновится и подключиться файл css с другой темой.
Из плюсов:
Не подключаются лишние стили.
Нет каскадов.
Из минусов:
Дублирование классов и очень много..
Хранить выбор стиля собираюсь в сессии юзера и в куках.
Используйте препроцессоры. Вынесите все цвета в переменные. Никакого дублирования не будет.
2) Вынести стили в разные файлы и подключать по отдельности, при клике на переключатель страница сайта обновится и подключиться файл css с другой темой.
Зачем обновлять страницу? Файл стилей можно подгружать и удалять динамически через js.