@icen.ai/ui 0.4.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 +101 -0
- 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 +189 -0
- 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 +296 -0
- 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 +184 -8
- 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 +908 -0
- 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 +268 -34
- 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 +102 -0
- 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 +205 -17
- 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/back-top.css +88 -0
- package/dist/components/back-top.mjs +3 -0
- package/dist/components/badge.css +127 -0
- package/dist/components/badge.mjs +2 -0
- package/dist/components/breadcrumb.css +53 -0
- package/dist/components/btn.css +4 -7
- package/dist/components/card.css +66 -1
- 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 +246 -0
- package/dist/components/command-palette.mjs +3 -0
- package/dist/components/content.css +221 -8
- package/dist/components/copy.css +93 -0
- package/dist/components/copy.mjs +3 -0
- package/dist/components/datatable.css +4 -8
- package/dist/components/date-picker.css +240 -0
- package/dist/components/date-picker.mjs +3 -0
- package/dist/components/empty.css +69 -3
- package/dist/components/feedback.css +241 -10
- package/dist/components/form.css +129 -11
- package/dist/components/form.mjs +2 -0
- package/dist/components/input.css +25 -2
- package/dist/components/layout.css +36 -36
- package/dist/components/media.css +153 -6
- package/dist/components/menu.css +2 -2
- package/dist/components/modal.css +1 -1
- package/dist/components/nav.css +106 -2
- package/dist/components/notification.css +387 -0
- package/dist/components/notification.mjs +3 -0
- package/dist/components/pagination.css +1 -1
- package/dist/components/panel.css +104 -9
- package/dist/components/pill.css +82 -12
- package/dist/components/scroll-area.css +112 -0
- package/dist/components/scroll-area.mjs +2 -0
- package/dist/components/segmented.css +80 -5
- package/dist/components/segmented.mjs +1 -0
- package/dist/components/select.css +104 -17
- package/dist/components/sidebar.css +119 -1
- package/dist/components/slider.css +113 -0
- package/dist/components/split-pane.css +111 -0
- package/dist/components/split-pane.mjs +3 -0
- package/dist/components/stat.css +131 -12
- package/dist/components/steps.css +98 -1
- package/dist/components/switch.css +145 -7
- package/dist/components/table.css +111 -29
- package/dist/components/tabs.css +132 -22
- package/dist/components/tag-input.css +4 -4
- package/dist/components/tag.css +164 -0
- package/dist/components/tag.mjs +2 -0
- package/dist/components/toast.css +122 -5
- package/dist/components/toolbar.css +101 -0
- package/dist/components/toolbar.mjs +2 -0
- package/dist/components/tooltip.css +2 -2
- package/dist/components/upload.css +61 -4
- package/dist/index.d.mts +37 -0
- package/dist/index.mjs +9409 -929
- package/dist/registry.json +176 -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 +9616 -2839
- 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,12 @@
|
|
|
11
11
|
],
|
|
12
12
|
"base": "base.css",
|
|
13
13
|
"components": [
|
|
14
|
+
"ai-chat",
|
|
15
|
+
"ai-diff",
|
|
16
|
+
"ai-panel",
|
|
17
|
+
"ai-tool",
|
|
18
|
+
"back-top",
|
|
19
|
+
"badge",
|
|
14
20
|
"breadcrumb",
|
|
15
21
|
"btn",
|
|
16
22
|
"card",
|
|
@@ -21,11 +27,15 @@
|
|
|
21
27
|
"chart-line",
|
|
22
28
|
"chart-pie",
|
|
23
29
|
"chart-radar",
|
|
30
|
+
"chart-scatter",
|
|
24
31
|
"chart-sparkline",
|
|
25
32
|
"chart-stack",
|
|
26
33
|
"charts",
|
|
34
|
+
"command-palette",
|
|
27
35
|
"content",
|
|
36
|
+
"copy",
|
|
28
37
|
"datatable",
|
|
38
|
+
"date-picker",
|
|
29
39
|
"empty",
|
|
30
40
|
"feedback",
|
|
31
41
|
"form",
|
|
@@ -35,39 +45,57 @@
|
|
|
35
45
|
"menu",
|
|
36
46
|
"modal",
|
|
37
47
|
"nav",
|
|
48
|
+
"notification",
|
|
38
49
|
"pagination",
|
|
39
50
|
"panel",
|
|
40
51
|
"pill",
|
|
41
52
|
"popover",
|
|
53
|
+
"scroll-area",
|
|
42
54
|
"segmented",
|
|
43
55
|
"select",
|
|
44
56
|
"sidebar",
|
|
45
57
|
"slider",
|
|
58
|
+
"split-pane",
|
|
46
59
|
"stat",
|
|
47
60
|
"steps",
|
|
48
61
|
"switch",
|
|
49
62
|
"table",
|
|
50
63
|
"tabs",
|
|
51
64
|
"tag-input",
|
|
65
|
+
"tag",
|
|
52
66
|
"toast",
|
|
67
|
+
"toolbar",
|
|
53
68
|
"tooltip",
|
|
54
69
|
"upload"
|
|
55
70
|
],
|
|
56
71
|
"behaviors": [
|
|
57
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",
|
|
81
|
+
"back-top",
|
|
58
82
|
"carousel",
|
|
59
83
|
"charts",
|
|
84
|
+
"command-palette",
|
|
60
85
|
"context-menu",
|
|
61
86
|
"copy",
|
|
62
87
|
"datatable",
|
|
88
|
+
"date-picker",
|
|
63
89
|
"dropdown",
|
|
64
90
|
"input",
|
|
65
91
|
"modal",
|
|
66
92
|
"nav",
|
|
93
|
+
"notification",
|
|
67
94
|
"popover",
|
|
68
95
|
"select",
|
|
69
96
|
"sidebar",
|
|
70
97
|
"slider",
|
|
98
|
+
"split-pane",
|
|
71
99
|
"tabs",
|
|
72
100
|
"tag-input",
|
|
73
101
|
"theme",
|
|
@@ -85,6 +113,9 @@
|
|
|
85
113
|
"pill": {
|
|
86
114
|
"css": "pill.css"
|
|
87
115
|
},
|
|
116
|
+
"tag": {
|
|
117
|
+
"css": "tag.css"
|
|
118
|
+
},
|
|
88
119
|
"tabs": {
|
|
89
120
|
"css": "tabs.css",
|
|
90
121
|
"behavior": "tabs",
|
|
@@ -100,6 +131,17 @@
|
|
|
100
131
|
"toast"
|
|
101
132
|
]
|
|
102
133
|
},
|
|
134
|
+
"toolbar": {
|
|
135
|
+
"css": "toolbar.css"
|
|
136
|
+
},
|
|
137
|
+
"split-pane": {
|
|
138
|
+
"css": "split-pane.css",
|
|
139
|
+
"behavior": "split-pane",
|
|
140
|
+
"init": "initSplitPane"
|
|
141
|
+
},
|
|
142
|
+
"form": {
|
|
143
|
+
"css": "form.css"
|
|
144
|
+
},
|
|
103
145
|
"input": {
|
|
104
146
|
"css": "input.css",
|
|
105
147
|
"behavior": "input",
|
|
@@ -124,13 +166,22 @@
|
|
|
124
166
|
"css": "switch.css"
|
|
125
167
|
},
|
|
126
168
|
"segmented": {
|
|
127
|
-
"css": "segmented.css"
|
|
169
|
+
"css": "segmented.css",
|
|
170
|
+
"behavior": "input",
|
|
171
|
+
"exports": [
|
|
172
|
+
"initInput"
|
|
173
|
+
]
|
|
128
174
|
},
|
|
129
175
|
"upload": {
|
|
130
176
|
"css": "upload.css",
|
|
131
177
|
"behavior": "upload",
|
|
132
178
|
"init": "initUpload"
|
|
133
179
|
},
|
|
180
|
+
"date-picker": {
|
|
181
|
+
"css": "date-picker.css",
|
|
182
|
+
"behavior": "date-picker",
|
|
183
|
+
"init": "initDatePicker"
|
|
184
|
+
},
|
|
134
185
|
"modal": {
|
|
135
186
|
"css": "modal.css",
|
|
136
187
|
"behavior": "modal",
|
|
@@ -158,6 +209,11 @@
|
|
|
158
209
|
"tooltip": {
|
|
159
210
|
"css": "tooltip.css"
|
|
160
211
|
},
|
|
212
|
+
"command-palette": {
|
|
213
|
+
"css": "command-palette.css",
|
|
214
|
+
"behavior": "command-palette",
|
|
215
|
+
"init": "initCommandPalette"
|
|
216
|
+
},
|
|
161
217
|
"card": {
|
|
162
218
|
"css": "card.css"
|
|
163
219
|
},
|
|
@@ -200,6 +256,12 @@
|
|
|
200
256
|
"behavior": "carousel",
|
|
201
257
|
"init": "initCarousel"
|
|
202
258
|
},
|
|
259
|
+
"badge": {
|
|
260
|
+
"css": "badge.css"
|
|
261
|
+
},
|
|
262
|
+
"scroll-area": {
|
|
263
|
+
"css": "scroll-area.css"
|
|
264
|
+
},
|
|
203
265
|
"table": {
|
|
204
266
|
"css": "table.css"
|
|
205
267
|
},
|
|
@@ -224,7 +286,8 @@
|
|
|
224
286
|
"chart-area.css",
|
|
225
287
|
"chart-stack.css",
|
|
226
288
|
"chart-gauge.css",
|
|
227
|
-
"chart-sparkline.css"
|
|
289
|
+
"chart-sparkline.css",
|
|
290
|
+
"chart-scatter.css"
|
|
228
291
|
],
|
|
229
292
|
"behavior": "charts",
|
|
230
293
|
"exports": [
|
|
@@ -237,7 +300,13 @@
|
|
|
237
300
|
"renderRadar",
|
|
238
301
|
"renderHeatmap",
|
|
239
302
|
"renderSparkline",
|
|
240
|
-
"renderGauge"
|
|
303
|
+
"renderGauge",
|
|
304
|
+
"renderCalendar",
|
|
305
|
+
"renderScatter",
|
|
306
|
+
"renderChart",
|
|
307
|
+
"normalizeChartSpec",
|
|
308
|
+
"inferChartType",
|
|
309
|
+
"chartFormatValue"
|
|
241
310
|
]
|
|
242
311
|
},
|
|
243
312
|
"chart-line": {
|
|
@@ -331,6 +400,27 @@
|
|
|
331
400
|
"renderSparkline"
|
|
332
401
|
]
|
|
333
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
|
+
},
|
|
334
424
|
"alert": {
|
|
335
425
|
"css": "feedback.css"
|
|
336
426
|
},
|
|
@@ -346,6 +436,19 @@
|
|
|
346
436
|
"skeleton": {
|
|
347
437
|
"css": "feedback.css"
|
|
348
438
|
},
|
|
439
|
+
"copy": {
|
|
440
|
+
"css": "copy.css",
|
|
441
|
+
"behavior": "copy",
|
|
442
|
+
"init": "initCopy"
|
|
443
|
+
},
|
|
444
|
+
"notification": {
|
|
445
|
+
"css": "notification.css",
|
|
446
|
+
"behavior": "notification",
|
|
447
|
+
"init": "initNotification",
|
|
448
|
+
"exports": [
|
|
449
|
+
"notify"
|
|
450
|
+
]
|
|
451
|
+
},
|
|
349
452
|
"nav": {
|
|
350
453
|
"css": "nav.css",
|
|
351
454
|
"behavior": "nav",
|
|
@@ -365,8 +468,77 @@
|
|
|
365
468
|
"steps": {
|
|
366
469
|
"css": "steps.css"
|
|
367
470
|
},
|
|
471
|
+
"back-top": {
|
|
472
|
+
"css": "back-top.css",
|
|
473
|
+
"behavior": "back-top",
|
|
474
|
+
"init": "initBackTop"
|
|
475
|
+
},
|
|
368
476
|
"layout": {
|
|
369
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
|
+
]
|
|
370
542
|
}
|
|
371
543
|
}
|
|
372
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;
|