Skip to content

主题定制

系统支持丰富的主题定制功能,包括暗黑模式和主题色切换。

功能概览

  • 暗黑/明亮模式切换
  • 6 种预设主题色
  • 侧边栏折叠
  • 主题偏好持久化

主题切换

暗黑模式

点击顶部导航栏的暗黑模式图标即可切换。

系统使用 CSS 变量实现主题切换,所有组件自动适配:

css
:root {
  --bg-color: #ffffff;
  --text-color: #333333;
}

html.dark {
  --bg-color: #1a1a1a;
  --text-color: #e0e0e0;
}

主题色

点击顶部的主题色选择器,可在 6 种预设颜色中切换:

  • 默认蓝
  • 绿色
  • 橙色
  • 红色
  • 紫色
  • 青色

切换后所有 Element Plus 组件和自定义样式会自动更新。

侧边栏

  • 点击顶部的折叠按钮可以收起/展开侧边栏
  • 侧边栏状态会持久化保存

实现原理

主题系统基于 Pinia Store 管理:

typescript
// stores/modules/theme.ts
export const useThemeStore = defineStore('theme', () => {
  const isDark = ref(false)
  const themeColor = ref('#409EFF')
  const isCollapse = ref(false)

  // 切换暗黑模式
  function toggleDark() {
    isDark.value = !isDark.value
    document.documentElement.classList.toggle('dark')
  }

  // 设置主题色
  function setThemeColor(color: string) {
    themeColor.value = color
    // 更新 CSS 变量
    document.documentElement.style.setProperty('--el-color-primary', color)
  }

  return { isDark, themeColor, isCollapse, toggleDark, setThemeColor }
})