@admin-core/design 0.2.0 → 0.2.1

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.
Files changed (38) hide show
  1. package/README.en.md +698 -0
  2. package/README.md +574 -181
  3. package/dist/index.cjs +4 -4
  4. package/dist/index.cjs.map +1 -1
  5. package/dist/index.js +1142 -877
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.umd.js +4 -4
  8. package/dist/index.umd.js.map +1 -1
  9. package/dist/theme/constants.d.ts +5 -0
  10. package/dist/theme/constants.d.ts.map +1 -1
  11. package/dist/theme/i18n/en-US.d.ts +3 -0
  12. package/dist/theme/i18n/en-US.d.ts.map +1 -0
  13. package/dist/theme/i18n/index.d.ts +34 -0
  14. package/dist/theme/i18n/index.d.ts.map +1 -0
  15. package/dist/theme/i18n/zh-CN.d.ts +69 -0
  16. package/dist/theme/i18n/zh-CN.d.ts.map +1 -0
  17. package/dist/theme/index.d.ts +4 -2
  18. package/dist/theme/index.d.ts.map +1 -1
  19. package/dist/theme/integration.d.ts +124 -0
  20. package/dist/theme/integration.d.ts.map +1 -0
  21. package/dist/theme/utils.d.ts +1 -1
  22. package/dist/theme/utils.d.ts.map +1 -1
  23. package/package.json +18 -11
  24. package/src/css/base.css +145 -0
  25. package/src/css/components.css +96 -0
  26. package/src/css/index.css +21 -0
  27. package/src/css/integrations/ant-design-vue.css +64 -0
  28. package/src/css/integrations/arco-design.css +62 -0
  29. package/src/css/integrations/element-plus.css +157 -0
  30. package/src/css/integrations/index.css +17 -0
  31. package/src/css/integrations/naive-ui.css +60 -0
  32. package/src/css/nprogress.css +74 -0
  33. package/src/css/transition.css +256 -0
  34. package/src/css/ui.css +117 -0
  35. package/src/css/utilities.css +138 -0
  36. package/src/tokens/dark.css +406 -0
  37. package/src/tokens/index.ts +6 -0
  38. package/src/tokens/light.css +297 -0
package/src/css/ui.css ADDED
@@ -0,0 +1,117 @@
1
+ /* UI 组件样式 */
2
+
3
+ /* ========== 侧边内容动画 ========== */
4
+ .side-content {
5
+ animation-duration: 0.3s;
6
+ animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
7
+ }
8
+
9
+ /* 从顶部滑入 */
10
+ .side-content[data-side='top'] {
11
+ animation-name: slide-up;
12
+ }
13
+
14
+ /* 从底部滑入 */
15
+ .side-content[data-side='bottom'] {
16
+ animation-name: slide-down;
17
+ }
18
+
19
+ /* 从左侧滑入 */
20
+ .side-content[data-side='left'] {
21
+ animation-name: slide-left;
22
+ }
23
+
24
+ /* 从右侧滑入 */
25
+ .side-content[data-side='right'] {
26
+ animation-name: slide-right;
27
+ }
28
+
29
+ /* ========== 面包屑过渡动画 ========== */
30
+ .breadcrumb-transition-enter-active {
31
+ transition:
32
+ transform 0.4s cubic-bezier(0.76, 0, 0.24, 1),
33
+ opacity 0.4s cubic-bezier(0.76, 0, 0.24, 1);
34
+ }
35
+
36
+ .breadcrumb-transition-leave-active {
37
+ display: none;
38
+ }
39
+
40
+ .breadcrumb-transition-enter-from {
41
+ opacity: 0;
42
+ transform: translateX(30px) skewX(-30deg);
43
+ }
44
+
45
+ /* ========== 滑动动画关键帧 ========== */
46
+
47
+ /* 向下滑入 */
48
+ @keyframes slide-down {
49
+ from {
50
+ opacity: 0;
51
+ transform: translateY(50px);
52
+ }
53
+
54
+ to {
55
+ opacity: 1;
56
+ transform: translateY(0);
57
+ }
58
+ }
59
+
60
+ /* 向左滑入 */
61
+ @keyframes slide-left {
62
+ from {
63
+ opacity: 0;
64
+ transform: translateX(-50px);
65
+ }
66
+
67
+ to {
68
+ opacity: 1;
69
+ transform: translateX(0);
70
+ }
71
+ }
72
+
73
+ /* 向右滑入 */
74
+ @keyframes slide-right {
75
+ from {
76
+ opacity: 0;
77
+ transform: translateX(50px);
78
+ }
79
+
80
+ to {
81
+ opacity: 1;
82
+ transform: translateX(0);
83
+ }
84
+ }
85
+
86
+ /* 向上滑入 */
87
+ @keyframes slide-up {
88
+ from {
89
+ opacity: 0;
90
+ transform: translateY(-50px);
91
+ }
92
+
93
+ to {
94
+ opacity: 1;
95
+ transform: translateY(0);
96
+ }
97
+ }
98
+
99
+ /* ========== 弹窗层级 ========== */
100
+ .z-popup {
101
+ z-index: var(--popup-z-index);
102
+ }
103
+
104
+ /* ========== 收缩动画 ========== */
105
+ @keyframes shrink {
106
+ 0% {
107
+ transform: scale(1);
108
+ }
109
+
110
+ 50% {
111
+ transform: scale(0.9);
112
+ }
113
+
114
+ 100% {
115
+ transform: scale(1);
116
+ }
117
+ }
@@ -0,0 +1,138 @@
1
+ /**
2
+ * 自定义工具类
3
+ * 基于设计令牌的颜色工具类
4
+ *
5
+ * 手动定义透明度变体以支持 bg-primary/10 等用法
6
+ */
7
+ @layer utilities {
8
+ /* 背景色工具类 - 完整不透明度 */
9
+ .bg-primary {
10
+ background-color: hsl(var(--primary));
11
+ }
12
+
13
+ /* 背景色透明度变体 */
14
+ .bg-primary\/10 {
15
+ background-color: hsl(var(--primary) / 0.1);
16
+ }
17
+
18
+ .bg-primary\/30 {
19
+ background-color: hsl(var(--primary) / 0.3);
20
+ }
21
+
22
+ .bg-primary\/50 {
23
+ background-color: hsl(var(--primary) / 0.5);
24
+ }
25
+
26
+ .bg-primary\/70 {
27
+ background-color: hsl(var(--primary) / 0.7);
28
+ }
29
+
30
+ .bg-primary\/90 {
31
+ background-color: hsl(var(--primary) / 0.9);
32
+ }
33
+
34
+ /* 其他背景色 */
35
+ .bg-secondary {
36
+ background-color: hsl(var(--secondary));
37
+ }
38
+
39
+ .bg-accent {
40
+ background-color: hsl(var(--accent));
41
+ }
42
+
43
+ .bg-muted {
44
+ background-color: hsl(var(--muted));
45
+ }
46
+
47
+ .bg-destructive {
48
+ background-color: hsl(var(--destructive));
49
+ }
50
+
51
+ .bg-success {
52
+ background-color: hsl(var(--success));
53
+ }
54
+
55
+ .bg-warning {
56
+ background-color: hsl(var(--warning));
57
+ }
58
+
59
+ .bg-info {
60
+ background-color: hsl(var(--info));
61
+ }
62
+
63
+ .bg-card {
64
+ background-color: hsl(var(--card));
65
+ }
66
+
67
+ .bg-background {
68
+ background-color: hsl(var(--background));
69
+ }
70
+
71
+ .bg-input-background {
72
+ background-color: hsl(var(--input-background));
73
+ }
74
+
75
+ .bg-header {
76
+ background-color: hsl(var(--header));
77
+ }
78
+
79
+ /* 文字颜色工具类 */
80
+ .text-primary-foreground {
81
+ color: hsl(var(--primary-foreground));
82
+ }
83
+
84
+ .text-secondary-foreground {
85
+ color: hsl(var(--secondary-foreground));
86
+ }
87
+
88
+ .text-accent-foreground {
89
+ color: hsl(var(--accent-foreground));
90
+ }
91
+
92
+ .text-muted-foreground {
93
+ color: hsl(var(--muted-foreground));
94
+ }
95
+
96
+ .text-destructive-foreground {
97
+ color: hsl(var(--destructive-foreground));
98
+ }
99
+
100
+ .text-success-foreground {
101
+ color: hsl(var(--success-foreground));
102
+ }
103
+
104
+ .text-warning-foreground {
105
+ color: hsl(var(--warning-foreground));
106
+ }
107
+
108
+ .text-info-foreground {
109
+ color: hsl(var(--info-foreground));
110
+ }
111
+
112
+ .text-card-foreground {
113
+ color: hsl(var(--card-foreground));
114
+ }
115
+
116
+ .text-foreground {
117
+ color: hsl(var(--foreground));
118
+ }
119
+
120
+ .text-input-placeholder {
121
+ color: hsl(var(--input-placeholder));
122
+ }
123
+
124
+ /* 边框颜色工具类 */
125
+ .border-border {
126
+ border-color: hsl(var(--border));
127
+ }
128
+
129
+ .border-input {
130
+ border-color: hsl(var(--input));
131
+ }
132
+
133
+ /* Ring 颜色 */
134
+ .ring-ring {
135
+ --tw-ring-color: hsl(var(--ring));
136
+ }
137
+ }
138
+
@@ -0,0 +1,406 @@
1
+ /**
2
+ * 暗色主题 CSS 变量定义 - 2026流行色系列
3
+ */
4
+ .dark {
5
+ --background: 222.34deg 10.43% 12.27%;
6
+ --background-deep: 220deg 13.06% 9%;
7
+ --foreground: 0 0% 95%;
8
+ --card: 222.34deg 10.43% 12.27%;
9
+ --card-foreground: 210 40% 98%;
10
+ --popover: 0 0% 14.2%;
11
+ --popover-foreground: 210 40% 98%;
12
+ --muted: 240 3.7% 15.9%;
13
+ --muted-foreground: 240 5% 64.9%;
14
+ --primary: 212 100% 50%;
15
+ --primary-foreground: 0 0% 98%;
16
+ --destructive: 359.21 68.47% 56.47%;
17
+ --destructive-foreground: 0 0% 98%;
18
+ --info: 180 1.54% 12.75%;
19
+ --info-foreground: 220 4% 58%;
20
+ --success: 144 57% 58%;
21
+ --success-foreground: 0 0% 98%;
22
+ --warning: 42 84% 61%;
23
+ --warning-foreground: 0 0% 98%;
24
+ --secondary: 240 5% 17%;
25
+ --secondary-foreground: 0 0% 98%;
26
+ --accent: 216 5% 19%;
27
+ --accent-foreground: 0 0% 98%;
28
+ --border: 240 3.7% 22%;
29
+ --input: 0 0% 100% / 10%;
30
+ --input-placeholder: 218 11% 65%;
31
+ --input-background: 0 0% 100% / 5%;
32
+ --ring: 222.2 84% 4.9%;
33
+ --radius: 0.5rem;
34
+ --overlay: 0 0% 0% / 40%;
35
+ --overlay-content: 0 0% 0% / 40%;
36
+ --font-size-base: 16px;
37
+ --sidebar: 222.34deg 10.43% 12.27%;
38
+ --sidebar-deep: 220deg 13.06% 9%;
39
+ --menu: var(--sidebar);
40
+ --header: 222.34deg 10.43% 12.27%;
41
+ color-scheme: dark;
42
+ }
43
+
44
+ .dark[data-theme='slate'],
45
+ [data-theme='slate'] .dark {
46
+ --background: 215 25% 10%;
47
+ --background-deep: 215 30% 8%;
48
+ --foreground: 215 10% 92%;
49
+ --card: 215 25% 12%;
50
+ --card-foreground: 215 10% 92%;
51
+ --popover: 215 25% 14%;
52
+ --popover-foreground: 215 10% 92%;
53
+ --primary: 215 25% 50%;
54
+ --primary-foreground: 0 0% 98%;
55
+ --secondary: 215 20% 20%;
56
+ --secondary-foreground: 215 10% 92%;
57
+ --muted: 215 20% 20%;
58
+ --muted-foreground: 215 10% 65%;
59
+ --accent: 215 20% 22%;
60
+ --accent-foreground: 215 10% 92%;
61
+ --destructive: 0 68% 56%;
62
+ --border: 215 20% 22%;
63
+ --input: 215 20% 22%;
64
+ --ring: 215 25% 50%;
65
+ --sidebar: 215 25% 10%;
66
+ --sidebar-deep: 215 30% 8%;
67
+ --header: 215 25% 10%;
68
+ }
69
+
70
+ .dark[data-theme='burnished-lilac'],
71
+ [data-theme='burnished-lilac'] .dark {
72
+ --background: 280 25% 10%;
73
+ --background-deep: 280 30% 8%;
74
+ --foreground: 280 10% 92%;
75
+ --card: 280 25% 12%;
76
+ --card-foreground: 280 10% 92%;
77
+ --popover: 280 25% 14%;
78
+ --popover-foreground: 280 10% 92%;
79
+ --primary: 280 40% 65%;
80
+ --primary-foreground: 0 0% 98%;
81
+ --secondary: 280 20% 20%;
82
+ --secondary-foreground: 280 10% 92%;
83
+ --muted: 280 20% 20%;
84
+ --muted-foreground: 280 10% 65%;
85
+ --accent: 280 20% 22%;
86
+ --accent-foreground: 280 10% 92%;
87
+ --destructive: 0 68% 56%;
88
+ --border: 280 20% 22%;
89
+ --input: 280 20% 22%;
90
+ --ring: 280 40% 65%;
91
+ --sidebar: 280 25% 10%;
92
+ --sidebar-deep: 280 30% 8%;
93
+ --header: 280 25% 10%;
94
+ }
95
+
96
+ .dark[data-theme='teaberry'],
97
+ [data-theme='teaberry'] .dark {
98
+ --background: 345 30% 10%;
99
+ --background-deep: 345 35% 8%;
100
+ --foreground: 345 10% 92%;
101
+ --card: 345 30% 12%;
102
+ --card-foreground: 345 10% 92%;
103
+ --popover: 345 30% 14%;
104
+ --popover-foreground: 345 10% 92%;
105
+ --primary: 345 75% 60%;
106
+ --primary-foreground: 0 0% 98%;
107
+ --secondary: 345 25% 20%;
108
+ --secondary-foreground: 345 10% 92%;
109
+ --muted: 345 25% 20%;
110
+ --muted-foreground: 345 10% 65%;
111
+ --accent: 345 25% 22%;
112
+ --accent-foreground: 345 10% 92%;
113
+ --destructive: 0 68% 56%;
114
+ --border: 345 25% 22%;
115
+ --input: 345 25% 22%;
116
+ --ring: 345 75% 60%;
117
+ --sidebar: 345 30% 10%;
118
+ --sidebar-deep: 345 35% 8%;
119
+ --header: 345 30% 10%;
120
+ }
121
+
122
+ .dark[data-theme='amaranth'],
123
+ [data-theme='amaranth'] .dark {
124
+ --background: 310 30% 10%;
125
+ --background-deep: 310 35% 8%;
126
+ --foreground: 310 10% 92%;
127
+ --card: 310 30% 12%;
128
+ --card-foreground: 310 10% 92%;
129
+ --popover: 310 30% 14%;
130
+ --popover-foreground: 310 10% 92%;
131
+ --primary: 310 65% 50%;
132
+ --primary-foreground: 0 0% 98%;
133
+ --secondary: 310 25% 20%;
134
+ --secondary-foreground: 310 10% 92%;
135
+ --muted: 310 25% 20%;
136
+ --muted-foreground: 310 10% 65%;
137
+ --accent: 310 25% 22%;
138
+ --accent-foreground: 310 10% 92%;
139
+ --destructive: 0 68% 56%;
140
+ --border: 310 25% 22%;
141
+ --input: 310 25% 22%;
142
+ --ring: 310 65% 50%;
143
+ --sidebar: 310 30% 10%;
144
+ --sidebar-deep: 310 35% 8%;
145
+ --header: 310 30% 10%;
146
+ }
147
+
148
+ .dark[data-theme='pulse-blue'],
149
+ [data-theme='pulse-blue'] .dark {
150
+ --background: 200 30% 10%;
151
+ --background-deep: 200 35% 8%;
152
+ --foreground: 200 10% 92%;
153
+ --card: 200 30% 12%;
154
+ --card-foreground: 200 10% 92%;
155
+ --popover: 200 30% 14%;
156
+ --popover-foreground: 200 10% 92%;
157
+ --primary: 200 85% 55%;
158
+ --primary-foreground: 0 0% 98%;
159
+ --secondary: 200 25% 20%;
160
+ --secondary-foreground: 200 10% 92%;
161
+ --muted: 200 25% 20%;
162
+ --muted-foreground: 200 10% 65%;
163
+ --accent: 200 25% 22%;
164
+ --accent-foreground: 200 10% 92%;
165
+ --destructive: 0 68% 56%;
166
+ --border: 200 25% 22%;
167
+ --input: 200 25% 22%;
168
+ --ring: 200 85% 55%;
169
+ --sidebar: 200 30% 10%;
170
+ --sidebar-deep: 200 35% 8%;
171
+ --header: 200 30% 10%;
172
+ }
173
+
174
+ .dark[data-theme='deep-teal'],
175
+ [data-theme='deep-teal'] .dark {
176
+ --background: 180 30% 10%;
177
+ --background-deep: 180 35% 8%;
178
+ --foreground: 180 10% 92%;
179
+ --card: 180 30% 12%;
180
+ --card-foreground: 180 10% 92%;
181
+ --popover: 180 30% 14%;
182
+ --popover-foreground: 180 10% 92%;
183
+ --primary: 180 70% 40%;
184
+ --primary-foreground: 0 0% 98%;
185
+ --secondary: 180 25% 20%;
186
+ --secondary-foreground: 180 10% 92%;
187
+ --muted: 180 25% 20%;
188
+ --muted-foreground: 180 10% 65%;
189
+ --accent: 180 25% 22%;
190
+ --accent-foreground: 180 10% 92%;
191
+ --destructive: 0 68% 56%;
192
+ --border: 180 25% 22%;
193
+ --input: 180 25% 22%;
194
+ --ring: 180 70% 40%;
195
+ --sidebar: 180 30% 10%;
196
+ --sidebar-deep: 180 35% 8%;
197
+ --header: 180 30% 10%;
198
+ }
199
+
200
+ .dark[data-theme='mermaid-aqua'],
201
+ [data-theme='mermaid-aqua'] .dark {
202
+ --background: 185 30% 10%;
203
+ --background-deep: 185 35% 8%;
204
+ --foreground: 185 10% 92%;
205
+ --card: 185 30% 12%;
206
+ --card-foreground: 185 10% 92%;
207
+ --popover: 185 30% 14%;
208
+ --popover-foreground: 185 10% 92%;
209
+ --primary: 185 75% 60%;
210
+ --primary-foreground: 0 0% 98%;
211
+ --secondary: 185 25% 20%;
212
+ --secondary-foreground: 185 10% 92%;
213
+ --muted: 185 25% 20%;
214
+ --muted-foreground: 185 10% 65%;
215
+ --accent: 185 25% 22%;
216
+ --accent-foreground: 185 10% 92%;
217
+ --destructive: 0 68% 56%;
218
+ --border: 185 25% 22%;
219
+ --input: 185 25% 22%;
220
+ --ring: 185 75% 60%;
221
+ --sidebar: 185 30% 10%;
222
+ --sidebar-deep: 185 35% 8%;
223
+ --header: 185 30% 10%;
224
+ }
225
+
226
+ .dark[data-theme='pearl-purple'],
227
+ [data-theme='pearl-purple'] .dark {
228
+ --background: 270 25% 10%;
229
+ --background-deep: 270 30% 8%;
230
+ --foreground: 270 10% 92%;
231
+ --card: 270 25% 12%;
232
+ --card-foreground: 270 10% 92%;
233
+ --popover: 270 25% 14%;
234
+ --popover-foreground: 270 10% 92%;
235
+ --primary: 270 50% 70%;
236
+ --primary-foreground: 270 30% 20%;
237
+ --secondary: 270 20% 20%;
238
+ --secondary-foreground: 270 10% 92%;
239
+ --muted: 270 20% 20%;
240
+ --muted-foreground: 270 10% 65%;
241
+ --accent: 270 20% 22%;
242
+ --accent-foreground: 270 10% 92%;
243
+ --destructive: 0 68% 56%;
244
+ --border: 270 20% 22%;
245
+ --input: 270 20% 22%;
246
+ --ring: 270 50% 70%;
247
+ --sidebar: 270 25% 10%;
248
+ --sidebar-deep: 270 30% 8%;
249
+ --header: 270 25% 10%;
250
+ }
251
+
252
+ .dark[data-theme='burgundy'],
253
+ [data-theme='burgundy'] .dark {
254
+ --background: 345 30% 10%;
255
+ --background-deep: 345 35% 8%;
256
+ --foreground: 345 10% 92%;
257
+ --card: 345 30% 12%;
258
+ --card-foreground: 345 10% 92%;
259
+ --popover: 345 30% 14%;
260
+ --popover-foreground: 345 10% 92%;
261
+ --primary: 345 70% 45%;
262
+ --primary-foreground: 0 0% 98%;
263
+ --secondary: 345 25% 20%;
264
+ --secondary-foreground: 345 10% 92%;
265
+ --muted: 345 25% 20%;
266
+ --muted-foreground: 345 10% 65%;
267
+ --accent: 345 25% 22%;
268
+ --accent-foreground: 345 10% 92%;
269
+ --destructive: 0 68% 56%;
270
+ --border: 345 25% 22%;
271
+ --input: 345 25% 22%;
272
+ --ring: 345 70% 45%;
273
+ --sidebar: 345 30% 10%;
274
+ --sidebar-deep: 345 35% 8%;
275
+ --header: 345 30% 10%;
276
+ }
277
+
278
+ .dark[data-theme='burnt-sienna'],
279
+ [data-theme='burnt-sienna'] .dark {
280
+ --background: 15 30% 10%;
281
+ --background-deep: 15 35% 8%;
282
+ --foreground: 15 10% 92%;
283
+ --card: 15 30% 12%;
284
+ --card-foreground: 15 10% 92%;
285
+ --popover: 15 30% 14%;
286
+ --popover-foreground: 15 10% 92%;
287
+ --primary: 15 65% 55%;
288
+ --primary-foreground: 0 0% 98%;
289
+ --secondary: 15 25% 20%;
290
+ --secondary-foreground: 15 10% 92%;
291
+ --muted: 15 25% 20%;
292
+ --muted-foreground: 15 10% 65%;
293
+ --accent: 15 25% 22%;
294
+ --accent-foreground: 15 10% 92%;
295
+ --destructive: 0 68% 56%;
296
+ --border: 15 25% 22%;
297
+ --input: 15 25% 22%;
298
+ --ring: 15 65% 55%;
299
+ --sidebar: 15 30% 10%;
300
+ --sidebar-deep: 15 35% 8%;
301
+ --header: 15 30% 10%;
302
+ }
303
+
304
+ .dark[data-theme='olive-sage'],
305
+ [data-theme='olive-sage'] .dark {
306
+ --background: 80 25% 10%;
307
+ --background-deep: 80 30% 8%;
308
+ --foreground: 80 10% 92%;
309
+ --card: 80 25% 12%;
310
+ --card-foreground: 80 10% 92%;
311
+ --popover: 80 25% 14%;
312
+ --popover-foreground: 80 10% 92%;
313
+ --primary: 80 35% 50%;
314
+ --primary-foreground: 0 0% 98%;
315
+ --secondary: 80 20% 20%;
316
+ --secondary-foreground: 80 10% 92%;
317
+ --muted: 80 20% 20%;
318
+ --muted-foreground: 80 10% 65%;
319
+ --accent: 80 20% 22%;
320
+ --accent-foreground: 80 10% 92%;
321
+ --destructive: 0 68% 56%;
322
+ --border: 80 20% 22%;
323
+ --input: 80 20% 22%;
324
+ --ring: 80 35% 50%;
325
+ --sidebar: 80 25% 10%;
326
+ --sidebar-deep: 80 30% 8%;
327
+ --header: 80 25% 10%;
328
+ }
329
+
330
+ .dark[data-theme='champagne-gold'],
331
+ [data-theme='champagne-gold'] .dark {
332
+ --background: 45 30% 10%;
333
+ --background-deep: 45 35% 8%;
334
+ --foreground: 45 10% 92%;
335
+ --card: 45 30% 12%;
336
+ --card-foreground: 45 10% 92%;
337
+ --popover: 45 30% 14%;
338
+ --popover-foreground: 45 10% 92%;
339
+ --primary: 45 60% 65%;
340
+ --primary-foreground: 45 30% 20%;
341
+ --secondary: 45 25% 20%;
342
+ --secondary-foreground: 45 10% 92%;
343
+ --muted: 45 25% 20%;
344
+ --muted-foreground: 45 10% 65%;
345
+ --accent: 45 25% 22%;
346
+ --accent-foreground: 45 10% 92%;
347
+ --destructive: 0 68% 56%;
348
+ --border: 45 25% 22%;
349
+ --input: 45 25% 22%;
350
+ --ring: 45 60% 65%;
351
+ --sidebar: 45 30% 10%;
352
+ --sidebar-deep: 45 35% 8%;
353
+ --header: 45 30% 10%;
354
+ }
355
+
356
+ .dark[data-theme='dusty-rose'],
357
+ [data-theme='dusty-rose'] .dark {
358
+ --background: 350 25% 10%;
359
+ --background-deep: 350 30% 8%;
360
+ --foreground: 350 10% 92%;
361
+ --card: 350 25% 12%;
362
+ --card-foreground: 350 10% 92%;
363
+ --popover: 350 25% 14%;
364
+ --popover-foreground: 350 10% 92%;
365
+ --primary: 350 45% 70%;
366
+ --primary-foreground: 350 25% 20%;
367
+ --secondary: 350 20% 20%;
368
+ --secondary-foreground: 350 10% 92%;
369
+ --muted: 350 20% 20%;
370
+ --muted-foreground: 350 10% 65%;
371
+ --accent: 350 20% 22%;
372
+ --accent-foreground: 350 10% 92%;
373
+ --destructive: 0 68% 56%;
374
+ --border: 350 20% 22%;
375
+ --input: 350 20% 22%;
376
+ --ring: 350 45% 70%;
377
+ --sidebar: 350 25% 10%;
378
+ --sidebar-deep: 350 30% 8%;
379
+ --header: 350 25% 10%;
380
+ }
381
+
382
+ .dark[data-theme='citrus-green'],
383
+ [data-theme='citrus-green'] .dark {
384
+ --background: 75 30% 10%;
385
+ --background-deep: 75 35% 8%;
386
+ --foreground: 75 10% 92%;
387
+ --card: 75 30% 12%;
388
+ --card-foreground: 75 10% 92%;
389
+ --popover: 75 30% 14%;
390
+ --popover-foreground: 75 10% 92%;
391
+ --primary: 75 75% 55%;
392
+ --primary-foreground: 75 30% 15%;
393
+ --secondary: 75 25% 20%;
394
+ --secondary-foreground: 75 10% 92%;
395
+ --muted: 75 25% 20%;
396
+ --muted-foreground: 75 10% 65%;
397
+ --accent: 75 25% 22%;
398
+ --accent-foreground: 75 10% 92%;
399
+ --destructive: 0 68% 56%;
400
+ --border: 75 25% 22%;
401
+ --input: 75 25% 22%;
402
+ --ring: 75 75% 55%;
403
+ --sidebar: 75 30% 10%;
404
+ --sidebar-deep: 75 35% 8%;
405
+ --header: 75 30% 10%;
406
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * 设计令牌
3
+ * 导入浅色主题和暗色主题的 CSS 变量
4
+ */
5
+ import './light.css';
6
+ import './dark.css';