Я пытаюсь добавить простой режим светлого / темного режима на свой сайт Jekyll.
Теперь я настроил его так, что тело имеет класс dark
, который переключается на класс light
при переключении, а тема сохраняется в localStorage
и загружается всякий раз, когда пользователь переходитна новую страницу.SCSS просто имеет селекторы для .dark
и .light
, которые будут отображать соответствующую цветовую схему.
Проблема с этим подходом заключается в том, что моей темой по умолчанию является dark
, поэтому, если тема установлена на light
, происходит очень четкая .2-секундная вспышка, когда классы переключаются с dark
на * 1013.* когда я загружаю новую страницу.
Я пытался решить эту проблему, установив visibilty
для тела в hidden
, а затем снова установив visible
после переключения, но, к сожалению, такой подходвводит еще одну раздражающую вспышку / задержку, и нет хорошего способа предотвратить ее мигание при каждой загрузке страницы.
Вот некоторые из потенциальных решений, о которых я думал, но не знаю, возможны ли они или как их реализовать:
- Пусть Джекилл как-нибудь прочитает из
localStorage
и измените класс представленного HTML на основе этого (вероятно, лучшее решение, но также, вероятно, и невозможно) Каким-то образом Jekyll создаст две отдельные таблицы стилей из SCSS и использует JS, чтобы выбрать правильныйone
Буду признателен за понимание того, как сделать эти вещи или возможные альтернативные решения, спасибо!