用途:为网站或应用实现完整的明暗主题系统,覆盖策略选择、颜色令牌、切换组件、系统偏好检测、偏好持久化与首屏防闪烁处理。
主要能力:提供三种策略对比(Tailwind class、CSS media、CSS 变量加 JS、React Context),并给出对应实现;可配置 Tailwind darkMode 为 class 或 media,建立语义化 HSL 颜色变量(背景、前景、主色、次要色、muted、accent、destructive、边框等)在 :root 与 .dark 下分别定义;提供 React Theme Context,支持 light/dark/system 三态、监听 prefers-color-scheme 变化、用 localStorage 持久化;给出内联脚本防止主题闪烁,以及 suppressHydrationWarning 与 mounted 处理水合不匹配;附带动画切换开关、三态选择器、主题感知图片与 SVG 适配示例;并包含用 Playwright 测试系统偏好、切换与持久化的用例。
使用方式:按项目选择策略;Tailwind 项目设置 darkMode: 'class';在 globals.css 中定义明暗两套变量;用 ThemeProvider 包裹应用,在布局 head 注入防闪烁脚本;通过 useTheme 或 next-themes 的 useTheme 读取和设置主题。安装 next-themes 使用 npm install next-themes。
适用场景:React/Vue/Svelte 应用、Next.js 项目、静态站点,以及需要系统偏好跟随与用户手动选择并存的界面。
限制:不同框架与版本的具体配置、无障碍对比度与过渡效果需按项目自行验证;资料未提供收费、价格与平台支持等信息。