# 主题

lh-ui 家族的主题体系在 @lh-ui/share 定义(唯一源),Vue2 库通过 CSS 变量消费。

# CSS 变量

所有令牌命名 --lh-*,由 @lh-ui/vue2/theme.css 注入 :root:

:root {
  --lh-primary-color: #2B4C7C;
  --lh-bg-color: #FAF6F0;
  --lh-text-color: #2C2A26;
  /* 完整清单见 share 仓库 theme 源 */
}

# 暗色模式

<link rel="stylesheet" href="@lh-ui/vue2/theme-dark.css" />
<html data-theme="dark">

同时支持 .dark class 形式。变量级联自 ConfigProvider 或 :root,组件自身不重复声明。

# ConfigProvider 局部定制

<template>
  <LhConfigProvider :theme-vars="{ 'primary-color': '#4A6741' }">
    <LhButton type="primary">竹青按钮</LhButton>
  </LhConfigProvider>
</template>

优先级:组件自身 themeVars > componentTheme[组件名] > 全局 themeVars; bg-pattern 花纹额外受 patternComponents 白名单控制。

# 预设主题与预设切换

@lh-ui/vue2/theme 转发 share 的 TS 预设(青花瓷、松花绿等),配套 useLhPresetTheme:

import { useLhPresetTheme } from '@lh-ui/vue2'

const { preset, setPreset, presets, themeVars } = useLhPresetTheme()
setPreset('songhua') // 写入 :root;themeVars 亦可交给 ConfigProvider 局部作用

useLhTheme 负责明暗切换(data-theme + localStorage 持久化)。

最后更新: 2026/10/12 23:57:05

Copyright © 2024-2026 风默文学 | 宁ICP备2024006574号 | 公安备案徽标苏公网安备32040002010537