diff --git a/CHANGELOG.zh_CN.md b/CHANGELOG.zh_CN.md index 8ff624321..bef9028f7 100644 --- a/CHANGELOG.zh_CN.md +++ b/CHANGELOG.zh_CN.md @@ -1,6 +1,7 @@ ### ✨ Features - **Preview** 添加新的属性及事件 +- **Dark Theme** 新增对 tailwindcss 夜间模式的支持 ### 🐛 Bug Fixes diff --git a/src/logics/theme/dark.ts b/src/logics/theme/dark.ts index 23c548857..7069826b8 100644 --- a/src/logics/theme/dark.ts +++ b/src/logics/theme/dark.ts @@ -1,13 +1,24 @@ import { darkCssIsReady, loadDarkThemeCss } from 'vite-plugin-theme/es/client'; +import { addClass, hasClass, removeClass } from '/@/utils/domUtils'; export async function updateDarkTheme(mode: string | null = 'light') { const htmlRoot = document.getElementById('htmlRoot'); + if (!htmlRoot) { + return; + } + const hasDarkClass = hasClass(htmlRoot, 'dark'); if (mode === 'dark') { if (import.meta.env.PROD && !darkCssIsReady) { await loadDarkThemeCss(); } - htmlRoot?.setAttribute('data-theme', 'dark'); + htmlRoot.setAttribute('data-theme', 'dark'); + if (!hasDarkClass) { + addClass(htmlRoot, 'dark'); + } } else { - htmlRoot?.setAttribute('data-theme', 'light'); + htmlRoot.setAttribute('data-theme', 'light'); + if (hasDarkClass) { + removeClass(htmlRoot, 'dark'); + } } } diff --git a/tailwind.config.js b/tailwind.config.js index 116d2605f..dcc82dc81 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -1,6 +1,6 @@ module.exports = { mode: 'jit', - // darkMode: 'class', + darkMode: 'class', plugins: [createEnterPlugin()], purge: { enable: process.env.NODE_ENV === 'production',