@yh-ui/theme 1.0.26 → 1.0.30
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/component-theme.d.ts +1 -0
- package/dist/styles/components.css +2 -453
- package/dist/styles/index.css +6 -0
- package/dist/styles/mixins/mixins.css +0 -451
- package/dist/styles/root.css +453 -0
- package/dist/styles/variables.css +3 -449
- package/dist/theme.cjs +6 -20
- package/dist/theme.mjs +6 -20
- package/dist/tokens/index.cjs +48 -1
- package/dist/tokens/index.d.ts +88 -0
- package/dist/tokens/index.mjs +47 -0
- package/package.json +1 -1
- package/src/styles/index.scss +1 -0
- package/src/styles/mixins/mixins.scss +1 -1
- package/src/styles/root.scss +514 -0
- package/src/styles/variables.scss +2 -511
package/dist/tokens/index.d.ts
CHANGED
|
@@ -200,6 +200,47 @@ export declare const scrollbarTokens: {
|
|
|
200
200
|
readonly trackColor: "transparent";
|
|
201
201
|
readonly thumbRadius: "3px";
|
|
202
202
|
};
|
|
203
|
+
export declare const darkTextColorTokens: {
|
|
204
|
+
readonly primary: "#e5eaf3";
|
|
205
|
+
readonly regular: "#cfd3dc";
|
|
206
|
+
readonly secondary: "#a3a6ad";
|
|
207
|
+
readonly placeholder: "#8d9095";
|
|
208
|
+
readonly disabled: "#6c6e72";
|
|
209
|
+
};
|
|
210
|
+
export declare const darkBorderColorTokens: {
|
|
211
|
+
readonly DEFAULT: "#4c4d4f";
|
|
212
|
+
readonly light: "#414243";
|
|
213
|
+
readonly lighter: "#363637";
|
|
214
|
+
readonly extraLight: "#2b2b2c";
|
|
215
|
+
readonly dark: "#58585b";
|
|
216
|
+
readonly darker: "#636466";
|
|
217
|
+
};
|
|
218
|
+
export declare const darkFillColorTokens: {
|
|
219
|
+
readonly DEFAULT: "#303030";
|
|
220
|
+
readonly light: "#262727";
|
|
221
|
+
readonly lighter: "#1d1d1d";
|
|
222
|
+
readonly extraLight: "#191919";
|
|
223
|
+
readonly dark: "#39393a";
|
|
224
|
+
readonly darker: "#424243";
|
|
225
|
+
readonly blank: "transparent";
|
|
226
|
+
};
|
|
227
|
+
export declare const darkBgColorTokens: {
|
|
228
|
+
readonly DEFAULT: "#141414";
|
|
229
|
+
readonly page: "#0a0a0a";
|
|
230
|
+
readonly overlay: "#1d1e1f";
|
|
231
|
+
};
|
|
232
|
+
export declare const darkMaskTokens: {
|
|
233
|
+
readonly DEFAULT: "rgba(0, 0, 0, 0.7)";
|
|
234
|
+
readonly light: "rgba(0, 0, 0, 0.5)";
|
|
235
|
+
readonly extraLight: "rgba(0, 0, 0, 0.3)";
|
|
236
|
+
};
|
|
237
|
+
export declare const darkScrollbarTokens: {
|
|
238
|
+
readonly width: "6px";
|
|
239
|
+
readonly thumbColor: "#424243";
|
|
240
|
+
readonly thumbHoverColor: "#8d9095";
|
|
241
|
+
readonly trackColor: "transparent";
|
|
242
|
+
readonly thumbRadius: "3px";
|
|
243
|
+
};
|
|
203
244
|
export declare const componentSizeTokens: {
|
|
204
245
|
readonly large: {
|
|
205
246
|
readonly height: "40px";
|
|
@@ -314,6 +355,47 @@ export declare const designTokens: {
|
|
|
314
355
|
readonly page: "#f2f3f5";
|
|
315
356
|
readonly overlay: "#ffffff";
|
|
316
357
|
};
|
|
358
|
+
readonly darkTextColors: {
|
|
359
|
+
readonly primary: "#e5eaf3";
|
|
360
|
+
readonly regular: "#cfd3dc";
|
|
361
|
+
readonly secondary: "#a3a6ad";
|
|
362
|
+
readonly placeholder: "#8d9095";
|
|
363
|
+
readonly disabled: "#6c6e72";
|
|
364
|
+
};
|
|
365
|
+
readonly darkBorderColors: {
|
|
366
|
+
readonly DEFAULT: "#4c4d4f";
|
|
367
|
+
readonly light: "#414243";
|
|
368
|
+
readonly lighter: "#363637";
|
|
369
|
+
readonly extraLight: "#2b2b2c";
|
|
370
|
+
readonly dark: "#58585b";
|
|
371
|
+
readonly darker: "#636466";
|
|
372
|
+
};
|
|
373
|
+
readonly darkFillColors: {
|
|
374
|
+
readonly DEFAULT: "#303030";
|
|
375
|
+
readonly light: "#262727";
|
|
376
|
+
readonly lighter: "#1d1d1d";
|
|
377
|
+
readonly extraLight: "#191919";
|
|
378
|
+
readonly dark: "#39393a";
|
|
379
|
+
readonly darker: "#424243";
|
|
380
|
+
readonly blank: "transparent";
|
|
381
|
+
};
|
|
382
|
+
readonly darkBgColors: {
|
|
383
|
+
readonly DEFAULT: "#141414";
|
|
384
|
+
readonly page: "#0a0a0a";
|
|
385
|
+
readonly overlay: "#1d1e1f";
|
|
386
|
+
};
|
|
387
|
+
readonly darkMask: {
|
|
388
|
+
readonly DEFAULT: "rgba(0, 0, 0, 0.7)";
|
|
389
|
+
readonly light: "rgba(0, 0, 0, 0.5)";
|
|
390
|
+
readonly extraLight: "rgba(0, 0, 0, 0.3)";
|
|
391
|
+
};
|
|
392
|
+
readonly darkScrollbar: {
|
|
393
|
+
readonly width: "6px";
|
|
394
|
+
readonly thumbColor: "#424243";
|
|
395
|
+
readonly thumbHoverColor: "#8d9095";
|
|
396
|
+
readonly trackColor: "transparent";
|
|
397
|
+
readonly thumbRadius: "3px";
|
|
398
|
+
};
|
|
317
399
|
readonly spacing: {
|
|
318
400
|
readonly none: "0";
|
|
319
401
|
readonly xs: "4px";
|
|
@@ -456,3 +538,9 @@ export type BreakpointTokens = typeof breakpointTokens;
|
|
|
456
538
|
export type AccessibilityTokens = typeof accessibilityTokens;
|
|
457
539
|
export type MaskTokens = typeof maskTokens;
|
|
458
540
|
export type ScrollbarTokens = typeof scrollbarTokens;
|
|
541
|
+
export type DarkTextColorTokens = typeof darkTextColorTokens;
|
|
542
|
+
export type DarkBorderColorTokens = typeof darkBorderColorTokens;
|
|
543
|
+
export type DarkFillColorTokens = typeof darkFillColorTokens;
|
|
544
|
+
export type DarkBgColorTokens = typeof darkBgColorTokens;
|
|
545
|
+
export type DarkMaskTokens = typeof darkMaskTokens;
|
|
546
|
+
export type DarkScrollbarTokens = typeof darkScrollbarTokens;
|
package/dist/tokens/index.mjs
CHANGED
|
@@ -197,6 +197,47 @@ export const scrollbarTokens = {
|
|
|
197
197
|
trackColor: "transparent",
|
|
198
198
|
thumbRadius: "3px"
|
|
199
199
|
};
|
|
200
|
+
export const darkTextColorTokens = {
|
|
201
|
+
primary: "#e5eaf3",
|
|
202
|
+
regular: "#cfd3dc",
|
|
203
|
+
secondary: "#a3a6ad",
|
|
204
|
+
placeholder: "#8d9095",
|
|
205
|
+
disabled: "#6c6e72"
|
|
206
|
+
};
|
|
207
|
+
export const darkBorderColorTokens = {
|
|
208
|
+
DEFAULT: "#4c4d4f",
|
|
209
|
+
light: "#414243",
|
|
210
|
+
lighter: "#363637",
|
|
211
|
+
extraLight: "#2b2b2c",
|
|
212
|
+
dark: "#58585b",
|
|
213
|
+
darker: "#636466"
|
|
214
|
+
};
|
|
215
|
+
export const darkFillColorTokens = {
|
|
216
|
+
DEFAULT: "#303030",
|
|
217
|
+
light: "#262727",
|
|
218
|
+
lighter: "#1d1d1d",
|
|
219
|
+
extraLight: "#191919",
|
|
220
|
+
dark: "#39393a",
|
|
221
|
+
darker: "#424243",
|
|
222
|
+
blank: "transparent"
|
|
223
|
+
};
|
|
224
|
+
export const darkBgColorTokens = {
|
|
225
|
+
DEFAULT: "#141414",
|
|
226
|
+
page: "#0a0a0a",
|
|
227
|
+
overlay: "#1d1e1f"
|
|
228
|
+
};
|
|
229
|
+
export const darkMaskTokens = {
|
|
230
|
+
DEFAULT: "rgba(0, 0, 0, 0.7)",
|
|
231
|
+
light: "rgba(0, 0, 0, 0.5)",
|
|
232
|
+
extraLight: "rgba(0, 0, 0, 0.3)"
|
|
233
|
+
};
|
|
234
|
+
export const darkScrollbarTokens = {
|
|
235
|
+
width: "6px",
|
|
236
|
+
thumbColor: "#424243",
|
|
237
|
+
thumbHoverColor: "#8d9095",
|
|
238
|
+
trackColor: "transparent",
|
|
239
|
+
thumbRadius: "3px"
|
|
240
|
+
};
|
|
200
241
|
export const componentSizeTokens = {
|
|
201
242
|
large: {
|
|
202
243
|
height: "40px",
|
|
@@ -220,6 +261,12 @@ export const designTokens = {
|
|
|
220
261
|
borderColors: borderColorTokens,
|
|
221
262
|
fillColors: fillColorTokens,
|
|
222
263
|
bgColors: bgColorTokens,
|
|
264
|
+
darkTextColors: darkTextColorTokens,
|
|
265
|
+
darkBorderColors: darkBorderColorTokens,
|
|
266
|
+
darkFillColors: darkFillColorTokens,
|
|
267
|
+
darkBgColors: darkBgColorTokens,
|
|
268
|
+
darkMask: darkMaskTokens,
|
|
269
|
+
darkScrollbar: darkScrollbarTokens,
|
|
223
270
|
spacing: spacingTokens,
|
|
224
271
|
radius: radiusTokens,
|
|
225
272
|
fontSize: fontSizeTokens,
|
package/package.json
CHANGED
package/src/styles/index.scss
CHANGED
|
@@ -0,0 +1,514 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* YH-UI CSS Variables
|
|
3
|
+
* 全局 CSS 变量定义 - 业内最佳主题系统
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
:root {
|
|
7
|
+
/* ==================== 密度/紧凑度系统 ==================== */
|
|
8
|
+
--yh-density-factor: 1;
|
|
9
|
+
--yh-component-size-default: 32px;
|
|
10
|
+
--yh-component-size-small: 24px;
|
|
11
|
+
--yh-component-size-large: 40px;
|
|
12
|
+
--yh-padding-default: 12px 16px;
|
|
13
|
+
--yh-padding-small: 8px 12px;
|
|
14
|
+
--yh-padding-large: 16px 20px;
|
|
15
|
+
--yh-spacing-unit: 8px;
|
|
16
|
+
/* ==================== 基础颜色 ==================== */
|
|
17
|
+
--yh-color-white: #ffffff;
|
|
18
|
+
--yh-color-black: #000000;
|
|
19
|
+
/* ==================== 颜色系统 ==================== */
|
|
20
|
+
|
|
21
|
+
/* 主色 */
|
|
22
|
+
--yh-color-primary: #409eff;
|
|
23
|
+
--yh-color-primary-light-1: #53a8ff;
|
|
24
|
+
--yh-color-primary-light-2: #66b1ff;
|
|
25
|
+
--yh-color-primary-light-3: #79bbff;
|
|
26
|
+
--yh-color-primary-light-4: #8cc5ff;
|
|
27
|
+
--yh-color-primary-light-5: #a0cfff;
|
|
28
|
+
--yh-color-primary-light-6: #b3d8ff;
|
|
29
|
+
--yh-color-primary-light-7: #c6e2ff;
|
|
30
|
+
--yh-color-primary-light-8: #d9ecff;
|
|
31
|
+
--yh-color-primary-light-9: #ecf5ff;
|
|
32
|
+
--yh-color-primary-dark-2: #337ecc;
|
|
33
|
+
|
|
34
|
+
/* 成功色 */
|
|
35
|
+
--yh-color-success: #67c23a;
|
|
36
|
+
--yh-color-success-light-3: #95d475;
|
|
37
|
+
--yh-color-success-light-5: #b3e19d;
|
|
38
|
+
--yh-color-success-light-7: #d1edc4;
|
|
39
|
+
--yh-color-success-light-9: #f0f9eb;
|
|
40
|
+
--yh-color-success-dark-2: #529b2e;
|
|
41
|
+
|
|
42
|
+
/* 警告色 */
|
|
43
|
+
--yh-color-warning: #e6a23c;
|
|
44
|
+
--yh-color-warning-light-3: #eebe77;
|
|
45
|
+
--yh-color-warning-light-5: #f3d19e;
|
|
46
|
+
--yh-color-warning-light-7: #f8e3c5;
|
|
47
|
+
--yh-color-warning-light-9: #fdf6ec;
|
|
48
|
+
--yh-color-warning-dark-2: #b88230;
|
|
49
|
+
|
|
50
|
+
/* 危险色 */
|
|
51
|
+
--yh-color-danger: #f56c6c;
|
|
52
|
+
--yh-color-danger-light-3: #f89898;
|
|
53
|
+
--yh-color-danger-light-5: #fab6b6;
|
|
54
|
+
--yh-color-danger-light-7: #fcd3d3;
|
|
55
|
+
--yh-color-danger-light-9: #fef0f0;
|
|
56
|
+
--yh-color-danger-dark-2: #c45656;
|
|
57
|
+
|
|
58
|
+
/* 信息色 */
|
|
59
|
+
--yh-color-info: #909399;
|
|
60
|
+
--yh-color-info-light-3: #b1b3b8;
|
|
61
|
+
--yh-color-info-light-5: #c8c9cc;
|
|
62
|
+
--yh-color-info-light-7: #dedfe0;
|
|
63
|
+
--yh-color-info-light-9: #f4f4f5;
|
|
64
|
+
--yh-color-info-dark-2: #73767a;
|
|
65
|
+
|
|
66
|
+
/* 文字颜色 */
|
|
67
|
+
--yh-text-color-primary: #303133;
|
|
68
|
+
--yh-text-color-regular: #606266;
|
|
69
|
+
--yh-text-color-secondary: #909399;
|
|
70
|
+
--yh-text-color-placeholder: #a8abb2;
|
|
71
|
+
--yh-text-color-disabled: #c0c4cc;
|
|
72
|
+
|
|
73
|
+
/* 边框颜色 */
|
|
74
|
+
--yh-border-color: #dcdfe6;
|
|
75
|
+
--yh-border-color-hover: var(--yh-color-primary);
|
|
76
|
+
--yh-border-color-light: #e4e7ed;
|
|
77
|
+
--yh-border-color-lighter: #ebeef5;
|
|
78
|
+
--yh-border-color-extra-light: #f2f6fc;
|
|
79
|
+
--yh-border-color-dark: #d4d7de;
|
|
80
|
+
--yh-border-color-darker: #cdd0d6;
|
|
81
|
+
|
|
82
|
+
/* 填充颜色 */
|
|
83
|
+
--yh-fill-color: #f0f2f5;
|
|
84
|
+
--yh-fill-color-light: #f5f7fa;
|
|
85
|
+
--yh-fill-color-lighter: #fafafa;
|
|
86
|
+
--yh-fill-color-extra-light: #fafcff;
|
|
87
|
+
--yh-fill-color-dark: #ebedf0;
|
|
88
|
+
--yh-fill-color-darker: #e6e8eb;
|
|
89
|
+
--yh-fill-color-blank: #ffffff;
|
|
90
|
+
|
|
91
|
+
/* 背景颜色 */
|
|
92
|
+
--yh-bg-color: #ffffff;
|
|
93
|
+
--yh-bg-color-page: #f2f3f5;
|
|
94
|
+
--yh-bg-color-overlay: #ffffff;
|
|
95
|
+
|
|
96
|
+
/* ==================== 间距系统 ==================== */
|
|
97
|
+
--yh-spacing-none: 0;
|
|
98
|
+
--yh-spacing-xs: 4px;
|
|
99
|
+
--yh-spacing-sm: 8px;
|
|
100
|
+
--yh-spacing-md: 16px;
|
|
101
|
+
--yh-spacing-lg: 24px;
|
|
102
|
+
--yh-spacing-xl: 32px;
|
|
103
|
+
--yh-spacing-xxl: 48px;
|
|
104
|
+
|
|
105
|
+
/* ==================== 圆角系统 ==================== */
|
|
106
|
+
--yh-radius-none: 0;
|
|
107
|
+
--yh-radius-sm: 2px;
|
|
108
|
+
--yh-radius-base: 4px;
|
|
109
|
+
--yh-radius-md: 8px;
|
|
110
|
+
--yh-radius-lg: 12px;
|
|
111
|
+
--yh-radius-xl: 16px;
|
|
112
|
+
--yh-radius-round: 20px;
|
|
113
|
+
--yh-radius-circle: 50%;
|
|
114
|
+
|
|
115
|
+
/* ==================== 字体系统 ==================== */
|
|
116
|
+
--yh-font-family:
|
|
117
|
+
-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans',
|
|
118
|
+
sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
|
|
119
|
+
|
|
120
|
+
/* 字号 */
|
|
121
|
+
--yh-font-size-xs: 12px;
|
|
122
|
+
--yh-font-size-sm: 13px;
|
|
123
|
+
--yh-font-size-base: 14px;
|
|
124
|
+
--yh-font-size-md: 16px;
|
|
125
|
+
--yh-font-size-lg: 18px;
|
|
126
|
+
--yh-font-size-xl: 20px;
|
|
127
|
+
--yh-font-size-xxl: 24px;
|
|
128
|
+
|
|
129
|
+
/* 行高 */
|
|
130
|
+
--yh-line-height-none: 1;
|
|
131
|
+
--yh-line-height-tight: 1.25;
|
|
132
|
+
--yh-line-height-snug: 1.375;
|
|
133
|
+
--yh-line-height-normal: 1.5;
|
|
134
|
+
--yh-line-height-relaxed: 1.625;
|
|
135
|
+
--yh-line-height-loose: 2;
|
|
136
|
+
|
|
137
|
+
/* 字重 */
|
|
138
|
+
--yh-font-weight-light: 300;
|
|
139
|
+
--yh-font-weight-normal: 400;
|
|
140
|
+
--yh-font-weight-medium: 500;
|
|
141
|
+
--yh-font-weight-semibold: 600;
|
|
142
|
+
--yh-font-weight-bold: 700;
|
|
143
|
+
|
|
144
|
+
/* ==================== 阴影系统 ==================== */
|
|
145
|
+
--yh-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
|
|
146
|
+
--yh-shadow-base: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
|
|
147
|
+
--yh-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
|
|
148
|
+
--yh-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
|
|
149
|
+
--yh-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
|
|
150
|
+
|
|
151
|
+
/* ==================== 过渡动效 ==================== */
|
|
152
|
+
--yh-duration-fast: 150ms;
|
|
153
|
+
--yh-duration-base: 200ms;
|
|
154
|
+
--yh-duration-slow: 300ms;
|
|
155
|
+
|
|
156
|
+
--yh-timing-ease: ease;
|
|
157
|
+
--yh-timing-ease-in: cubic-bezier(0.4, 0, 1, 1);
|
|
158
|
+
--yh-timing-ease-out: cubic-bezier(0, 0, 0.2, 1);
|
|
159
|
+
--yh-timing-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
|
|
160
|
+
--yh-timing-linear: linear;
|
|
161
|
+
|
|
162
|
+
--yh-transition-base: all var(--yh-duration-base) var(--yh-timing-ease-in-out);
|
|
163
|
+
--yh-transition-fast: all var(--yh-duration-fast) var(--yh-timing-ease-in-out);
|
|
164
|
+
--yh-transition-slow: all var(--yh-duration-slow) var(--yh-timing-ease-in-out);
|
|
165
|
+
|
|
166
|
+
/* ==================== 层级系统 ==================== */
|
|
167
|
+
--yh-z-index-normal: 1;
|
|
168
|
+
--yh-z-index-top: 1000;
|
|
169
|
+
--yh-z-index-popper: 2000;
|
|
170
|
+
--yh-z-index-overlay: 2001;
|
|
171
|
+
--yh-z-index-modal: 2002;
|
|
172
|
+
--yh-z-index-popover: 2003;
|
|
173
|
+
--yh-z-index-tooltip: 2004;
|
|
174
|
+
--yh-z-index-loading: 2005;
|
|
175
|
+
|
|
176
|
+
/* ==================== 组件尺寸 ==================== */
|
|
177
|
+
/* Large */
|
|
178
|
+
--yh-component-size-large: 40px;
|
|
179
|
+
--yh-component-size-large-font: 14px;
|
|
180
|
+
--yh-component-size-large-padding: 20px;
|
|
181
|
+
|
|
182
|
+
/* Default */
|
|
183
|
+
--yh-component-size-default: 32px;
|
|
184
|
+
--yh-component-size-default-font: 14px;
|
|
185
|
+
--yh-component-size-default-padding: 16px;
|
|
186
|
+
|
|
187
|
+
/* Small */
|
|
188
|
+
--yh-component-size-small: 24px;
|
|
189
|
+
--yh-component-size-small-font: 12px;
|
|
190
|
+
--yh-component-size-small-padding: 12px;
|
|
191
|
+
|
|
192
|
+
/* ==================== 组件语义化变量 ==================== */
|
|
193
|
+
--yh-border-radius-base: var(--yh-radius-base);
|
|
194
|
+
--yh-border-radius-small: var(--yh-radius-sm);
|
|
195
|
+
--yh-border-radius-round: var(--yh-radius-round);
|
|
196
|
+
|
|
197
|
+
/* Message 消息提示 */
|
|
198
|
+
--yh-message-bg-color: var(--yh-bg-color-overlay);
|
|
199
|
+
--yh-message-border-color: var(--yh-border-color-lighter);
|
|
200
|
+
--yh-message-shadow: var(--yh-shadow-lg);
|
|
201
|
+
--yh-message-text-color: var(--yh-text-color-primary);
|
|
202
|
+
--yh-message-close-color: var(--yh-text-color-secondary);
|
|
203
|
+
--yh-message-close-hover-color: var(--yh-text-color-primary);
|
|
204
|
+
|
|
205
|
+
/* Notification 通知 */
|
|
206
|
+
--yh-notification-bg-color: var(--yh-bg-color-overlay);
|
|
207
|
+
--yh-notification-border-color: var(--yh-border-color-lighter);
|
|
208
|
+
--yh-notification-shadow: var(--yh-shadow-lg);
|
|
209
|
+
--yh-notification-title-color: var(--yh-text-color-primary);
|
|
210
|
+
--yh-notification-content-color: var(--yh-text-color-regular);
|
|
211
|
+
|
|
212
|
+
/* Badge 徽标 */
|
|
213
|
+
--yh-badge-bg-color: var(--yh-color-danger);
|
|
214
|
+
--yh-badge-text-color: #ffffff;
|
|
215
|
+
--yh-badge-border-color: var(--yh-bg-color);
|
|
216
|
+
|
|
217
|
+
/* Card 卡片 */
|
|
218
|
+
--yh-card-bg-color: var(--yh-bg-color-overlay);
|
|
219
|
+
--yh-card-border-color: var(--yh-border-color-lighter);
|
|
220
|
+
--yh-card-shadow: var(--yh-shadow-base);
|
|
221
|
+
--yh-card-header-padding: 18px 20px;
|
|
222
|
+
--yh-card-body-padding: 20px;
|
|
223
|
+
|
|
224
|
+
/* Input 输入框 */
|
|
225
|
+
--yh-input-bg-color: var(--yh-fill-color-blank);
|
|
226
|
+
--yh-input-text-color: var(--yh-text-color-regular);
|
|
227
|
+
--yh-input-border-color: var(--yh-border-color);
|
|
228
|
+
--yh-input-hover-border-color: var(--yh-color-primary);
|
|
229
|
+
--yh-input-focus-border-color: var(--yh-color-primary);
|
|
230
|
+
--yh-input-placeholder-color: var(--yh-text-color-placeholder);
|
|
231
|
+
--yh-input-icon-color: var(--yh-text-color-placeholder);
|
|
232
|
+
--yh-input-disabled-bg-color: var(--yh-fill-color-light);
|
|
233
|
+
--yh-input-disabled-text-color: var(--yh-text-color-disabled);
|
|
234
|
+
--yh-input-disabled-border-color: var(--yh-border-color-light);
|
|
235
|
+
|
|
236
|
+
/* Image 图片 */
|
|
237
|
+
--yh-image-placeholder-bg-color: var(--yh-fill-color-light);
|
|
238
|
+
--yh-image-placeholder-text-color: var(--yh-text-color-placeholder);
|
|
239
|
+
--yh-image-error-bg-color: var(--yh-fill-color-extra-light);
|
|
240
|
+
--yh-image-error-text-color: var(--yh-text-color-placeholder);
|
|
241
|
+
|
|
242
|
+
/* Image Viewer 预览器 */
|
|
243
|
+
--yh-image-viewer-mask-bg-color: rgba(0, 0, 0, 0.5);
|
|
244
|
+
--yh-image-viewer-btn-bg-color: var(--yh-text-color-regular);
|
|
245
|
+
--yh-image-viewer-btn-color: #ffffff;
|
|
246
|
+
--yh-image-viewer-btn-hover-bg-color: var(--yh-color-primary);
|
|
247
|
+
|
|
248
|
+
/* Calendar 日历 */
|
|
249
|
+
--yh-calendar-bg: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
|
|
250
|
+
--yh-calendar-border-color: rgba(0, 0, 0, 0.06);
|
|
251
|
+
--yh-calendar-border-radius: var(--yh-radius-xl);
|
|
252
|
+
--yh-calendar-header-bg: rgba(255, 255, 255, 0.95);
|
|
253
|
+
--yh-calendar-header-border: rgba(0, 0, 0, 0.04);
|
|
254
|
+
--yh-calendar-header-padding: 18px 22px;
|
|
255
|
+
--yh-calendar-body-padding: 14px 18px 18px;
|
|
256
|
+
|
|
257
|
+
/* Calendar 尺寸 */
|
|
258
|
+
--yh-calendar-cell-height: 85px;
|
|
259
|
+
--yh-calendar-cell-height-small: 52px;
|
|
260
|
+
--yh-calendar-cell-height-large: 110px;
|
|
261
|
+
--yh-calendar-cell-radius: 10px;
|
|
262
|
+
--yh-calendar-cell-radius-small: 6px;
|
|
263
|
+
--yh-calendar-cell-radius-large: 12px;
|
|
264
|
+
|
|
265
|
+
/* Calendar 颜色 */
|
|
266
|
+
--yh-calendar-day-bg: var(--yh-bg-color);
|
|
267
|
+
--yh-calendar-primary: var(--yh-color-primary);
|
|
268
|
+
--yh-calendar-primary-light: rgba(59, 130, 246, 0.1);
|
|
269
|
+
--yh-calendar-selected-bg: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
|
|
270
|
+
--yh-calendar-selected-border: rgba(59, 130, 246, 0.4);
|
|
271
|
+
--yh-calendar-today-dot: var(--yh-color-primary);
|
|
272
|
+
--yh-calendar-weekend-color: #f97316;
|
|
273
|
+
--yh-calendar-disabled-color: var(--yh-text-color-disabled);
|
|
274
|
+
--yh-calendar-other-month-opacity: 0.35;
|
|
275
|
+
|
|
276
|
+
/* Calendar 假日 */
|
|
277
|
+
--yh-calendar-holiday-color: var(--yh-color-success);
|
|
278
|
+
--yh-calendar-holiday-bg: rgba(16, 185, 129, 0.12);
|
|
279
|
+
--yh-calendar-holiday-border: rgba(16, 185, 129, 0.25);
|
|
280
|
+
--yh-calendar-workday-color: var(--yh-color-warning);
|
|
281
|
+
--yh-calendar-workday-bg: rgba(245, 158, 11, 0.12);
|
|
282
|
+
--yh-calendar-workday-border: rgba(245, 158, 11, 0.25);
|
|
283
|
+
|
|
284
|
+
/* Calendar 范围选择 */
|
|
285
|
+
--yh-calendar-range-bg: rgba(59, 130, 246, 0.08);
|
|
286
|
+
--yh-calendar-range-border: rgba(59, 130, 246, 0.2);
|
|
287
|
+
|
|
288
|
+
/* Calendar 字体 */
|
|
289
|
+
--yh-calendar-weekday-font-size: var(--yh-font-size-sm);
|
|
290
|
+
--yh-calendar-weekday-color: var(--yh-text-color-secondary);
|
|
291
|
+
--yh-calendar-day-font-size: 15px;
|
|
292
|
+
--yh-calendar-day-color: var(--yh-text-color-primary);
|
|
293
|
+
--yh-calendar-badge-font-size: 9px;
|
|
294
|
+
|
|
295
|
+
/* Table 表格 */
|
|
296
|
+
--yh-table-border-color: var(--yh-border-color-lighter);
|
|
297
|
+
--yh-table-header-bg: var(--yh-fill-color-light);
|
|
298
|
+
--yh-table-header-text-color: var(--yh-text-color-primary);
|
|
299
|
+
--yh-table-header-font-weight: var(--yh-font-weight-semibold);
|
|
300
|
+
--yh-table-row-bg: var(--yh-bg-color);
|
|
301
|
+
--yh-table-row-hover-bg: var(--yh-fill-color-light);
|
|
302
|
+
--yh-table-row-stripe-bg: var(--yh-fill-color-lighter);
|
|
303
|
+
--yh-table-row-current-bg: var(--yh-color-primary-light-9);
|
|
304
|
+
--yh-table-row-selected-bg: var(--yh-color-primary-light-8);
|
|
305
|
+
--yh-table-row-success-bg: var(--yh-color-success-light-9);
|
|
306
|
+
--yh-table-row-warning-bg: var(--yh-color-warning-light-9);
|
|
307
|
+
--yh-table-text-color: var(--yh-text-color-regular);
|
|
308
|
+
--yh-table-empty-text-color: var(--yh-text-color-secondary);
|
|
309
|
+
--yh-table-font-size: var(--yh-font-size-base);
|
|
310
|
+
--yh-table-cell-padding: 12px 0;
|
|
311
|
+
--yh-table-cell-spacing: 12px;
|
|
312
|
+
--yh-table-fixed-left-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, 0.15);
|
|
313
|
+
--yh-table-fixed-right-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, 0.15);
|
|
314
|
+
|
|
315
|
+
/* ==================== 边框基础 ==================== */
|
|
316
|
+
--yh-border-width: 1px;
|
|
317
|
+
--yh-border-style: solid;
|
|
318
|
+
--yh-border: var(--yh-border-width) var(--yh-border-style) var(--yh-border-color);
|
|
319
|
+
|
|
320
|
+
/* ==================== 断点系统 ==================== */
|
|
321
|
+
--yh-breakpoint-xs: 0;
|
|
322
|
+
--yh-breakpoint-sm: 576px;
|
|
323
|
+
--yh-breakpoint-md: 768px;
|
|
324
|
+
--yh-breakpoint-lg: 992px;
|
|
325
|
+
--yh-breakpoint-xl: 1200px;
|
|
326
|
+
--yh-breakpoint-xxl: 1400px;
|
|
327
|
+
|
|
328
|
+
/* ==================== 字体系统扩展 ==================== */
|
|
329
|
+
--yh-font-family-monospace:
|
|
330
|
+
'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;
|
|
331
|
+
--yh-font-family-serif: Georgia, Cambria, 'Times New Roman', Times, serif;
|
|
332
|
+
|
|
333
|
+
/* ==================== 无障碍/聚焦系统 ==================== */
|
|
334
|
+
--yh-focus-ring-color: var(--yh-color-primary);
|
|
335
|
+
--yh-focus-ring-width: 2px;
|
|
336
|
+
--yh-focus-ring-offset: 2px;
|
|
337
|
+
--yh-focus-ring-opacity: 0.2;
|
|
338
|
+
--yh-focus-ring:
|
|
339
|
+
0 0 0 var(--yh-focus-ring-offset) var(--yh-bg-color),
|
|
340
|
+
0 0 0 calc(var(--yh-focus-ring-offset) + var(--yh-focus-ring-width)) var(--yh-focus-ring-color);
|
|
341
|
+
|
|
342
|
+
/* 高对比度模式支持 */
|
|
343
|
+
--yh-high-contrast-outline: 2px solid transparent;
|
|
344
|
+
--yh-high-contrast-outline-offset: 2px;
|
|
345
|
+
|
|
346
|
+
/* ==================== 滚动条样式 ==================== */
|
|
347
|
+
--yh-scrollbar-width: 6px;
|
|
348
|
+
--yh-scrollbar-thumb-color: var(--yh-text-color-disabled);
|
|
349
|
+
--yh-scrollbar-thumb-hover-color: var(--yh-text-color-secondary);
|
|
350
|
+
--yh-scrollbar-track-color: transparent;
|
|
351
|
+
--yh-scrollbar-thumb-radius: 3px;
|
|
352
|
+
|
|
353
|
+
/* ==================== 遮罩层 ==================== */
|
|
354
|
+
--yh-mask-color: rgba(0, 0, 0, 0.5);
|
|
355
|
+
--yh-mask-color-light: rgba(0, 0, 0, 0.3);
|
|
356
|
+
--yh-mask-color-extra-light: rgba(0, 0, 0, 0.1);
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
/* ==================== 暗黑模式 ==================== */
|
|
360
|
+
html.dark {
|
|
361
|
+
--yh-color-primary: #409eff;
|
|
362
|
+
--yh-color-primary-light-3: #3375b9;
|
|
363
|
+
--yh-color-primary-light-5: #2a598a;
|
|
364
|
+
--yh-color-primary-light-7: #213d5b;
|
|
365
|
+
--yh-color-primary-light-9: #18222c;
|
|
366
|
+
--yh-color-primary-dark-2: #66b1ff;
|
|
367
|
+
|
|
368
|
+
--yh-color-success: #67c23a;
|
|
369
|
+
--yh-color-success-light-3: #4e8e2f;
|
|
370
|
+
--yh-color-success-light-5: #3e6b27;
|
|
371
|
+
--yh-color-success-light-7: #2d481f;
|
|
372
|
+
--yh-color-success-light-9: #1d2518;
|
|
373
|
+
|
|
374
|
+
--yh-color-warning: #e6a23c;
|
|
375
|
+
--yh-color-warning-light-3: #a77730;
|
|
376
|
+
--yh-color-warning-light-5: #7d5b28;
|
|
377
|
+
--yh-color-warning-light-7: #533f20;
|
|
378
|
+
--yh-color-warning-light-9: #292218;
|
|
379
|
+
|
|
380
|
+
--yh-color-danger: #f56c6c;
|
|
381
|
+
--yh-color-danger-light-3: #b25252;
|
|
382
|
+
--yh-color-danger-light-5: #854040;
|
|
383
|
+
--yh-color-danger-light-7: #582e2e;
|
|
384
|
+
--yh-color-danger-light-9: #2b1d1d;
|
|
385
|
+
|
|
386
|
+
--yh-color-info: #909399;
|
|
387
|
+
--yh-color-info-light-3: #6b6d71;
|
|
388
|
+
--yh-color-info-light-5: #525457;
|
|
389
|
+
--yh-color-info-light-7: #393b3e;
|
|
390
|
+
--yh-color-info-light-9: #202124;
|
|
391
|
+
|
|
392
|
+
--yh-text-color-primary: #e5eaf3;
|
|
393
|
+
--yh-text-color-regular: #cfd3dc;
|
|
394
|
+
--yh-text-color-secondary: #a3a6ad;
|
|
395
|
+
--yh-text-color-placeholder: #8d9095;
|
|
396
|
+
--yh-text-color-disabled: #6c6e72;
|
|
397
|
+
|
|
398
|
+
--yh-border-color: #4c4d4f;
|
|
399
|
+
--yh-border-color-light: #414243;
|
|
400
|
+
--yh-border-color-lighter: #363637;
|
|
401
|
+
--yh-border-color-extra-light: #2b2b2c;
|
|
402
|
+
--yh-border-color-dark: #58585b;
|
|
403
|
+
--yh-border-color-darker: #636466;
|
|
404
|
+
|
|
405
|
+
--yh-fill-color: #303030;
|
|
406
|
+
--yh-fill-color-light: #262727;
|
|
407
|
+
--yh-fill-color-lighter: #1d1d1d;
|
|
408
|
+
--yh-fill-color-extra-light: #191919;
|
|
409
|
+
--yh-fill-color-dark: #39393a;
|
|
410
|
+
--yh-fill-color-darker: #424243;
|
|
411
|
+
--yh-fill-color-blank: transparent;
|
|
412
|
+
--yh-bg-color: #141414;
|
|
413
|
+
--yh-bg-color-page: #0a0a0a;
|
|
414
|
+
--yh-bg-color-overlay: #1d1e1f;
|
|
415
|
+
|
|
416
|
+
/* 组件暗色模式覆盖 */
|
|
417
|
+
--yh-message-bg-color: var(--yh-bg-color-overlay);
|
|
418
|
+
--yh-message-border-color: var(--yh-border-color-lighter);
|
|
419
|
+
--yh-notification-bg-color: var(--yh-bg-color-overlay);
|
|
420
|
+
--yh-notification-border-color: var(--yh-border-color-lighter);
|
|
421
|
+
--yh-badge-border-color: var(--yh-bg-color);
|
|
422
|
+
--yh-card-bg-color: var(--yh-bg-color-overlay);
|
|
423
|
+
--yh-card-border-color: var(--yh-border-color-lighter);
|
|
424
|
+
|
|
425
|
+
/* Calendar 暗黑模式 */
|
|
426
|
+
--yh-calendar-bg: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
|
|
427
|
+
--yh-calendar-border-color: rgba(255, 255, 255, 0.08);
|
|
428
|
+
--yh-calendar-header-bg: rgba(30, 30, 30, 0.95);
|
|
429
|
+
--yh-calendar-header-border: rgba(255, 255, 255, 0.06);
|
|
430
|
+
--yh-calendar-day-bg: rgba(255, 255, 255, 0.04);
|
|
431
|
+
--yh-calendar-day-color: var(--yh-text-color-primary);
|
|
432
|
+
--yh-calendar-weekday-color: var(--yh-text-color-secondary);
|
|
433
|
+
--yh-calendar-selected-bg: linear-gradient(
|
|
434
|
+
135deg,
|
|
435
|
+
rgba(59, 130, 246, 0.2) 0%,
|
|
436
|
+
rgba(59, 130, 246, 0.1) 100%
|
|
437
|
+
);
|
|
438
|
+
|
|
439
|
+
/* Table 暗黑模式 */
|
|
440
|
+
--yh-table-border-color: var(--yh-border-color-lighter);
|
|
441
|
+
--yh-table-header-bg: var(--yh-fill-color-dark);
|
|
442
|
+
--yh-table-header-text-color: var(--yh-text-color-primary);
|
|
443
|
+
--yh-table-row-bg: var(--yh-bg-color);
|
|
444
|
+
--yh-table-row-hover-bg: var(--yh-fill-color);
|
|
445
|
+
--yh-table-row-stripe-bg: var(--yh-fill-color-light);
|
|
446
|
+
--yh-table-row-current-bg: var(--yh-color-primary-light-9);
|
|
447
|
+
--yh-table-row-selected-bg: var(--yh-color-primary-light-9);
|
|
448
|
+
--yh-table-row-success-bg: var(--yh-color-success-light-9);
|
|
449
|
+
--yh-table-row-warning-bg: var(--yh-color-warning-light-9);
|
|
450
|
+
--yh-table-fixed-left-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, 0.3);
|
|
451
|
+
--yh-table-fixed-right-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, 0.3);
|
|
452
|
+
|
|
453
|
+
/* 遮罩层暗黑模式 */
|
|
454
|
+
--yh-mask-color: rgba(0, 0, 0, 0.7);
|
|
455
|
+
--yh-mask-color-light: rgba(0, 0, 0, 0.5);
|
|
456
|
+
--yh-mask-color-extra-light: rgba(0, 0, 0, 0.3);
|
|
457
|
+
|
|
458
|
+
/* 滚动条暗黑模式 */
|
|
459
|
+
--yh-scrollbar-thumb-color: var(--yh-fill-color-darker);
|
|
460
|
+
--yh-scrollbar-thumb-hover-color: var(--yh-text-color-placeholder);
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
/* ==================== 减少动画偏好支持 ==================== */
|
|
464
|
+
@media (prefers-reduced-motion: reduce) {
|
|
465
|
+
:root,
|
|
466
|
+
html.dark {
|
|
467
|
+
--yh-duration-fast: 0ms;
|
|
468
|
+
--yh-duration-base: 0ms;
|
|
469
|
+
--yh-duration-slow: 0ms;
|
|
470
|
+
--yh-transition-base: none;
|
|
471
|
+
--yh-transition-fast: none;
|
|
472
|
+
--yh-transition-slow: none;
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
*,
|
|
476
|
+
*::before,
|
|
477
|
+
*::after {
|
|
478
|
+
animation-duration: 0.01ms !important;
|
|
479
|
+
animation-iteration-count: 1 !important;
|
|
480
|
+
transition-duration: 0.01ms !important;
|
|
481
|
+
scroll-behavior: auto !important;
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
/* ==================== 高对比度模式支持 ==================== */
|
|
486
|
+
@media (prefers-contrast: high) {
|
|
487
|
+
:root {
|
|
488
|
+
--yh-border-color: #000000;
|
|
489
|
+
--yh-border-color-light: #333333;
|
|
490
|
+
--yh-text-color-primary: #000000;
|
|
491
|
+
--yh-text-color-regular: #1a1a1a;
|
|
492
|
+
--yh-focus-ring-width: 3px;
|
|
493
|
+
--yh-focus-ring-color: #000000;
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
html.dark {
|
|
497
|
+
--yh-border-color: #ffffff;
|
|
498
|
+
--yh-border-color-light: #cccccc;
|
|
499
|
+
--yh-text-color-primary: #ffffff;
|
|
500
|
+
--yh-text-color-regular: #e5e5e5;
|
|
501
|
+
--yh-focus-ring-color: #ffffff;
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
/* ==================== 强制颜色模式支持 (Windows 高对比度) ==================== */
|
|
506
|
+
@media (forced-colors: active) {
|
|
507
|
+
:root {
|
|
508
|
+
--yh-color-primary: LinkText;
|
|
509
|
+
--yh-border-color: ButtonBorder;
|
|
510
|
+
--yh-bg-color: Canvas;
|
|
511
|
+
--yh-text-color-primary: CanvasText;
|
|
512
|
+
--yh-focus-ring-color: Highlight;
|
|
513
|
+
}
|
|
514
|
+
}
|