From bcce2e3a7d7c0a6fb58a264ddf1058bdd59d48f4 Mon Sep 17 00:00:00 2001 From: ZhouXu Date: Wed, 28 Jul 2021 21:16:51 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E6=94=AF?= =?UTF-8?q?=E6=8C=81=20tailwindcss=20=E7=9A=84=E5=A4=9C=E9=97=B4=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit 1de8704b61c38c92bc6877d0bec9e6f67766b3c8) --- src/logics/theme/dark.ts | 15 +++++++++++++-- tailwind.config.js | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/logics/theme/dark.ts b/src/logics/theme/dark.ts index 23c54885735..7069826b85b 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 116d2605f3c..dcc82dc8178 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', From b0e1f9422941f3bd625520bd88fcb4141f3671da Mon Sep 17 00:00:00 2001 From: ZhouXu Date: Wed, 28 Jul 2021 21:46:09 +0800 Subject: [PATCH 2/2] docs: update changelog --- CHANGELOG.zh_CN.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.zh_CN.md b/CHANGELOG.zh_CN.md index 8ff62432110..bef9028f76a 100644 --- a/CHANGELOG.zh_CN.md +++ b/CHANGELOG.zh_CN.md @@ -1,6 +1,7 @@ ### ✨ Features - **Preview** 添加新的属性及事件 +- **Dark Theme** 新增对 tailwindcss 夜间模式的支持 ### 🐛 Bug Fixes