@admin-core/design 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +212 -302
- package/dist/index.cjs +5 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2351 -1
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +5 -1
- package/dist/index.umd.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/theme/composables.d.ts +89 -0
- package/dist/theme/composables.d.ts.map +1 -0
- package/dist/theme/constants.d.ts +51 -0
- package/dist/theme/constants.d.ts.map +1 -0
- package/dist/theme/index.d.ts +50 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/types.d.ts +135 -0
- package/dist/theme/types.d.ts.map +1 -0
- package/dist/theme/utils.d.ts +230 -0
- package/dist/theme/utils.d.ts.map +1 -0
- package/package.json +23 -2
package/README.md
CHANGED
|
@@ -1,48 +1,46 @@
|
|
|
1
|
-
# @admin-
|
|
1
|
+
# @admin-kit/design
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
基于 Tailwind CSS v4 的设计系统,提供完整的样式、令牌和主题管理解决方案。
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 功能特性
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
- ✅ **Tailwind CSS v4** - 使用最新的 Tailwind CSS v4 特性
|
|
8
|
+
- ✅ **主题系统** - 支持浅色/暗色模式,提供 13+ 预设主题
|
|
9
|
+
- ✅ **设计令牌** - 基于 CSS 变量的设计令牌系统
|
|
10
|
+
- ✅ **BEM 工具** - SCSS BEM 命名规范 Mixin 工具集
|
|
11
|
+
- ✅ **动画库** - 丰富的 Vue 过渡动画和 CSS 动画
|
|
12
|
+
- ✅ **TypeScript** - 完整的 TypeScript 类型支持
|
|
10
13
|
|
|
11
|
-
|
|
12
|
-
pnpm add @admin-core/design
|
|
14
|
+
## 安装
|
|
13
15
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
```bash
|
|
17
|
+
pnpm add @admin-kit/design
|
|
16
18
|
```
|
|
17
19
|
|
|
18
20
|
## 使用方式
|
|
19
21
|
|
|
20
|
-
### 1.
|
|
21
|
-
|
|
22
|
-
#### ESM (推荐)
|
|
22
|
+
### 1. 导入完整样式
|
|
23
23
|
|
|
24
24
|
```typescript
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
// 使用 CSS 变量
|
|
28
|
-
// 在你的组件中直接使用设计令牌
|
|
25
|
+
// 导入所有样式和令牌
|
|
26
|
+
import '@admin-kit/design'
|
|
29
27
|
```
|
|
30
28
|
|
|
31
|
-
|
|
29
|
+
### 2. 按需导入
|
|
32
30
|
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
```typescript
|
|
32
|
+
// 只导入 CSS
|
|
33
|
+
import '@admin-kit/design/css'
|
|
36
34
|
|
|
37
|
-
|
|
35
|
+
// 只导入令牌
|
|
36
|
+
import '@admin-kit/design/tokens'
|
|
37
|
+
```
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
### 3. 使用 SCSS BEM 工具
|
|
40
40
|
|
|
41
41
|
```scss
|
|
42
|
-
|
|
43
|
-
@use '@admin-core/design/scss-bem' as *;
|
|
42
|
+
@use '@admin-kit/design/scss-bem' as *;
|
|
44
43
|
|
|
45
|
-
// 使用 BEM Mixin
|
|
46
44
|
@include b(button) {
|
|
47
45
|
padding: 8px 16px;
|
|
48
46
|
|
|
@@ -53,343 +51,255 @@ require('@admin-core/design/css')
|
|
|
53
51
|
@include m(primary) {
|
|
54
52
|
background: blue;
|
|
55
53
|
}
|
|
56
|
-
|
|
57
|
-
@include is(disabled) {
|
|
58
|
-
opacity: 0.5;
|
|
59
|
-
}
|
|
60
54
|
}
|
|
61
55
|
```
|
|
62
56
|
|
|
63
|
-
|
|
57
|
+
## Tailwind CSS 配置
|
|
64
58
|
|
|
65
|
-
|
|
59
|
+
如果你的项目需要扩展 Tailwind 配置,可以继承本包的配置:
|
|
66
60
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
61
|
+
```typescript
|
|
62
|
+
// tailwind.config.ts
|
|
63
|
+
import designConfig from '@admin-kit/design/tailwind.config'
|
|
64
|
+
import type { Config } from 'tailwindcss'
|
|
65
|
+
|
|
66
|
+
export default {
|
|
67
|
+
...designConfig,
|
|
68
|
+
content: [
|
|
69
|
+
...designConfig.content,
|
|
70
|
+
'./src/**/*.{vue,js,ts,jsx,tsx}',
|
|
71
|
+
],
|
|
72
|
+
theme: {
|
|
73
|
+
...designConfig.theme,
|
|
74
|
+
extend: {
|
|
75
|
+
...designConfig.theme.extend,
|
|
76
|
+
// 你的自定义扩展
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
} satisfies Config
|
|
79
80
|
```
|
|
80
81
|
|
|
81
|
-
|
|
82
|
+
## 主题系统
|
|
83
|
+
|
|
84
|
+
### 切换暗色模式
|
|
82
85
|
|
|
83
86
|
```html
|
|
84
|
-
<!--
|
|
85
|
-
<
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
87
|
+
<!-- 浅色模式(默认) -->
|
|
88
|
+
<html>
|
|
89
|
+
<body>...</body>
|
|
90
|
+
</html>
|
|
91
|
+
|
|
92
|
+
<!-- 暗色模式 -->
|
|
93
|
+
<html class="dark">
|
|
94
|
+
<body>...</body>
|
|
95
|
+
</html>
|
|
92
96
|
```
|
|
93
97
|
|
|
94
|
-
|
|
98
|
+
### 切换主题变体
|
|
95
99
|
|
|
96
|
-
|
|
100
|
+
```html
|
|
101
|
+
<!-- 紫色主题 -->
|
|
102
|
+
<html data-theme="violet">
|
|
103
|
+
<body>...</body>
|
|
104
|
+
</html>
|
|
97
105
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
- **dark.css** - 暗色主题 CSS 变量
|
|
106
|
+
<!-- 暗色 + 紫色主题 -->
|
|
107
|
+
<html class="dark" data-theme="violet">
|
|
108
|
+
<body>...</body>
|
|
109
|
+
</html>
|
|
110
|
+
```
|
|
104
111
|
|
|
105
|
-
|
|
112
|
+
### 可用主题
|
|
106
113
|
|
|
107
|
-
|
|
114
|
+
- `violet` - 紫色主题
|
|
115
|
+
- `pink` - 粉色主题
|
|
116
|
+
- `rose` - 玫瑰色主题
|
|
117
|
+
- `sky-blue` - 天蓝色主题
|
|
118
|
+
- `deep-blue` - 深蓝色主题
|
|
119
|
+
- `green` - 绿色主题
|
|
120
|
+
- `deep-green` - 深绿色主题
|
|
121
|
+
- `orange` - 橙色主题
|
|
122
|
+
- `yellow` - 黄色主题
|
|
123
|
+
- `zinc` - 锌色主题
|
|
124
|
+
- `neutral` - 中性色主题
|
|
125
|
+
- `slate` - 石板色主题
|
|
126
|
+
- `gray` - 灰色主题
|
|
108
127
|
|
|
109
|
-
##
|
|
128
|
+
## 设计令牌
|
|
110
129
|
|
|
111
|
-
|
|
130
|
+
所有颜色都使用 HSL 格式的 CSS 变量定义,支持透明度修饰符:
|
|
112
131
|
|
|
113
|
-
|
|
132
|
+
```html
|
|
133
|
+
<!-- 使用 Tailwind 工具类 -->
|
|
134
|
+
<div class="bg-primary text-primary-foreground">主色按钮</div>
|
|
135
|
+
<div class="bg-primary/50">50% 透明度的主色背景</div>
|
|
114
136
|
|
|
115
|
-
|
|
137
|
+
<!-- 使用 CSS 变量 -->
|
|
138
|
+
<style>
|
|
139
|
+
.my-component {
|
|
140
|
+
background-color: hsl(var(--primary));
|
|
141
|
+
color: hsl(var(--primary-foreground));
|
|
142
|
+
}
|
|
143
|
+
</style>
|
|
144
|
+
```
|
|
116
145
|
|
|
117
|
-
|
|
118
|
-
- 定义浅色主题下的所有 CSS 变量
|
|
119
|
-
- 提供 12 种预设主题变体(default、violet、pink、rose、sky-blue、deep-blue、green、deep-green、orange、yellow、zinc、neutral、slate、gray)
|
|
120
|
-
- 作为整个设计系统的颜色基础
|
|
146
|
+
### 可用的颜色令牌
|
|
121
147
|
|
|
122
|
-
|
|
123
|
-
- `--background` -
|
|
124
|
-
- `--foreground` -
|
|
125
|
-
- `--
|
|
126
|
-
- `--secondary` - 次要色
|
|
127
|
-
- `--accent` - 强调色
|
|
128
|
-
- `--destructive` - 危险操作色
|
|
129
|
-
- `--success` - 成功提示色
|
|
130
|
-
- `--warning` - 警告提示色
|
|
131
|
-
- `--border` - 边框色
|
|
132
|
-
- `--input` - 输入框边框色
|
|
133
|
-
- `--card` - 卡片背景色
|
|
134
|
-
- `--popover` - 弹出层背景色
|
|
148
|
+
#### 基础颜色
|
|
149
|
+
- `--background` / `--foreground` - 背景和前景色
|
|
150
|
+
- `--card` / `--card-foreground` - 卡片颜色
|
|
151
|
+
- `--popover` / `--popover-foreground` - 弹出层颜色
|
|
135
152
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
153
|
+
#### 语义颜色
|
|
154
|
+
- `--primary` / `--primary-foreground` - 主色
|
|
155
|
+
- `--secondary` / `--secondary-foreground` - 次要色
|
|
156
|
+
- `--muted` / `--muted-foreground` - 柔和色
|
|
157
|
+
- `--accent` / `--accent-foreground` - 强调色
|
|
158
|
+
- `--destructive` / `--destructive-foreground` - 破坏性操作色
|
|
142
159
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
```
|
|
160
|
+
#### 状态颜色
|
|
161
|
+
- `--info` / `--info-foreground` - 信息提示色
|
|
162
|
+
- `--success` / `--success-foreground` - 成功提示色
|
|
163
|
+
- `--warning` / `--warning-foreground` - 警告提示色
|
|
148
164
|
|
|
149
|
-
|
|
165
|
+
#### 边框和输入
|
|
166
|
+
- `--border` - 边框颜色
|
|
167
|
+
- `--input` - 输入框边框颜色
|
|
168
|
+
- `--ring` - 焦点环颜色
|
|
150
169
|
|
|
151
|
-
|
|
152
|
-
-
|
|
153
|
-
-
|
|
154
|
-
-
|
|
155
|
-
- 通过 `.dark` 类名自动应用
|
|
170
|
+
#### 其他
|
|
171
|
+
- `--radius` - 圆角大小
|
|
172
|
+
- `--font-family` - 字体家族
|
|
173
|
+
- `--popup-z-index` - 弹出层层级
|
|
156
174
|
|
|
157
|
-
|
|
158
|
-
- 背景色使用深色调(低亮度值)
|
|
159
|
-
- 前景色使用浅色调(高亮度值)
|
|
160
|
-
- 优化的对比度,确保文字可读性
|
|
161
|
-
- 减少夜间使用时的眼睛疲劳
|
|
175
|
+
## 动画
|
|
162
176
|
|
|
163
|
-
|
|
164
|
-
```html
|
|
165
|
-
<!-- 暗色模式 -->
|
|
166
|
-
<html class="dark">
|
|
167
|
-
<body>默认暗色主题</body>
|
|
168
|
-
</html>
|
|
177
|
+
### Vue 过渡动画
|
|
169
178
|
|
|
170
|
-
|
|
171
|
-
<
|
|
172
|
-
<
|
|
173
|
-
|
|
179
|
+
```vue
|
|
180
|
+
<template>
|
|
181
|
+
<Transition name="fade">
|
|
182
|
+
<div v-if="show">内容</div>
|
|
183
|
+
</Transition>
|
|
184
|
+
</template>
|
|
174
185
|
```
|
|
175
186
|
|
|
176
|
-
|
|
187
|
+
可用的过渡动画:
|
|
188
|
+
- `fade` - 淡入淡出
|
|
189
|
+
- `slide-up` - 向上滑动
|
|
190
|
+
- `slide-down` - 向下滑动
|
|
191
|
+
- `slide-left` - 向左滑动
|
|
192
|
+
- `slide-right` - 向右滑动
|
|
193
|
+
- `fade-slide` - 淡入淡出 + 滑动
|
|
194
|
+
- `fade-scale` - 淡入淡出 + 缩放
|
|
177
195
|
|
|
178
|
-
###
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
| 粉色 | `pink` | 粉色系主题 |
|
|
185
|
-
| 玫瑰 | `rose` | 玫瑰色系主题 |
|
|
186
|
-
| 天蓝 | `sky-blue` | 天蓝色系主题 |
|
|
187
|
-
| 深蓝 | `deep-blue` | 深蓝色系主题 |
|
|
188
|
-
| 绿色 | `green` | 绿色系主题 |
|
|
189
|
-
| 深绿 | `deep-green` | 深绿色系主题 |
|
|
190
|
-
| 橙色 | `orange` | 橙色系主题 |
|
|
191
|
-
| 黄色 | `yellow` | 黄色系主题 |
|
|
192
|
-
| 锌灰 | `zinc` | 锌灰色系主题 |
|
|
193
|
-
| 中性灰 | `neutral` | 中性灰色系主题 |
|
|
194
|
-
| 石板灰 | `slate` | 石板灰色系主题 |
|
|
195
|
-
| 灰色 | `gray` | 灰色系主题 |
|
|
196
|
-
|
|
197
|
-
### 主题切换实现
|
|
198
|
-
|
|
199
|
-
**JavaScript 切换:**
|
|
200
|
-
```javascript
|
|
201
|
-
// 切换到暗色模式
|
|
202
|
-
document.documentElement.classList.add('dark')
|
|
203
|
-
|
|
204
|
-
// 切换到浅色模式
|
|
205
|
-
document.documentElement.classList.remove('dark')
|
|
206
|
-
|
|
207
|
-
// 切换主题颜色
|
|
208
|
-
document.documentElement.setAttribute('data-theme', 'violet')
|
|
196
|
+
### Tailwind 动画类
|
|
197
|
+
|
|
198
|
+
```html
|
|
199
|
+
<div class="animate-slide-down">向下滑入</div>
|
|
200
|
+
<div class="animate-fade-in">淡入</div>
|
|
201
|
+
<div class="animate-shrink">收缩动画</div>
|
|
209
202
|
```
|
|
210
203
|
|
|
211
|
-
|
|
212
|
-
```typescript
|
|
213
|
-
import { ref } from 'vue'
|
|
204
|
+
## BEM 命名规范
|
|
214
205
|
|
|
215
|
-
|
|
216
|
-
const isDark = ref(false)
|
|
217
|
-
const theme = ref('default')
|
|
206
|
+
使用 SCSS Mixin 快速生成 BEM 类名:
|
|
218
207
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
document.documentElement.classList.toggle('dark', isDark.value)
|
|
222
|
-
}
|
|
208
|
+
```scss
|
|
209
|
+
@use '@admin-kit/design/scss-bem' as *;
|
|
223
210
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
211
|
+
@include b(card) {
|
|
212
|
+
// 生成 .admin-card
|
|
213
|
+
padding: 16px;
|
|
214
|
+
|
|
215
|
+
@include e(header) {
|
|
216
|
+
// 生成 .admin-card__header
|
|
217
|
+
font-weight: bold;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
@include m(primary) {
|
|
221
|
+
// 生成 .admin-card--primary
|
|
222
|
+
border-color: blue;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
@include is(active) {
|
|
226
|
+
// 生成 .admin-card.is-active
|
|
227
|
+
box-shadow: 0 0 10px blue;
|
|
227
228
|
}
|
|
228
|
-
|
|
229
|
-
return { isDark, theme, toggleDark, setTheme }
|
|
230
229
|
}
|
|
231
230
|
```
|
|
232
231
|
|
|
233
|
-
|
|
232
|
+
详细文档请查看 [BEM 工具文档](./src/scss-bem/README.md)。
|
|
234
233
|
|
|
235
|
-
|
|
234
|
+
## 工具类
|
|
236
235
|
|
|
237
|
-
|
|
238
|
-
.my-button {
|
|
239
|
-
/* 使用主题色 */
|
|
240
|
-
background-color: hsl(var(--primary));
|
|
241
|
-
color: hsl(var(--primary-foreground));
|
|
242
|
-
|
|
243
|
-
/* 使用边框色 */
|
|
244
|
-
border: 1px solid hsl(var(--border));
|
|
245
|
-
|
|
246
|
-
/* 使用圆角 */
|
|
247
|
-
border-radius: var(--radius);
|
|
248
|
-
}
|
|
236
|
+
### 布局工具类
|
|
249
237
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
}
|
|
238
|
+
```html
|
|
239
|
+
<!-- 水平居中 -->
|
|
240
|
+
<div class="flex-center">内容</div>
|
|
254
241
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
background-color: hsl(var(--destructive));
|
|
258
|
-
color: hsl(var(--destructive-foreground));
|
|
259
|
-
}
|
|
260
|
-
```
|
|
242
|
+
<!-- 垂直居中 -->
|
|
243
|
+
<div class="flex-col-center">内容</div>
|
|
261
244
|
|
|
262
|
-
|
|
245
|
+
<!-- 卡片容器 -->
|
|
246
|
+
<div class="card-box">卡片内容</div>
|
|
263
247
|
|
|
264
|
-
|
|
248
|
+
<!-- 轮廓框 -->
|
|
249
|
+
<div class="outline-box">可点击的框</div>
|
|
250
|
+
<div class="outline-box outline-box-active">激活状态</div>
|
|
251
|
+
```
|
|
265
252
|
|
|
266
|
-
|
|
267
|
-
/* ✅ 正确 */
|
|
268
|
-
background-color: hsl(var(--primary));
|
|
253
|
+
### 链接样式
|
|
269
254
|
|
|
270
|
-
|
|
271
|
-
|
|
255
|
+
```html
|
|
256
|
+
<a href="#" class="admin-link">链接文本</a>
|
|
272
257
|
```
|
|
273
258
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
可以通过 HSL 的第四个参数添加透明度:
|
|
259
|
+
## 特殊模式
|
|
277
260
|
|
|
278
|
-
|
|
279
|
-
/* 50% 透明度的主题色 */
|
|
280
|
-
background-color: hsl(var(--primary) / 0.5);
|
|
261
|
+
### 反色模式
|
|
281
262
|
|
|
282
|
-
|
|
283
|
-
|
|
263
|
+
```html
|
|
264
|
+
<html class="invert-mode">
|
|
265
|
+
<body>所有颜色反转</body>
|
|
266
|
+
</html>
|
|
284
267
|
```
|
|
285
268
|
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
### 基础颜色
|
|
289
|
-
- `--background` / `--background-deep` - 背景色
|
|
290
|
-
- `--foreground` - 前景色(文字)
|
|
291
|
-
- `--border` - 边框色
|
|
292
|
-
|
|
293
|
-
### 组件颜色
|
|
294
|
-
- `--card` - 卡片背景
|
|
295
|
-
- `--popover` - 弹出层背景
|
|
296
|
-
- `--input` - 输入框边框
|
|
297
|
-
- `--muted` - 柔和背景
|
|
298
|
-
|
|
299
|
-
### 语义颜色
|
|
300
|
-
- `--primary` - 主题色(品牌色)
|
|
301
|
-
- `--secondary` - 次要色
|
|
302
|
-
- `--accent` - 强调色(悬停效果)
|
|
303
|
-
- `--destructive` - 危险操作(删除、警告)
|
|
304
|
-
- `--success` - 成功提示
|
|
305
|
-
- `--warning` - 警告提示
|
|
306
|
-
- `--info` - 信息提示
|
|
307
|
-
|
|
308
|
-
### 布局组件
|
|
309
|
-
- `--sidebar` - 侧边栏背景
|
|
310
|
-
- `--header` - 头部背景
|
|
311
|
-
- `--menu` - 菜单背景
|
|
312
|
-
|
|
313
|
-
### 其他
|
|
314
|
-
- `--radius` - 圆角大小
|
|
315
|
-
- `--ring` - 焦点环颜色
|
|
316
|
-
- `--overlay` - 遮罩颜色
|
|
317
|
-
- `--font-size-base` - 基础字体大小
|
|
318
|
-
|
|
319
|
-
## 最佳实践
|
|
320
|
-
|
|
321
|
-
1. **始终使用语义化变量**
|
|
322
|
-
```css
|
|
323
|
-
/* ✅ 推荐 */
|
|
324
|
-
color: hsl(var(--foreground));
|
|
325
|
-
|
|
326
|
-
/* ❌ 不推荐 */
|
|
327
|
-
color: #000000;
|
|
328
|
-
```
|
|
329
|
-
|
|
330
|
-
2. **为不同状态使用对应的颜色**
|
|
331
|
-
```css
|
|
332
|
-
.button-primary { background: hsl(var(--primary)); }
|
|
333
|
-
.button-danger { background: hsl(var(--destructive)); }
|
|
334
|
-
.button-success { background: hsl(var(--success)); }
|
|
335
|
-
```
|
|
336
|
-
|
|
337
|
-
3. **利用前景色变量确保对比度**
|
|
338
|
-
```css
|
|
339
|
-
.card {
|
|
340
|
-
background: hsl(var(--card));
|
|
341
|
-
color: hsl(var(--card-foreground));
|
|
342
|
-
}
|
|
343
|
-
```
|
|
344
|
-
|
|
345
|
-
4. **使用 accent 系列实现悬停效果**
|
|
346
|
-
```css
|
|
347
|
-
.menu-item {
|
|
348
|
-
background: transparent;
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
.menu-item:hover {
|
|
352
|
-
background: hsl(var(--accent));
|
|
353
|
-
color: hsl(var(--accent-foreground));
|
|
354
|
-
}
|
|
355
|
-
```
|
|
356
|
-
|
|
357
|
-
## 扩展自定义主题
|
|
358
|
-
|
|
359
|
-
如需添加新的主题变体,在对应的 CSS 文件中添加:
|
|
360
|
-
|
|
361
|
-
```css
|
|
362
|
-
/* light.css */
|
|
363
|
-
[data-theme='my-theme'] {
|
|
364
|
-
--primary: 200 100% 50%;
|
|
365
|
-
--primary-foreground: 0 0% 100%;
|
|
366
|
-
/* ... 其他变量 */
|
|
367
|
-
}
|
|
269
|
+
### 灰度模式
|
|
368
270
|
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
/* ... 其他变量 */
|
|
374
|
-
}
|
|
271
|
+
```html
|
|
272
|
+
<html class="grayscale-mode">
|
|
273
|
+
<body>所有颜色变为灰度</body>
|
|
274
|
+
</html>
|
|
375
275
|
```
|
|
376
276
|
|
|
377
|
-
|
|
277
|
+
## 浏览器兼容性
|
|
378
278
|
|
|
379
|
-
|
|
279
|
+
- Chrome >= 90
|
|
280
|
+
- Firefox >= 88
|
|
281
|
+
- Safari >= 14
|
|
282
|
+
- Edge >= 90
|
|
380
283
|
|
|
381
|
-
|
|
382
|
-
- `dist/index.cjs` - CommonJS 格式(已压缩)
|
|
383
|
-
- `dist/index.umd.js` - UMD 格式,用于 CDN(已压缩)
|
|
384
|
-
- `dist/index.d.ts` - TypeScript 类型定义
|
|
385
|
-
- `dist/style.css` - 合并的样式文件(42.20 kB,gzip: 9.01 kB)
|
|
284
|
+
## 开发
|
|
386
285
|
|
|
387
|
-
|
|
286
|
+
```bash
|
|
287
|
+
# 安装依赖
|
|
288
|
+
pnpm install
|
|
289
|
+
|
|
290
|
+
# 开发模式(监听文件变化)
|
|
291
|
+
pnpm dev
|
|
388
292
|
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
293
|
+
# 构建
|
|
294
|
+
pnpm build
|
|
295
|
+
```
|
|
392
296
|
|
|
393
|
-
##
|
|
297
|
+
## 许可证
|
|
394
298
|
|
|
395
299
|
MIT
|
|
300
|
+
|
|
301
|
+
## 相关链接
|
|
302
|
+
|
|
303
|
+
- [Tailwind CSS v4 文档](https://tailwindcss.com/docs)
|
|
304
|
+
- [BEM 命名规范](http://getbem.com/)
|
|
305
|
+
- [HSL 颜色格式](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/hsl)
|