Tailwind CSS 暗色模式的三种实现策略

234 字
1 分钟
Tailwind CSS 暗色模式的三种实现策略

暗色模式的常见策略#

Tailwind 内置了三种暗色模式策略,通过 darkMode 配置切换:

策略配置触发方式
跟随系统media根据 prefers-color-scheme
手动切换class<html> 上添加 dark
选择器selector通过自定义 CSS 选择器

本项目使用的是 class 策略,因为它允许用户在亮/暗之间自由切换。

防止主题闪烁#

如果在加载完成后再用 JS 设置主题,用户会先看到亮色再闪成暗色。解决办法是<head> 内联一段同步脚本

<script is:inline>
const stored = localStorage.getItem('theme');
if (stored === 'dark') document.documentElement.classList.add('dark');
</script>

双主题语法高亮#

借助 Shiki 可以同时输出亮/暗两套配色,再由 CSS 变量切换:

html.dark .astro-code,
html.dark .astro-code span {
color: var(--shiki-dark) !important;
}

小结#

合理的暗色模式不仅要「能切换」,更要「切换得不突兀」。内联脚本 + class 策略是目前最稳妥的组合。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Tailwind CSS 暗色模式的三种实现策略
https://mingblog.de5.net/posts/tailwind-dark-mode/
作者
念铭
发布于
2026-07-12
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
念铭
全栈开发者,喜欢折腾前端工程化、DevOps 与各种效率工具。
欢迎来到念铭的博客
一个分享编程、开发与效率工具的个人博客。不定期更新,欢迎交流~
标签