Skip to content

主题定制 ​

dan-ui 样式基于 CSS 变量,前缀为 --dan-。

默认主题 ​

安装后引入:

ts
import '@dandan-ui/theme'
import '@dandan-ui/ui/style.css'

@dandan-ui/theme 会在 :root 注入色板、字号、间距、圆角、阴影等 Token。

覆盖变量 ​

在业务全局样式中覆盖即可:

css
:root {
  --dan-color-primary: #0f766e;
  --dan-color-primary-hover: #0d9488;
  --dan-color-primary-active: #115e59;
  --dan-border-radius-md: 10px;
}

ConfigProvider ​

DanConfigProvider 可统一尺寸,并通过 theme 注入局部 CSS 变量:

vue
<DanConfigProvider size="large" :theme="{ 'color-primary': '#0f766e' }">
  <DanButton type="primary">主题按钮</DanButton>
</DanConfigProvider>

theme 的 key 可为短名(如 color-primary,自动补成 --dan-color-primary),或完整 CSS 变量名。

局部覆盖只作用于 Provider 子树,便于分区换肤。

常用 Token ​

变量说明
--dan-color-primary主色
--dan-color-text正文色
--dan-color-border边框色
--dan-color-bg背景色
--dan-font-size-md默认字号
--dan-spacing-md中等间距
--dan-border-radius-md中等圆角
--dan-z-index-popup浮层基准 z-index

完整列表见 @dandan-ui/theme 源码 packages/theme/src/index.css。

暗色 ​

在根节点加上 dark class 或 data-theme="dark" 即可启用内置暗色 Token(与 VitePress 文档站暗色开关一致):

html
<html class="dark">
  <!-- 或 -->
<html data-theme="dark">

暗色预设会覆盖主色、文本、边框、背景、浮层、阴影与代码块色板;浮层组件使用 --dan-color-bg-elevated,加载遮罩使用 --dan-color-loading-mask。

也可在暗色下继续局部覆盖:

css
html.dark {
  --dan-color-primary: #38bdf8;
}