我正在尝试向我的 Jekyll 站点添加一个简单的明暗模式切换。
我现在设置它的方式是,主体有一个dark类,该类在切换时切换到一个类,并且每当用户进入新页面时,light主题都会保留并加载。localStorageSCSS 仅具有选择器,用于.dark显示.light相应的配色方案。
这种方法的问题是我的默认主题是dark,所以如果主题设置为 ,那么当我加载新页面时,当类从 切换到时,light会有一个非常清晰的 0.2 秒闪烁。darklight
我尝试通过将 body 设置visibilty为hidden然后visible在切换后重新设置来解决问题,但不幸的是,这种方法引入了另一个令人讨厌的 flash/lag,并且没有好的方法可以阻止它在每次页面加载时闪烁。
我想到的一些潜在解决方案,但不知道它们是否可能或如何实施它们是:
让Jekyll 以某种方式读取
localStorage并基于它更改呈现的 HTML 的类(可能是最好的解决方案,但也可能是不可能的)Jekyll 不知何故从 SCSS 生成了两个单独的样式表并使用 JS 选择正确的一个
感谢您对如何做这些事情或潜在的替代解决方案的任何见解,谢谢!