@incremark/theme 0.3.10 → 0.4.0-alpha.2
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/dist/chat.css +2790 -0
- package/dist/chat.css.map +1 -0
- package/dist/{styles.css → incremark.css} +255 -72
- package/dist/incremark.css.map +1 -0
- package/dist/index.d.ts +92 -7
- package/dist/index.js +198 -141
- package/dist/index.js.map +1 -1
- package/package.json +5 -3
- package/dist/styles.css.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -2,9 +2,26 @@
|
|
|
2
2
|
* 颜色 Token 类型定义
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* 交互状态颜色
|
|
6
6
|
*/
|
|
7
|
-
interface
|
|
7
|
+
interface ColorStates {
|
|
8
|
+
/** 主色(通常使用色阶 6) */
|
|
9
|
+
primary: string;
|
|
10
|
+
/** hover 状态(通常使用色阶 7) */
|
|
11
|
+
hover: string;
|
|
12
|
+
/** active/pressed 状态(通常使用色阶 8) */
|
|
13
|
+
active: string;
|
|
14
|
+
/** 浅色背景(通常使用色阶 2) */
|
|
15
|
+
light: string;
|
|
16
|
+
/** 更浅的背景(通常使用色阶 1) */
|
|
17
|
+
lighter: string;
|
|
18
|
+
/** 深色背景(通常使用色阶 9) */
|
|
19
|
+
dark: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* 基础色系统 - 包含各种颜色的完整色阶和交互状态
|
|
23
|
+
*/
|
|
24
|
+
interface BaseColorPalette extends ColorStates {
|
|
8
25
|
/** 10 级色阶 */
|
|
9
26
|
1: string;
|
|
10
27
|
2: string;
|
|
@@ -20,6 +37,8 @@ interface BaseColorPalette {
|
|
|
20
37
|
interface BaseColors {
|
|
21
38
|
/** 蓝色系 */
|
|
22
39
|
blue: BaseColorPalette;
|
|
40
|
+
/** 深青色系 */
|
|
41
|
+
teal: BaseColorPalette;
|
|
23
42
|
/** 紫色系 */
|
|
24
43
|
purple: BaseColorPalette;
|
|
25
44
|
/** 绿色系 */
|
|
@@ -30,6 +49,8 @@ interface BaseColors {
|
|
|
30
49
|
orange: BaseColorPalette;
|
|
31
50
|
/** 青色系 */
|
|
32
51
|
cyan: BaseColorPalette;
|
|
52
|
+
/** 靛蓝 */
|
|
53
|
+
indigo: BaseColorPalette;
|
|
33
54
|
}
|
|
34
55
|
interface ColorTokens {
|
|
35
56
|
/** Neutral 中性色系统(10 级灰度) */
|
|
@@ -57,6 +78,17 @@ interface ColorTokens {
|
|
|
57
78
|
};
|
|
58
79
|
/** 品牌主题色 */
|
|
59
80
|
brand: {
|
|
81
|
+
/** 色阶 1-10(从浅到深) */
|
|
82
|
+
1: string;
|
|
83
|
+
2: string;
|
|
84
|
+
3: string;
|
|
85
|
+
4: string;
|
|
86
|
+
5: string;
|
|
87
|
+
6: string;
|
|
88
|
+
7: string;
|
|
89
|
+
8: string;
|
|
90
|
+
9: string;
|
|
91
|
+
10: string;
|
|
60
92
|
/** 主题色 - 用于链接、按钮等 */
|
|
61
93
|
primary: string;
|
|
62
94
|
/** 主题色 hover 状态 */
|
|
@@ -221,15 +253,36 @@ interface BorderTokens {
|
|
|
221
253
|
/**
|
|
222
254
|
* 阴影 Token 类型定义
|
|
223
255
|
*
|
|
224
|
-
*
|
|
256
|
+
* 阴影使用深蓝色基底 rgba(0, 19, 48, ...) 而非纯黑,更有质感
|
|
225
257
|
*/
|
|
258
|
+
/** 方向性阴影 */
|
|
259
|
+
interface DirectionalShadow {
|
|
260
|
+
/** 向下投影 */
|
|
261
|
+
down: string;
|
|
262
|
+
/** 向上投影 */
|
|
263
|
+
up: string;
|
|
264
|
+
/** 向左投影 */
|
|
265
|
+
left: string;
|
|
266
|
+
/** 向右投影 */
|
|
267
|
+
right: string;
|
|
268
|
+
}
|
|
226
269
|
interface ShadowTokens {
|
|
227
|
-
/** 小阴影 */
|
|
270
|
+
/** 小阴影 - 用于按钮、卡片等轻微层级 */
|
|
228
271
|
sm: string;
|
|
229
|
-
/** 中等阴影 */
|
|
272
|
+
/** 中等阴影 - 用于下拉框、弹出层等 */
|
|
230
273
|
md: string;
|
|
231
|
-
/** 大阴影 */
|
|
274
|
+
/** 大阴影 - 用于模态框、侧边栏等 */
|
|
232
275
|
lg: string;
|
|
276
|
+
/** 居中阴影 - 四周均匀 */
|
|
277
|
+
center: string;
|
|
278
|
+
/** 一级方向性阴影 - 轻量 */
|
|
279
|
+
level1: DirectionalShadow;
|
|
280
|
+
/** 二级方向性阴影 - 中等 */
|
|
281
|
+
level2: DirectionalShadow;
|
|
282
|
+
/** 三级方向性阴影 - 强调 */
|
|
283
|
+
level3: DirectionalShadow;
|
|
284
|
+
/** 品牌色卡片阴影 */
|
|
285
|
+
brandCard: string;
|
|
233
286
|
}
|
|
234
287
|
|
|
235
288
|
/**
|
|
@@ -292,6 +345,38 @@ declare const defaultTheme: DesignTokens;
|
|
|
292
345
|
|
|
293
346
|
declare const darkTheme: DesignTokens;
|
|
294
347
|
|
|
348
|
+
/**
|
|
349
|
+
* 主题导出
|
|
350
|
+
*/
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* 创建自定义主题
|
|
354
|
+
*
|
|
355
|
+
* @param brandColor 品牌主色(hex 格式),如果不提供则使用默认的 indigo
|
|
356
|
+
* @returns 自定义主题
|
|
357
|
+
*
|
|
358
|
+
* @example
|
|
359
|
+
* ```typescript
|
|
360
|
+
* // 使用默认主题(indigo)
|
|
361
|
+
* import { defaultTheme } from '@incremark/theme'
|
|
362
|
+
*
|
|
363
|
+
* // 自定义品牌色
|
|
364
|
+
* import { createTheme } from '@incremark/theme'
|
|
365
|
+
* const purpleTheme = createTheme('#a855f7')
|
|
366
|
+
*
|
|
367
|
+
* // 运行时切换
|
|
368
|
+
* const myTheme = createTheme(userSettings.brandColor)
|
|
369
|
+
* ```
|
|
370
|
+
*/
|
|
371
|
+
declare function createTheme(brandColor?: string): DesignTokens;
|
|
372
|
+
/**
|
|
373
|
+
* 创建深色主题
|
|
374
|
+
*
|
|
375
|
+
* @param brandColor 品牌主色(hex 格式),如果不提供则使用默认的较亮 indigo
|
|
376
|
+
* @returns 深色主题
|
|
377
|
+
*/
|
|
378
|
+
declare function createDarkTheme(brandColor?: string): DesignTokens;
|
|
379
|
+
|
|
295
380
|
/**
|
|
296
381
|
* 从 Token 生成 CSS Variables
|
|
297
382
|
*/
|
|
@@ -372,4 +457,4 @@ declare function mergeTheme(base: DesignTokens, override: Partial<DesignTokens>)
|
|
|
372
457
|
*/
|
|
373
458
|
declare function applyTheme(element: (HTMLElement | Document) | undefined, theme: 'default' | 'dark' | DesignTokens | Partial<DesignTokens>): void;
|
|
374
459
|
|
|
375
|
-
export { type AnimationTokens, type BorderTokens, type ColorTokens, type DesignTokens, type GenerateCSSVarsOptions, type ShadowTokens, type SpacingTokens, type DesignTokens as ThemeTokens, type TypographyTokens, applyTheme, darkTheme, defaultTheme, generateCSSVars, mergeTheme };
|
|
460
|
+
export { type AnimationTokens, type BorderTokens, type ColorTokens, type DesignTokens, type GenerateCSSVarsOptions, type ShadowTokens, type SpacingTokens, type DesignTokens as ThemeTokens, type TypographyTokens, applyTheme, createDarkTheme, createTheme, darkTheme, defaultTheme, generateCSSVars, mergeTheme };
|
package/dist/index.js
CHANGED
|
@@ -1,115 +1,46 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { generateColorSystem } from '@incremark/colors';
|
|
2
2
|
|
|
3
|
-
// src/themes/
|
|
4
|
-
var
|
|
3
|
+
// src/themes/index.ts
|
|
4
|
+
var colorBlue = generateColorSystem("#3b82f6");
|
|
5
|
+
var colorPurple = generateColorSystem("#a855f7");
|
|
6
|
+
var colorGreen = generateColorSystem("#10b981");
|
|
7
|
+
var colorRed = generateColorSystem("#ef4444");
|
|
8
|
+
var colorOrange = generateColorSystem("#f97316");
|
|
9
|
+
var colorCyan = generateColorSystem("#06b6d4");
|
|
10
|
+
var colorTeal = generateColorSystem("#0D9488");
|
|
11
|
+
var colorIndigo = generateColorSystem("#5776ff");
|
|
5
12
|
var neutralSeries = {
|
|
6
13
|
1: "#ffffff",
|
|
7
|
-
2: "#
|
|
8
|
-
//
|
|
9
|
-
3: "#
|
|
10
|
-
//
|
|
11
|
-
4: "#
|
|
12
|
-
//
|
|
13
|
-
5: "#
|
|
14
|
-
//
|
|
15
|
-
6: "#
|
|
16
|
-
//
|
|
17
|
-
7: "#
|
|
18
|
-
//
|
|
19
|
-
8: "#
|
|
20
|
-
//
|
|
21
|
-
9: "#
|
|
22
|
-
//
|
|
23
|
-
10: "#
|
|
24
|
-
//
|
|
14
|
+
2: "#fafbfc",
|
|
15
|
+
// 极浅背景
|
|
16
|
+
3: "#f3f4f6",
|
|
17
|
+
// hover 背景(加深)
|
|
18
|
+
4: "#e5e7eb",
|
|
19
|
+
// active/selected 背景(加深)
|
|
20
|
+
5: "#d1d5db",
|
|
21
|
+
// 边框色(加深)
|
|
22
|
+
6: "#9ca3af",
|
|
23
|
+
// 次要文字
|
|
24
|
+
7: "#6b7280",
|
|
25
|
+
// 主要文字
|
|
26
|
+
8: "#374151",
|
|
27
|
+
// 深色文字
|
|
28
|
+
9: "#1f2937",
|
|
29
|
+
// 代码块背景
|
|
30
|
+
10: "#111827"
|
|
31
|
+
// 最深色
|
|
25
32
|
};
|
|
26
|
-
var baseBlue = generateBrand("#3b82f6");
|
|
27
|
-
var basePurple = generateBrand("#a855f7");
|
|
28
|
-
var baseGreen = generateBrand("#10b981");
|
|
29
|
-
var baseRed = generateBrand("#ef4444");
|
|
30
|
-
var baseOrange = generateBrand("#f97316");
|
|
31
|
-
var baseCyan = generateBrand("#06b6d4");
|
|
32
33
|
var defaultTheme = {
|
|
33
34
|
// ============ 基础色系统 ============
|
|
34
35
|
baseColors: {
|
|
35
|
-
blue:
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
7: baseBlue.palette[7],
|
|
44
|
-
8: baseBlue.palette[8],
|
|
45
|
-
9: baseBlue.palette[9],
|
|
46
|
-
10: baseBlue.palette[10]
|
|
47
|
-
},
|
|
48
|
-
purple: {
|
|
49
|
-
1: basePurple.palette[1],
|
|
50
|
-
2: basePurple.palette[2],
|
|
51
|
-
3: basePurple.palette[3],
|
|
52
|
-
4: basePurple.palette[4],
|
|
53
|
-
5: basePurple.palette[5],
|
|
54
|
-
6: basePurple.palette[6],
|
|
55
|
-
// 主色
|
|
56
|
-
7: basePurple.palette[7],
|
|
57
|
-
8: basePurple.palette[8],
|
|
58
|
-
9: basePurple.palette[9],
|
|
59
|
-
10: basePurple.palette[10]
|
|
60
|
-
},
|
|
61
|
-
green: {
|
|
62
|
-
1: baseGreen.palette[1],
|
|
63
|
-
2: baseGreen.palette[2],
|
|
64
|
-
3: baseGreen.palette[3],
|
|
65
|
-
4: baseGreen.palette[4],
|
|
66
|
-
5: baseGreen.palette[5],
|
|
67
|
-
6: baseGreen.palette[6],
|
|
68
|
-
// 主色
|
|
69
|
-
7: baseGreen.palette[7],
|
|
70
|
-
8: baseGreen.palette[8],
|
|
71
|
-
9: baseGreen.palette[9],
|
|
72
|
-
10: baseGreen.palette[10]
|
|
73
|
-
},
|
|
74
|
-
red: {
|
|
75
|
-
1: baseRed.palette[1],
|
|
76
|
-
2: baseRed.palette[2],
|
|
77
|
-
3: baseRed.palette[3],
|
|
78
|
-
4: baseRed.palette[4],
|
|
79
|
-
5: baseRed.palette[5],
|
|
80
|
-
6: baseRed.palette[6],
|
|
81
|
-
// 主色
|
|
82
|
-
7: baseRed.palette[7],
|
|
83
|
-
8: baseRed.palette[8],
|
|
84
|
-
9: baseRed.palette[9],
|
|
85
|
-
10: baseRed.palette[10]
|
|
86
|
-
},
|
|
87
|
-
orange: {
|
|
88
|
-
1: baseOrange.palette[1],
|
|
89
|
-
2: baseOrange.palette[2],
|
|
90
|
-
3: baseOrange.palette[3],
|
|
91
|
-
4: baseOrange.palette[4],
|
|
92
|
-
5: baseOrange.palette[5],
|
|
93
|
-
6: baseOrange.palette[6],
|
|
94
|
-
// 主色
|
|
95
|
-
7: baseOrange.palette[7],
|
|
96
|
-
8: baseOrange.palette[8],
|
|
97
|
-
9: baseOrange.palette[9],
|
|
98
|
-
10: baseOrange.palette[10]
|
|
99
|
-
},
|
|
100
|
-
cyan: {
|
|
101
|
-
1: baseCyan.palette[1],
|
|
102
|
-
2: baseCyan.palette[2],
|
|
103
|
-
3: baseCyan.palette[3],
|
|
104
|
-
4: baseCyan.palette[4],
|
|
105
|
-
5: baseCyan.palette[5],
|
|
106
|
-
6: baseCyan.palette[6],
|
|
107
|
-
// 主色
|
|
108
|
-
7: baseCyan.palette[7],
|
|
109
|
-
8: baseCyan.palette[8],
|
|
110
|
-
9: baseCyan.palette[9],
|
|
111
|
-
10: baseCyan.palette[10]
|
|
112
|
-
}
|
|
36
|
+
blue: colorBlue,
|
|
37
|
+
teal: colorTeal,
|
|
38
|
+
purple: colorPurple,
|
|
39
|
+
green: colorGreen,
|
|
40
|
+
red: colorRed,
|
|
41
|
+
orange: colorOrange,
|
|
42
|
+
cyan: colorCyan,
|
|
43
|
+
indigo: colorIndigo
|
|
113
44
|
},
|
|
114
45
|
color: {
|
|
115
46
|
// ============ Neutral 中性色系统 ============
|
|
@@ -125,12 +56,26 @@ var defaultTheme = {
|
|
|
125
56
|
9: neutralSeries[9],
|
|
126
57
|
10: neutralSeries[10]
|
|
127
58
|
},
|
|
128
|
-
// ============
|
|
59
|
+
// ============ 品牌主题色(引用 indigo)============
|
|
129
60
|
brand: {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
61
|
+
1: colorIndigo[1],
|
|
62
|
+
2: colorIndigo[2],
|
|
63
|
+
3: colorIndigo[3],
|
|
64
|
+
4: colorIndigo[4],
|
|
65
|
+
5: colorIndigo[5],
|
|
66
|
+
6: colorIndigo[6],
|
|
67
|
+
7: colorIndigo[7],
|
|
68
|
+
8: colorIndigo[8],
|
|
69
|
+
9: colorIndigo[9],
|
|
70
|
+
10: colorIndigo[10],
|
|
71
|
+
primary: colorIndigo.primary,
|
|
72
|
+
// indigo[6]
|
|
73
|
+
primaryHover: colorIndigo.hover,
|
|
74
|
+
// indigo[7]
|
|
75
|
+
primaryActive: colorIndigo.active,
|
|
76
|
+
// indigo[8]
|
|
77
|
+
primaryLight: colorIndigo.light
|
|
78
|
+
// indigo[2]
|
|
134
79
|
},
|
|
135
80
|
// ============ 语义化颜色(基于 neutral) ============
|
|
136
81
|
text: {
|
|
@@ -173,20 +118,20 @@ var defaultTheme = {
|
|
|
173
118
|
// border 使用通用的 border.strong,不单独定义
|
|
174
119
|
},
|
|
175
120
|
status: {
|
|
176
|
-
pending:
|
|
121
|
+
pending: colorPurple.primary,
|
|
177
122
|
// 使用紫色系主色
|
|
178
|
-
completed:
|
|
123
|
+
completed: colorGreen.primary
|
|
179
124
|
// 使用绿色系主色
|
|
180
125
|
},
|
|
181
126
|
// ============ 交互元素颜色 ============
|
|
182
127
|
interactive: {
|
|
183
|
-
link:
|
|
184
|
-
//
|
|
185
|
-
linkHover:
|
|
186
|
-
// 使用 hover
|
|
187
|
-
linkVisited:
|
|
128
|
+
link: colorIndigo.primary,
|
|
129
|
+
// 使用 indigo 主色
|
|
130
|
+
linkHover: colorIndigo.hover,
|
|
131
|
+
// 使用 indigo hover
|
|
132
|
+
linkVisited: colorPurple.dark,
|
|
188
133
|
// 使用紫色系深色表示访问过
|
|
189
|
-
checked:
|
|
134
|
+
checked: colorGreen.primary
|
|
190
135
|
// 使用绿色系主色表示选中
|
|
191
136
|
}
|
|
192
137
|
},
|
|
@@ -196,8 +141,8 @@ var defaultTheme = {
|
|
|
196
141
|
mono: "'Fira Code', 'SF Mono', 'Monaco', 'Consolas', monospace"
|
|
197
142
|
},
|
|
198
143
|
fontSize: {
|
|
199
|
-
xs: "
|
|
200
|
-
sm: "
|
|
144
|
+
xs: "12px",
|
|
145
|
+
sm: "13px",
|
|
201
146
|
base: "14px",
|
|
202
147
|
md: "16px",
|
|
203
148
|
lg: "18px",
|
|
@@ -237,9 +182,34 @@ var defaultTheme = {
|
|
|
237
182
|
}
|
|
238
183
|
},
|
|
239
184
|
shadow: {
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
185
|
+
// 基础阴影(使用深蓝色基底,更有质感)
|
|
186
|
+
sm: "0 2px 4px rgba(0, 19, 48, 0.06)",
|
|
187
|
+
md: "0 2px 12px rgba(0, 19, 48, 0.08)",
|
|
188
|
+
lg: "0 2px 16px rgba(0, 19, 48, 0.12)",
|
|
189
|
+
center: "0 0 8px rgba(0, 19, 48, 0.08)",
|
|
190
|
+
// 方向性阴影 - 一级(轻量)
|
|
191
|
+
level1: {
|
|
192
|
+
down: "0 2px 4px rgba(0, 19, 48, 0.06)",
|
|
193
|
+
up: "0 -2px 4px rgba(0, 19, 48, 0.06)",
|
|
194
|
+
left: "-2px 0 8px rgba(0, 19, 48, 0.06)",
|
|
195
|
+
right: "2px 0 8px rgba(0, 19, 48, 0.06)"
|
|
196
|
+
},
|
|
197
|
+
// 方向性阴影 - 二级(中等)
|
|
198
|
+
level2: {
|
|
199
|
+
down: "0 2px 12px rgba(0, 19, 48, 0.08)",
|
|
200
|
+
up: "0 -2px 12px rgba(0, 19, 48, 0.08)",
|
|
201
|
+
left: "-2px 0 12px rgba(0, 19, 48, 0.08)",
|
|
202
|
+
right: "2px 0 12px rgba(0, 19, 48, 0.08)"
|
|
203
|
+
},
|
|
204
|
+
// 方向性阴影 - 三级(强调)
|
|
205
|
+
level3: {
|
|
206
|
+
down: "0 2px 16px rgba(0, 19, 48, 0.12)",
|
|
207
|
+
up: "0 -2px 16px rgba(0, 19, 48, 0.12)",
|
|
208
|
+
left: "-2px 0 16px rgba(0, 19, 48, 0.12)",
|
|
209
|
+
right: "2px 0 16px rgba(0, 19, 48, 0.12)"
|
|
210
|
+
},
|
|
211
|
+
// 品牌色卡片阴影
|
|
212
|
+
brandCard: "0 2px 12px rgba(1, 69, 197, 0.12)"
|
|
243
213
|
},
|
|
244
214
|
animation: {
|
|
245
215
|
duration: {
|
|
@@ -253,9 +223,9 @@ var defaultTheme = {
|
|
|
253
223
|
}
|
|
254
224
|
}
|
|
255
225
|
};
|
|
256
|
-
var
|
|
257
|
-
var
|
|
258
|
-
var
|
|
226
|
+
var darkColorIndigo = generateColorSystem("#7D95FF");
|
|
227
|
+
var darkColorPurple = generateColorSystem("#c084fc");
|
|
228
|
+
var darkColorGreen = generateColorSystem("#34d399");
|
|
259
229
|
var darkNeutralSeries = {
|
|
260
230
|
1: "#0a1628",
|
|
261
231
|
2: "#162033",
|
|
@@ -270,8 +240,18 @@ var darkNeutralSeries = {
|
|
|
270
240
|
};
|
|
271
241
|
var darkTheme = {
|
|
272
242
|
...defaultTheme,
|
|
273
|
-
//
|
|
274
|
-
baseColors:
|
|
243
|
+
// ============ 基础色系统 ============
|
|
244
|
+
baseColors: {
|
|
245
|
+
blue: defaultTheme.baseColors.blue,
|
|
246
|
+
teal: defaultTheme.baseColors.teal,
|
|
247
|
+
indigo: darkColorIndigo,
|
|
248
|
+
purple: darkColorPurple,
|
|
249
|
+
green: darkColorGreen,
|
|
250
|
+
// 其他颜色继承默认主题
|
|
251
|
+
red: defaultTheme.baseColors.red,
|
|
252
|
+
orange: defaultTheme.baseColors.orange,
|
|
253
|
+
cyan: defaultTheme.baseColors.cyan
|
|
254
|
+
},
|
|
275
255
|
color: {
|
|
276
256
|
// ============ Neutral 中性色系统(暗色模式反转) ============
|
|
277
257
|
neutral: {
|
|
@@ -286,12 +266,26 @@ var darkTheme = {
|
|
|
286
266
|
9: darkNeutralSeries[9],
|
|
287
267
|
10: darkNeutralSeries[10]
|
|
288
268
|
},
|
|
289
|
-
// ============
|
|
269
|
+
// ============ 品牌主题色(暗色模式引用 indigo)============
|
|
290
270
|
brand: {
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
271
|
+
1: darkColorIndigo[1],
|
|
272
|
+
2: darkColorIndigo[2],
|
|
273
|
+
3: darkColorIndigo[3],
|
|
274
|
+
4: darkColorIndigo[4],
|
|
275
|
+
5: darkColorIndigo[5],
|
|
276
|
+
6: darkColorIndigo[6],
|
|
277
|
+
7: darkColorIndigo[7],
|
|
278
|
+
8: darkColorIndigo[8],
|
|
279
|
+
9: darkColorIndigo[9],
|
|
280
|
+
10: darkColorIndigo[10],
|
|
281
|
+
primary: darkColorIndigo.primary,
|
|
282
|
+
// indigo[6]
|
|
283
|
+
primaryHover: darkColorIndigo.hover,
|
|
284
|
+
// indigo[7]
|
|
285
|
+
primaryActive: darkColorIndigo.active,
|
|
286
|
+
// indigo[8]
|
|
287
|
+
primaryLight: darkColorIndigo[9]
|
|
288
|
+
// 暗色模式用深色调
|
|
295
289
|
},
|
|
296
290
|
// ============ 语义化颜色 ============
|
|
297
291
|
text: {
|
|
@@ -333,20 +327,20 @@ var darkTheme = {
|
|
|
333
327
|
// border 使用通用的 border.strong,不单独定义
|
|
334
328
|
},
|
|
335
329
|
status: {
|
|
336
|
-
pending:
|
|
330
|
+
pending: darkColorPurple.primary,
|
|
337
331
|
// 使用暗色紫色系主色
|
|
338
|
-
completed:
|
|
332
|
+
completed: darkColorGreen.primary
|
|
339
333
|
// 使用暗色绿色系主色
|
|
340
334
|
},
|
|
341
335
|
// ============ 交互元素颜色 ============
|
|
342
336
|
interactive: {
|
|
343
|
-
link:
|
|
344
|
-
//
|
|
345
|
-
linkHover:
|
|
337
|
+
link: darkColorIndigo.primary,
|
|
338
|
+
// 使用暗色 indigo 主色
|
|
339
|
+
linkHover: darkColorIndigo.hover,
|
|
346
340
|
// 使用 hover 变体
|
|
347
|
-
linkVisited:
|
|
341
|
+
linkVisited: darkColorPurple.lighter,
|
|
348
342
|
// 使用暗色紫色系浅色
|
|
349
|
-
checked:
|
|
343
|
+
checked: darkColorGreen.primary
|
|
350
344
|
// 使用暗色绿色系主色
|
|
351
345
|
}
|
|
352
346
|
},
|
|
@@ -358,6 +352,69 @@ var darkTheme = {
|
|
|
358
352
|
animation: defaultTheme.animation
|
|
359
353
|
};
|
|
360
354
|
|
|
355
|
+
// src/themes/index.ts
|
|
356
|
+
function createTheme(brandColor) {
|
|
357
|
+
const colorSystem = brandColor ? generateColorSystem(brandColor) : defaultTheme.baseColors.indigo;
|
|
358
|
+
return {
|
|
359
|
+
...defaultTheme,
|
|
360
|
+
color: {
|
|
361
|
+
...defaultTheme.color,
|
|
362
|
+
brand: {
|
|
363
|
+
1: colorSystem[1],
|
|
364
|
+
2: colorSystem[2],
|
|
365
|
+
3: colorSystem[3],
|
|
366
|
+
4: colorSystem[4],
|
|
367
|
+
5: colorSystem[5],
|
|
368
|
+
6: colorSystem[6],
|
|
369
|
+
7: colorSystem[7],
|
|
370
|
+
8: colorSystem[8],
|
|
371
|
+
9: colorSystem[9],
|
|
372
|
+
10: colorSystem[10],
|
|
373
|
+
primary: colorSystem.primary,
|
|
374
|
+
primaryHover: colorSystem.hover,
|
|
375
|
+
primaryActive: colorSystem.active,
|
|
376
|
+
primaryLight: colorSystem.light
|
|
377
|
+
},
|
|
378
|
+
// 同步更新 link 颜色
|
|
379
|
+
interactive: {
|
|
380
|
+
...defaultTheme.color.interactive,
|
|
381
|
+
link: colorSystem.primary,
|
|
382
|
+
linkHover: colorSystem.hover
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
};
|
|
386
|
+
}
|
|
387
|
+
function createDarkTheme(brandColor) {
|
|
388
|
+
const defaultDarkColor = brandColor ? generateColorSystem(brandColor) : darkTheme.baseColors.indigo;
|
|
389
|
+
return {
|
|
390
|
+
...darkTheme,
|
|
391
|
+
color: {
|
|
392
|
+
...darkTheme.color,
|
|
393
|
+
brand: {
|
|
394
|
+
1: defaultDarkColor[1],
|
|
395
|
+
2: defaultDarkColor[2],
|
|
396
|
+
3: defaultDarkColor[3],
|
|
397
|
+
4: defaultDarkColor[4],
|
|
398
|
+
5: defaultDarkColor[5],
|
|
399
|
+
6: defaultDarkColor[6],
|
|
400
|
+
7: defaultDarkColor[7],
|
|
401
|
+
8: defaultDarkColor[8],
|
|
402
|
+
9: defaultDarkColor[9],
|
|
403
|
+
10: defaultDarkColor[10],
|
|
404
|
+
primary: defaultDarkColor.primary,
|
|
405
|
+
primaryHover: defaultDarkColor.hover,
|
|
406
|
+
primaryActive: defaultDarkColor.active,
|
|
407
|
+
primaryLight: defaultDarkColor[9]
|
|
408
|
+
},
|
|
409
|
+
interactive: {
|
|
410
|
+
...darkTheme.color.interactive,
|
|
411
|
+
link: defaultDarkColor.primary,
|
|
412
|
+
linkHover: defaultDarkColor.hover
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
};
|
|
416
|
+
}
|
|
417
|
+
|
|
361
418
|
// src/utils/generate-css-vars.ts
|
|
362
419
|
function objectToCSSVars(obj, prefix, result = []) {
|
|
363
420
|
for (const [key, value] of Object.entries(obj)) {
|
|
@@ -435,6 +492,6 @@ function applyTheme(element = document, theme) {
|
|
|
435
492
|
target.style.cssText = cssVars;
|
|
436
493
|
}
|
|
437
494
|
|
|
438
|
-
export { applyTheme, darkTheme, defaultTheme, generateCSSVars, mergeTheme };
|
|
495
|
+
export { applyTheme, createDarkTheme, createTheme, darkTheme, defaultTheme, generateCSSVars, mergeTheme };
|
|
439
496
|
//# sourceMappingURL=index.js.map
|
|
440
497
|
//# sourceMappingURL=index.js.map
|