主要观点:最近为网站添加了暗模式,分享了实现暗模式的相关经验和细节,包括前端基础知识、三态设置、避免加载时的闪烁、其他标签中的主题变化、操作系统的主题变化以及使用 Shiki 进行语法高亮等。
关键信息:
- 利用
prefers-color-scheme
CSS 媒体选择器和本地存储实现暗模式。 - 暗模式设置有三态:明确启用暗模式、明确启用亮模式、未启用任何模式且跟随操作系统偏好。
- 要避免页面加载时的闪烁,需确保 JavaScript 在页面 body 内联运行。
- 本地存储和
storage
事件可实现多标签中主题的即时变化。 matchMedia()
API 可响应操作系统级别的主题变化。- Shiki 可轻松实现代码块的双光/暗主题支持。
重要细节: - 暗模式的 HTML 包括 Tailwind 样式、JavaScript 和自定义非 Tailwind CSS 代码片段可在网站仓库中找到。
- 输入变化时将选择的值存储到本地存储并添加
dark
类到 HTML 元素。 - 常规做法是在
</body>
关闭前使用<script>
标签确保主题检查。 - 代码块的语法高亮可通过 Shiki 实现双光/暗主题,且可配置。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。