主题定制
DUI 使用 CSS 变量实现主题系统,你可以轻松覆盖默认样式。
主题变量
| 变量名 | 默认值 | 说明 |
|---|---|---|
--dui-primary | #3b82f6 | 主色调 |
--dui-radius-sm | 4px | 小圆角 |
--dui-radius-md | 8px | 中圆角 |
--dui-radius-lg | 12px | 大圆角 |
--dui-font-base | 16px | 基础字号 |
覆盖主题
在你的全局 CSS 中重新定义变量:
/* src/styles/theme.css */
:root {
--dui-primary: #8b5cf6; /* 紫色主题 */
--dui-radius-md: 16px; /* 更大的圆角 */
--dui-shadow: 0 10px 25px rgba(0,0,0,0.1);
}
@import '@dui/core/dist/style.css'; 暗色模式
利用 CSS 媒体查询或 class 切换启用暗色模式:
/* 媒体查询方式(自动跟随系统) */
@media (prefers-color-scheme: dark) {
:root {
--dui-bg: #0f172a;
--dui-text: #f1f5f9;
}
}
/* class 方式(手动切换) */
.dark {
--dui-bg: #0f172a;
--dui-text: #f1f5f9;
} 组件级定制
你也可以针对单个组件使用 @apply:
.custom-button {
@apply bg-gradient-to-r from-purple-600 to-pink-600;
} 注意: 覆盖变量必须在导入 DUI 样式之前生效,否则会被覆盖。