index.vue 533 B

123456789101112131415161718
  1. <template>
  2. <el-switch v-model="isDark" :active-action-icon="Moon" :inactive-action-icon="Sunny" inline-prompt
  3. @change="onToggle" />
  4. </template>
  5. <script setup lang="ts">
  6. import { Sunny, Moon } from '@element-plus/icons-vue'
  7. import { isDark, toggleTheme } from '@/composables/useTheme'
  8. function onToggle() {
  9. // 可选:添加过渡动画
  10. document.documentElement.classList.add('theme-transition')
  11. toggleTheme()
  12. setTimeout(() => {
  13. document.documentElement.classList.remove('theme-transition')
  14. }, 400)
  15. }
  16. </script>