@icen.ai/ui 0.5.0 → 0.8.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/AGENTS.md +256 -0
- package/README.md +47 -13
- package/dist/base.css +31 -4
- package/dist/behaviors/accordion.d.mts +4 -0
- package/dist/behaviors/accordion.mjs +4 -3
- package/dist/behaviors/ai-chat.d.mts +57 -0
- package/dist/behaviors/ai-chat.mjs +557 -0
- package/dist/behaviors/ai-composer.d.mts +112 -0
- package/dist/behaviors/ai-composer.mjs +2032 -0
- package/dist/behaviors/ai-core.d.mts +151 -0
- package/dist/behaviors/ai-core.mjs +491 -0
- package/dist/behaviors/ai-diff.d.mts +53 -0
- package/dist/behaviors/ai-diff.mjs +282 -0
- package/dist/behaviors/ai-panel.d.mts +98 -0
- package/dist/behaviors/ai-panel.mjs +1012 -0
- package/dist/behaviors/ai-provider.d.mts +198 -0
- package/dist/behaviors/ai-provider.mjs +1055 -0
- package/dist/behaviors/ai-tool.d.mts +18 -0
- package/dist/behaviors/ai-tool.mjs +2125 -0
- package/dist/behaviors/ai-tools.d.mts +81 -0
- package/dist/behaviors/ai-tools.mjs +1658 -0
- package/dist/behaviors/back-top.d.mts +20 -0
- package/dist/behaviors/back-top.mjs +49 -32
- package/dist/behaviors/carousel.d.mts +4 -0
- package/dist/behaviors/carousel.mjs +34 -16
- package/dist/behaviors/charts.d.mts +250 -0
- package/dist/behaviors/charts.mjs +1301 -448
- package/dist/behaviors/command-palette.d.mts +8 -0
- package/dist/behaviors/command-palette.mjs +24 -12
- package/dist/behaviors/context-menu.d.mts +36 -0
- package/dist/behaviors/context-menu.mjs +6 -2
- package/dist/behaviors/copy.d.mts +4 -0
- package/dist/behaviors/copy.mjs +7 -6
- package/dist/behaviors/datatable.d.mts +78 -0
- package/dist/behaviors/datatable.mjs +54 -11
- package/dist/behaviors/date-picker.d.mts +4 -0
- package/dist/behaviors/date-picker.mjs +104 -36
- package/dist/behaviors/dropdown.d.mts +4 -0
- package/dist/behaviors/dropdown.mjs +7 -3
- package/dist/behaviors/input.d.mts +4 -0
- package/dist/behaviors/input.mjs +29 -22
- package/dist/behaviors/modal.d.mts +11 -0
- package/dist/behaviors/modal.mjs +11 -6
- package/dist/behaviors/nav.d.mts +7 -0
- package/dist/behaviors/nav.mjs +25 -9
- package/dist/behaviors/notification.d.mts +172 -0
- package/dist/behaviors/notification.mjs +243 -89
- package/dist/behaviors/popover.d.mts +46 -0
- package/dist/behaviors/popover.mjs +2 -1
- package/dist/behaviors/select.d.mts +4 -0
- package/dist/behaviors/select.mjs +131 -26
- package/dist/behaviors/sidebar.d.mts +4 -0
- package/dist/behaviors/sidebar.mjs +4 -3
- package/dist/behaviors/slider.d.mts +4 -0
- package/dist/behaviors/slider.mjs +4 -3
- package/dist/behaviors/split-pane.d.mts +4 -0
- package/dist/behaviors/split-pane.mjs +13 -13
- package/dist/behaviors/tabs.d.mts +8 -0
- package/dist/behaviors/tabs.mjs +44 -19
- package/dist/behaviors/tag-input.d.mts +4 -0
- package/dist/behaviors/tag-input.mjs +12 -3
- package/dist/behaviors/theme.d.mts +25 -0
- package/dist/behaviors/theme.mjs +3 -1
- package/dist/behaviors/toast.d.mts +26 -0
- package/dist/behaviors/toast.mjs +24 -18
- package/dist/behaviors/tree.d.mts +4 -0
- package/dist/behaviors/tree.mjs +4 -3
- package/dist/behaviors/upload.d.mts +4 -0
- package/dist/behaviors/upload.mjs +63 -26
- package/dist/components/ai-chat.css +1037 -0
- package/dist/components/ai-chat.mjs +3 -0
- package/dist/components/ai-composer.mjs +3 -0
- package/dist/components/ai-context.mjs +2 -0
- package/dist/components/ai-diff.css +311 -0
- package/dist/components/ai-diff.mjs +3 -0
- package/dist/components/ai-files.mjs +3 -0
- package/dist/components/ai-message.mjs +3 -0
- package/dist/components/ai-panel.css +682 -0
- package/dist/components/ai-reasoning.mjs +3 -0
- package/dist/components/ai-subagent.mjs +2 -0
- package/dist/components/ai-todo.mjs +2 -0
- package/dist/components/ai-tool-call.mjs +2 -0
- package/dist/components/ai-tool.css +532 -0
- package/dist/components/ai-usage.mjs +3 -0
- package/dist/components/badge.css +4 -8
- package/dist/components/breadcrumb.css +1 -5
- package/dist/components/btn.css +4 -7
- package/dist/components/card.css +3 -6
- package/dist/components/chart-bar.css +10 -0
- package/dist/components/chart-calendar.mjs +5 -0
- package/dist/components/chart-gauge.css +1 -1
- package/dist/components/chart-heatmap.css +40 -0
- package/dist/components/chart-scatter.css +24 -0
- package/dist/components/chart-scatter.mjs +4 -0
- package/dist/components/charts.css +86 -1
- package/dist/components/charts.mjs +1 -0
- package/dist/components/command-palette.css +2 -2
- package/dist/components/content.css +8 -9
- package/dist/components/copy.css +8 -8
- package/dist/components/datatable.css +4 -8
- package/dist/components/date-picker.css +3 -7
- package/dist/components/empty.css +0 -4
- package/dist/components/feedback.css +10 -17
- package/dist/components/form.css +13 -14
- package/dist/components/input.css +2 -2
- package/dist/components/layout.css +36 -36
- package/dist/components/media.css +12 -8
- package/dist/components/menu.css +2 -2
- package/dist/components/modal.css +1 -1
- package/dist/components/nav.css +11 -6
- package/dist/components/notification.css +28 -28
- package/dist/components/pagination.css +1 -1
- package/dist/components/panel.css +16 -16
- package/dist/components/pill.css +15 -15
- package/dist/components/segmented.css +5 -5
- package/dist/components/segmented.mjs +1 -0
- package/dist/components/select.css +12 -20
- package/dist/components/sidebar.css +1 -1
- package/dist/components/split-pane.css +0 -1
- package/dist/components/stat.css +14 -18
- package/dist/components/steps.css +2 -2
- package/dist/components/switch.css +8 -12
- package/dist/components/table.css +46 -47
- package/dist/components/tabs.css +35 -46
- package/dist/components/tag-input.css +4 -4
- package/dist/components/toast.css +16 -13
- package/dist/components/tooltip.css +2 -2
- package/dist/index.d.mts +37 -0
- package/dist/index.mjs +7890 -1199
- package/dist/registry.json +113 -4
- package/dist/retro-effects.css +21 -17
- package/dist/tokens/colors.css +4 -1
- package/dist/tokens/retro-effects.css +21 -17
- package/dist/tokens/style-profiles.css +21 -0
- package/dist/tokens.css +25 -1
- package/dist/ui.css +3168 -433
- package/docs/spec/ai-native.md +659 -0
- package/package.json +15 -5
package/dist/registry.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@icen.ai/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"tokens": [
|
|
5
5
|
"colors.css",
|
|
6
6
|
"style-profiles.css",
|
|
@@ -11,6 +11,10 @@
|
|
|
11
11
|
],
|
|
12
12
|
"base": "base.css",
|
|
13
13
|
"components": [
|
|
14
|
+
"ai-chat",
|
|
15
|
+
"ai-diff",
|
|
16
|
+
"ai-panel",
|
|
17
|
+
"ai-tool",
|
|
14
18
|
"back-top",
|
|
15
19
|
"badge",
|
|
16
20
|
"breadcrumb",
|
|
@@ -23,6 +27,7 @@
|
|
|
23
27
|
"chart-line",
|
|
24
28
|
"chart-pie",
|
|
25
29
|
"chart-radar",
|
|
30
|
+
"chart-scatter",
|
|
26
31
|
"chart-sparkline",
|
|
27
32
|
"chart-stack",
|
|
28
33
|
"charts",
|
|
@@ -65,6 +70,14 @@
|
|
|
65
70
|
],
|
|
66
71
|
"behaviors": [
|
|
67
72
|
"accordion",
|
|
73
|
+
"ai-chat",
|
|
74
|
+
"ai-composer",
|
|
75
|
+
"ai-core",
|
|
76
|
+
"ai-diff",
|
|
77
|
+
"ai-panel",
|
|
78
|
+
"ai-provider",
|
|
79
|
+
"ai-tool",
|
|
80
|
+
"ai-tools",
|
|
68
81
|
"back-top",
|
|
69
82
|
"carousel",
|
|
70
83
|
"charts",
|
|
@@ -153,7 +166,11 @@
|
|
|
153
166
|
"css": "switch.css"
|
|
154
167
|
},
|
|
155
168
|
"segmented": {
|
|
156
|
-
"css": "segmented.css"
|
|
169
|
+
"css": "segmented.css",
|
|
170
|
+
"behavior": "input",
|
|
171
|
+
"exports": [
|
|
172
|
+
"initInput"
|
|
173
|
+
]
|
|
157
174
|
},
|
|
158
175
|
"upload": {
|
|
159
176
|
"css": "upload.css",
|
|
@@ -269,7 +286,8 @@
|
|
|
269
286
|
"chart-area.css",
|
|
270
287
|
"chart-stack.css",
|
|
271
288
|
"chart-gauge.css",
|
|
272
|
-
"chart-sparkline.css"
|
|
289
|
+
"chart-sparkline.css",
|
|
290
|
+
"chart-scatter.css"
|
|
273
291
|
],
|
|
274
292
|
"behavior": "charts",
|
|
275
293
|
"exports": [
|
|
@@ -282,7 +300,13 @@
|
|
|
282
300
|
"renderRadar",
|
|
283
301
|
"renderHeatmap",
|
|
284
302
|
"renderSparkline",
|
|
285
|
-
"renderGauge"
|
|
303
|
+
"renderGauge",
|
|
304
|
+
"renderCalendar",
|
|
305
|
+
"renderScatter",
|
|
306
|
+
"renderChart",
|
|
307
|
+
"normalizeChartSpec",
|
|
308
|
+
"inferChartType",
|
|
309
|
+
"chartFormatValue"
|
|
286
310
|
]
|
|
287
311
|
},
|
|
288
312
|
"chart-line": {
|
|
@@ -376,6 +400,27 @@
|
|
|
376
400
|
"renderSparkline"
|
|
377
401
|
]
|
|
378
402
|
},
|
|
403
|
+
"chart-scatter": {
|
|
404
|
+
"css": "chart-scatter.css",
|
|
405
|
+
"extraCss": [
|
|
406
|
+
"charts.css"
|
|
407
|
+
],
|
|
408
|
+
"behavior": "charts",
|
|
409
|
+
"exports": [
|
|
410
|
+
"renderScatter"
|
|
411
|
+
]
|
|
412
|
+
},
|
|
413
|
+
"chart-calendar": {
|
|
414
|
+
"css": "chart-calendar.css",
|
|
415
|
+
"extraCss": [
|
|
416
|
+
"charts.css",
|
|
417
|
+
"chart-heatmap.css"
|
|
418
|
+
],
|
|
419
|
+
"behavior": "charts",
|
|
420
|
+
"exports": [
|
|
421
|
+
"renderCalendar"
|
|
422
|
+
]
|
|
423
|
+
},
|
|
379
424
|
"alert": {
|
|
380
425
|
"css": "feedback.css"
|
|
381
426
|
},
|
|
@@ -430,6 +475,70 @@
|
|
|
430
475
|
},
|
|
431
476
|
"layout": {
|
|
432
477
|
"css": "layout.css"
|
|
478
|
+
},
|
|
479
|
+
"ai-chat": {
|
|
480
|
+
"css": "ai-chat.css",
|
|
481
|
+
"behavior": "ai-chat",
|
|
482
|
+
"init": "initAiChat"
|
|
483
|
+
},
|
|
484
|
+
"ai-message": {
|
|
485
|
+
"css": "ai-chat.css",
|
|
486
|
+
"behavior": "ai-chat",
|
|
487
|
+
"exports": [
|
|
488
|
+
"renderAiMessage",
|
|
489
|
+
"createAiStream",
|
|
490
|
+
"initAiChat"
|
|
491
|
+
]
|
|
492
|
+
},
|
|
493
|
+
"ai-reasoning": {
|
|
494
|
+
"css": "ai-chat.css",
|
|
495
|
+
"behavior": "ai-chat",
|
|
496
|
+
"exports": [
|
|
497
|
+
"createAiStream",
|
|
498
|
+
"initAiChat"
|
|
499
|
+
]
|
|
500
|
+
},
|
|
501
|
+
"ai-composer": {
|
|
502
|
+
"css": "ai-chat.css",
|
|
503
|
+
"behavior": "ai-composer",
|
|
504
|
+
"init": "initAiComposer"
|
|
505
|
+
},
|
|
506
|
+
"ai-tool-call": {
|
|
507
|
+
"css": "ai-tool-call.css",
|
|
508
|
+
"init": "initAiTool"
|
|
509
|
+
},
|
|
510
|
+
"ai-subagent": {
|
|
511
|
+
"css": "ai-tool.css",
|
|
512
|
+
"init": "initAiSubagent"
|
|
513
|
+
},
|
|
514
|
+
"ai-diff": {
|
|
515
|
+
"css": "ai-diff.css",
|
|
516
|
+
"behavior": "ai-diff",
|
|
517
|
+
"init": "initAiDiff"
|
|
518
|
+
},
|
|
519
|
+
"ai-files": {
|
|
520
|
+
"css": "ai-diff.css",
|
|
521
|
+
"behavior": "ai-diff",
|
|
522
|
+
"exports": [
|
|
523
|
+
"renderAiDiff"
|
|
524
|
+
]
|
|
525
|
+
},
|
|
526
|
+
"ai-todo": {
|
|
527
|
+
"css": "ai-panel.css",
|
|
528
|
+
"init": "initAiTodo"
|
|
529
|
+
},
|
|
530
|
+
"ai-context": {
|
|
531
|
+
"css": "ai-panel.css",
|
|
532
|
+
"init": "initAiContext"
|
|
533
|
+
},
|
|
534
|
+
"ai-usage": {
|
|
535
|
+
"css": "ai-panel.css",
|
|
536
|
+
"behavior": "ai-panel",
|
|
537
|
+
"exports": [
|
|
538
|
+
"renderAiUsage",
|
|
539
|
+
"renderAiUsageRing",
|
|
540
|
+
"renderAiAudit"
|
|
541
|
+
]
|
|
433
542
|
}
|
|
434
543
|
}
|
|
435
544
|
}
|
package/dist/retro-effects.css
CHANGED
|
@@ -11,6 +11,11 @@
|
|
|
11
11
|
* - 像素边框 / 像素按钮 / 像素分隔线工具类
|
|
12
12
|
* - 开机自检 / 打字机光标 / 页面闪白动画
|
|
13
13
|
*
|
|
14
|
+
* 作用域约定:效果类(扫描线/噪点/光标/开机行/闪白)均收在 .style-retro 下;
|
|
15
|
+
* 像素工具类(.retro-pixel-border / .retro-pixel-button / .retro-pixel-rule)
|
|
16
|
+
* 有意保持全局可用——它们是纯几何装饰,任何风格都可取用。
|
|
17
|
+
* z-index 统一走 base.css 的 --z-fx 标尺(效果层,tooltip 之上)。
|
|
18
|
+
*
|
|
14
19
|
* 所有动画尊重 prefers-reduced-motion:在 reduce 下由 base.css 的全局兜底降为 0.01ms。
|
|
15
20
|
*/
|
|
16
21
|
|
|
@@ -24,7 +29,7 @@
|
|
|
24
29
|
position: fixed;
|
|
25
30
|
inset: 0;
|
|
26
31
|
pointer-events: none;
|
|
27
|
-
z-index:
|
|
32
|
+
z-index: calc(var(--z-fx) - 1);
|
|
28
33
|
opacity: 0.14;
|
|
29
34
|
background:
|
|
30
35
|
repeating-linear-gradient(
|
|
@@ -48,7 +53,7 @@
|
|
|
48
53
|
position: fixed;
|
|
49
54
|
inset: 0;
|
|
50
55
|
pointer-events: none;
|
|
51
|
-
z-index:
|
|
56
|
+
z-index: calc(var(--z-fx) - 2);
|
|
52
57
|
background:
|
|
53
58
|
radial-gradient(
|
|
54
59
|
ellipse at center,
|
|
@@ -90,7 +95,7 @@
|
|
|
90
95
|
position: fixed;
|
|
91
96
|
inset: 0;
|
|
92
97
|
pointer-events: none;
|
|
93
|
-
z-index:
|
|
98
|
+
z-index: calc(var(--z-fx) - 3);
|
|
94
99
|
opacity: 0.06;
|
|
95
100
|
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
|
|
96
101
|
animation: retro-grain 0.5s steps(10) infinite;
|
|
@@ -110,9 +115,8 @@
|
|
|
110
115
|
100% { transform: translateY(100vh); }
|
|
111
116
|
}
|
|
112
117
|
|
|
113
|
-
/* 游走的扫描线(偶尔闪过)——
|
|
114
|
-
.style-retro .retro-scanline-beam
|
|
115
|
-
.retro-scanline-beam {
|
|
118
|
+
/* 游走的扫描线(偶尔闪过)—— 仅 .style-retro 下生效 */
|
|
119
|
+
.style-retro .retro-scanline-beam {
|
|
116
120
|
position: fixed;
|
|
117
121
|
left: 0;
|
|
118
122
|
right: 0;
|
|
@@ -124,7 +128,7 @@
|
|
|
124
128
|
transparent
|
|
125
129
|
);
|
|
126
130
|
pointer-events: none;
|
|
127
|
-
z-index:
|
|
131
|
+
z-index: calc(var(--z-fx) - 4);
|
|
128
132
|
opacity: 0.4;
|
|
129
133
|
animation: retro-scanline-slide 4s linear infinite;
|
|
130
134
|
}
|
|
@@ -140,19 +144,19 @@
|
|
|
140
144
|
100% { opacity: 0; transform: translateY(-4px); }
|
|
141
145
|
}
|
|
142
146
|
|
|
143
|
-
.retro-boot-line {
|
|
147
|
+
.style-retro .retro-boot-line {
|
|
144
148
|
opacity: 0;
|
|
145
149
|
animation: retro-boot-text 0.3s steps(1) forwards;
|
|
146
150
|
}
|
|
147
151
|
|
|
148
|
-
.retro-boot-line:nth-child(1) { animation-delay: 0.1s; }
|
|
149
|
-
.retro-boot-line:nth-child(2) { animation-delay: 0.25s; }
|
|
150
|
-
.retro-boot-line:nth-child(3) { animation-delay: 0.4s; }
|
|
151
|
-
.retro-boot-line:nth-child(4) { animation-delay: 0.55s; }
|
|
152
|
-
.retro-boot-line:nth-child(5) { animation-delay: 0.7s; }
|
|
152
|
+
.style-retro .retro-boot-line:nth-child(1) { animation-delay: 0.1s; }
|
|
153
|
+
.style-retro .retro-boot-line:nth-child(2) { animation-delay: 0.25s; }
|
|
154
|
+
.style-retro .retro-boot-line:nth-child(3) { animation-delay: 0.4s; }
|
|
155
|
+
.style-retro .retro-boot-line:nth-child(4) { animation-delay: 0.55s; }
|
|
156
|
+
.style-retro .retro-boot-line:nth-child(5) { animation-delay: 0.7s; }
|
|
153
157
|
|
|
154
158
|
/* 打字机光标 */
|
|
155
|
-
.retro-cursor::after {
|
|
159
|
+
.style-retro .retro-cursor::after {
|
|
156
160
|
content: "█";
|
|
157
161
|
display: inline-block;
|
|
158
162
|
margin-left: 2px;
|
|
@@ -250,15 +254,15 @@
|
|
|
250
254
|
100% { opacity: 0; }
|
|
251
255
|
}
|
|
252
256
|
|
|
253
|
-
.retro-page-flash {
|
|
257
|
+
.style-retro .retro-page-flash {
|
|
254
258
|
position: fixed;
|
|
255
259
|
inset: 0;
|
|
256
260
|
pointer-events: none;
|
|
257
|
-
z-index:
|
|
261
|
+
z-index: var(--z-fx);
|
|
258
262
|
background: var(--token-bg);
|
|
259
263
|
opacity: 0;
|
|
260
264
|
}
|
|
261
265
|
|
|
262
|
-
.retro-page-flash.active {
|
|
266
|
+
.style-retro .retro-page-flash.active {
|
|
263
267
|
animation: retro-flash 0.2s steps(3) forwards;
|
|
264
268
|
}
|
package/dist/tokens/colors.css
CHANGED
|
@@ -504,6 +504,8 @@
|
|
|
504
504
|
--token-accent-glow: color-mix(in srgb, var(--token-accent) 8%, transparent);
|
|
505
505
|
--token-line-dashed: color-mix(in srgb, var(--token-line-soft) 60%, transparent);
|
|
506
506
|
--token-overlay-bg: color-mix(in srgb, var(--token-bg) 92%, transparent);
|
|
507
|
+
/* 睡莲粉 accent 上的文字色:深绿灰(白字在 #d59ab1 上对比度不达标) */
|
|
508
|
+
--token-on-accent: #26302b;
|
|
507
509
|
|
|
508
510
|
--token-shadow-elevated: 0 1px 2px rgba(0,0,0,.18), 0 8px 22px rgba(0,0,0,.24);
|
|
509
511
|
--token-shadow-overlay: 0 2px 5px rgba(0,0,0,.24), 0 14px 36px rgba(0,0,0,.32);
|
|
@@ -841,7 +843,8 @@
|
|
|
841
843
|
--token-accent-glow: color-mix(in srgb, var(--token-accent) 6%, transparent);
|
|
842
844
|
--token-line-dashed: color-mix(in srgb, var(--token-line-soft) 60%, transparent);
|
|
843
845
|
--token-overlay-bg: color-mix(in srgb, var(--token-bg) 94%, transparent);
|
|
844
|
-
|
|
846
|
+
/* 松烟绿 accent 上的文字色:深墨(白字在 #7AA87E 上对比度不达标) */
|
|
847
|
+
--token-on-accent: #1a2018;
|
|
845
848
|
|
|
846
849
|
--token-shadow-elevated: 0 1px 2px rgba(0,0,0,.2), 0 4px 14px rgba(0,0,0,.22);
|
|
847
850
|
--token-shadow-overlay: 0 2px 4px rgba(0,0,0,.28), 0 10px 30px rgba(0,0,0,.34);
|
|
@@ -11,6 +11,11 @@
|
|
|
11
11
|
* - 像素边框 / 像素按钮 / 像素分隔线工具类
|
|
12
12
|
* - 开机自检 / 打字机光标 / 页面闪白动画
|
|
13
13
|
*
|
|
14
|
+
* 作用域约定:效果类(扫描线/噪点/光标/开机行/闪白)均收在 .style-retro 下;
|
|
15
|
+
* 像素工具类(.retro-pixel-border / .retro-pixel-button / .retro-pixel-rule)
|
|
16
|
+
* 有意保持全局可用——它们是纯几何装饰,任何风格都可取用。
|
|
17
|
+
* z-index 统一走 base.css 的 --z-fx 标尺(效果层,tooltip 之上)。
|
|
18
|
+
*
|
|
14
19
|
* 所有动画尊重 prefers-reduced-motion:在 reduce 下由 base.css 的全局兜底降为 0.01ms。
|
|
15
20
|
*/
|
|
16
21
|
|
|
@@ -24,7 +29,7 @@
|
|
|
24
29
|
position: fixed;
|
|
25
30
|
inset: 0;
|
|
26
31
|
pointer-events: none;
|
|
27
|
-
z-index:
|
|
32
|
+
z-index: calc(var(--z-fx) - 1);
|
|
28
33
|
opacity: 0.14;
|
|
29
34
|
background:
|
|
30
35
|
repeating-linear-gradient(
|
|
@@ -48,7 +53,7 @@
|
|
|
48
53
|
position: fixed;
|
|
49
54
|
inset: 0;
|
|
50
55
|
pointer-events: none;
|
|
51
|
-
z-index:
|
|
56
|
+
z-index: calc(var(--z-fx) - 2);
|
|
52
57
|
background:
|
|
53
58
|
radial-gradient(
|
|
54
59
|
ellipse at center,
|
|
@@ -90,7 +95,7 @@
|
|
|
90
95
|
position: fixed;
|
|
91
96
|
inset: 0;
|
|
92
97
|
pointer-events: none;
|
|
93
|
-
z-index:
|
|
98
|
+
z-index: calc(var(--z-fx) - 3);
|
|
94
99
|
opacity: 0.06;
|
|
95
100
|
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
|
|
96
101
|
animation: retro-grain 0.5s steps(10) infinite;
|
|
@@ -110,9 +115,8 @@
|
|
|
110
115
|
100% { transform: translateY(100vh); }
|
|
111
116
|
}
|
|
112
117
|
|
|
113
|
-
/* 游走的扫描线(偶尔闪过)——
|
|
114
|
-
.style-retro .retro-scanline-beam
|
|
115
|
-
.retro-scanline-beam {
|
|
118
|
+
/* 游走的扫描线(偶尔闪过)—— 仅 .style-retro 下生效 */
|
|
119
|
+
.style-retro .retro-scanline-beam {
|
|
116
120
|
position: fixed;
|
|
117
121
|
left: 0;
|
|
118
122
|
right: 0;
|
|
@@ -124,7 +128,7 @@
|
|
|
124
128
|
transparent
|
|
125
129
|
);
|
|
126
130
|
pointer-events: none;
|
|
127
|
-
z-index:
|
|
131
|
+
z-index: calc(var(--z-fx) - 4);
|
|
128
132
|
opacity: 0.4;
|
|
129
133
|
animation: retro-scanline-slide 4s linear infinite;
|
|
130
134
|
}
|
|
@@ -140,19 +144,19 @@
|
|
|
140
144
|
100% { opacity: 0; transform: translateY(-4px); }
|
|
141
145
|
}
|
|
142
146
|
|
|
143
|
-
.retro-boot-line {
|
|
147
|
+
.style-retro .retro-boot-line {
|
|
144
148
|
opacity: 0;
|
|
145
149
|
animation: retro-boot-text 0.3s steps(1) forwards;
|
|
146
150
|
}
|
|
147
151
|
|
|
148
|
-
.retro-boot-line:nth-child(1) { animation-delay: 0.1s; }
|
|
149
|
-
.retro-boot-line:nth-child(2) { animation-delay: 0.25s; }
|
|
150
|
-
.retro-boot-line:nth-child(3) { animation-delay: 0.4s; }
|
|
151
|
-
.retro-boot-line:nth-child(4) { animation-delay: 0.55s; }
|
|
152
|
-
.retro-boot-line:nth-child(5) { animation-delay: 0.7s; }
|
|
152
|
+
.style-retro .retro-boot-line:nth-child(1) { animation-delay: 0.1s; }
|
|
153
|
+
.style-retro .retro-boot-line:nth-child(2) { animation-delay: 0.25s; }
|
|
154
|
+
.style-retro .retro-boot-line:nth-child(3) { animation-delay: 0.4s; }
|
|
155
|
+
.style-retro .retro-boot-line:nth-child(4) { animation-delay: 0.55s; }
|
|
156
|
+
.style-retro .retro-boot-line:nth-child(5) { animation-delay: 0.7s; }
|
|
153
157
|
|
|
154
158
|
/* 打字机光标 */
|
|
155
|
-
.retro-cursor::after {
|
|
159
|
+
.style-retro .retro-cursor::after {
|
|
156
160
|
content: "█";
|
|
157
161
|
display: inline-block;
|
|
158
162
|
margin-left: 2px;
|
|
@@ -250,15 +254,15 @@
|
|
|
250
254
|
100% { opacity: 0; }
|
|
251
255
|
}
|
|
252
256
|
|
|
253
|
-
.retro-page-flash {
|
|
257
|
+
.style-retro .retro-page-flash {
|
|
254
258
|
position: fixed;
|
|
255
259
|
inset: 0;
|
|
256
260
|
pointer-events: none;
|
|
257
|
-
z-index:
|
|
261
|
+
z-index: var(--z-fx);
|
|
258
262
|
background: var(--token-bg);
|
|
259
263
|
opacity: 0;
|
|
260
264
|
}
|
|
261
265
|
|
|
262
|
-
.retro-page-flash.active {
|
|
266
|
+
.style-retro .retro-page-flash.active {
|
|
263
267
|
animation: retro-flash 0.2s steps(3) forwards;
|
|
264
268
|
}
|
|
@@ -60,13 +60,20 @@
|
|
|
60
60
|
--density-space-sm: 0.5rem;
|
|
61
61
|
--density-space-md: 0.75rem;
|
|
62
62
|
--density-space-lg: 1rem;
|
|
63
|
+
--density-space-xl: 1.5rem;
|
|
64
|
+
--density-space-2xl: 2rem;
|
|
65
|
+
--density-space-3xl: 3rem;
|
|
66
|
+
--density-space-4xl: 4rem;
|
|
63
67
|
--density-input-height-sm: 28px;
|
|
64
68
|
--density-input-height-md: 36px;
|
|
65
69
|
--density-input-height-lg: 44px;
|
|
70
|
+
--density-font-size-2xs: 10px;
|
|
66
71
|
--density-font-size-xs: 11px;
|
|
67
72
|
--density-font-size-sm: 12px;
|
|
68
73
|
--density-font-size-md: 13px;
|
|
69
74
|
--density-font-size-lg: 14px;
|
|
75
|
+
--density-font-size-xl: 18px;
|
|
76
|
+
--density-font-size-2xl: 22px;
|
|
70
77
|
|
|
71
78
|
/* ── Motion 动效 ── */
|
|
72
79
|
--duration-instant: 0ms;
|
|
@@ -98,13 +105,20 @@
|
|
|
98
105
|
--density-space-sm: 0.5rem;
|
|
99
106
|
--density-space-md: 0.75rem;
|
|
100
107
|
--density-space-lg: 1rem;
|
|
108
|
+
--density-space-xl: 1.5rem;
|
|
109
|
+
--density-space-2xl: 2rem;
|
|
110
|
+
--density-space-3xl: 3rem;
|
|
111
|
+
--density-space-4xl: 4rem;
|
|
101
112
|
--density-input-height-sm: 28px;
|
|
102
113
|
--density-input-height-md: 36px;
|
|
103
114
|
--density-input-height-lg: 44px;
|
|
115
|
+
--density-font-size-2xs: 10px;
|
|
104
116
|
--density-font-size-xs: 11px;
|
|
105
117
|
--density-font-size-sm: 12px;
|
|
106
118
|
--density-font-size-md: 13px;
|
|
107
119
|
--density-font-size-lg: 14px;
|
|
120
|
+
--density-font-size-xl: 18px;
|
|
121
|
+
--density-font-size-2xl: 22px;
|
|
108
122
|
|
|
109
123
|
/* ── Motion ── */
|
|
110
124
|
--duration-fast: 150ms;
|
|
@@ -133,13 +147,20 @@
|
|
|
133
147
|
--density-space-sm: 0.25rem;
|
|
134
148
|
--density-space-md: 0.5rem;
|
|
135
149
|
--density-space-lg: 0.75rem;
|
|
150
|
+
--density-space-xl: 1rem;
|
|
151
|
+
--density-space-2xl: 1.5rem;
|
|
152
|
+
--density-space-3xl: 2rem;
|
|
153
|
+
--density-space-4xl: 3rem;
|
|
136
154
|
--density-input-height-sm: 24px;
|
|
137
155
|
--density-input-height-md: 32px;
|
|
138
156
|
--density-input-height-lg: 40px;
|
|
157
|
+
--density-font-size-2xs: 9px;
|
|
139
158
|
--density-font-size-xs: 9px;
|
|
140
159
|
--density-font-size-sm: 10px;
|
|
141
160
|
--density-font-size-md: 11px;
|
|
142
161
|
--density-font-size-lg: 12px;
|
|
162
|
+
--density-font-size-xl: 14px;
|
|
163
|
+
--density-font-size-2xl: 16px;
|
|
143
164
|
|
|
144
165
|
/* ── Motion:像素风瞬间切换 ── */
|
|
145
166
|
--duration-fast: 0ms;
|
package/dist/tokens.css
CHANGED
|
@@ -507,6 +507,8 @@
|
|
|
507
507
|
--token-accent-glow: color-mix(in srgb, var(--token-accent) 8%, transparent);
|
|
508
508
|
--token-line-dashed: color-mix(in srgb, var(--token-line-soft) 60%, transparent);
|
|
509
509
|
--token-overlay-bg: color-mix(in srgb, var(--token-bg) 92%, transparent);
|
|
510
|
+
/* 睡莲粉 accent 上的文字色:深绿灰(白字在 #d59ab1 上对比度不达标) */
|
|
511
|
+
--token-on-accent: #26302b;
|
|
510
512
|
|
|
511
513
|
--token-shadow-elevated: 0 1px 2px rgba(0,0,0,.18), 0 8px 22px rgba(0,0,0,.24);
|
|
512
514
|
--token-shadow-overlay: 0 2px 5px rgba(0,0,0,.24), 0 14px 36px rgba(0,0,0,.32);
|
|
@@ -844,7 +846,8 @@
|
|
|
844
846
|
--token-accent-glow: color-mix(in srgb, var(--token-accent) 6%, transparent);
|
|
845
847
|
--token-line-dashed: color-mix(in srgb, var(--token-line-soft) 60%, transparent);
|
|
846
848
|
--token-overlay-bg: color-mix(in srgb, var(--token-bg) 94%, transparent);
|
|
847
|
-
|
|
849
|
+
/* 松烟绿 accent 上的文字色:深墨(白字在 #7AA87E 上对比度不达标) */
|
|
850
|
+
--token-on-accent: #1a2018;
|
|
848
851
|
|
|
849
852
|
--token-shadow-elevated: 0 1px 2px rgba(0,0,0,.2), 0 4px 14px rgba(0,0,0,.22);
|
|
850
853
|
--token-shadow-overlay: 0 2px 4px rgba(0,0,0,.28), 0 10px 30px rgba(0,0,0,.34);
|
|
@@ -1312,13 +1315,20 @@
|
|
|
1312
1315
|
--density-space-sm: 0.5rem;
|
|
1313
1316
|
--density-space-md: 0.75rem;
|
|
1314
1317
|
--density-space-lg: 1rem;
|
|
1318
|
+
--density-space-xl: 1.5rem;
|
|
1319
|
+
--density-space-2xl: 2rem;
|
|
1320
|
+
--density-space-3xl: 3rem;
|
|
1321
|
+
--density-space-4xl: 4rem;
|
|
1315
1322
|
--density-input-height-sm: 28px;
|
|
1316
1323
|
--density-input-height-md: 36px;
|
|
1317
1324
|
--density-input-height-lg: 44px;
|
|
1325
|
+
--density-font-size-2xs: 10px;
|
|
1318
1326
|
--density-font-size-xs: 11px;
|
|
1319
1327
|
--density-font-size-sm: 12px;
|
|
1320
1328
|
--density-font-size-md: 13px;
|
|
1321
1329
|
--density-font-size-lg: 14px;
|
|
1330
|
+
--density-font-size-xl: 18px;
|
|
1331
|
+
--density-font-size-2xl: 22px;
|
|
1322
1332
|
|
|
1323
1333
|
/* ── Motion 动效 ── */
|
|
1324
1334
|
--duration-instant: 0ms;
|
|
@@ -1350,13 +1360,20 @@
|
|
|
1350
1360
|
--density-space-sm: 0.5rem;
|
|
1351
1361
|
--density-space-md: 0.75rem;
|
|
1352
1362
|
--density-space-lg: 1rem;
|
|
1363
|
+
--density-space-xl: 1.5rem;
|
|
1364
|
+
--density-space-2xl: 2rem;
|
|
1365
|
+
--density-space-3xl: 3rem;
|
|
1366
|
+
--density-space-4xl: 4rem;
|
|
1353
1367
|
--density-input-height-sm: 28px;
|
|
1354
1368
|
--density-input-height-md: 36px;
|
|
1355
1369
|
--density-input-height-lg: 44px;
|
|
1370
|
+
--density-font-size-2xs: 10px;
|
|
1356
1371
|
--density-font-size-xs: 11px;
|
|
1357
1372
|
--density-font-size-sm: 12px;
|
|
1358
1373
|
--density-font-size-md: 13px;
|
|
1359
1374
|
--density-font-size-lg: 14px;
|
|
1375
|
+
--density-font-size-xl: 18px;
|
|
1376
|
+
--density-font-size-2xl: 22px;
|
|
1360
1377
|
|
|
1361
1378
|
/* ── Motion ── */
|
|
1362
1379
|
--duration-fast: 150ms;
|
|
@@ -1385,13 +1402,20 @@
|
|
|
1385
1402
|
--density-space-sm: 0.25rem;
|
|
1386
1403
|
--density-space-md: 0.5rem;
|
|
1387
1404
|
--density-space-lg: 0.75rem;
|
|
1405
|
+
--density-space-xl: 1rem;
|
|
1406
|
+
--density-space-2xl: 1.5rem;
|
|
1407
|
+
--density-space-3xl: 2rem;
|
|
1408
|
+
--density-space-4xl: 3rem;
|
|
1388
1409
|
--density-input-height-sm: 24px;
|
|
1389
1410
|
--density-input-height-md: 32px;
|
|
1390
1411
|
--density-input-height-lg: 40px;
|
|
1412
|
+
--density-font-size-2xs: 9px;
|
|
1391
1413
|
--density-font-size-xs: 9px;
|
|
1392
1414
|
--density-font-size-sm: 10px;
|
|
1393
1415
|
--density-font-size-md: 11px;
|
|
1394
1416
|
--density-font-size-lg: 12px;
|
|
1417
|
+
--density-font-size-xl: 14px;
|
|
1418
|
+
--density-font-size-2xl: 16px;
|
|
1395
1419
|
|
|
1396
1420
|
/* ── Motion:像素风瞬间切换 ── */
|
|
1397
1421
|
--duration-fast: 0ms;
|