关于实现暗黑模式的笔记

主要观点:最近为网站添加了暗模式,分享了实现暗模式的相关经验和细节,包括前端基础知识、三态设置、避免加载时的闪烁、其他标签中的主题变化、操作系统的主题变化以及使用 Shiki 进行语法高亮等。
关键信息:

  • 利用prefers-color-scheme CSS 媒体选择器和本地存储实现暗模式。
  • 暗模式设置有三态:明确启用暗模式、明确启用亮模式、未启用任何模式且跟随操作系统偏好。
  • 要避免页面加载时的闪烁,需确保 JavaScript 在页面 body 内联运行。
  • 本地存储和storage事件可实现多标签中主题的即时变化。
  • matchMedia() API 可响应操作系统级别的主题变化。
  • Shiki 可轻松实现代码块的双光/暗主题支持。
    重要细节:
  • 暗模式的 HTML 包括 Tailwind 样式、JavaScript 和自定义非 Tailwind CSS 代码片段可在网站仓库中找到。
  • 输入变化时将选择的值存储到本地存储并添加dark类到 HTML 元素。
  • 常规做法是在</body>关闭前使用<script>标签确保主题检查。
  • 代码块的语法高亮可通过 Shiki 实现双光/暗主题,且可配置。
阅读 15
0 条评论