如何启用

如果需要在项目中使用暗黑模式,只需在 html 上添加一个名为 dark 的类。

  1. <html class="dark">
  2. <head></head>
  3. <body></body>
  4. </html>

Element Plus 设置

需要在项目入口文件导入 css 变量

  1. // main.js
  2. import 'element-plus/theme-chalk/dark/css-vars.css'

Ant Design Vue 设置

  1. // main.js
  2. import 'ant-design-vue/dist/antd.dark.css'

动态切换

如果需要动态切换,建议使用 useDark | VueUse

  1. <template>
  2. <button @click="toggleDark()">
  3. <span>{{ isDark ? 'Dark' : 'Light' }}</span>
  4. </button>
  5. <fm-making-form
  6. :field-models="fieldModels"
  7. ></fm-making-form>
  8. </template>
  9. <script setup>
  10. import { useDark, useToggle } from '@vueuse/core'
  11. const isDark = useDark()
  12. const toggleDark = () => {
  13. useToggle(isDark)()
  14. // 如果全量引入 css,ant-design-vue 的样式需要这样动态加载。
  15. if (isDark.value) {
  16. loadCss('https://unpkg.com/ant-design-vue/dist/antd.dark.css')
  17. } else {
  18. loadCss('https://unpkg.com/ant-design-vue/dist/antd.css')
  19. }
  20. }
  21. const loadCss = (url) => {
  22. return new Promise((resolve, reject) => {
  23. const link = document.createElement('link')
  24. link.rel = 'stylesheet'
  25. link.href = url
  26. document.head.appendChild(link)
  27. link.onload = () => {
  28. resolve()
  29. }
  30. })
  31. }
  32. </script>