@icen.ai/ui 0.8.1 → 0.10.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 +176 -75
- package/README.md +66 -88
- package/dist/base.css +208 -179
- package/dist/behaviors/accordion.mjs +8 -8
- package/dist/behaviors/ai-branch.d.mts +19 -0
- package/dist/behaviors/ai-branch.mjs +1133 -0
- package/dist/behaviors/ai-chat.d.mts +12 -10
- package/dist/behaviors/ai-chat.mjs +1125 -155
- package/dist/behaviors/ai-composer.d.mts +44 -12
- package/dist/behaviors/ai-composer.mjs +2084 -523
- package/dist/behaviors/ai-core.d.mts +1 -1
- package/dist/behaviors/ai-core.mjs +1016 -107
- package/dist/behaviors/ai-diff.mjs +1019 -127
- package/dist/behaviors/ai-feedback.d.mts +26 -0
- package/dist/behaviors/ai-feedback.mjs +1212 -0
- package/dist/behaviors/ai-panel.d.mts +21 -7
- package/dist/behaviors/ai-panel.mjs +1308 -264
- package/dist/behaviors/ai-provider.mjs +1003 -101
- package/dist/behaviors/ai-threads.d.mts +38 -0
- package/dist/behaviors/ai-threads.mjs +1233 -0
- package/dist/behaviors/ai-tool.d.mts +2 -2
- package/dist/behaviors/ai-tool.mjs +2042 -396
- package/dist/behaviors/ai-tools.d.mts +89 -16
- package/dist/behaviors/ai-tools.mjs +4453 -372
- package/dist/behaviors/autocomplete.d.mts +53 -0
- package/dist/behaviors/autocomplete.mjs +1600 -0
- package/dist/behaviors/back-top.d.mts +1 -1
- package/dist/behaviors/back-top.mjs +951 -14
- package/dist/behaviors/carousel.d.mts +1 -1
- package/dist/behaviors/carousel.mjs +906 -11
- package/dist/behaviors/cascader.d.mts +48 -0
- package/dist/behaviors/cascader.mjs +1853 -0
- package/dist/behaviors/charts.d.mts +174 -8
- package/dist/behaviors/charts.mjs +2632 -192
- package/dist/behaviors/code-block.d.mts +36 -0
- package/dist/behaviors/code-block.mjs +1611 -0
- package/dist/behaviors/command-palette.d.mts +9 -6
- package/dist/behaviors/command-palette.mjs +161 -59
- package/dist/behaviors/context-menu.d.mts +9 -8
- package/dist/behaviors/context-menu.mjs +1112 -44
- package/dist/behaviors/controls.d.mts +13 -13
- package/dist/behaviors/controls.mjs +989 -130
- package/dist/behaviors/copy.d.mts +21 -2
- package/dist/behaviors/copy.mjs +1206 -42
- package/dist/behaviors/datatable.d.mts +53 -3
- package/dist/behaviors/datatable.mjs +1963 -207
- package/dist/behaviors/date-picker.d.mts +0 -1
- package/dist/behaviors/date-picker.mjs +1340 -293
- package/dist/behaviors/design.d.mts +54 -0
- package/dist/behaviors/design.mjs +109 -0
- package/dist/behaviors/dropdown.d.mts +5 -6
- package/dist/behaviors/dropdown.mjs +262 -110
- package/dist/behaviors/events.d.mts +313 -3
- package/dist/behaviors/events.mjs +47 -2
- package/dist/behaviors/feedback.d.mts +30 -0
- package/dist/behaviors/feedback.mjs +296 -0
- package/dist/behaviors/focus.d.mts +8 -0
- package/dist/behaviors/focus.mjs +24 -0
- package/dist/behaviors/form-validate.d.mts +102 -0
- package/dist/behaviors/form-validate.mjs +6091 -0
- package/dist/behaviors/i18n.d.mts +789 -0
- package/dist/behaviors/i18n.mjs +1711 -0
- package/dist/behaviors/icons.d.mts +93 -0
- package/dist/behaviors/icons.mjs +113 -0
- package/dist/behaviors/input.d.mts +9 -1
- package/dist/behaviors/input.mjs +1056 -60
- package/dist/behaviors/kb-access.d.mts +34 -0
- package/dist/behaviors/kb-access.mjs +2459 -0
- package/dist/behaviors/kb-acl.d.mts +50 -0
- package/dist/behaviors/kb-acl.mjs +1345 -0
- package/dist/behaviors/kb-answer.d.mts +38 -0
- package/dist/behaviors/kb-answer.mjs +3707 -0
- package/dist/behaviors/kb-audit.d.mts +23 -0
- package/dist/behaviors/kb-audit.mjs +1297 -0
- package/dist/behaviors/kb-canvas.d.mts +44 -0
- package/dist/behaviors/kb-canvas.mjs +1512 -0
- package/dist/behaviors/kb-chain.d.mts +15 -0
- package/dist/behaviors/kb-chain.mjs +1192 -0
- package/dist/behaviors/kb-checkpoint.d.mts +16 -0
- package/dist/behaviors/kb-checkpoint.mjs +1492 -0
- package/dist/behaviors/kb-chunks.d.mts +31 -0
- package/dist/behaviors/kb-chunks.mjs +1414 -0
- package/dist/behaviors/kb-citation.d.mts +38 -0
- package/dist/behaviors/kb-citation.mjs +1699 -0
- package/dist/behaviors/kb-clarify.d.mts +20 -0
- package/dist/behaviors/kb-clarify.mjs +1176 -0
- package/dist/behaviors/kb-conflict.d.mts +22 -0
- package/dist/behaviors/kb-conflict.mjs +1206 -0
- package/dist/behaviors/kb-connector.d.mts +17 -0
- package/dist/behaviors/kb-connector.mjs +1303 -0
- package/dist/behaviors/kb-core.d.mts +534 -0
- package/dist/behaviors/kb-core.mjs +1805 -0
- package/dist/behaviors/kb-eval.d.mts +22 -0
- package/dist/behaviors/kb-eval.mjs +2235 -0
- package/dist/behaviors/kb-explain.d.mts +11 -0
- package/dist/behaviors/kb-explain.mjs +1165 -0
- package/dist/behaviors/kb-filter.d.mts +31 -0
- package/dist/behaviors/kb-filter.mjs +2417 -0
- package/dist/behaviors/kb-gap.d.mts +27 -0
- package/dist/behaviors/kb-gap.mjs +1195 -0
- package/dist/behaviors/kb-hittest.d.mts +34 -0
- package/dist/behaviors/kb-hittest.mjs +1352 -0
- package/dist/behaviors/kb-metadata.d.mts +29 -0
- package/dist/behaviors/kb-metadata.mjs +1248 -0
- package/dist/behaviors/kb-passage.d.mts +41 -0
- package/dist/behaviors/kb-passage.mjs +1469 -0
- package/dist/behaviors/kb-pipeline.d.mts +18 -0
- package/dist/behaviors/kb-pipeline.mjs +1301 -0
- package/dist/behaviors/kb-qa.d.mts +26 -0
- package/dist/behaviors/kb-qa.mjs +1260 -0
- package/dist/behaviors/kb-rerank.d.mts +20 -0
- package/dist/behaviors/kb-rerank.mjs +1248 -0
- package/dist/behaviors/kb-retrieval.d.mts +49 -0
- package/dist/behaviors/kb-retrieval.mjs +2585 -0
- package/dist/behaviors/kb-review.d.mts +44 -0
- package/dist/behaviors/kb-review.mjs +2282 -0
- package/dist/behaviors/kb-sandbox.d.mts +33 -0
- package/dist/behaviors/kb-sandbox.mjs +1247 -0
- package/dist/behaviors/kb-segment.d.mts +32 -0
- package/dist/behaviors/kb-segment.mjs +1431 -0
- package/dist/behaviors/kb-select.d.mts +24 -0
- package/dist/behaviors/kb-select.mjs +1989 -0
- package/dist/behaviors/kb-sources.d.mts +27 -0
- package/dist/behaviors/kb-sources.mjs +1287 -0
- package/dist/behaviors/kb-sql.d.mts +43 -0
- package/dist/behaviors/kb-sql.mjs +1865 -0
- package/dist/behaviors/kb-trace.d.mts +16 -0
- package/dist/behaviors/kb-trace.mjs +1328 -0
- package/dist/behaviors/kb-visibility.d.mts +44 -0
- package/dist/behaviors/kb-visibility.mjs +1331 -0
- package/dist/behaviors/kb-who-can.d.mts +32 -0
- package/dist/behaviors/kb-who-can.mjs +2216 -0
- package/dist/behaviors/mentions.d.mts +93 -0
- package/dist/behaviors/mentions.mjs +2152 -0
- package/dist/behaviors/modal.d.mts +4 -3
- package/dist/behaviors/modal.mjs +1055 -33
- package/dist/behaviors/nav.d.mts +1 -1
- package/dist/behaviors/nav.mjs +6 -6
- package/dist/behaviors/notification.d.mts +16 -8
- package/dist/behaviors/notification.mjs +1615 -265
- package/dist/behaviors/panel.d.mts +4 -0
- package/dist/behaviors/panel.mjs +994 -0
- package/dist/behaviors/popover.d.mts +28 -5
- package/dist/behaviors/popover.mjs +225 -24
- package/dist/behaviors/select.d.mts +5 -2
- package/dist/behaviors/select.mjs +1410 -117
- package/dist/behaviors/sidebar.d.mts +1 -1
- package/dist/behaviors/sidebar.mjs +13 -13
- package/dist/behaviors/slider.d.mts +1 -1
- package/dist/behaviors/slider.mjs +9 -9
- package/dist/behaviors/split-pane.d.mts +1 -1
- package/dist/behaviors/split-pane.mjs +7 -7
- package/dist/behaviors/suggestions.d.mts +27 -0
- package/dist/behaviors/suggestions.mjs +1089 -0
- package/dist/behaviors/svg-parse.d.mts +14 -0
- package/dist/behaviors/svg-parse.mjs +37 -0
- package/dist/behaviors/tabs.d.mts +2 -2
- package/dist/behaviors/tabs.mjs +25 -25
- package/dist/behaviors/tag-input.d.mts +23 -5
- package/dist/behaviors/tag-input.mjs +1359 -104
- package/dist/behaviors/theme-switcher.d.mts +24 -0
- package/dist/behaviors/theme-switcher.mjs +1981 -0
- package/dist/behaviors/theme.d.mts +15 -8
- package/dist/behaviors/theme.mjs +390 -28
- package/dist/behaviors/toast.d.mts +24 -25
- package/dist/behaviors/toast.mjs +1266 -88
- package/dist/behaviors/tooltip.d.mts +4 -0
- package/dist/behaviors/tooltip.mjs +378 -0
- package/dist/behaviors/tree-select.d.mts +69 -0
- package/dist/behaviors/tree-select.mjs +1907 -0
- package/dist/behaviors/tree.d.mts +1 -1
- package/dist/behaviors/tree.mjs +15 -15
- package/dist/behaviors/upload.d.mts +3 -2
- package/dist/behaviors/upload.mjs +1076 -66
- package/dist/cli.mjs +5 -6
- package/dist/components/ai-branch.mjs +3 -0
- package/dist/components/ai-chat.css +846 -458
- package/dist/components/ai-diff.css +153 -132
- package/dist/components/ai-feedback.mjs +3 -0
- package/dist/components/ai-panel.css +495 -270
- package/dist/components/ai-threads.mjs +3 -0
- package/dist/components/ai-tool.css +393 -238
- package/dist/components/autocomplete.css +61 -0
- package/dist/components/autocomplete.mjs +3 -0
- package/dist/components/back-top.css +34 -31
- package/dist/components/badge.css +44 -41
- package/dist/components/breadcrumb.css +67 -46
- package/dist/components/btn.css +80 -74
- package/dist/components/card.css +117 -106
- package/dist/components/cascader.css +311 -0
- package/dist/components/cascader.mjs +3 -0
- package/dist/components/chart-area.css +8 -2
- package/dist/components/chart-bar.css +95 -33
- package/dist/components/chart-gauge.css +14 -11
- package/dist/components/chart-graph.css +60 -0
- package/dist/components/chart-graph.mjs +4 -0
- package/dist/components/chart-heatmap.css +96 -90
- package/dist/components/chart-line.css +8 -3
- package/dist/components/chart-map.mjs +3 -0
- package/dist/components/chart-pie.css +9 -6
- package/dist/components/chart-radar.css +8 -5
- package/dist/components/chart-scatter.css +9 -6
- package/dist/components/chart-scatter.mjs +1 -1
- package/dist/components/chart-sparkline.css +5 -2
- package/dist/components/chart-stack.css +14 -11
- package/dist/components/charts.css +190 -67
- package/dist/components/charts.mjs +1 -0
- package/dist/components/code-block.css +418 -0
- package/dist/components/code-block.mjs +4 -0
- package/dist/components/command-palette.css +138 -117
- package/dist/components/content.css +257 -251
- package/dist/components/copy.css +72 -44
- package/dist/components/datatable.css +423 -181
- package/dist/components/date-picker.css +135 -104
- package/dist/components/empty.css +68 -65
- package/dist/components/feedback.css +201 -183
- package/dist/components/form-validate.css +120 -0
- package/dist/components/form-validate.mjs +3 -0
- package/dist/components/form.css +150 -127
- package/dist/components/icon.css +102 -0
- package/dist/components/icon.mjs +3 -0
- package/dist/components/input.css +159 -104
- package/dist/components/kb-access.mjs +4 -0
- package/dist/components/kb-acl.mjs +4 -0
- package/dist/components/kb-agent.css +496 -0
- package/dist/components/kb-answer.mjs +4 -0
- package/dist/components/kb-audit.mjs +4 -0
- package/dist/components/kb-canvas.mjs +4 -0
- package/dist/components/kb-chain.mjs +4 -0
- package/dist/components/kb-checkpoint.mjs +4 -0
- package/dist/components/kb-chunks.mjs +4 -0
- package/dist/components/kb-citation.mjs +4 -0
- package/dist/components/kb-clarify.mjs +4 -0
- package/dist/components/kb-conflict.mjs +4 -0
- package/dist/components/kb-connector.mjs +4 -0
- package/dist/components/kb-data.css +653 -0
- package/dist/components/kb-eval.mjs +4 -0
- package/dist/components/kb-explain.mjs +4 -0
- package/dist/components/kb-filter.mjs +4 -0
- package/dist/components/kb-gap.mjs +4 -0
- package/dist/components/kb-ground.css +578 -0
- package/dist/components/kb-hittest.mjs +4 -0
- package/dist/components/kb-ingest.css +882 -0
- package/dist/components/kb-metadata.mjs +4 -0
- package/dist/components/kb-ops.css +554 -0
- package/dist/components/kb-passage.mjs +4 -0
- package/dist/components/kb-perm.css +433 -0
- package/dist/components/kb-pipeline.mjs +4 -0
- package/dist/components/kb-qa.mjs +4 -0
- package/dist/components/kb-rerank.mjs +4 -0
- package/dist/components/kb-retrieval.mjs +4 -0
- package/dist/components/kb-review.mjs +4 -0
- package/dist/components/kb-sandbox.mjs +4 -0
- package/dist/components/kb-search.css +897 -0
- package/dist/components/kb-segment.mjs +4 -0
- package/dist/components/kb-sources.mjs +4 -0
- package/dist/components/kb-sql.mjs +4 -0
- package/dist/components/kb-trace.mjs +4 -0
- package/dist/components/kb-visibility.mjs +4 -0
- package/dist/components/kb-who-can.mjs +4 -0
- package/dist/components/kb.css +263 -0
- package/dist/components/kb.mjs +9 -0
- package/dist/components/layout.css +85 -82
- package/dist/components/material-chinese.css +73 -0
- package/dist/components/material-soviet.css +76 -0
- package/dist/components/material.css +275 -0
- package/dist/components/media.css +220 -166
- package/dist/components/mentions.css +189 -0
- package/dist/components/mentions.mjs +3 -0
- package/dist/components/menu.css +113 -105
- package/dist/components/modal.css +107 -112
- package/dist/components/nav.css +118 -115
- package/dist/components/notification.css +238 -174
- package/dist/components/pagination.css +56 -53
- package/dist/components/panel.css +66 -63
- package/dist/components/panel.mjs +1 -0
- package/dist/components/pill.css +81 -71
- package/dist/components/popover.css +67 -53
- package/dist/components/scroll-area.css +113 -110
- package/dist/components/segmented.css +146 -143
- package/dist/components/select.css +206 -186
- package/dist/components/sidebar.css +137 -127
- package/dist/components/slider.css +117 -114
- package/dist/components/split-pane.css +112 -109
- package/dist/components/stat.css +112 -106
- package/dist/components/steps.css +109 -103
- package/dist/components/switch.css +138 -134
- package/dist/components/table.css +131 -107
- package/dist/components/tabs.css +114 -108
- package/dist/components/tag-input.css +48 -133
- package/dist/components/tag.css +81 -71
- package/dist/components/theme-switcher.css +105 -0
- package/dist/components/theme-switcher.mjs +3 -0
- package/dist/components/toast.css +100 -86
- package/dist/components/toolbar.css +45 -42
- package/dist/components/tooltip.css +102 -43
- package/dist/components/tooltip.mjs +1 -0
- package/dist/components/tree-select.css +416 -0
- package/dist/components/tree-select.mjs +3 -0
- package/dist/components/upload.css +135 -92
- package/dist/fonts/LICENSES/ark-pixel/OFL.txt +96 -0
- package/dist/fonts/LICENSES/cubic-11/OFL.txt +108 -0
- package/dist/fonts/LICENSES/galmuri/LICENSE.txt +93 -0
- package/dist/fonts/OFL.txt +96 -0
- package/dist/fonts/README.md +14 -0
- package/dist/fonts/fusion-pixel-12px-zh-hans.woff2 +0 -0
- package/dist/index.d.mts +64 -15
- package/dist/index.mjs +28049 -8595
- package/dist/react.d.mts +91 -0
- package/dist/react.mjs +8208 -0
- package/dist/registry.json +454 -15
- package/dist/tokens/chinese.css +44 -0
- package/dist/tokens/colors.css +365 -1222
- package/dist/tokens/design.css +109 -0
- package/dist/tokens/dtcg.json +11198 -0
- package/dist/tokens/figma.variables.json +7017 -0
- package/dist/tokens/icon-masks.css +78 -0
- package/dist/tokens/pixel.css +50 -0
- package/dist/tokens/soviet.css +44 -0
- package/dist/tokens/style-profiles.css +36 -547
- package/dist/tokens/themes.json +308 -0
- package/dist/tokens/tokens-studio.json +6728 -0
- package/dist/tokens/typography.css +21 -18
- package/dist/tokens.css +1555 -1801
- package/dist/ui.css +16147 -8597
- package/dist/vue.d.mts +344 -0
- package/dist/vue.mjs +7781 -0
- package/docs/spec/ai-input-experience.md +75 -0
- package/docs/spec/ai-native.md +238 -147
- package/docs/spec/design-philosophy.md +189 -0
- package/docs/spec/design-primitives.md +196 -0
- package/docs/spec/kb-family.md +475 -0
- package/package.json +42 -7
- package/dist/retro-effects.css +0 -255
- package/dist/tokens/retro-effects.css +0 -255
package/dist/tokens.css
CHANGED
|
@@ -1,1309 +1,401 @@
|
|
|
1
|
-
/* @icen.ai/ui — tokens
|
|
1
|
+
/* @icen.ai/ui — tokens + opt-in design materials */
|
|
2
|
+
@layer icen.tokens, icen.base, icen.components;
|
|
3
|
+
@layer icen.tokens {
|
|
2
4
|
|
|
3
5
|
/* ── tokens/colors.css ── */
|
|
4
|
-
/*
|
|
5
|
-
*
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
:
|
|
24
|
-
|
|
25
|
-
--
|
|
26
|
-
--
|
|
27
|
-
--
|
|
28
|
-
--
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
--
|
|
35
|
-
--
|
|
36
|
-
--
|
|
37
|
-
--
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
--
|
|
41
|
-
--
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
--
|
|
45
|
-
--
|
|
46
|
-
--
|
|
47
|
-
--
|
|
48
|
-
--
|
|
49
|
-
--
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
--
|
|
53
|
-
--
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
--
|
|
60
|
-
--
|
|
61
|
-
--
|
|
62
|
-
--
|
|
63
|
-
--
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
--
|
|
67
|
-
--
|
|
68
|
-
--
|
|
69
|
-
--
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
--
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
--
|
|
86
|
-
--
|
|
87
|
-
--
|
|
88
|
-
--
|
|
89
|
-
--
|
|
90
|
-
--
|
|
91
|
-
--
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
--
|
|
95
|
-
--
|
|
96
|
-
--
|
|
97
|
-
--
|
|
98
|
-
--
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
--
|
|
102
|
-
--
|
|
103
|
-
--
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
--
|
|
111
|
-
--
|
|
112
|
-
--
|
|
113
|
-
--
|
|
114
|
-
--
|
|
115
|
-
--
|
|
116
|
-
--
|
|
117
|
-
--
|
|
118
|
-
--
|
|
119
|
-
--
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
--
|
|
123
|
-
--
|
|
124
|
-
--
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
--
|
|
135
|
-
--
|
|
136
|
-
--
|
|
137
|
-
--
|
|
138
|
-
--
|
|
139
|
-
--
|
|
140
|
-
--
|
|
141
|
-
--
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
--
|
|
145
|
-
--
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
--
|
|
149
|
-
--
|
|
150
|
-
--
|
|
151
|
-
--
|
|
152
|
-
--
|
|
153
|
-
--
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
--
|
|
161
|
-
--
|
|
162
|
-
--
|
|
163
|
-
--
|
|
164
|
-
--
|
|
165
|
-
--
|
|
166
|
-
--
|
|
167
|
-
--
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
--
|
|
171
|
-
--
|
|
172
|
-
--
|
|
173
|
-
--
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
--
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
--
|
|
185
|
-
--
|
|
186
|
-
--
|
|
187
|
-
--
|
|
188
|
-
--
|
|
189
|
-
--
|
|
190
|
-
--
|
|
191
|
-
--
|
|
192
|
-
--text
|
|
193
|
-
--
|
|
194
|
-
--
|
|
195
|
-
--
|
|
196
|
-
--
|
|
197
|
-
--
|
|
198
|
-
--
|
|
199
|
-
--shadow-
|
|
200
|
-
--
|
|
201
|
-
--
|
|
202
|
-
--
|
|
203
|
-
--
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
--
|
|
210
|
-
--
|
|
211
|
-
--
|
|
212
|
-
--
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
--
|
|
223
|
-
--
|
|
224
|
-
--
|
|
225
|
-
--
|
|
226
|
-
--
|
|
227
|
-
--
|
|
228
|
-
--
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
--
|
|
237
|
-
--
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
--
|
|
241
|
-
--
|
|
242
|
-
--
|
|
243
|
-
--
|
|
244
|
-
--
|
|
245
|
-
--
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
--
|
|
249
|
-
--
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
--
|
|
253
|
-
--
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
--
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
--
|
|
263
|
-
--
|
|
264
|
-
--
|
|
265
|
-
--
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
--
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
--
|
|
272
|
-
--
|
|
273
|
-
--
|
|
274
|
-
--
|
|
275
|
-
--
|
|
276
|
-
--
|
|
277
|
-
--
|
|
278
|
-
--
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
--
|
|
285
|
-
--
|
|
286
|
-
--
|
|
287
|
-
--
|
|
288
|
-
--
|
|
289
|
-
--
|
|
290
|
-
--
|
|
291
|
-
--
|
|
292
|
-
--
|
|
293
|
-
--
|
|
294
|
-
--
|
|
295
|
-
--
|
|
296
|
-
--
|
|
297
|
-
--
|
|
298
|
-
--
|
|
299
|
-
--
|
|
300
|
-
--
|
|
301
|
-
--
|
|
302
|
-
--
|
|
303
|
-
--
|
|
304
|
-
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
/*
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
--token-bg:
|
|
311
|
-
--token-bg-soft:
|
|
312
|
-
--token-surface:
|
|
313
|
-
--token-surface-strong:
|
|
314
|
-
--token-
|
|
315
|
-
--token-
|
|
316
|
-
--token-
|
|
317
|
-
--token-
|
|
318
|
-
--token-
|
|
319
|
-
--token-text-
|
|
320
|
-
--token-accent:
|
|
321
|
-
--token-accent-cold:
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
--token-
|
|
325
|
-
--token-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
--token-
|
|
329
|
-
--token-
|
|
330
|
-
--token-
|
|
331
|
-
--token-line
|
|
332
|
-
--token-
|
|
333
|
-
--token-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
--token-
|
|
337
|
-
--token-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
--token-
|
|
341
|
-
--token-
|
|
342
|
-
--token-
|
|
343
|
-
--token-
|
|
344
|
-
--token-
|
|
345
|
-
--token-
|
|
346
|
-
--token-
|
|
347
|
-
--token-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
--token-
|
|
351
|
-
--token-
|
|
352
|
-
--token-
|
|
353
|
-
--token-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
--token-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
--
|
|
360
|
-
--
|
|
361
|
-
--
|
|
362
|
-
--
|
|
363
|
-
--
|
|
364
|
-
--
|
|
365
|
-
--bg-
|
|
366
|
-
--bg-
|
|
367
|
-
--bg-
|
|
368
|
-
--bg-
|
|
369
|
-
--bg-
|
|
370
|
-
--
|
|
371
|
-
--
|
|
372
|
-
--text-
|
|
373
|
-
--text-
|
|
374
|
-
--text-
|
|
375
|
-
--
|
|
376
|
-
--
|
|
377
|
-
--border-
|
|
378
|
-
--
|
|
379
|
-
--
|
|
380
|
-
--
|
|
381
|
-
--
|
|
382
|
-
--color-
|
|
383
|
-
--color-
|
|
384
|
-
--color-
|
|
385
|
-
--color-
|
|
386
|
-
--color-
|
|
387
|
-
--color-
|
|
388
|
-
--color-
|
|
389
|
-
--color-
|
|
390
|
-
--
|
|
391
|
-
--
|
|
392
|
-
--accent-clay-border: color-mix(in srgb, var(--token-accent) 24%, transparent);
|
|
393
|
-
}
|
|
394
|
-
|
|
395
|
-
/* ══════════════════════════════════════════════════════════════
|
|
396
|
-
ART — 莫奈 · 日出印象 + 睡莲
|
|
397
|
-
Monet · Impression, Sunrise × Water Lilies
|
|
398
|
-
══════════════════════════════════════════════════════════════ */
|
|
399
|
-
|
|
400
|
-
/* ── ART LIGHT · 日出印象 (Claude Monet, 1872) ── */
|
|
401
|
-
.art {
|
|
402
|
-
/* 勒阿弗尔晨雾 · 日出橙红 · 港湾青灰 */
|
|
403
|
-
--token-bg: #dce8e3;
|
|
404
|
-
--token-bg-soft: #ccdcd6;
|
|
405
|
-
--token-surface: #edf3ee;
|
|
406
|
-
--token-surface-strong: #d8e6df;
|
|
407
|
-
--token-line-soft: #b7c9c1;
|
|
408
|
-
--token-line: #96aaa2;
|
|
409
|
-
--token-line-strong: #718980;
|
|
410
|
-
--token-text: #172226;
|
|
411
|
-
--token-text-muted: #445553;
|
|
412
|
-
--token-text-faint: #768985;
|
|
413
|
-
--token-accent: #d66f4f;
|
|
414
|
-
--token-accent-cold: #4f8f90;
|
|
415
|
-
|
|
416
|
-
/* ── Glow · 雾霭橙光 ── */
|
|
417
|
-
--token-glow: rgba(214,111,79,.12);
|
|
418
|
-
--token-glow-cold: rgba(79,143,144,.07);
|
|
419
|
-
|
|
420
|
-
/* ── Derived ── */
|
|
421
|
-
--token-surface-hover: color-mix(in srgb, var(--token-surface-strong) 88%, var(--token-accent) 12%);
|
|
422
|
-
--token-accent-subtle: color-mix(in srgb, var(--token-accent) 12%, transparent);
|
|
423
|
-
--token-accent-glow: color-mix(in srgb, var(--token-accent) 8%, transparent);
|
|
424
|
-
--token-line-dashed: color-mix(in srgb, var(--token-line-soft) 55%, transparent);
|
|
425
|
-
--token-overlay-bg: color-mix(in srgb, var(--token-bg) 94%, transparent);
|
|
426
|
-
--token-on-accent: #ffffff;
|
|
427
|
-
|
|
428
|
-
--token-shadow-elevated: 0 1px 2px rgba(23,34,38,.05), 0 6px 18px rgba(23,34,38,.08);
|
|
429
|
-
--token-shadow-overlay: 0 2px 5px rgba(23,34,38,.08), 0 12px 32px rgba(23,34,38,.12);
|
|
430
|
-
|
|
431
|
-
--token-success: #5a8c6e;
|
|
432
|
-
--token-success-muted: rgba(90,140,110,.10);
|
|
433
|
-
--token-warning: #b67933;
|
|
434
|
-
--token-warning-muted: rgba(182,121,51,.11);
|
|
435
|
-
--token-error: #b95e52;
|
|
436
|
-
--token-error-muted: rgba(185,94,82,.11);
|
|
437
|
-
--token-info: #568aa0;
|
|
438
|
-
--token-info-muted: rgba(86,138,160,.11);
|
|
439
|
-
|
|
440
|
-
--token-fill-1: color-mix(in srgb, var(--token-text) 3%, transparent);
|
|
441
|
-
--token-fill-2: color-mix(in srgb, var(--token-text) 6%, transparent);
|
|
442
|
-
--token-fill-3: color-mix(in srgb, var(--token-text) 10%, transparent);
|
|
443
|
-
--token-fill-4: color-mix(in srgb, var(--token-text) 16%, transparent);
|
|
444
|
-
|
|
445
|
-
--token-surface-glass: color-mix(in srgb, var(--token-bg) 84%, transparent);
|
|
446
|
-
|
|
447
|
-
/* ── BRIDGE ── */
|
|
448
|
-
--accent-clay: var(--token-accent);
|
|
449
|
-
--accent-clay-dark: #b95a3c;
|
|
450
|
-
--accent-clay-light: #e69a82;
|
|
451
|
-
--accent-cold: var(--token-accent-cold);
|
|
452
|
-
--bg-primary: var(--token-bg);
|
|
453
|
-
--bg-secondary: var(--token-bg-soft);
|
|
454
|
-
--bg-tertiary: var(--token-surface);
|
|
455
|
-
--bg-card: var(--token-surface);
|
|
456
|
-
--bg-card-muted: var(--token-bg-soft);
|
|
457
|
-
--bg-panel: var(--token-surface-strong);
|
|
458
|
-
--bg-hover: var(--token-surface-hover);
|
|
459
|
-
--text-primary: var(--token-text);
|
|
460
|
-
--text-secondary: var(--token-text-muted);
|
|
461
|
-
--text-tertiary: #556864;
|
|
462
|
-
--text-muted: var(--token-text-faint);
|
|
463
|
-
--text-subtle: var(--token-line-strong);
|
|
464
|
-
--border-subtle: var(--token-line-soft);
|
|
465
|
-
--border-default: var(--token-line);
|
|
466
|
-
--border-strong: var(--token-line-strong);
|
|
467
|
-
--shadow-sm: var(--token-shadow-elevated);
|
|
468
|
-
--shadow-md: var(--token-shadow-overlay);
|
|
469
|
-
--color-success: var(--token-success);
|
|
470
|
-
--color-success-bg: var(--token-success-muted);
|
|
471
|
-
--color-warning: var(--token-warning);
|
|
472
|
-
--color-warning-bg: var(--token-warning-muted);
|
|
473
|
-
--color-error: var(--token-error);
|
|
474
|
-
--color-error-bg: var(--token-error-muted);
|
|
475
|
-
--color-info: var(--token-info);
|
|
476
|
-
--color-info-bg: var(--token-info-muted);
|
|
477
|
-
--color-pending: var(--token-text-faint);
|
|
478
|
-
--color-pending-bg: var(--token-fill-1);
|
|
479
|
-
--accent-clay-bg: var(--token-accent-subtle);
|
|
480
|
-
--accent-clay-bg-strong: color-mix(in srgb, var(--token-accent) 14%, transparent);
|
|
481
|
-
--accent-clay-border: color-mix(in srgb, var(--token-accent) 20%, transparent);
|
|
482
|
-
}
|
|
483
|
-
|
|
484
|
-
/* ── ART DARK · 莫奈睡莲 (Water Lilies) ── */
|
|
485
|
-
.art.dark {
|
|
486
|
-
/* 睡莲池水 · 暮色蓝绿 · 莲粉紫影 */
|
|
487
|
-
--token-bg: #172521;
|
|
488
|
-
--token-bg-soft: #1d312c;
|
|
489
|
-
--token-surface: #263d37;
|
|
490
|
-
--token-surface-strong: #304a42;
|
|
491
|
-
--token-line-soft: #35554c;
|
|
492
|
-
--token-line: #4c7167;
|
|
493
|
-
--token-line-strong: #659082;
|
|
494
|
-
--token-text: #edf1e8;
|
|
495
|
-
--token-text-muted: #c1cabd;
|
|
496
|
-
--token-text-faint: #7f9188;
|
|
497
|
-
--token-accent: #d59ab1;
|
|
498
|
-
--token-accent-cold: #78aaa2;
|
|
499
|
-
|
|
500
|
-
/* ── Glow · 池面粉紫和水光 ── */
|
|
501
|
-
--token-glow: rgba(213,154,177,.10);
|
|
502
|
-
--token-glow-cold: rgba(120,170,162,.10);
|
|
503
|
-
|
|
504
|
-
/* ── Derived ── */
|
|
505
|
-
--token-surface-hover: color-mix(in srgb, var(--token-surface) 86%, var(--token-accent-cold) 14%);
|
|
506
|
-
--token-accent-subtle: color-mix(in srgb, var(--token-accent) 12%, transparent);
|
|
507
|
-
--token-accent-glow: color-mix(in srgb, var(--token-accent) 8%, transparent);
|
|
508
|
-
--token-line-dashed: color-mix(in srgb, var(--token-line-soft) 60%, transparent);
|
|
509
|
-
--token-overlay-bg: color-mix(in srgb, var(--token-bg) 92%, transparent);
|
|
510
|
-
/* 睡莲粉 accent 上的文字色:深绿灰(白字在 #d59ab1 上对比度不达标) */
|
|
511
|
-
--token-on-accent: #26302b;
|
|
512
|
-
|
|
513
|
-
--token-shadow-elevated: 0 1px 2px rgba(0,0,0,.18), 0 8px 22px rgba(0,0,0,.24);
|
|
514
|
-
--token-shadow-overlay: 0 2px 5px rgba(0,0,0,.24), 0 14px 36px rgba(0,0,0,.32);
|
|
515
|
-
|
|
516
|
-
--token-success: #5ab88a;
|
|
517
|
-
--token-success-muted: rgba(90,184,138,.12);
|
|
518
|
-
--token-warning: #c5aa68;
|
|
519
|
-
--token-warning-muted: rgba(197,170,104,.12);
|
|
520
|
-
--token-error: #d1847e;
|
|
521
|
-
--token-error-muted: rgba(209,132,126,.12);
|
|
522
|
-
--token-info: #78aaa2;
|
|
523
|
-
--token-info-muted: rgba(120,170,162,.12);
|
|
524
|
-
|
|
525
|
-
--token-fill-1: color-mix(in srgb, var(--token-text) 4%, transparent);
|
|
526
|
-
--token-fill-2: color-mix(in srgb, var(--token-text) 8%, transparent);
|
|
527
|
-
--token-fill-3: color-mix(in srgb, var(--token-text) 14%, transparent);
|
|
528
|
-
--token-fill-4: color-mix(in srgb, var(--token-text) 22%, transparent);
|
|
529
|
-
|
|
530
|
-
--token-surface-glass: color-mix(in srgb, var(--token-bg-soft) 82%, transparent);
|
|
531
|
-
|
|
532
|
-
/* ── BRIDGE ── */
|
|
533
|
-
--accent-clay: var(--token-accent);
|
|
534
|
-
--accent-clay-dark: #bc7f9a;
|
|
535
|
-
--accent-clay-light: #e4b7ca;
|
|
536
|
-
--accent-cold: var(--token-accent-cold);
|
|
537
|
-
--bg-primary: var(--token-bg);
|
|
538
|
-
--bg-secondary: var(--token-bg-soft);
|
|
539
|
-
--bg-tertiary: var(--token-surface);
|
|
540
|
-
--bg-card: var(--token-bg-soft);
|
|
541
|
-
--bg-card-muted: var(--token-surface);
|
|
542
|
-
--bg-panel: var(--token-surface-strong);
|
|
543
|
-
--bg-hover: var(--token-surface-hover);
|
|
544
|
-
--text-primary: var(--token-text);
|
|
545
|
-
--text-secondary: var(--token-text-muted);
|
|
546
|
-
--text-tertiary: #a5b1aa;
|
|
547
|
-
--text-muted: var(--token-text-faint);
|
|
548
|
-
--text-subtle: var(--token-line-strong);
|
|
549
|
-
--border-subtle: var(--token-line-soft);
|
|
550
|
-
--border-default: var(--token-line);
|
|
551
|
-
--border-strong: var(--token-line-strong);
|
|
552
|
-
--shadow-sm: var(--token-shadow-elevated);
|
|
553
|
-
--shadow-md: var(--token-shadow-overlay);
|
|
554
|
-
--color-success: var(--token-success);
|
|
555
|
-
--color-success-bg: var(--token-success-muted);
|
|
556
|
-
--color-warning: var(--token-warning);
|
|
557
|
-
--color-warning-bg: var(--token-warning-muted);
|
|
558
|
-
--color-error: var(--token-error);
|
|
559
|
-
--color-error-bg: var(--token-error-muted);
|
|
560
|
-
--color-info: var(--token-info);
|
|
561
|
-
--color-info-bg: var(--token-info-muted);
|
|
562
|
-
--color-pending: var(--token-text-faint);
|
|
563
|
-
--color-pending-bg: var(--token-fill-1);
|
|
564
|
-
--accent-clay-bg: var(--token-accent-subtle);
|
|
565
|
-
--accent-clay-bg-strong: color-mix(in srgb, var(--token-accent) 14%, transparent);
|
|
566
|
-
--accent-clay-border: color-mix(in srgb, var(--token-accent) 22%, transparent);
|
|
567
|
-
}
|
|
568
|
-
|
|
569
|
-
/* ══════════════════════════════════════════════════════════════
|
|
570
|
-
VANGOGH — 麦田鸦群 + 星空
|
|
571
|
-
Van Gogh · Wheatfield × Starry Night
|
|
572
|
-
══════════════════════════════════════════════════════════════ */
|
|
573
|
-
|
|
574
|
-
/* ── VANGOGH LIGHT · 麦田鸦群 ── */
|
|
575
|
-
.vangogh {
|
|
576
|
-
/* 干麦秆画布 · 麦浪金 · 普鲁士蓝阴影 */
|
|
577
|
-
--token-bg: #e8ddb2;
|
|
578
|
-
--token-bg-soft: #d5c58f;
|
|
579
|
-
--token-surface: #f2e8bd;
|
|
580
|
-
--token-surface-strong: #decb85;
|
|
581
|
-
--token-line-soft: #c0ad6e;
|
|
582
|
-
--token-line: #9f8b53;
|
|
583
|
-
--token-line-strong: #70623f;
|
|
584
|
-
--token-text: #1f241b;
|
|
585
|
-
--token-text-muted: #4a5138;
|
|
586
|
-
--token-text-faint: #767b57;
|
|
587
|
-
--token-accent: #1f527c;
|
|
588
|
-
--token-accent-cold: #476f45;
|
|
589
|
-
|
|
590
|
-
--token-glow: rgba(31,82,124,.09);
|
|
591
|
-
--token-glow-cold: rgba(71,111,69,.07);
|
|
592
|
-
|
|
593
|
-
--token-surface-hover: color-mix(in srgb, var(--token-surface-strong) 90%, var(--token-accent) 10%);
|
|
594
|
-
--token-accent-subtle: color-mix(in srgb, var(--token-accent) 10%, transparent);
|
|
595
|
-
--token-accent-glow: color-mix(in srgb, var(--token-accent) 7%, transparent);
|
|
596
|
-
--token-line-dashed: color-mix(in srgb, var(--token-line-soft) 60%, transparent);
|
|
597
|
-
--token-overlay-bg: color-mix(in srgb, var(--token-bg) 94%, transparent);
|
|
598
|
-
--token-on-accent: #fff3c5;
|
|
599
|
-
|
|
600
|
-
--token-shadow-elevated: 0 1px 2px rgba(31,36,27,.06), 0 7px 20px rgba(31,36,27,.10);
|
|
601
|
-
--token-shadow-overlay: 0 2px 5px rgba(31,36,27,.09), 0 16px 40px rgba(31,36,27,.15);
|
|
602
|
-
|
|
603
|
-
--token-success: #3f7d50;
|
|
604
|
-
--token-success-muted: rgba(63,125,80,.12);
|
|
605
|
-
--token-warning: #a97824;
|
|
606
|
-
--token-warning-muted: rgba(169,120,36,.12);
|
|
607
|
-
--token-error: #9c513a;
|
|
608
|
-
--token-error-muted: rgba(156,81,58,.11);
|
|
609
|
-
--token-info: #2d638e;
|
|
610
|
-
--token-info-muted: rgba(45,99,142,.11);
|
|
611
|
-
|
|
612
|
-
--token-fill-1: color-mix(in srgb, var(--token-text) 4%, transparent);
|
|
613
|
-
--token-fill-2: color-mix(in srgb, var(--token-text) 8%, transparent);
|
|
614
|
-
--token-fill-3: color-mix(in srgb, var(--token-text) 13%, transparent);
|
|
615
|
-
--token-fill-4: color-mix(in srgb, var(--token-text) 20%, transparent);
|
|
616
|
-
|
|
617
|
-
--token-surface-glass: color-mix(in srgb, var(--token-surface) 82%, transparent);
|
|
618
|
-
|
|
619
|
-
/* ── BRIDGE ── */
|
|
620
|
-
--accent-clay: var(--token-accent);
|
|
621
|
-
--accent-clay-dark: #173f64;
|
|
622
|
-
--accent-clay-light: #5b82a6;
|
|
623
|
-
--accent-cold: var(--token-accent-cold);
|
|
624
|
-
--bg-primary: var(--token-bg);
|
|
625
|
-
--bg-secondary: var(--token-bg-soft);
|
|
626
|
-
--bg-tertiary: var(--token-surface);
|
|
627
|
-
--bg-card: var(--token-surface);
|
|
628
|
-
--bg-card-muted: var(--token-bg-soft);
|
|
629
|
-
--bg-panel: var(--token-surface-strong);
|
|
630
|
-
--bg-hover: var(--token-surface-hover);
|
|
631
|
-
--text-primary: var(--token-text);
|
|
632
|
-
--text-secondary: var(--token-text-muted);
|
|
633
|
-
--text-tertiary: #606847;
|
|
634
|
-
--text-muted: var(--token-text-faint);
|
|
635
|
-
--text-subtle: var(--token-line-strong);
|
|
636
|
-
--border-subtle: var(--token-line-soft);
|
|
637
|
-
--border-default: var(--token-line);
|
|
638
|
-
--border-strong: var(--token-line-strong);
|
|
639
|
-
--shadow-sm: var(--token-shadow-elevated);
|
|
640
|
-
--shadow-md: var(--token-shadow-overlay);
|
|
641
|
-
--color-success: var(--token-success);
|
|
642
|
-
--color-success-bg: var(--token-success-muted);
|
|
643
|
-
--color-warning: var(--token-warning);
|
|
644
|
-
--color-warning-bg: var(--token-warning-muted);
|
|
645
|
-
--color-error: var(--token-error);
|
|
646
|
-
--color-error-bg: var(--token-error-muted);
|
|
647
|
-
--color-info: var(--token-info);
|
|
648
|
-
--color-info-bg: var(--token-info-muted);
|
|
649
|
-
--color-pending: var(--token-text-faint);
|
|
650
|
-
--color-pending-bg: var(--token-fill-1);
|
|
651
|
-
--accent-clay-bg: var(--token-accent-subtle);
|
|
652
|
-
--accent-clay-bg-strong: color-mix(in srgb, var(--token-accent) 16%, transparent);
|
|
653
|
-
--accent-clay-border: color-mix(in srgb, var(--token-accent) 24%, transparent);
|
|
654
|
-
}
|
|
655
|
-
|
|
656
|
-
/* ── VANGOGH DARK · 星空 ── */
|
|
657
|
-
.vangogh.dark {
|
|
658
|
-
/* 钴蓝夜空 · 漩涡青蓝 · 星点暖黄 */
|
|
659
|
-
--token-bg: #0f1b2e;
|
|
660
|
-
--token-bg-soft: #142440;
|
|
661
|
-
--token-surface: #1a3050;
|
|
662
|
-
--token-surface-strong: #223a60;
|
|
663
|
-
--token-line-soft: #1c3455;
|
|
664
|
-
--token-line: #2a4a75;
|
|
665
|
-
--token-line-strong: #3a5a8a;
|
|
666
|
-
--token-text: #f0ece0;
|
|
667
|
-
--token-text-muted: #c0bcb0;
|
|
668
|
-
--token-text-faint: #77728b;
|
|
669
|
-
--token-accent: #e8c840;
|
|
670
|
-
--token-accent-cold: #4a98b8;
|
|
671
|
-
|
|
672
|
-
--token-glow: rgba(232,200,64,.12);
|
|
673
|
-
--token-glow-cold: rgba(74,152,184,.08);
|
|
674
|
-
|
|
675
|
-
--token-surface-hover: color-mix(in srgb, var(--token-surface) 88%, var(--token-accent) 12%);
|
|
676
|
-
--token-accent-subtle: color-mix(in srgb, var(--token-accent) 10%, transparent);
|
|
677
|
-
--token-accent-glow: color-mix(in srgb, var(--token-accent) 6%, transparent);
|
|
678
|
-
--token-line-dashed: color-mix(in srgb, var(--token-line-soft) 60%, transparent);
|
|
679
|
-
--token-overlay-bg: color-mix(in srgb, var(--token-bg) 92%, transparent);
|
|
680
|
-
--token-on-accent: #101824;
|
|
681
|
-
|
|
682
|
-
--token-shadow-elevated: 0 1px 2px rgba(0,0,0,.14), 0 4px 12px rgba(0,0,0,.20);
|
|
683
|
-
--token-shadow-overlay: 0 2px 4px rgba(0,0,0,.18), 0 8px 24px rgba(0,0,0,.28);
|
|
684
|
-
|
|
685
|
-
--token-success: #5ab88a;
|
|
686
|
-
--token-success-muted: rgba(90,184,138,.12);
|
|
687
|
-
--token-warning: #d4a028;
|
|
688
|
-
--token-warning-muted: rgba(212,160,40,.12);
|
|
689
|
-
--token-error: #d06060;
|
|
690
|
-
--token-error-muted: rgba(208,96,96,.12);
|
|
691
|
-
--token-info: #6090c0;
|
|
692
|
-
--token-info-muted: rgba(96,144,192,.12);
|
|
693
|
-
|
|
694
|
-
--token-fill-1: color-mix(in srgb, var(--token-text) 4%, transparent);
|
|
695
|
-
--token-fill-2: color-mix(in srgb, var(--token-text) 8%, transparent);
|
|
696
|
-
--token-fill-3: color-mix(in srgb, var(--token-text) 14%, transparent);
|
|
697
|
-
--token-fill-4: color-mix(in srgb, var(--token-text) 22%, transparent);
|
|
698
|
-
|
|
699
|
-
--token-surface-glass: color-mix(in srgb, var(--token-bg-soft) 82%, transparent);
|
|
700
|
-
|
|
701
|
-
/* ── BRIDGE ── */
|
|
702
|
-
--accent-clay: var(--token-accent);
|
|
703
|
-
--accent-clay-dark: #c8a830;
|
|
704
|
-
--accent-clay-light: #f0e070;
|
|
705
|
-
--accent-cold: var(--token-accent-cold);
|
|
706
|
-
--bg-primary: var(--token-bg);
|
|
707
|
-
--bg-secondary: var(--token-bg-soft);
|
|
708
|
-
--bg-tertiary: var(--token-surface);
|
|
709
|
-
--bg-card: var(--token-bg-soft);
|
|
710
|
-
--bg-card-muted: var(--token-surface);
|
|
711
|
-
--bg-panel: var(--token-surface-strong);
|
|
712
|
-
--bg-hover: var(--token-surface-hover);
|
|
713
|
-
--text-primary: var(--token-text);
|
|
714
|
-
--text-secondary: var(--token-text-muted);
|
|
715
|
-
--text-tertiary: #a0a098;
|
|
716
|
-
--text-muted: var(--token-text-faint);
|
|
717
|
-
--text-subtle: var(--token-line-strong);
|
|
718
|
-
--border-subtle: var(--token-line-soft);
|
|
719
|
-
--border-default: var(--token-line);
|
|
720
|
-
--border-strong: var(--token-line-strong);
|
|
721
|
-
--shadow-sm: var(--token-shadow-elevated);
|
|
722
|
-
--shadow-md: var(--token-shadow-overlay);
|
|
723
|
-
--color-success: var(--token-success);
|
|
724
|
-
--color-success-bg: var(--token-success-muted);
|
|
725
|
-
--color-warning: var(--token-warning);
|
|
726
|
-
--color-warning-bg: var(--token-warning-muted);
|
|
727
|
-
--color-error: var(--token-error);
|
|
728
|
-
--color-error-bg: var(--token-error-muted);
|
|
729
|
-
--color-info: var(--token-info);
|
|
730
|
-
--color-info-bg: var(--token-info-muted);
|
|
731
|
-
--color-pending: var(--token-text-faint);
|
|
732
|
-
--color-pending-bg: var(--token-fill-1);
|
|
733
|
-
--accent-clay-bg: var(--token-accent-subtle);
|
|
734
|
-
--accent-clay-bg-strong: color-mix(in srgb, var(--token-accent) 14%, transparent);
|
|
735
|
-
--accent-clay-border: color-mix(in srgb, var(--token-accent) 22%, transparent);
|
|
736
|
-
}
|
|
737
|
-
|
|
738
|
-
/* ══════════════════════════════════════════════════════════════
|
|
739
|
-
INK — 水墨纸砚 · 松烟翠
|
|
740
|
-
Sumi Ink · Rice Paper × Pine-Soot Green
|
|
741
|
-
══════════════════════════════════════════════════════════════ */
|
|
742
|
-
|
|
743
|
-
/* ── INK LIGHT · 宣纸水墨 ── */
|
|
744
|
-
.ink {
|
|
745
|
-
/* 宣纸白底 · 墨灰 · 松烟绿 accent */
|
|
746
|
-
--token-bg: #F5F2ED;
|
|
747
|
-
--token-bg-soft: #EDE9E2;
|
|
748
|
-
--token-surface: #E8E4DC;
|
|
749
|
-
--token-surface-strong: #E0DBD2;
|
|
750
|
-
--token-line-soft: #D4CFC6;
|
|
751
|
-
--token-line: #B8B2A8;
|
|
752
|
-
--token-line-strong: #969088;
|
|
753
|
-
--token-text: #1A1816;
|
|
754
|
-
--token-text-muted: #5C5854;
|
|
755
|
-
--token-text-faint: #969088;
|
|
756
|
-
--token-accent: #5B7A5E;
|
|
757
|
-
--token-accent-cold: #6B7E8A;
|
|
758
|
-
|
|
759
|
-
--token-glow: rgba(91,122,94,.08);
|
|
760
|
-
--token-glow-cold: rgba(107,126,138,.04);
|
|
761
|
-
|
|
762
|
-
--token-surface-hover: color-mix(in srgb, var(--token-surface) 94%, var(--token-accent) 6%);
|
|
763
|
-
--token-accent-subtle: color-mix(in srgb, var(--token-accent) 10%, transparent);
|
|
764
|
-
--token-accent-glow: color-mix(in srgb, var(--token-accent) 6%, transparent);
|
|
765
|
-
--token-line-dashed: color-mix(in srgb, var(--token-line-soft) 55%, transparent);
|
|
766
|
-
--token-overlay-bg: color-mix(in srgb, var(--token-bg) 94%, transparent);
|
|
767
|
-
--token-on-accent: #ffffff;
|
|
768
|
-
|
|
769
|
-
--token-shadow-elevated: 0 1px 2px rgba(0,0,0,.04), 0 4px 14px rgba(0,0,0,.06);
|
|
770
|
-
--token-shadow-overlay: 0 2px 4px rgba(0,0,0,.06), 0 10px 28px rgba(0,0,0,.08);
|
|
771
|
-
|
|
772
|
-
--token-success: #5A8E6A;
|
|
773
|
-
--token-success-muted: rgba(90,142,106,.10);
|
|
774
|
-
--token-warning: #9A7A3A;
|
|
775
|
-
--token-warning-muted: rgba(154,122,58,.10);
|
|
776
|
-
--token-error: #A05048;
|
|
777
|
-
--token-error-muted: rgba(160,80,72,.10);
|
|
778
|
-
--token-info: #5A7890;
|
|
779
|
-
--token-info-muted: rgba(90,120,144,.10);
|
|
780
|
-
|
|
781
|
-
--token-fill-1: color-mix(in srgb, var(--token-text) 3%, transparent);
|
|
782
|
-
--token-fill-2: color-mix(in srgb, var(--token-text) 6%, transparent);
|
|
783
|
-
--token-fill-3: color-mix(in srgb, var(--token-text) 10%, transparent);
|
|
784
|
-
--token-fill-4: color-mix(in srgb, var(--token-text) 16%, transparent);
|
|
785
|
-
|
|
786
|
-
--token-surface-glass: color-mix(in srgb, var(--token-bg) 86%, transparent);
|
|
787
|
-
|
|
788
|
-
/* ── BRIDGE ── */
|
|
789
|
-
--accent-clay: var(--token-accent);
|
|
790
|
-
--accent-clay-dark: #4A6A4E;
|
|
791
|
-
--accent-clay-light: #8AA88E;
|
|
792
|
-
--accent-cold: var(--token-accent-cold);
|
|
793
|
-
--bg-primary: var(--token-bg);
|
|
794
|
-
--bg-secondary: var(--token-bg-soft);
|
|
795
|
-
--bg-tertiary: var(--token-surface);
|
|
796
|
-
--bg-card: #FCFAF7;
|
|
797
|
-
--bg-card-muted: var(--token-bg-soft);
|
|
798
|
-
--bg-panel: var(--token-surface-strong);
|
|
799
|
-
--bg-hover: var(--token-surface-hover);
|
|
800
|
-
--text-primary: var(--token-text);
|
|
801
|
-
--text-secondary: var(--token-text-muted);
|
|
802
|
-
--text-tertiary: #7A7672;
|
|
803
|
-
--text-muted: var(--token-text-faint);
|
|
804
|
-
--text-subtle: var(--token-line-strong);
|
|
805
|
-
--border-subtle: var(--token-line-soft);
|
|
806
|
-
--border-default: var(--token-line);
|
|
807
|
-
--border-strong: var(--token-line-strong);
|
|
808
|
-
--shadow-sm: var(--token-shadow-elevated);
|
|
809
|
-
--shadow-md: var(--token-shadow-overlay);
|
|
810
|
-
--color-success: var(--token-success);
|
|
811
|
-
--color-success-bg: var(--token-success-muted);
|
|
812
|
-
--color-warning: var(--token-warning);
|
|
813
|
-
--color-warning-bg: var(--token-warning-muted);
|
|
814
|
-
--color-error: var(--token-error);
|
|
815
|
-
--color-error-bg: var(--token-error-muted);
|
|
816
|
-
--color-info: var(--token-info);
|
|
817
|
-
--color-info-bg: var(--token-info-muted);
|
|
818
|
-
--color-pending: var(--token-text-faint);
|
|
819
|
-
--color-pending-bg: var(--token-fill-1);
|
|
820
|
-
--accent-clay-bg: var(--token-accent-subtle);
|
|
821
|
-
--accent-clay-bg-strong: color-mix(in srgb, var(--token-accent) 14%, transparent);
|
|
822
|
-
--accent-clay-border: color-mix(in srgb, var(--token-accent) 20%, transparent);
|
|
823
|
-
}
|
|
824
|
-
|
|
825
|
-
/* ── INK DARK · 夜墨松烟 ── */
|
|
826
|
-
.ink.dark {
|
|
827
|
-
/* 墨色夜空 · 松烟暗绿 · 冷灰星点 */
|
|
828
|
-
--token-bg: #131815;
|
|
829
|
-
--token-bg-soft: #1A201D;
|
|
830
|
-
--token-surface: #212824;
|
|
831
|
-
--token-surface-strong: #28302B;
|
|
832
|
-
--token-line-soft: #2A322D;
|
|
833
|
-
--token-line: #3A423D;
|
|
834
|
-
--token-line-strong: #4A524D;
|
|
835
|
-
--token-text: #F0EEE8;
|
|
836
|
-
--token-text-muted: #B0AEAA;
|
|
837
|
-
--token-text-faint: #74726e;
|
|
838
|
-
--token-accent: #7AA87E;
|
|
839
|
-
--token-accent-cold: #6A8EA0;
|
|
840
|
-
|
|
841
|
-
--token-glow: rgba(122,168,126,.10);
|
|
842
|
-
--token-glow-cold: rgba(106,142,160,.05);
|
|
843
|
-
|
|
844
|
-
--token-surface-hover: color-mix(in srgb, var(--token-surface) 90%, var(--token-accent) 10%);
|
|
845
|
-
--token-accent-subtle: color-mix(in srgb, var(--token-accent) 10%, transparent);
|
|
846
|
-
--token-accent-glow: color-mix(in srgb, var(--token-accent) 6%, transparent);
|
|
847
|
-
--token-line-dashed: color-mix(in srgb, var(--token-line-soft) 60%, transparent);
|
|
848
|
-
--token-overlay-bg: color-mix(in srgb, var(--token-bg) 94%, transparent);
|
|
849
|
-
/* 松烟绿 accent 上的文字色:深墨(白字在 #7AA87E 上对比度不达标) */
|
|
850
|
-
--token-on-accent: #1a2018;
|
|
851
|
-
|
|
852
|
-
--token-shadow-elevated: 0 1px 2px rgba(0,0,0,.2), 0 4px 14px rgba(0,0,0,.22);
|
|
853
|
-
--token-shadow-overlay: 0 2px 4px rgba(0,0,0,.28), 0 10px 30px rgba(0,0,0,.34);
|
|
854
|
-
|
|
855
|
-
--token-success: #6AB080;
|
|
856
|
-
--token-success-muted: rgba(106,176,128,.12);
|
|
857
|
-
--token-warning: #B89A45;
|
|
858
|
-
--token-warning-muted: rgba(184,154,69,.12);
|
|
859
|
-
--token-error: #C06860;
|
|
860
|
-
--token-error-muted: rgba(192,104,96,.12);
|
|
861
|
-
--token-info: #6A98B8;
|
|
862
|
-
--token-info-muted: rgba(106,152,184,.12);
|
|
863
|
-
|
|
864
|
-
--token-fill-1: color-mix(in srgb, var(--token-text) 4%, transparent);
|
|
865
|
-
--token-fill-2: color-mix(in srgb, var(--token-text) 8%, transparent);
|
|
866
|
-
--token-fill-3: color-mix(in srgb, var(--token-text) 14%, transparent);
|
|
867
|
-
--token-fill-4: color-mix(in srgb, var(--token-text) 22%, transparent);
|
|
868
|
-
|
|
869
|
-
--token-surface-glass: color-mix(in srgb, var(--token-bg-soft) 82%, transparent);
|
|
870
|
-
|
|
871
|
-
/* ── BRIDGE ── */
|
|
872
|
-
--accent-clay: var(--token-accent);
|
|
873
|
-
--accent-clay-dark: #5A8A62;
|
|
874
|
-
--accent-clay-light: #A0CAA4;
|
|
875
|
-
--accent-cold: var(--token-accent-cold);
|
|
876
|
-
--bg-primary: var(--token-bg);
|
|
877
|
-
--bg-secondary: var(--token-bg-soft);
|
|
878
|
-
--bg-tertiary: var(--token-surface);
|
|
879
|
-
--bg-card: var(--token-bg-soft);
|
|
880
|
-
--bg-card-muted: var(--token-surface);
|
|
881
|
-
--bg-panel: var(--token-surface-strong);
|
|
882
|
-
--bg-hover: var(--token-surface-hover);
|
|
883
|
-
--text-primary: var(--token-text);
|
|
884
|
-
--text-secondary: var(--token-text-muted);
|
|
885
|
-
--text-tertiary: #989692;
|
|
886
|
-
--text-muted: var(--token-text-faint);
|
|
887
|
-
--text-subtle: var(--token-line-strong);
|
|
888
|
-
--border-subtle: var(--token-line-soft);
|
|
889
|
-
--border-default: var(--token-line);
|
|
890
|
-
--border-strong: var(--token-line-strong);
|
|
891
|
-
--shadow-sm: var(--token-shadow-elevated);
|
|
892
|
-
--shadow-md: var(--token-shadow-overlay);
|
|
893
|
-
--color-success: var(--token-success);
|
|
894
|
-
--color-success-bg: var(--token-success-muted);
|
|
895
|
-
--color-warning: var(--token-warning);
|
|
896
|
-
--color-warning-bg: var(--token-warning-muted);
|
|
897
|
-
--color-error: var(--token-error);
|
|
898
|
-
--color-error-bg: var(--token-error-muted);
|
|
899
|
-
--color-info: var(--token-info);
|
|
900
|
-
--color-info-bg: var(--token-info-muted);
|
|
901
|
-
--color-pending: var(--token-text-faint);
|
|
902
|
-
--color-pending-bg: var(--token-fill-1);
|
|
903
|
-
--accent-clay-bg: var(--token-accent-subtle);
|
|
904
|
-
--accent-clay-bg-strong: color-mix(in srgb, var(--token-accent) 14%, transparent);
|
|
905
|
-
--accent-clay-border: color-mix(in srgb, var(--token-accent) 22%, transparent);
|
|
906
|
-
}
|
|
907
|
-
|
|
908
|
-
/* ══════════════════════════════════════════════════════════════
|
|
909
|
-
RETRO — 8-bit · 红白机 · 像素风
|
|
910
|
-
NES · Famicom · Pixel Art · CRT Glow
|
|
911
|
-
══════════════════════════════════════════════════════════════ */
|
|
912
|
-
|
|
913
|
-
/* ── RETRO LIGHT · 经典像素 ── */
|
|
914
|
-
.retro {
|
|
915
|
-
/* 像素风配色:纯白底 + 经典红 + 深蓝 */
|
|
916
|
-
--token-bg: #f0f0e8;
|
|
917
|
-
--token-bg-soft: #e0e0d0;
|
|
918
|
-
--token-surface: #e8e8dc;
|
|
919
|
-
--token-surface-strong: #dcdcc8;
|
|
920
|
-
--token-line-soft: #c0c0a8;
|
|
921
|
-
--token-line: #a0a088;
|
|
922
|
-
--token-line-strong: #808068;
|
|
923
|
-
--token-text: #1a1a1a;
|
|
924
|
-
--token-text-muted: #4a4a3a;
|
|
925
|
-
--token-text-faint: #7a7a6a;
|
|
926
|
-
--token-accent: #d03030;
|
|
927
|
-
--token-accent-cold: #3030a0;
|
|
928
|
-
|
|
929
|
-
/* ── Glow ── */
|
|
930
|
-
--token-glow: rgba(208,48,48,.10);
|
|
931
|
-
--token-glow-cold: rgba(48,48,160,.08);
|
|
932
|
-
|
|
933
|
-
/* ── Derived ── */
|
|
934
|
-
--token-surface-hover: color-mix(in srgb, var(--token-surface) 90%, var(--token-accent) 10%);
|
|
935
|
-
--token-accent-subtle: color-mix(in srgb, var(--token-accent) 12%, transparent);
|
|
936
|
-
--token-accent-glow: color-mix(in srgb, var(--token-accent) 8%, transparent);
|
|
937
|
-
--token-line-dashed: color-mix(in srgb, var(--token-line-soft) 55%, transparent);
|
|
938
|
-
--token-overlay-bg: color-mix(in srgb, var(--token-bg) 92%, transparent);
|
|
939
|
-
--token-on-accent: #ffffff;
|
|
940
|
-
|
|
941
|
-
/* ── Shadow · 硬像素投影 ── */
|
|
942
|
-
--token-shadow-elevated: 2px 2px 0 rgba(26,26,26,.25);
|
|
943
|
-
--token-shadow-overlay: 3px 3px 0 rgba(26,26,26,.35);
|
|
944
|
-
|
|
945
|
-
/* ── Semantic ── */
|
|
946
|
-
--token-success: #30a030;
|
|
947
|
-
--token-success-muted: rgba(48,160,48,.14);
|
|
948
|
-
--token-warning: #c8a020;
|
|
949
|
-
--token-warning-muted: rgba(200,160,32,.14);
|
|
950
|
-
--token-error: #d03030;
|
|
951
|
-
--token-error-muted: rgba(208,48,48,.14);
|
|
952
|
-
--token-info: #3030a0;
|
|
953
|
-
--token-info-muted: rgba(48,48,160,.14);
|
|
954
|
-
|
|
955
|
-
/* ── Fill ── */
|
|
956
|
-
--token-fill-1: color-mix(in srgb, var(--token-text) 4%, transparent);
|
|
957
|
-
--token-fill-2: color-mix(in srgb, var(--token-text) 8%, transparent);
|
|
958
|
-
--token-fill-3: color-mix(in srgb, var(--token-text) 14%, transparent);
|
|
959
|
-
--token-fill-4: color-mix(in srgb, var(--token-text) 22%, transparent);
|
|
960
|
-
|
|
961
|
-
/* ── Glass ── */
|
|
962
|
-
--token-surface-glass: color-mix(in srgb, var(--token-bg-soft) 88%, transparent);
|
|
963
|
-
|
|
964
|
-
/* ── BRIDGE ── */
|
|
965
|
-
--accent-clay: var(--token-accent);
|
|
966
|
-
--accent-clay-dark: #a02020;
|
|
967
|
-
--accent-clay-light: #e06060;
|
|
968
|
-
--accent-cold: var(--token-accent-cold);
|
|
969
|
-
--bg-primary: var(--token-bg);
|
|
970
|
-
--bg-secondary: var(--token-bg-soft);
|
|
971
|
-
--bg-tertiary: var(--token-surface);
|
|
972
|
-
--bg-card: var(--token-surface);
|
|
973
|
-
--bg-card-muted: var(--token-bg-soft);
|
|
974
|
-
--bg-panel: var(--token-surface-strong);
|
|
975
|
-
--bg-hover: var(--token-surface-hover);
|
|
976
|
-
--text-primary: var(--token-text);
|
|
977
|
-
--text-secondary: var(--token-text-muted);
|
|
978
|
-
--text-tertiary: #5a5a4a;
|
|
979
|
-
--text-muted: var(--token-text-faint);
|
|
980
|
-
--text-subtle: var(--token-line-strong);
|
|
981
|
-
--border-subtle: var(--token-line-soft);
|
|
982
|
-
--border-default: var(--token-line);
|
|
983
|
-
--border-strong: var(--token-line-strong);
|
|
984
|
-
--shadow-sm: var(--token-shadow-elevated);
|
|
985
|
-
--shadow-md: var(--token-shadow-overlay);
|
|
986
|
-
--color-success: var(--token-success);
|
|
987
|
-
--color-success-bg: var(--token-success-muted);
|
|
988
|
-
--color-warning: var(--token-warning);
|
|
989
|
-
--color-warning-bg: var(--token-warning-muted);
|
|
990
|
-
--color-error: var(--token-error);
|
|
991
|
-
--color-error-bg: var(--token-error-muted);
|
|
992
|
-
--color-info: var(--token-info);
|
|
993
|
-
--color-info-bg: var(--token-info-muted);
|
|
994
|
-
--color-pending: var(--token-text-faint);
|
|
995
|
-
--color-pending-bg: var(--token-fill-1);
|
|
996
|
-
--accent-clay-bg: var(--token-accent-subtle);
|
|
997
|
-
--accent-clay-bg-strong: color-mix(in srgb, var(--token-accent) 20%, transparent);
|
|
998
|
-
--accent-clay-border: color-mix(in srgb, var(--token-accent) 24%, transparent);
|
|
999
|
-
}
|
|
1000
|
-
|
|
1001
|
-
/* ── RETRO DARK · 深夜像素 ── */
|
|
1002
|
-
.retro.dark {
|
|
1003
|
-
/* 像素暗色:深蓝灰底 + 霓虹红 + 像素蓝 */
|
|
1004
|
-
--token-bg: #1a1a2e;
|
|
1005
|
-
--token-bg-soft: #222240;
|
|
1006
|
-
--token-surface: #2a2a50;
|
|
1007
|
-
--token-surface-strong: #323260;
|
|
1008
|
-
--token-line-soft: #3a3a70;
|
|
1009
|
-
--token-line: #4a4a90;
|
|
1010
|
-
--token-line-strong: #5a5ab0;
|
|
1011
|
-
--token-text: #e8e8d8;
|
|
1012
|
-
--token-text-muted: #c0c0a8;
|
|
1013
|
-
--token-text-faint: #808070;
|
|
1014
|
-
--token-accent: #ff4040;
|
|
1015
|
-
--token-accent-cold: #5050ff;
|
|
1016
|
-
|
|
1017
|
-
/* ── Glow · 霓虹像素光 ── */
|
|
1018
|
-
--token-glow: rgba(255,64,64,.14);
|
|
1019
|
-
--token-glow-cold: rgba(80,80,255,.10);
|
|
1020
|
-
|
|
1021
|
-
/* ── Derived ── */
|
|
1022
|
-
--token-surface-hover: color-mix(in srgb, var(--token-surface) 88%, var(--token-accent) 12%);
|
|
1023
|
-
--token-accent-subtle: color-mix(in srgb, var(--token-accent) 14%, transparent);
|
|
1024
|
-
--token-accent-glow: color-mix(in srgb, var(--token-accent) 10%, transparent);
|
|
1025
|
-
--token-line-dashed: color-mix(in srgb, var(--token-line-soft) 60%, transparent);
|
|
1026
|
-
--token-overlay-bg: color-mix(in srgb, var(--token-bg) 94%, transparent);
|
|
1027
|
-
--token-on-accent: #ffffff;
|
|
1028
|
-
|
|
1029
|
-
/* ── Shadow · 硬像素投影 ── */
|
|
1030
|
-
--token-shadow-elevated: 2px 2px 0 rgba(0,0,0,.40);
|
|
1031
|
-
--token-shadow-overlay: 3px 3px 0 rgba(0,0,0,.50);
|
|
1032
|
-
|
|
1033
|
-
/* ── Semantic ── */
|
|
1034
|
-
--token-success: #40ff40;
|
|
1035
|
-
--token-success-muted: rgba(64,255,64,.16);
|
|
1036
|
-
--token-warning: #ffff40;
|
|
1037
|
-
--token-warning-muted: rgba(255,255,64,.16);
|
|
1038
|
-
--token-error: #ff4040;
|
|
1039
|
-
--token-error-muted: rgba(255,64,64,.16);
|
|
1040
|
-
--token-info: #5050ff;
|
|
1041
|
-
--token-info-muted: rgba(80,80,255,.16);
|
|
1042
|
-
|
|
1043
|
-
/* ── Fill ── */
|
|
1044
|
-
--token-fill-1: color-mix(in srgb, var(--token-text) 5%, transparent);
|
|
1045
|
-
--token-fill-2: color-mix(in srgb, var(--token-text) 10%, transparent);
|
|
1046
|
-
--token-fill-3: color-mix(in srgb, var(--token-text) 16%, transparent);
|
|
1047
|
-
--token-fill-4: color-mix(in srgb, var(--token-text) 24%, transparent);
|
|
1048
|
-
|
|
1049
|
-
/* ── Glass ── */
|
|
1050
|
-
--token-surface-glass: color-mix(in srgb, var(--token-bg-soft) 82%, transparent);
|
|
1051
|
-
|
|
1052
|
-
/* ── BRIDGE ── */
|
|
1053
|
-
--accent-clay: var(--token-accent);
|
|
1054
|
-
--accent-clay-dark: #d03030;
|
|
1055
|
-
--accent-clay-light: #ff6060;
|
|
1056
|
-
--accent-cold: var(--token-accent-cold);
|
|
1057
|
-
--bg-primary: var(--token-bg);
|
|
1058
|
-
--bg-secondary: var(--token-bg-soft);
|
|
1059
|
-
--bg-tertiary: var(--token-surface);
|
|
1060
|
-
--bg-card: var(--token-bg-soft);
|
|
1061
|
-
--bg-card-muted: var(--token-surface);
|
|
1062
|
-
--bg-panel: var(--token-surface-strong);
|
|
1063
|
-
--bg-hover: var(--token-surface-hover);
|
|
1064
|
-
--text-primary: var(--token-text);
|
|
1065
|
-
--text-secondary: var(--token-text-muted);
|
|
1066
|
-
--text-tertiary: #a0a090;
|
|
1067
|
-
--text-muted: var(--token-text-faint);
|
|
1068
|
-
--text-subtle: var(--token-line-strong);
|
|
1069
|
-
--border-subtle: var(--token-line-soft);
|
|
1070
|
-
--border-default: var(--token-line);
|
|
1071
|
-
--border-strong: var(--token-line-strong);
|
|
1072
|
-
--shadow-sm: var(--token-shadow-elevated);
|
|
1073
|
-
--shadow-md: var(--token-shadow-overlay);
|
|
1074
|
-
--color-success: var(--token-success);
|
|
1075
|
-
--color-success-bg: var(--token-success-muted);
|
|
1076
|
-
--color-warning: var(--token-warning);
|
|
1077
|
-
--color-warning-bg: var(--token-warning-muted);
|
|
1078
|
-
--color-error: var(--token-error);
|
|
1079
|
-
--color-error-bg: var(--token-error-muted);
|
|
1080
|
-
--color-info: var(--token-info);
|
|
1081
|
-
--color-info-bg: var(--token-info-muted);
|
|
1082
|
-
--color-pending: var(--token-text-faint);
|
|
1083
|
-
--color-pending-bg: var(--token-fill-1);
|
|
1084
|
-
--accent-clay-bg: var(--token-accent-subtle);
|
|
1085
|
-
--accent-clay-bg-strong: color-mix(in srgb, var(--token-accent) 16%, transparent);
|
|
1086
|
-
--accent-clay-border: color-mix(in srgb, var(--token-accent) 24%, transparent);
|
|
1087
|
-
}
|
|
1088
|
-
|
|
1089
|
-
/* ── RETRO Depth Tokens ── */
|
|
1090
|
-
.retro {
|
|
1091
|
-
--token-canvas: var(--token-bg);
|
|
1092
|
-
--token-sidebar: color-mix(in srgb, var(--token-bg-soft) 78%, var(--token-bg) 22%);
|
|
1093
|
-
--token-panel: color-mix(in srgb, var(--token-bg-soft) 52%, var(--token-bg) 48%);
|
|
1094
|
-
--token-card: color-mix(in srgb, var(--token-bg) 80%, var(--token-surface) 20%);
|
|
1095
|
-
--token-card-strong: color-mix(in srgb, var(--token-bg) 66%, var(--token-surface) 34%);
|
|
1096
|
-
--token-control: color-mix(in srgb, var(--token-bg-soft) 62%, var(--token-bg) 38%);
|
|
1097
|
-
--token-control-hover: color-mix(in srgb, var(--token-surface-hover) 52%, var(--token-bg-soft) 48%);
|
|
1098
|
-
--token-outline-soft: color-mix(in srgb, var(--token-line-soft) 82%, var(--token-bg) 18%);
|
|
1099
|
-
--token-outline: color-mix(in srgb, var(--token-line) 84%, var(--token-bg) 16%);
|
|
1100
|
-
--token-outline-strong: color-mix(in srgb, var(--token-line-strong) 86%, var(--token-text) 8%);
|
|
1101
|
-
--token-shadow-card: 2px 2px 0 color-mix(in srgb, var(--token-text) 15%, transparent);
|
|
1102
|
-
--token-shadow-inset: inset 2px 2px 0 color-mix(in srgb, var(--token-surface) 42%, transparent), inset -1px -1px 0 color-mix(in srgb, var(--token-text) 4%, transparent);
|
|
1103
|
-
--token-top-highlight: color-mix(in srgb, var(--token-surface) 36%, transparent);
|
|
1104
|
-
}
|
|
1105
|
-
|
|
1106
|
-
.retro.dark {
|
|
1107
|
-
--token-canvas: var(--token-bg);
|
|
1108
|
-
--token-sidebar: color-mix(in srgb, var(--token-bg-soft) 86%, var(--token-bg) 14%);
|
|
1109
|
-
--token-panel: color-mix(in srgb, var(--token-bg-soft) 72%, var(--token-bg) 28%);
|
|
1110
|
-
--token-card: color-mix(in srgb, var(--token-surface) 72%, var(--token-bg-soft) 28%);
|
|
1111
|
-
--token-card-strong: color-mix(in srgb, var(--token-surface-strong) 72%, var(--token-surface) 28%);
|
|
1112
|
-
--token-control: color-mix(in srgb, var(--token-bg-soft) 70%, var(--token-bg) 30%);
|
|
1113
|
-
--token-control-hover: color-mix(in srgb, var(--token-surface-hover) 62%, var(--token-bg-soft) 38%);
|
|
1114
|
-
--token-outline-soft: color-mix(in srgb, var(--token-line-soft) 82%, var(--token-bg) 18%);
|
|
1115
|
-
--token-outline: color-mix(in srgb, var(--token-line) 84%, var(--token-text-faint) 8%);
|
|
1116
|
-
--token-outline-strong: color-mix(in srgb, var(--token-line-strong) 86%, var(--token-text-muted) 8%);
|
|
1117
|
-
--token-shadow-card: 2px 2px 0 rgba(0,0,0,.30);
|
|
1118
|
-
--token-shadow-inset: inset 2px 2px 0 color-mix(in srgb, var(--token-text) 6%, transparent), inset -1px -1px 0 rgba(0,0,0,.22);
|
|
1119
|
-
--token-top-highlight: color-mix(in srgb, var(--token-surface) 18%, transparent);
|
|
1120
|
-
}
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
/* ── 圆角 ── */
|
|
1124
|
-
:root {
|
|
1125
|
-
--radius-xs: 6px;
|
|
1126
|
-
--radius-sm: 8px;
|
|
1127
|
-
--radius-md: 10px;
|
|
1128
|
-
--radius-lg: 12px;
|
|
1129
|
-
--radius-xl: 16px;
|
|
1130
|
-
--radius-full: 999px;
|
|
1131
|
-
}
|
|
1132
|
-
|
|
1133
|
-
/* ── Depth Tokens ──
|
|
1134
|
-
Semantic surface levels used by app chrome and primitives. These are
|
|
1135
|
-
intentionally derived from theme tokens so every palette keeps its own voice
|
|
1136
|
-
while gaining clearer functional separation. */
|
|
1137
|
-
:root {
|
|
1138
|
-
--token-canvas: var(--token-bg);
|
|
1139
|
-
--token-sidebar: color-mix(in srgb, var(--token-bg-soft) 78%, var(--token-bg) 22%);
|
|
1140
|
-
--token-panel: color-mix(in srgb, var(--token-bg-soft) 52%, var(--token-bg) 48%);
|
|
1141
|
-
--token-card: color-mix(in srgb, var(--token-bg) 80%, var(--token-surface) 20%);
|
|
1142
|
-
--token-card-strong: color-mix(in srgb, var(--token-bg) 66%, var(--token-surface) 34%);
|
|
1143
|
-
--token-control: color-mix(in srgb, var(--token-bg-soft) 62%, var(--token-bg) 38%);
|
|
1144
|
-
--token-control-hover: color-mix(in srgb, var(--token-surface-hover) 52%, var(--token-bg-soft) 48%);
|
|
1145
|
-
--token-outline-soft: color-mix(in srgb, var(--token-line-soft) 82%, var(--token-bg) 18%);
|
|
1146
|
-
--token-outline: color-mix(in srgb, var(--token-line) 84%, var(--token-bg) 16%);
|
|
1147
|
-
--token-outline-strong: color-mix(in srgb, var(--token-line-strong) 86%, var(--token-text) 8%);
|
|
1148
|
-
--token-shadow-card: 0 1px 2px color-mix(in srgb, var(--token-text) 5%, transparent), 0 6px 18px color-mix(in srgb, var(--token-text) 5%, transparent);
|
|
1149
|
-
--token-shadow-inset: inset 0 1px 1px color-mix(in srgb, var(--token-surface) 42%, transparent), inset 0 -1px 1px color-mix(in srgb, var(--token-text) 4%, transparent);
|
|
1150
|
-
--token-top-highlight: color-mix(in srgb, var(--token-surface) 36%, transparent);
|
|
1151
|
-
|
|
1152
|
-
/* ── Scrollbar ──
|
|
1153
|
-
由 base.css 的全局滚动条消费;每个预设可在自己的块里覆盖这 5 个 token,
|
|
1154
|
-
以表达品牌色差(如 piano 用金、ink 用青)。retro/terminal 风格在
|
|
1155
|
-
style-profiles.css 里另有像素化硬覆盖。 */
|
|
1156
|
-
--token-scrollbar-size: 8px;
|
|
1157
|
-
--token-scrollbar-track: transparent;
|
|
1158
|
-
--token-scrollbar-thumb: color-mix(in srgb, var(--token-text) 16%, transparent);
|
|
1159
|
-
--token-scrollbar-thumb-hover: color-mix(in srgb, var(--token-accent) 50%, transparent);
|
|
1160
|
-
--token-scrollbar-button: transparent;
|
|
1161
|
-
}
|
|
1162
|
-
|
|
1163
|
-
.dark {
|
|
1164
|
-
--token-canvas: var(--token-bg);
|
|
1165
|
-
--token-sidebar: color-mix(in srgb, var(--token-bg-soft) 86%, var(--token-bg) 14%);
|
|
1166
|
-
--token-panel: color-mix(in srgb, var(--token-bg-soft) 72%, var(--token-bg) 28%);
|
|
1167
|
-
--token-card: color-mix(in srgb, var(--token-surface) 72%, var(--token-bg-soft) 28%);
|
|
1168
|
-
--token-card-strong: color-mix(in srgb, var(--token-surface-strong) 72%, var(--token-surface) 28%);
|
|
1169
|
-
--token-control: color-mix(in srgb, var(--token-bg-soft) 70%, var(--token-bg) 30%);
|
|
1170
|
-
--token-control-hover: color-mix(in srgb, var(--token-surface-hover) 62%, var(--token-bg-soft) 38%);
|
|
1171
|
-
--token-outline-soft: color-mix(in srgb, var(--token-line-soft) 82%, var(--token-bg) 18%);
|
|
1172
|
-
--token-outline: color-mix(in srgb, var(--token-line) 84%, var(--token-text-faint) 8%);
|
|
1173
|
-
--token-outline-strong: color-mix(in srgb, var(--token-line-strong) 86%, var(--token-text-muted) 8%);
|
|
1174
|
-
--token-shadow-card: 0 1px 1px rgba(0,0,0,.22), 0 12px 28px rgba(0,0,0,.24);
|
|
1175
|
-
--token-shadow-inset: inset 0 1px 1px color-mix(in srgb, var(--token-text) 6%, transparent), inset 0 -1px 1px rgba(0,0,0,.22);
|
|
1176
|
-
--token-top-highlight: color-mix(in srgb, var(--token-surface) 18%, transparent);
|
|
1177
|
-
}
|
|
1178
|
-
|
|
1179
|
-
.piano {
|
|
1180
|
-
--token-canvas: var(--token-bg);
|
|
1181
|
-
--token-sidebar: color-mix(in srgb, var(--token-bg-soft) 84%, var(--token-bg) 16%);
|
|
1182
|
-
--token-panel: color-mix(in srgb, var(--token-bg-soft) 68%, var(--token-bg) 32%);
|
|
1183
|
-
--token-card: color-mix(in srgb, var(--token-surface) 56%, var(--token-bg) 44%);
|
|
1184
|
-
--token-card-strong: color-mix(in srgb, var(--token-surface) 72%, var(--token-bg-soft) 28%);
|
|
1185
|
-
--token-control: color-mix(in srgb, var(--token-bg-soft) 74%, var(--token-line-soft) 26%);
|
|
1186
|
-
--token-control-hover: color-mix(in srgb, var(--token-surface-strong) 92%, var(--token-accent) 8%);
|
|
1187
|
-
--token-outline-soft: color-mix(in srgb, var(--token-line-soft) 84%, var(--token-bg) 16%);
|
|
1188
|
-
--token-outline: color-mix(in srgb, var(--token-line) 94%, var(--token-text-muted) 6%);
|
|
1189
|
-
--token-outline-strong: color-mix(in srgb, var(--token-line-strong) 92%, var(--token-text) 8%);
|
|
1190
|
-
--token-shadow-card: 0 1px 1px color-mix(in srgb, var(--token-text) 7%, transparent), 0 9px 24px color-mix(in srgb, var(--token-text) 7%, transparent);
|
|
1191
|
-
--token-shadow-inset: inset 0 1px 1px color-mix(in srgb, var(--token-surface) 70%, transparent), inset 0 -1px 1px color-mix(in srgb, var(--token-text) 5%, transparent);
|
|
1192
|
-
--token-top-highlight: color-mix(in srgb, var(--token-surface) 52%, transparent);
|
|
1193
|
-
}
|
|
1194
|
-
|
|
1195
|
-
.piano.dark {
|
|
1196
|
-
--token-canvas: var(--token-bg);
|
|
1197
|
-
--token-sidebar: color-mix(in srgb, var(--token-bg-soft) 86%, black 14%);
|
|
1198
|
-
--token-panel: color-mix(in srgb, var(--token-bg-soft) 74%, var(--token-bg) 26%);
|
|
1199
|
-
--token-card: color-mix(in srgb, var(--token-surface) 76%, var(--token-bg-soft) 24%);
|
|
1200
|
-
--token-card-strong: color-mix(in srgb, var(--token-surface-strong) 78%, var(--token-surface) 22%);
|
|
1201
|
-
--token-control: color-mix(in srgb, var(--token-bg-soft) 72%, black 28%);
|
|
1202
|
-
--token-control-hover: color-mix(in srgb, var(--token-surface-strong) 92%, var(--token-accent) 8%);
|
|
1203
|
-
--token-outline-soft: color-mix(in srgb, var(--token-line-soft) 86%, var(--token-bg) 14%);
|
|
1204
|
-
--token-outline: color-mix(in srgb, var(--token-line) 92%, var(--token-accent) 8%);
|
|
1205
|
-
--token-outline-strong: color-mix(in srgb, var(--token-line-strong) 88%, var(--token-accent) 12%);
|
|
1206
|
-
--token-shadow-card: 0 1px 1px rgba(0,0,0,.32), 0 14px 34px rgba(0,0,0,.40);
|
|
1207
|
-
--token-shadow-inset: inset 0 1px 1px color-mix(in srgb, var(--token-text) 8%, transparent), inset 0 -1px 1px rgba(0,0,0,.30);
|
|
1208
|
-
--token-top-highlight: color-mix(in srgb, var(--token-text) 8%, transparent);
|
|
1209
|
-
}
|
|
1210
|
-
|
|
1211
|
-
.vangogh {
|
|
1212
|
-
--token-canvas: color-mix(in srgb, var(--token-bg) 88%, #f6efd0 12%);
|
|
1213
|
-
--token-sidebar: color-mix(in srgb, var(--token-bg-soft) 78%, var(--token-bg) 22%);
|
|
1214
|
-
--token-panel: color-mix(in srgb, var(--token-bg) 70%, var(--token-bg-soft) 30%);
|
|
1215
|
-
--token-card: color-mix(in srgb, var(--token-bg) 78%, var(--token-surface) 22%);
|
|
1216
|
-
--token-card-strong: color-mix(in srgb, var(--token-bg) 58%, var(--token-surface) 42%);
|
|
1217
|
-
--token-control: color-mix(in srgb, var(--token-bg-soft) 58%, var(--token-bg) 42%);
|
|
1218
|
-
--token-control-hover: color-mix(in srgb, var(--token-surface-strong) 86%, var(--token-accent) 14%);
|
|
1219
|
-
--token-outline-soft: color-mix(in srgb, var(--token-line-soft) 80%, var(--token-bg) 20%);
|
|
1220
|
-
--token-outline: color-mix(in srgb, var(--token-line) 88%, var(--token-accent) 12%);
|
|
1221
|
-
--token-outline-strong: color-mix(in srgb, var(--token-line-strong) 84%, var(--token-accent) 16%);
|
|
1222
|
-
--token-shadow-card: 0 1px 2px color-mix(in srgb, var(--token-text) 5%, transparent), 0 8px 22px color-mix(in srgb, var(--token-text) 7%, transparent);
|
|
1223
|
-
--token-shadow-inset: inset 0 1px 1px color-mix(in srgb, var(--token-surface) 48%, transparent), inset 0 -1px 1px color-mix(in srgb, var(--token-text) 4%, transparent);
|
|
1224
|
-
--token-top-highlight: color-mix(in srgb, var(--token-surface) 30%, transparent);
|
|
1225
|
-
}
|
|
1226
|
-
|
|
1227
|
-
.vangogh.dark {
|
|
1228
|
-
--token-canvas: var(--token-bg);
|
|
1229
|
-
--token-sidebar: color-mix(in srgb, var(--token-bg-soft) 84%, var(--token-bg) 16%);
|
|
1230
|
-
--token-panel: color-mix(in srgb, var(--token-bg-soft) 72%, var(--token-bg) 28%);
|
|
1231
|
-
--token-card: color-mix(in srgb, var(--token-surface) 72%, var(--token-bg-soft) 28%);
|
|
1232
|
-
--token-card-strong: color-mix(in srgb, var(--token-surface-strong) 76%, var(--token-surface) 24%);
|
|
1233
|
-
--token-control: color-mix(in srgb, var(--token-bg-soft) 70%, var(--token-bg) 30%);
|
|
1234
|
-
--token-control-hover: color-mix(in srgb, var(--token-surface-hover) 74%, var(--token-accent) 8%);
|
|
1235
|
-
--token-outline-soft: color-mix(in srgb, var(--token-line-soft) 82%, var(--token-bg) 18%);
|
|
1236
|
-
--token-outline: color-mix(in srgb, var(--token-line) 84%, var(--token-accent-cold) 8%);
|
|
1237
|
-
--token-outline-strong: color-mix(in srgb, var(--token-line-strong) 84%, var(--token-accent) 10%);
|
|
1238
|
-
--token-shadow-card: 0 1px 1px rgba(0,0,0,.22), 0 12px 28px rgba(0,0,0,.24);
|
|
1239
|
-
--token-shadow-inset: inset 0 1px 1px color-mix(in srgb, var(--token-text) 6%, transparent), inset 0 -1px 1px rgba(0,0,0,.22);
|
|
1240
|
-
--token-top-highlight: color-mix(in srgb, var(--token-surface) 18%, transparent);
|
|
1241
|
-
}
|
|
1242
|
-
|
|
1243
|
-
/* ── 动画 ── */
|
|
1244
|
-
@keyframes blink {
|
|
1245
|
-
0%, 100% { opacity: 1; }
|
|
1246
|
-
50% { opacity: 0; }
|
|
1247
|
-
}
|
|
1248
|
-
|
|
1249
|
-
.animate-blink {
|
|
1250
|
-
animation: blink 1s step-end infinite;
|
|
6
|
+
/* GENERATED from themes.json by bun run colors. Edit the catalogue, never this file.
|
|
7
|
+
* 6 complete themes × light/dark; 现代 is the default. Primitives are separate. */
|
|
8
|
+
|
|
9
|
+
/* 现代 · 清透瓷面 · 冷调柔光 · light */
|
|
10
|
+
:root, [data-icen-preset="modern"] {
|
|
11
|
+
--icen-design-canvas: #f5f6f8;
|
|
12
|
+
--icen-design-surface: #ffffff;
|
|
13
|
+
--icen-design-raised: #edf0f5;
|
|
14
|
+
--icen-design-ink: #202124;
|
|
15
|
+
--icen-design-muted: #606773;
|
|
16
|
+
--icen-design-faint: #626c79;
|
|
17
|
+
--icen-design-accent: #087bf5;
|
|
18
|
+
--icen-design-accent-strong: #0062cc;
|
|
19
|
+
--icen-design-accent-text: #0059b8;
|
|
20
|
+
--icen-design-on-accent: #ffffff;
|
|
21
|
+
--icen-design-cold: #58758f;
|
|
22
|
+
--icen-design-success: #247347;
|
|
23
|
+
--icen-design-warning: #846000;
|
|
24
|
+
--icen-design-error: #b02d36;
|
|
25
|
+
--icen-design-info: #336c91;
|
|
26
|
+
--icen-design-shadow-color: #182337;
|
|
27
|
+
--icen-design-glass-opacity: 84%;
|
|
28
|
+
--icen-design-shadow-strength: 10%;
|
|
29
|
+
--icen-design-edge-strength: 11%;
|
|
30
|
+
--icen-design-highlight-strength: 76%;
|
|
31
|
+
color-scheme: light;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* 现代 · 清透瓷面 · 冷调柔光 · dark */
|
|
35
|
+
[data-icen-theme="dark"], [data-icen-preset="modern"][data-icen-theme="dark"] {
|
|
36
|
+
--icen-design-canvas: #15171b;
|
|
37
|
+
--icen-design-surface: #22272f;
|
|
38
|
+
--icen-design-raised: #2c333e;
|
|
39
|
+
--icen-design-ink: #f1f4f9;
|
|
40
|
+
--icen-design-muted: #b1bbca;
|
|
41
|
+
--icen-design-faint: #9faabd;
|
|
42
|
+
--icen-design-accent: #8cbdff;
|
|
43
|
+
--icen-design-accent-strong: #91bfff;
|
|
44
|
+
--icen-design-accent-text: #9dc6ff;
|
|
45
|
+
--icen-design-on-accent: #10223c;
|
|
46
|
+
--icen-design-cold: #9bb4cb;
|
|
47
|
+
--icen-design-success: #8bd3a6;
|
|
48
|
+
--icen-design-warning: #e4c373;
|
|
49
|
+
--icen-design-error: #f2a1a5;
|
|
50
|
+
--icen-design-info: #97c8e8;
|
|
51
|
+
--icen-design-shadow-color: #000000;
|
|
52
|
+
--icen-design-glass-opacity: 90%;
|
|
53
|
+
--icen-design-shadow-strength: 27%;
|
|
54
|
+
--icen-design-edge-strength: 13%;
|
|
55
|
+
--icen-design-highlight-strength: 8%;
|
|
56
|
+
color-scheme: dark;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/* 东韵 · 绢本与青瓷 · 温润细光 · light */
|
|
60
|
+
[data-icen-preset="dongyun"] {
|
|
61
|
+
--icen-design-canvas: #f4f1e9;
|
|
62
|
+
--icen-design-surface: #fffdf7;
|
|
63
|
+
--icen-design-raised: #e9e6db;
|
|
64
|
+
--icen-design-ink: #293a34;
|
|
65
|
+
--icen-design-muted: #60695c;
|
|
66
|
+
--icen-design-faint: #626957;
|
|
67
|
+
--icen-design-accent: #477668;
|
|
68
|
+
--icen-design-accent-strong: #305c4e;
|
|
69
|
+
--icen-design-accent-text: #315748;
|
|
70
|
+
--icen-design-on-accent: #fffdf7;
|
|
71
|
+
--icen-design-cold: #85724d;
|
|
72
|
+
--icen-design-success: #3b6544;
|
|
73
|
+
--icen-design-warning: #795517;
|
|
74
|
+
--icen-design-error: #a33e37;
|
|
75
|
+
--icen-design-info: #426477;
|
|
76
|
+
--icen-design-shadow-color: #343c2e;
|
|
77
|
+
--icen-design-glass-opacity: 97%;
|
|
78
|
+
--icen-design-shadow-strength: 7%;
|
|
79
|
+
--icen-design-edge-strength: 14%;
|
|
80
|
+
--icen-design-highlight-strength: 40%;
|
|
81
|
+
color-scheme: light;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/* 东韵 · 绢本与青瓷 · 温润细光 · dark */
|
|
85
|
+
[data-icen-preset="dongyun"][data-icen-theme="dark"] {
|
|
86
|
+
--icen-design-canvas: #181e1b;
|
|
87
|
+
--icen-design-surface: #242e28;
|
|
88
|
+
--icen-design-raised: #334037;
|
|
89
|
+
--icen-design-ink: #f0eee0;
|
|
90
|
+
--icen-design-muted: #bfc8b6;
|
|
91
|
+
--icen-design-faint: #b2bea9;
|
|
92
|
+
--icen-design-accent: #a0c5ac;
|
|
93
|
+
--icen-design-accent-strong: #b0d0b6;
|
|
94
|
+
--icen-design-accent-text: #bdd9c1;
|
|
95
|
+
--icen-design-on-accent: #24382b;
|
|
96
|
+
--icen-design-cold: #d0bd8d;
|
|
97
|
+
--icen-design-success: #accd9e;
|
|
98
|
+
--icen-design-warning: #e1c68d;
|
|
99
|
+
--icen-design-error: #edada2;
|
|
100
|
+
--icen-design-info: #accbda;
|
|
101
|
+
--icen-design-shadow-color: #080e0a;
|
|
102
|
+
--icen-design-glass-opacity: 98%;
|
|
103
|
+
--icen-design-shadow-strength: 25%;
|
|
104
|
+
--icen-design-edge-strength: 17%;
|
|
105
|
+
--icen-design-highlight-strength: 5%;
|
|
106
|
+
color-scheme: dark;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/* 巨构 · 混凝土与搪瓷 · 实体承重 · light */
|
|
110
|
+
[data-icen-preset="jugou"] {
|
|
111
|
+
--icen-design-canvas: #edece6;
|
|
112
|
+
--icen-design-surface: #faf9f3;
|
|
113
|
+
--icen-design-raised: #e1e0d8;
|
|
114
|
+
--icen-design-ink: #252723;
|
|
115
|
+
--icen-design-muted: #5e625b;
|
|
116
|
+
--icen-design-faint: #62645b;
|
|
117
|
+
--icen-design-accent: #b53c2d;
|
|
118
|
+
--icen-design-accent-strong: #9e3025;
|
|
119
|
+
--icen-design-accent-text: #912e24;
|
|
120
|
+
--icen-design-on-accent: #fffaf0;
|
|
121
|
+
--icen-design-cold: #596d75;
|
|
122
|
+
--icen-design-success: #3d6141;
|
|
123
|
+
--icen-design-warning: #765413;
|
|
124
|
+
--icen-design-error: #9a3138;
|
|
125
|
+
--icen-design-info: #3c6078;
|
|
126
|
+
--icen-design-shadow-color: #242821;
|
|
127
|
+
--icen-design-glass-opacity: 100%;
|
|
128
|
+
--icen-design-shadow-strength: 16%;
|
|
129
|
+
--icen-design-edge-strength: 24%;
|
|
130
|
+
--icen-design-highlight-strength: 20%;
|
|
131
|
+
color-scheme: light;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/* 巨构 · 混凝土与搪瓷 · 实体承重 · dark */
|
|
135
|
+
[data-icen-preset="jugou"][data-icen-theme="dark"] {
|
|
136
|
+
--icen-design-canvas: #1b1d1c;
|
|
137
|
+
--icen-design-surface: #2a2e2c;
|
|
138
|
+
--icen-design-raised: #393e3b;
|
|
139
|
+
--icen-design-ink: #f4f0e3;
|
|
140
|
+
--icen-design-muted: #c3c6ba;
|
|
141
|
+
--icen-design-faint: #b8bdae;
|
|
142
|
+
--icen-design-accent: #ed9d86;
|
|
143
|
+
--icen-design-accent-strong: #f1ac92;
|
|
144
|
+
--icen-design-accent-text: #f6bba3;
|
|
145
|
+
--icen-design-on-accent: #3c211b;
|
|
146
|
+
--icen-design-cold: #b1c5ce;
|
|
147
|
+
--icen-design-success: #aecb9f;
|
|
148
|
+
--icen-design-warning: #e6c88b;
|
|
149
|
+
--icen-design-error: #f0b1ad;
|
|
150
|
+
--icen-design-info: #accbdc;
|
|
151
|
+
--icen-design-shadow-color: #090d0b;
|
|
152
|
+
--icen-design-glass-opacity: 100%;
|
|
153
|
+
--icen-design-shadow-strength: 38%;
|
|
154
|
+
--icen-design-edge-strength: 25%;
|
|
155
|
+
--icen-design-highlight-strength: 4%;
|
|
156
|
+
color-scheme: dark;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/* 钢琴 · 象牙琴键 · 乌木与漆面微光 · light */
|
|
160
|
+
[data-icen-preset="piano"] {
|
|
161
|
+
--icen-design-canvas: #f5f3ed;
|
|
162
|
+
--icen-design-surface: #fffefb;
|
|
163
|
+
--icen-design-raised: #ece8df;
|
|
164
|
+
--icen-design-ink: #252522;
|
|
165
|
+
--icen-design-muted: #69685f;
|
|
166
|
+
--icen-design-faint: #6a675c;
|
|
167
|
+
--icen-design-accent: #94713f;
|
|
168
|
+
--icen-design-accent-strong: #765424;
|
|
169
|
+
--icen-design-accent-text: #72501f;
|
|
170
|
+
--icen-design-on-accent: #fffefb;
|
|
171
|
+
--icen-design-cold: #657386;
|
|
172
|
+
--icen-design-success: #3d6e4b;
|
|
173
|
+
--icen-design-warning: #805d17;
|
|
174
|
+
--icen-design-error: #a53d39;
|
|
175
|
+
--icen-design-info: #456984;
|
|
176
|
+
--icen-design-shadow-color: #24231e;
|
|
177
|
+
--icen-design-glass-opacity: 89%;
|
|
178
|
+
--icen-design-shadow-strength: 12%;
|
|
179
|
+
--icen-design-edge-strength: 14%;
|
|
180
|
+
--icen-design-highlight-strength: 90%;
|
|
181
|
+
color-scheme: light;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/* 钢琴 · 象牙琴键 · 乌木与漆面微光 · dark */
|
|
185
|
+
[data-icen-preset="piano"][data-icen-theme="dark"] {
|
|
186
|
+
--icen-design-canvas: #131416;
|
|
187
|
+
--icen-design-surface: #222427;
|
|
188
|
+
--icen-design-raised: #303338;
|
|
189
|
+
--icen-design-ink: #f4f1e8;
|
|
190
|
+
--icen-design-muted: #b8b5aa;
|
|
191
|
+
--icen-design-faint: #aaa89e;
|
|
192
|
+
--icen-design-accent: #d2b278;
|
|
193
|
+
--icen-design-accent-strong: #d8ba85;
|
|
194
|
+
--icen-design-accent-text: #e3c48c;
|
|
195
|
+
--icen-design-on-accent: #292215;
|
|
196
|
+
--icen-design-cold: #a5b3c6;
|
|
197
|
+
--icen-design-success: #a4cfb0;
|
|
198
|
+
--icen-design-warning: #e2c57f;
|
|
199
|
+
--icen-design-error: #e9aaa7;
|
|
200
|
+
--icen-design-info: #a5c5e3;
|
|
201
|
+
--icen-design-shadow-color: #000000;
|
|
202
|
+
--icen-design-glass-opacity: 93%;
|
|
203
|
+
--icen-design-shadow-strength: 33%;
|
|
204
|
+
--icen-design-edge-strength: 17%;
|
|
205
|
+
--icen-design-highlight-strength: 11%;
|
|
206
|
+
color-scheme: dark;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/* 莫奈 · 睡莲水面 · 蓝绿柔光与含蓄紫调 · light */
|
|
210
|
+
[data-icen-preset="monet"] {
|
|
211
|
+
--icen-design-canvas: #f4f7f4;
|
|
212
|
+
--icen-design-surface: #fcfdfb;
|
|
213
|
+
--icen-design-raised: #e8eeea;
|
|
214
|
+
--icen-design-ink: #20332e;
|
|
215
|
+
--icen-design-muted: #5b6f65;
|
|
216
|
+
--icen-design-faint: #5b6e64;
|
|
217
|
+
--icen-design-accent: #2b675c;
|
|
218
|
+
--icen-design-accent-strong: #245c50;
|
|
219
|
+
--icen-design-accent-text: #24574c;
|
|
220
|
+
--icen-design-on-accent: #ffffff;
|
|
221
|
+
--icen-design-cold: #667c8a;
|
|
222
|
+
--icen-design-success: #307449;
|
|
223
|
+
--icen-design-warning: #805f1b;
|
|
224
|
+
--icen-design-error: #a43d42;
|
|
225
|
+
--icen-design-info: #3d6a82;
|
|
226
|
+
--icen-design-shadow-color: #23372f;
|
|
227
|
+
--icen-design-glass-opacity: 93%;
|
|
228
|
+
--icen-design-shadow-strength: 8%;
|
|
229
|
+
--icen-design-edge-strength: 12%;
|
|
230
|
+
--icen-design-highlight-strength: 52%;
|
|
231
|
+
color-scheme: light;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/* 莫奈 · 睡莲水面 · 蓝绿柔光与含蓄紫调 · dark */
|
|
235
|
+
[data-icen-preset="monet"][data-icen-theme="dark"] {
|
|
236
|
+
--icen-design-canvas: #121d1a;
|
|
237
|
+
--icen-design-surface: #1d2d27;
|
|
238
|
+
--icen-design-raised: #2c3d34;
|
|
239
|
+
--icen-design-ink: #e6f0e7;
|
|
240
|
+
--icen-design-muted: #a7c0b1;
|
|
241
|
+
--icen-design-faint: #9cb1a4;
|
|
242
|
+
--icen-design-accent: #93c9ad;
|
|
243
|
+
--icen-design-accent-strong: #a0d2b7;
|
|
244
|
+
--icen-design-accent-text: #a5d8bd;
|
|
245
|
+
--icen-design-on-accent: #173328;
|
|
246
|
+
--icen-design-cold: #a1baca;
|
|
247
|
+
--icen-design-success: #91d2a2;
|
|
248
|
+
--icen-design-warning: #dac487;
|
|
249
|
+
--icen-design-error: #e8a7ad;
|
|
250
|
+
--icen-design-info: #9bc4da;
|
|
251
|
+
--icen-design-shadow-color: #06100b;
|
|
252
|
+
--icen-design-glass-opacity: 95%;
|
|
253
|
+
--icen-design-shadow-strength: 27%;
|
|
254
|
+
--icen-design-edge-strength: 14%;
|
|
255
|
+
--icen-design-highlight-strength: 6%;
|
|
256
|
+
color-scheme: dark;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
/* 梵高 · 亚麻画布 · 钴蓝与麦穗金 · light */
|
|
260
|
+
[data-icen-preset="vangogh"] {
|
|
261
|
+
--icen-design-canvas: #f8f3e4;
|
|
262
|
+
--icen-design-surface: #fffdf3;
|
|
263
|
+
--icen-design-raised: #efe5c9;
|
|
264
|
+
--icen-design-ink: #253650;
|
|
265
|
+
--icen-design-muted: #5c6580;
|
|
266
|
+
--icen-design-faint: #5e667b;
|
|
267
|
+
--icen-design-accent: #275ea0;
|
|
268
|
+
--icen-design-accent-strong: #224e83;
|
|
269
|
+
--icen-design-accent-text: #234c7b;
|
|
270
|
+
--icen-design-on-accent: #fffdf3;
|
|
271
|
+
--icen-design-cold: #a0711e;
|
|
272
|
+
--icen-design-success: #416b3a;
|
|
273
|
+
--icen-design-warning: #855a15;
|
|
274
|
+
--icen-design-error: #a83c31;
|
|
275
|
+
--icen-design-info: #356b85;
|
|
276
|
+
--icen-design-shadow-color: #463d27;
|
|
277
|
+
--icen-design-glass-opacity: 92%;
|
|
278
|
+
--icen-design-shadow-strength: 11%;
|
|
279
|
+
--icen-design-edge-strength: 13%;
|
|
280
|
+
--icen-design-highlight-strength: 62%;
|
|
281
|
+
color-scheme: light;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
/* 梵高 · 亚麻画布 · 钴蓝与麦穗金 · dark */
|
|
285
|
+
[data-icen-preset="vangogh"][data-icen-theme="dark"] {
|
|
286
|
+
--icen-design-canvas: #111e32;
|
|
287
|
+
--icen-design-surface: #1c2d46;
|
|
288
|
+
--icen-design-raised: #2a3f5b;
|
|
289
|
+
--icen-design-ink: #f8efcf;
|
|
290
|
+
--icen-design-muted: #c2c4b5;
|
|
291
|
+
--icen-design-faint: #afb7bd;
|
|
292
|
+
--icen-design-accent: #e5be54;
|
|
293
|
+
--icen-design-accent-strong: #ebc568;
|
|
294
|
+
--icen-design-accent-text: #efd181;
|
|
295
|
+
--icen-design-on-accent: #2b2617;
|
|
296
|
+
--icen-design-cold: #88a5d6;
|
|
297
|
+
--icen-design-success: #b3d29b;
|
|
298
|
+
--icen-design-warning: #f0cd7b;
|
|
299
|
+
--icen-design-error: #efaaa0;
|
|
300
|
+
--icen-design-info: #a1c9e8;
|
|
301
|
+
--icen-design-shadow-color: #050b15;
|
|
302
|
+
--icen-design-glass-opacity: 93%;
|
|
303
|
+
--icen-design-shadow-strength: 30%;
|
|
304
|
+
--icen-design-edge-strength: 16%;
|
|
305
|
+
--icen-design-highlight-strength: 7%;
|
|
306
|
+
color-scheme: dark;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
/* Recompute semantic aliases at each palette boundary (including nested specimens). */
|
|
310
|
+
:root, [data-icen-preset], [data-icen-theme="dark"] {
|
|
311
|
+
--icen-design-bg-soft: color-mix(in srgb, var(--icen-design-canvas) 70%, var(--icen-design-raised));
|
|
312
|
+
--icen-token-bg: var(--icen-design-canvas);
|
|
313
|
+
--icen-token-bg-soft: var(--icen-design-bg-soft);
|
|
314
|
+
--icen-token-surface: var(--icen-design-surface);
|
|
315
|
+
--icen-token-surface-strong: var(--icen-design-raised);
|
|
316
|
+
--icen-token-text: var(--icen-design-ink);
|
|
317
|
+
--icen-token-text-muted: var(--icen-design-muted);
|
|
318
|
+
--icen-token-text-faint: var(--icen-design-faint);
|
|
319
|
+
--icen-token-accent: var(--icen-design-accent);
|
|
320
|
+
--icen-token-accent-strong: var(--icen-design-accent-strong);
|
|
321
|
+
--icen-token-accent-text: var(--icen-design-accent-text);
|
|
322
|
+
--icen-token-accent-deep: var(--icen-design-accent-strong);
|
|
323
|
+
--icen-token-accent-cold: var(--icen-design-cold);
|
|
324
|
+
--icen-token-on-accent: var(--icen-design-on-accent);
|
|
325
|
+
--icen-token-success: var(--icen-design-success);
|
|
326
|
+
--icen-token-success-text: var(--icen-design-success);
|
|
327
|
+
--icen-token-warning: var(--icen-design-warning);
|
|
328
|
+
--icen-token-error: var(--icen-design-error);
|
|
329
|
+
--icen-token-danger: var(--icen-design-error);
|
|
330
|
+
--icen-token-info: var(--icen-design-info);
|
|
331
|
+
--icen-token-surface-hover: color-mix(in srgb, var(--icen-design-surface) 94%, var(--icen-design-ink));
|
|
332
|
+
--icen-token-line-soft: color-mix(in srgb, var(--icen-design-ink) 10%, transparent);
|
|
333
|
+
--icen-token-line: color-mix(in srgb, var(--icen-design-ink) 19%, transparent);
|
|
334
|
+
--icen-token-line-strong: color-mix(in srgb, var(--icen-design-ink) 38%, transparent);
|
|
335
|
+
--icen-token-line-dashed: var(--icen-token-line);
|
|
336
|
+
--icen-token-outline-soft: var(--icen-token-line-soft);
|
|
337
|
+
--icen-token-outline: var(--icen-token-line);
|
|
338
|
+
--icen-token-outline-strong: var(--icen-token-line-strong);
|
|
339
|
+
--icen-token-fill-1: color-mix(in srgb, var(--icen-design-ink) 4%, transparent);
|
|
340
|
+
--icen-token-fill-2: color-mix(in srgb, var(--icen-design-ink) 7%, transparent);
|
|
341
|
+
--icen-token-fill-3: color-mix(in srgb, var(--icen-design-ink) 12%, transparent);
|
|
342
|
+
--icen-token-fill-4: color-mix(in srgb, var(--icen-design-ink) 18%, transparent);
|
|
343
|
+
--icen-token-accent-subtle: color-mix(in srgb, var(--icen-design-accent) 10%, transparent);
|
|
344
|
+
--icen-token-accent-glow: color-mix(in srgb, var(--icen-design-accent) 8%, transparent);
|
|
345
|
+
--icen-token-glow: transparent;
|
|
346
|
+
--icen-token-glow-cold: transparent;
|
|
347
|
+
--icen-token-success-muted: color-mix(in srgb, var(--icen-design-success) 12%, transparent);
|
|
348
|
+
--icen-token-warning-muted: color-mix(in srgb, var(--icen-design-warning) 12%, transparent);
|
|
349
|
+
--icen-token-error-muted: color-mix(in srgb, var(--icen-design-error) 12%, transparent);
|
|
350
|
+
--icen-token-error-soft: var(--icen-token-error-muted);
|
|
351
|
+
--icen-token-info-muted: color-mix(in srgb, var(--icen-design-info) 12%, transparent);
|
|
352
|
+
--icen-token-canvas: var(--icen-token-bg);
|
|
353
|
+
--icen-token-sidebar: var(--icen-token-bg-soft);
|
|
354
|
+
--icen-token-panel: var(--icen-token-bg-soft);
|
|
355
|
+
--icen-token-card: var(--icen-token-surface);
|
|
356
|
+
--icen-token-card-strong: var(--icen-token-surface-strong);
|
|
357
|
+
--icen-token-control: color-mix(in srgb, var(--icen-design-surface) 70%, var(--icen-design-canvas));
|
|
358
|
+
--icen-token-control-hover: var(--icen-token-surface-hover);
|
|
359
|
+
--icen-token-surface-glass: color-mix(in srgb, var(--icen-token-surface) var(--icen-design-glass-opacity), transparent);
|
|
360
|
+
--icen-token-overlay-bg: var(--icen-token-surface-glass);
|
|
361
|
+
--icen-token-scrollbar-size: 8px;
|
|
362
|
+
--icen-token-scrollbar-track: transparent;
|
|
363
|
+
--icen-token-scrollbar-thumb: color-mix(in srgb, var(--icen-design-ink) 22%, transparent);
|
|
364
|
+
--icen-token-scrollbar-thumb-hover: color-mix(in srgb, var(--icen-design-ink) 38%, transparent);
|
|
365
|
+
--icen-token-scrollbar-button: transparent;
|
|
366
|
+
--icen-accent-cold: var(--icen-token-accent-cold);
|
|
367
|
+
--icen-bg-primary: var(--icen-token-bg);
|
|
368
|
+
--icen-bg-secondary: var(--icen-token-bg-soft);
|
|
369
|
+
--icen-bg-tertiary: var(--icen-token-surface);
|
|
370
|
+
--icen-bg-card: var(--icen-token-card);
|
|
371
|
+
--icen-bg-card-muted: var(--icen-token-bg-soft);
|
|
372
|
+
--icen-bg-panel: var(--icen-token-panel);
|
|
373
|
+
--icen-bg-hover: var(--icen-token-surface-hover);
|
|
374
|
+
--icen-text-primary: var(--icen-token-text);
|
|
375
|
+
--icen-text-secondary: var(--icen-token-text);
|
|
376
|
+
--icen-text-tertiary: var(--icen-token-text-muted);
|
|
377
|
+
--icen-text-muted: var(--icen-token-text-muted);
|
|
378
|
+
--icen-text-subtle: var(--icen-token-text-faint);
|
|
379
|
+
--icen-border-subtle: var(--icen-token-line-soft);
|
|
380
|
+
--icen-border-default: var(--icen-token-line);
|
|
381
|
+
--icen-border-strong: var(--icen-token-line-strong);
|
|
382
|
+
--icen-shadow-sm: var(--icen-token-shadow-elevated);
|
|
383
|
+
--icen-shadow-md: var(--icen-token-shadow-overlay);
|
|
384
|
+
--icen-color-success: var(--icen-token-success);
|
|
385
|
+
--icen-color-success-bg: var(--icen-token-success-muted);
|
|
386
|
+
--icen-color-warning: var(--icen-token-warning);
|
|
387
|
+
--icen-color-warning-bg: var(--icen-token-warning-muted);
|
|
388
|
+
--icen-color-error: var(--icen-token-error);
|
|
389
|
+
--icen-color-error-bg: var(--icen-token-error-muted);
|
|
390
|
+
--icen-color-info: var(--icen-token-info);
|
|
391
|
+
--icen-color-info-bg: var(--icen-token-info-muted);
|
|
392
|
+
--icen-color-pending: var(--icen-token-text-muted);
|
|
393
|
+
--icen-color-pending-bg: var(--icen-token-bg-soft);
|
|
1251
394
|
}
|
|
1252
395
|
|
|
1253
396
|
|
|
1254
|
-
|
|
1255
397
|
/* ── tokens/style-profiles.css ── */
|
|
1256
|
-
/*
|
|
1257
|
-
* Icen Design System — 风格配置 (Style Profiles)
|
|
1258
|
-
*
|
|
1259
|
-
* 这是颜色主题之上的第二层抽象:
|
|
1260
|
-
* .style-modern → 默认现代风格(不覆盖)
|
|
1261
|
-
* .style-retro → 8-bit / 红白机 / 像素风
|
|
1262
|
-
* .style-terminal → 命令行 / CRT 终端(预留)
|
|
1263
|
-
*
|
|
1264
|
-
* 规则:
|
|
1265
|
-
* 1. 这些类挂在 <html> 上,与 .clay/.piano/.art/.vangogh/.ink/.retro 共存。
|
|
1266
|
-
* 2. 只覆盖与“风格”相关的变量:字体、圆角、阴影硬度、抗锯齿、图像渲染。
|
|
1267
|
-
* 3. 颜色仍由 preset 决定,保持正交。
|
|
1268
|
-
*
|
|
1269
|
-
* 注:选择器引用的是 base.css 的交互基元(.pressable / .control / .lift),
|
|
1270
|
-
* 而非源项目 opengal 的 .og-* 命名——切换 profile 时这些基元自动获得
|
|
1271
|
-
* 对应风格的几何/边框/阴影形态。
|
|
1272
|
-
*/
|
|
1273
|
-
|
|
1274
|
-
/* ══════════════════════════════════════════════════════════════
|
|
1275
|
-
字体资源
|
|
1276
|
-
══════════════════════════════════════════════════════════════ */
|
|
1277
|
-
|
|
1278
|
-
/* Press Start 2P — 经典 8-bit 像素字体(西文) */
|
|
1279
|
-
@font-face {
|
|
1280
|
-
font-family: "Pixel Retro";
|
|
1281
|
-
src:
|
|
1282
|
-
local("Press Start 2P"),
|
|
1283
|
-
local("VT323"),
|
|
1284
|
-
url("https://fonts.gstatic.com/s/pressstart2p/v15/e3t4euO8T-267oIAQAu6jDQyK3nVivM.woff2") format("woff2");
|
|
1285
|
-
font-weight: 400;
|
|
1286
|
-
font-style: normal;
|
|
1287
|
-
font-display: swap;
|
|
1288
|
-
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
1289
|
-
}
|
|
1290
|
-
|
|
1291
|
-
/* 中文像素风回退:无通用免费像素中文字体,使用系统等宽/宋体保持清晰 */
|
|
1292
|
-
@font-face {
|
|
1293
|
-
font-family: "Pixel CJK Fallback";
|
|
1294
|
-
src:
|
|
1295
|
-
local("Zpix"),
|
|
1296
|
-
local("SimSun"),
|
|
1297
|
-
local("Songti SC"),
|
|
1298
|
-
local("STSong"),
|
|
1299
|
-
local("Noto Serif SC"),
|
|
1300
|
-
local("PingFang SC"),
|
|
1301
|
-
local("Microsoft YaHei");
|
|
1302
|
-
font-weight: 400;
|
|
1303
|
-
font-style: normal;
|
|
1304
|
-
font-display: swap;
|
|
1305
|
-
}
|
|
1306
|
-
|
|
398
|
+
/* Shared fallback defaults. Built-in primitive recipes live in design/pixel/chinese/soviet.css. */
|
|
1307
399
|
:root {
|
|
1308
400
|
/* ══════════════════════════════════════════════════════════════
|
|
1309
401
|
风格底层 token(兜底值)
|
|
@@ -1311,562 +403,1224 @@
|
|
|
1311
403
|
══════════════════════════════════════════════════════════════ */
|
|
1312
404
|
|
|
1313
405
|
/* ── Density 密度 ── */
|
|
1314
|
-
--density-space-
|
|
1315
|
-
--density-space-
|
|
1316
|
-
--density-space-
|
|
1317
|
-
--density-space-
|
|
1318
|
-
--density-space-
|
|
1319
|
-
--density-space-
|
|
1320
|
-
--density-space-
|
|
1321
|
-
--density-space-
|
|
1322
|
-
--density-
|
|
1323
|
-
--density-input-height-
|
|
1324
|
-
--density-input-height-
|
|
1325
|
-
--density-
|
|
1326
|
-
--density-font-size-
|
|
1327
|
-
--density-font-size-
|
|
1328
|
-
--density-font-size-
|
|
1329
|
-
--density-font-size-
|
|
1330
|
-
--density-font-size-
|
|
1331
|
-
--density-font-size-
|
|
406
|
+
--icen-density-space-2xs: 0.125rem;
|
|
407
|
+
--icen-density-space-xs: 0.25rem;
|
|
408
|
+
--icen-density-space-sm: 0.5rem;
|
|
409
|
+
--icen-density-space-md: 0.75rem;
|
|
410
|
+
--icen-density-space-lg: 1rem;
|
|
411
|
+
--icen-density-space-xl: 1.5rem;
|
|
412
|
+
--icen-density-space-2xl: 2rem;
|
|
413
|
+
--icen-density-space-3xl: 3rem;
|
|
414
|
+
--icen-density-space-4xl: 4rem;
|
|
415
|
+
--icen-density-input-height-sm: 28px;
|
|
416
|
+
--icen-density-input-height-md: 36px;
|
|
417
|
+
--icen-density-input-height-lg: 44px;
|
|
418
|
+
--icen-density-font-size-2xs: 10px;
|
|
419
|
+
--icen-density-font-size-xs: 11px;
|
|
420
|
+
--icen-density-font-size-sm: 12px;
|
|
421
|
+
--icen-density-font-size-md: 13px;
|
|
422
|
+
--icen-density-font-size-lg: 14px;
|
|
423
|
+
--icen-density-font-size-xl: 18px;
|
|
424
|
+
--icen-density-font-size-2xl: 22px;
|
|
1332
425
|
|
|
1333
426
|
/* ── Motion 动效 ── */
|
|
1334
|
-
--duration-instant: 0ms;
|
|
1335
|
-
--duration-fast: 150ms;
|
|
1336
|
-
--duration-normal: 200ms;
|
|
1337
|
-
--duration-slow: 300ms;
|
|
1338
|
-
--ease-linear: linear;
|
|
1339
|
-
--ease-out: cubic-bezier(0.16, 1, 0.3, 1);
|
|
1340
|
-
--ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
427
|
+
--icen-duration-instant: 0ms;
|
|
428
|
+
--icen-duration-fast: 150ms;
|
|
429
|
+
--icen-duration-normal: 200ms;
|
|
430
|
+
--icen-duration-slow: 300ms;
|
|
431
|
+
--icen-ease-linear: linear;
|
|
432
|
+
--icen-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
|
|
433
|
+
--icen-ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
1341
434
|
|
|
1342
435
|
/* ── Typography 字体 ──
|
|
1343
|
-
--line-height-heading 不在此定义:typography.css 独家拥有(icen 品牌 1.2),
|
|
436
|
+
--icen-line-height-heading 不在此定义:typography.css 独家拥有(icen 品牌 1.2),
|
|
1344
437
|
各 .style-* profile 需要差异化时在自己的块里覆盖。 */
|
|
1345
|
-
--font-body: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
|
|
1346
|
-
--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
|
|
1347
|
-
--font-mono-paper: ui-monospace, SFMono-Regular, 'JetBrains Mono', 'Courier New', monospace;
|
|
1348
|
-
--font-heading: var(--font-body);
|
|
1349
|
-
--letter-spacing-body: 0;
|
|
1350
|
-
--letter-spacing-heading: 0;
|
|
1351
|
-
--line-height-body: 1.5;
|
|
1352
|
-
}
|
|
1353
|
-
|
|
1354
|
-
/* ══════════════════════════════════════════════════════════════
|
|
1355
|
-
MODERN — 默认现代风格(兜底值即为现代值,显式声明便于阅读)
|
|
1356
|
-
══════════════════════════════════════════════════════════════ */
|
|
1357
|
-
|
|
1358
|
-
.style-modern {
|
|
1359
|
-
/* ── Density ── */
|
|
1360
|
-
--density-space-xs: 0.25rem;
|
|
1361
|
-
--density-space-sm: 0.5rem;
|
|
1362
|
-
--density-space-md: 0.75rem;
|
|
1363
|
-
--density-space-lg: 1rem;
|
|
1364
|
-
--density-space-xl: 1.5rem;
|
|
1365
|
-
--density-space-2xl: 2rem;
|
|
1366
|
-
--density-space-3xl: 3rem;
|
|
1367
|
-
--density-space-4xl: 4rem;
|
|
1368
|
-
--density-input-height-sm: 28px;
|
|
1369
|
-
--density-input-height-md: 36px;
|
|
1370
|
-
--density-input-height-lg: 44px;
|
|
1371
|
-
--density-font-size-2xs: 10px;
|
|
1372
|
-
--density-font-size-xs: 11px;
|
|
1373
|
-
--density-font-size-sm: 12px;
|
|
1374
|
-
--density-font-size-md: 13px;
|
|
1375
|
-
--density-font-size-lg: 14px;
|
|
1376
|
-
--density-font-size-xl: 18px;
|
|
1377
|
-
--density-font-size-2xl: 22px;
|
|
1378
|
-
|
|
1379
|
-
/* ── Motion ── */
|
|
1380
|
-
--duration-fast: 150ms;
|
|
1381
|
-
--duration-normal: 200ms;
|
|
1382
|
-
--duration-slow: 300ms;
|
|
1383
|
-
--ease-out: cubic-bezier(0.16, 1, 0.3, 1);
|
|
1384
|
-
|
|
1385
|
-
/* ── Typography ── */
|
|
1386
|
-
--font-body: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
|
|
1387
|
-
--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
|
|
1388
|
-
--font-mono-paper: ui-monospace, SFMono-Regular, 'JetBrains Mono', 'Courier New', monospace;
|
|
1389
|
-
--font-heading: var(--font-body);
|
|
1390
|
-
--letter-spacing-body: 0;
|
|
1391
|
-
--letter-spacing-heading: 0;
|
|
1392
|
-
--line-height-body: 1.5;
|
|
1393
|
-
--line-height-heading: 1.2;
|
|
1394
|
-
}
|
|
1395
|
-
|
|
1396
|
-
/* ══════════════════════════════════════════════════════════════
|
|
1397
|
-
RETRO — 8-bit / 红白机 / 像素风
|
|
1398
|
-
══════════════════════════════════════════════════════════════ */
|
|
1399
|
-
|
|
1400
|
-
.style-retro {
|
|
1401
|
-
/* ── Density:像素风更紧凑 ── */
|
|
1402
|
-
--density-space-xs: 0.125rem;
|
|
1403
|
-
--density-space-sm: 0.25rem;
|
|
1404
|
-
--density-space-md: 0.5rem;
|
|
1405
|
-
--density-space-lg: 0.75rem;
|
|
1406
|
-
--density-space-xl: 1rem;
|
|
1407
|
-
--density-space-2xl: 1.5rem;
|
|
1408
|
-
--density-space-3xl: 2rem;
|
|
1409
|
-
--density-space-4xl: 3rem;
|
|
1410
|
-
--density-input-height-sm: 24px;
|
|
1411
|
-
--density-input-height-md: 32px;
|
|
1412
|
-
--density-input-height-lg: 40px;
|
|
1413
|
-
--density-font-size-2xs: 9px;
|
|
1414
|
-
--density-font-size-xs: 9px;
|
|
1415
|
-
--density-font-size-sm: 10px;
|
|
1416
|
-
--density-font-size-md: 11px;
|
|
1417
|
-
--density-font-size-lg: 12px;
|
|
1418
|
-
--density-font-size-xl: 14px;
|
|
1419
|
-
--density-font-size-2xl: 16px;
|
|
1420
|
-
|
|
1421
|
-
/* ── Motion:像素风瞬间切换 ── */
|
|
1422
|
-
--duration-fast: 0ms;
|
|
1423
|
-
--duration-normal: 0ms;
|
|
1424
|
-
--duration-slow: 0ms;
|
|
1425
|
-
--ease-out: linear;
|
|
1426
|
-
|
|
1427
|
-
/* ── Typography:像素字体 ── */
|
|
1428
|
-
--font-body: "Pixel Retro", "Pixel CJK Fallback", "Press Start 2P", "VT323", "SimSun", "Songti SC", "STSong", monospace;
|
|
1429
|
-
--font-mono: "Pixel Retro", "VT323", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
1430
|
-
--font-mono-paper: "Pixel Retro", "JetBrains Mono", "Courier New", monospace;
|
|
1431
|
-
--font-heading: "Pixel Retro", "Press Start 2P", "VT323", var(--font-body);
|
|
1432
|
-
--letter-spacing-body: 0.02em;
|
|
1433
|
-
--letter-spacing-heading: 0.04em;
|
|
1434
|
-
--line-height-body: 1.5;
|
|
1435
|
-
--line-height-heading: 1.2;
|
|
1436
|
-
|
|
1437
|
-
/* ── 圆角:像素风几乎无圆角 ── */
|
|
1438
|
-
--radius-xs: 0px;
|
|
1439
|
-
--radius-sm: 0px;
|
|
1440
|
-
--radius-md: 2px;
|
|
1441
|
-
--radius-lg: 2px;
|
|
1442
|
-
--radius-xl: 2px;
|
|
1443
|
-
--radius-full: 0px;
|
|
1444
|
-
|
|
1445
|
-
/* ── 滚动条 ── */
|
|
1446
|
-
--token-scrollbar-size: 10px;
|
|
1447
|
-
|
|
1448
|
-
/* ── icen 原语覆盖:retro 的聚焦环/按下/悬停全部像素化 ── */
|
|
1449
|
-
--icen-ring: 2px solid var(--token-accent);
|
|
1450
|
-
--icen-ring-soft: 2px solid var(--token-accent);
|
|
1451
|
-
--icen-ring-error: 2px solid var(--token-error);
|
|
1452
|
-
--icen-ring-success: 2px solid var(--token-success);
|
|
1453
|
-
--icen-press: translate(2px, 2px);
|
|
1454
|
-
--icen-press-soft: translate(1px, 1px);
|
|
1455
|
-
--icen-hover-border: var(--token-accent);
|
|
1456
|
-
--icen-hover-border-strong: var(--token-accent);
|
|
1457
|
-
--icen-control-focus-shadow: inset 2px 2px 0 var(--token-line-soft), inset -1px -1px 0 var(--token-surface-strong);
|
|
1458
|
-
--icen-control-focus-border: var(--token-accent);
|
|
1459
|
-
--icen-control-error-shadow: inset 2px 2px 0 var(--token-line-soft), inset -1px -1px 0 var(--token-surface-strong);
|
|
1460
|
-
|
|
1461
|
-
/* ── 渲染 ── */
|
|
1462
|
-
image-rendering: pixelated;
|
|
1463
|
-
-webkit-font-smoothing: none;
|
|
1464
|
-
-moz-osx-font-smoothing: unset;
|
|
1465
|
-
}
|
|
1466
|
-
|
|
1467
|
-
/* 全局排版覆盖 */
|
|
1468
|
-
.style-retro body {
|
|
1469
|
-
font-family: "Numeric Math", var(--font-body);
|
|
1470
|
-
line-height: var(--line-height-body);
|
|
1471
|
-
letter-spacing: var(--letter-spacing-body);
|
|
1472
|
-
}
|
|
1473
|
-
|
|
1474
|
-
/* 标题强化像素感 */
|
|
1475
|
-
.style-retro h1,
|
|
1476
|
-
.style-retro h2,
|
|
1477
|
-
.style-retro h3,
|
|
1478
|
-
.style-retro h4,
|
|
1479
|
-
.style-retro h5,
|
|
1480
|
-
.style-retro h6 {
|
|
1481
|
-
font-family: var(--font-heading);
|
|
1482
|
-
letter-spacing: var(--letter-spacing-heading);
|
|
1483
|
-
line-height: var(--line-height-heading);
|
|
1484
|
-
text-transform: uppercase;
|
|
1485
|
-
}
|
|
1486
|
-
|
|
1487
|
-
/* ══════════════════════════════════════════════════════════════
|
|
1488
|
-
按钮 / 可点击元素 — 8-bit 像素按钮
|
|
1489
|
-
base.css 的 .pressable / 原生 button / [role=button] / 复位按钮
|
|
1490
|
-
注:聚焦环 / 按下形变 / 悬停边框 由 --icen-* 原语驱动,
|
|
1491
|
-
在 .style-retro 块里已统一覆盖;这里只补"按钮的像素投影",
|
|
1492
|
-
这是 .pressable::after 高光无法表达的形态。
|
|
1493
|
-
══════════════════════════════════════════════════════════════ */
|
|
1494
|
-
|
|
1495
|
-
.style-retro .pressable,
|
|
1496
|
-
.style-retro button,
|
|
1497
|
-
.style-retro [role="button"],
|
|
1498
|
-
.style-retro input[type="button"],
|
|
1499
|
-
.style-retro input[type="submit"],
|
|
1500
|
-
.style-retro input[type="reset"] {
|
|
1501
|
-
position: relative;
|
|
1502
|
-
border-radius: var(--radius-md);
|
|
1503
|
-
border: 2px solid var(--token-line-strong);
|
|
1504
|
-
box-shadow:
|
|
1505
|
-
inset -2px -2px 0 var(--token-line-soft),
|
|
1506
|
-
inset 2px 2px 0 var(--token-surface-strong),
|
|
1507
|
-
2px 2px 0 var(--token-line);
|
|
1508
|
-
transition: all var(--duration-fast) var(--ease-out);
|
|
438
|
+
--icen-font-body: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
|
|
439
|
+
--icen-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
|
|
440
|
+
--icen-font-mono-paper: ui-monospace, SFMono-Regular, 'JetBrains Mono', 'Courier New', monospace;
|
|
441
|
+
--icen-font-heading: var(--icen-font-body);
|
|
442
|
+
--icen-letter-spacing-body: 0;
|
|
443
|
+
--icen-letter-spacing-heading: 0;
|
|
444
|
+
--icen-line-height-body: 1.5;
|
|
1509
445
|
}
|
|
1510
446
|
|
|
1511
|
-
/* 禁用 .pressable::after 的现代渐变高光,retro 用硬投影表达层级 */
|
|
1512
|
-
.style-retro .pressable::after,
|
|
1513
|
-
.style-retro button::after {
|
|
1514
|
-
display: none;
|
|
1515
|
-
}
|
|
1516
447
|
|
|
1517
|
-
/*
|
|
1518
|
-
|
|
1519
|
-
.
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
448
|
+
/* ── tokens/typography.css ── */
|
|
449
|
+
/*
|
|
450
|
+
* @icen.ai/ui — Typography Tokens(icen canonical)
|
|
451
|
+
* 默认排版:现代系统无衬线;代码/数字提供独立工具类。
|
|
452
|
+
* 像素原语的点阵排版在 pixel.css 中定义。
|
|
453
|
+
* 工具类:.icen-font-math(数字密集区,"Numeric Math" 数学字体 + tabular-nums)
|
|
454
|
+
*/
|
|
1523
455
|
|
|
1524
|
-
/*
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
456
|
+
/* ── 数学/等宽数字字体(数字密集区的精密感) ── */
|
|
457
|
+
@font-face {
|
|
458
|
+
font-family: "Numeric Math";
|
|
459
|
+
src:
|
|
460
|
+
local("Cambria Math"),
|
|
461
|
+
local("STIX Two Math"),
|
|
462
|
+
local("Latin Modern Math"),
|
|
463
|
+
local("Asana Math");
|
|
464
|
+
unicode-range: U+0025-003A, U+00A5, U+2212, U+223C;
|
|
1531
465
|
}
|
|
1532
466
|
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
467
|
+
:root {
|
|
468
|
+
/* ── icen 品牌字体栈 ──
|
|
469
|
+
body:系统无衬线;mono:系统等宽
|
|
470
|
+
heading:跟随界面字体 */
|
|
471
|
+
--icen-font-body: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
|
|
472
|
+
--icen-font-mono: ui-monospace, SFMono-Regular, Consolas, monospace;
|
|
473
|
+
--icen-font-heading: var(--icen-font-body);
|
|
474
|
+
--icen-font-cjk: var(--icen-font-heading);
|
|
475
|
+
--icen-line-height-body: 1.7;
|
|
476
|
+
/* 独家定义(style-profiles.css 的 :root 不再重复;profile 差异化在各 .style-* 块覆盖) */
|
|
477
|
+
--icen-line-height-heading: 1.2;
|
|
1538
478
|
}
|
|
1539
479
|
|
|
1540
|
-
/*
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
.style-retro textarea,
|
|
1549
|
-
.style-retro select {
|
|
1550
|
-
border-radius: var(--radius-md);
|
|
1551
|
-
border: 2px solid var(--token-line);
|
|
1552
|
-
background: var(--token-bg);
|
|
1553
|
-
box-shadow:
|
|
1554
|
-
inset 2px 2px 0 var(--token-line-soft),
|
|
1555
|
-
inset -1px -1px 0 var(--token-surface-strong);
|
|
1556
|
-
transition: none;
|
|
1557
|
-
}
|
|
1558
|
-
|
|
1559
|
-
/* 被 .control 容器包裹的输入框:自身边框透明化,
|
|
1560
|
-
完全交给外层容器承担像素边框,避免常驻/聚焦状态出现双层内框。 */
|
|
1561
|
-
.style-retro .control input:not([type="checkbox"]):not([type="radio"]),
|
|
1562
|
-
.style-retro .control textarea,
|
|
1563
|
-
.style-retro .control select,
|
|
1564
|
-
.style-retro .control [contenteditable="true"] {
|
|
1565
|
-
border-color: transparent !important;
|
|
1566
|
-
box-shadow: none !important;
|
|
1567
|
-
background: transparent !important;
|
|
1568
|
-
}
|
|
1569
|
-
|
|
1570
|
-
.style-retro input:hover,
|
|
1571
|
-
.style-retro textarea:hover,
|
|
1572
|
-
.style-retro select:hover,
|
|
1573
|
-
.style-retro .control:hover {
|
|
1574
|
-
border-color: var(--icen-hover-border);
|
|
480
|
+
/* ── 全局排版 ── */
|
|
481
|
+
body {
|
|
482
|
+
font-family: var(--icen-font-body);
|
|
483
|
+
line-height: var(--icen-line-height-body);
|
|
484
|
+
-webkit-font-smoothing: antialiased;
|
|
485
|
+
-moz-osx-font-smoothing: grayscale;
|
|
486
|
+
font-feature-settings: "rlig" 1, "calt" 1;
|
|
487
|
+
font-variant-numeric: normal;
|
|
1575
488
|
}
|
|
1576
489
|
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
.style-retro textarea:focus,
|
|
1581
|
-
.style-retro select:focus,
|
|
1582
|
-
.style-retro input:focus-visible,
|
|
1583
|
-
.style-retro textarea:focus-visible,
|
|
1584
|
-
.style-retro select:focus-visible,
|
|
1585
|
-
.style-retro [contenteditable="true"]:focus,
|
|
1586
|
-
.style-retro [contenteditable="true"]:focus-visible {
|
|
1587
|
-
outline: none !important;
|
|
1588
|
-
box-shadow: none !important;
|
|
1589
|
-
border-color: transparent !important;
|
|
490
|
+
h1, h2, h3, h4, h5, h6 {
|
|
491
|
+
font-family: var(--icen-font-heading);
|
|
492
|
+
line-height: var(--icen-line-height-heading);
|
|
1590
493
|
}
|
|
1591
494
|
|
|
1592
|
-
/*
|
|
1593
|
-
.
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
opacity: 0.7;
|
|
495
|
+
/* ── 数字密集区工具类 ── */
|
|
496
|
+
.icen-font-math {
|
|
497
|
+
font-family: "Numeric Math", math, var(--icen-font-body);
|
|
498
|
+
font-variant-numeric: lining-nums tabular-nums;
|
|
1597
499
|
}
|
|
1598
500
|
|
|
1599
|
-
/* ══════════════════════════════════════════════════════════════
|
|
1600
|
-
开关 / 复选框 — 像素开关
|
|
1601
|
-
══════════════════════════════════════════════════════════════ */
|
|
1602
501
|
|
|
1603
|
-
.
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
502
|
+
/* ── tokens/design.css ── */
|
|
503
|
+
/* 现代 primitive: geometry, type, rhythm and lighting. Color palettes live in themes.json. */
|
|
504
|
+
:root {
|
|
505
|
+
--icen-design-radius: 10px;
|
|
506
|
+
--icen-design-space: 4px;
|
|
507
|
+
--icen-design-control-height: 40px;
|
|
508
|
+
--icen-design-font-size: 14px;
|
|
509
|
+
--icen-design-font: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
|
|
510
|
+
--icen-design-glass-blur: 20px;
|
|
511
|
+
--icen-design-motion: 1;
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
/* Materials and geometry belong to the primitive, across every palette. */
|
|
515
|
+
:root, [data-icen-preset], [data-icen-theme="dark"] {
|
|
516
|
+
--icen-token-surface-glass: color-mix(in srgb, var(--icen-token-surface) var(--icen-design-glass-opacity), transparent);
|
|
517
|
+
/* Contact, near-field and ambient shadows share a light source. Negative
|
|
518
|
+
* spread keeps the shadow under the object instead of fogging its outline. */
|
|
519
|
+
--icen-token-shadow-card: 0 1px 2px -1px color-mix(in srgb, var(--icen-design-shadow-color) var(--icen-design-shadow-strength), transparent), 0 4px 10px -5px color-mix(in srgb, var(--icen-design-shadow-color) calc(var(--icen-design-shadow-strength) * .7), transparent), 0 12px 24px -12px color-mix(in srgb, var(--icen-design-shadow-color) calc(var(--icen-design-shadow-strength) * .5), transparent);
|
|
520
|
+
--icen-token-shadow-elevated: 0 1px 3px color-mix(in srgb, var(--icen-design-shadow-color) calc(var(--icen-design-shadow-strength) * .75), transparent), 0 8px 20px -8px color-mix(in srgb, var(--icen-design-shadow-color) var(--icen-design-shadow-strength), transparent), 0 24px 48px -16px color-mix(in srgb, var(--icen-design-shadow-color) var(--icen-design-shadow-strength), transparent);
|
|
521
|
+
--icen-token-shadow-overlay: 0 2px 6px color-mix(in srgb, var(--icen-design-shadow-color) var(--icen-design-shadow-strength), transparent), 0 16px 36px -12px color-mix(in srgb, var(--icen-design-shadow-color) calc(var(--icen-design-shadow-strength) * 1.2), transparent), 0 40px 88px -24px color-mix(in srgb, var(--icen-design-shadow-color) calc(var(--icen-design-shadow-strength) * 1.2), transparent);
|
|
522
|
+
--icen-token-top-highlight: color-mix(in srgb, var(--icen-design-light) var(--icen-design-highlight-strength), transparent);
|
|
523
|
+
--icen-token-shadow-inset: inset 0 1px 2px color-mix(in srgb, var(--icen-design-shadow-color) calc(var(--icen-design-shadow-strength) * .35), transparent), inset 0 -1px 0 color-mix(in srgb, var(--icen-token-top-highlight) 45%, transparent);
|
|
524
|
+
--icen-token-shadow-popover: var(--icen-token-shadow-elevated);
|
|
525
|
+
--icen-token-material-edge: color-mix(in srgb, var(--icen-token-text) var(--icen-design-edge-strength), transparent);
|
|
526
|
+
--icen-token-material-light: inset 0 1px 0 var(--icen-token-top-highlight), inset 0 -1px 0 color-mix(in srgb, var(--icen-token-top-highlight) 18%, transparent);
|
|
527
|
+
--icen-token-scrim: color-mix(in srgb, var(--icen-design-shadow-color) 32%, transparent);
|
|
1614
528
|
}
|
|
1615
529
|
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
530
|
+
:root {
|
|
531
|
+
--icen-design-light: #ffffff;
|
|
532
|
+
--icen-radius-xs: max(0px, calc(var(--icen-design-radius) - 6px));
|
|
533
|
+
--icen-radius-sm: max(0px, calc(var(--icen-design-radius) - 2px));
|
|
534
|
+
--icen-radius-md: var(--icen-design-radius);
|
|
535
|
+
--icen-radius-lg: calc(var(--icen-design-radius) + 6px);
|
|
536
|
+
--icen-radius-xl: calc(var(--icen-design-radius) + 14px);
|
|
537
|
+
--icen-radius-full: 999px;
|
|
538
|
+
--icen-font-body: var(--icen-design-font);
|
|
539
|
+
--icen-font-heading: var(--icen-design-font);
|
|
540
|
+
--icen-font-cjk: var(--icen-design-font);
|
|
541
|
+
--icen-font-mono: ui-monospace, SFMono-Regular, Consolas, monospace;
|
|
542
|
+
--icen-font-mono-paper: var(--icen-font-mono);
|
|
543
|
+
--icen-line-height-body: 1.55;
|
|
544
|
+
--icen-line-height-heading: 1.25;
|
|
545
|
+
--icen-letter-spacing-body: 0;
|
|
546
|
+
--icen-letter-spacing-heading: -.02em;
|
|
547
|
+
--icen-duration-fast: calc(120ms * var(--icen-design-motion));
|
|
548
|
+
--icen-duration-normal: calc(180ms * var(--icen-design-motion));
|
|
549
|
+
--icen-duration-slow: calc(260ms * var(--icen-design-motion));
|
|
550
|
+
--icen-ease-out: cubic-bezier(.16, 1, .3, 1);
|
|
551
|
+
--icen-ease-bounce: var(--icen-ease-out);
|
|
552
|
+
--icen-hover-border: var(--icen-token-line);
|
|
553
|
+
--icen-hover-border-strong: var(--icen-token-line-strong);
|
|
554
|
+
--icen-press: scale(.985);
|
|
555
|
+
--icen-press-soft: scale(.99);
|
|
556
|
+
--icen-disabled-opacity: .48;
|
|
557
|
+
--icen-ring: 0 0 0 2px var(--icen-token-surface), 0 0 0 4px var(--icen-token-accent);
|
|
558
|
+
--icen-ring-soft: 0 0 0 3px var(--icen-token-accent-subtle);
|
|
559
|
+
--icen-control-focus-border: var(--icen-token-accent);
|
|
560
|
+
--icen-control-focus-shadow: var(--icen-token-shadow-inset), var(--icen-ring-soft);
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
/* Density changes rhythm and row height, never shrinks reading text. Re-declare
|
|
564
|
+
* recipes at the density boundary so inherited resolved variables cannot freeze. */
|
|
565
|
+
:root,
|
|
566
|
+
:root [data-icen-density] {
|
|
567
|
+
--icen-design-density-scale: 1;
|
|
568
|
+
--icen-design-density-offset: 0px;
|
|
569
|
+
--icen-density-space-2xs: calc(var(--icen-design-space) * var(--icen-design-density-scale) * .5);
|
|
570
|
+
--icen-density-space-xs: calc(var(--icen-design-space) * var(--icen-design-density-scale));
|
|
571
|
+
--icen-density-space-sm: calc(var(--icen-design-space) * var(--icen-design-density-scale) * 2);
|
|
572
|
+
--icen-density-space-md: calc(var(--icen-design-space) * var(--icen-design-density-scale) * 3);
|
|
573
|
+
--icen-density-space-lg: calc(var(--icen-design-space) * var(--icen-design-density-scale) * 4);
|
|
574
|
+
--icen-density-space-xl: calc(var(--icen-design-space) * var(--icen-design-density-scale) * 6);
|
|
575
|
+
--icen-density-space-2xl: calc(var(--icen-design-space) * var(--icen-design-density-scale) * 8);
|
|
576
|
+
--icen-density-space-3xl: calc(var(--icen-design-space) * var(--icen-design-density-scale) * 12);
|
|
577
|
+
--icen-density-space-4xl: calc(var(--icen-design-space) * var(--icen-design-density-scale) * 16);
|
|
578
|
+
--icen-density-input-height-sm: max(28px, calc(var(--icen-design-control-height) + var(--icen-design-density-offset) - 8px));
|
|
579
|
+
--icen-density-input-height-md: calc(var(--icen-design-control-height) + var(--icen-design-density-offset));
|
|
580
|
+
--icen-density-input-height-lg: calc(var(--icen-design-control-height) + var(--icen-design-density-offset) + 8px);
|
|
581
|
+
--icen-density-font-size-2xs: max(12px, calc(var(--icen-design-font-size) - 2px));
|
|
582
|
+
--icen-density-font-size-xs: max(12px, calc(var(--icen-design-font-size) - 2px));
|
|
583
|
+
--icen-density-font-size-sm: max(12px, calc(var(--icen-design-font-size) - 1px));
|
|
584
|
+
--icen-density-font-size-md: var(--icen-design-font-size);
|
|
585
|
+
--icen-density-font-size-lg: calc(var(--icen-design-font-size) + 2px);
|
|
586
|
+
--icen-density-font-size-xl: calc(var(--icen-design-font-size) + 6px);
|
|
587
|
+
--icen-density-font-size-2xl: calc(var(--icen-design-font-size) + 12px);
|
|
588
|
+
}
|
|
589
|
+
:root[data-icen-density="compact"],
|
|
590
|
+
:root [data-icen-density="compact"] {
|
|
591
|
+
--icen-design-density-scale: .75;
|
|
592
|
+
--icen-design-density-offset: -6px;
|
|
593
|
+
}
|
|
594
|
+
:root[data-icen-density="comfortable"],
|
|
595
|
+
:root [data-icen-density="comfortable"] {
|
|
596
|
+
--icen-design-density-scale: 1.25;
|
|
597
|
+
--icen-design-density-offset: 4px;
|
|
598
|
+
}
|
|
599
|
+
@media (pointer: coarse) {
|
|
600
|
+
:root, :root [data-icen-density] {
|
|
601
|
+
--icen-density-input-height-sm: max(44px, calc(var(--icen-design-control-height) + var(--icen-design-density-offset) - 8px));
|
|
602
|
+
--icen-density-input-height-md: max(44px, calc(var(--icen-design-control-height) + var(--icen-design-density-offset)));
|
|
603
|
+
--icen-density-input-height-lg: max(44px, calc(var(--icen-design-control-height) + var(--icen-design-density-offset) + 8px));
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
@media (prefers-reduced-motion: reduce) {
|
|
607
|
+
:root { --icen-design-motion: 0; }
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
|
|
611
|
+
/* ── tokens/chinese.css ── */
|
|
612
|
+
/* 中式 / Chinese — Song-era proportion, book typography and quiet paper planes.
|
|
613
|
+
* Palette-independent: the active theme supplies every pigment and semantic color.
|
|
614
|
+
* Display type is serif; small controls and dense information remain sans-serif.
|
|
615
|
+
*/
|
|
616
|
+
:root[data-icen-style="chinese"],
|
|
617
|
+
:root[data-icen-style="chinese"] [data-icen-preset] {
|
|
618
|
+
--icen-design-font: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
|
|
619
|
+
--icen-design-font-size: 14px;
|
|
620
|
+
--icen-design-radius: 4px;
|
|
621
|
+
--icen-design-space: 4.5px;
|
|
622
|
+
--icen-design-control-height: 42px;
|
|
623
|
+
--icen-design-glass-opacity: 100%;
|
|
624
|
+
--icen-design-glass-blur: 0px;
|
|
625
|
+
--icen-radius-xs: max(0px, calc(var(--icen-design-radius) - 2px));
|
|
626
|
+
--icen-radius-sm: var(--icen-design-radius);
|
|
627
|
+
--icen-radius-md: var(--icen-design-radius);
|
|
628
|
+
--icen-radius-lg: calc(var(--icen-design-radius) * 2);
|
|
629
|
+
--icen-radius-xl: calc(var(--icen-design-radius) * 3);
|
|
630
|
+
--icen-radius-full: 999px;
|
|
631
|
+
--icen-font-body: var(--icen-design-font);
|
|
632
|
+
--icen-font-heading: 'Iowan Old Style', 'Palatino Linotype', 'Songti SC', 'Noto Serif CJK SC', 'Source Han Serif SC', 'STSong', 'SimSun', serif;
|
|
633
|
+
--icen-font-cjk: var(--icen-design-font);
|
|
634
|
+
--icen-line-height-body: 1.75;
|
|
635
|
+
--icen-line-height-heading: 1.4;
|
|
636
|
+
--icen-letter-spacing-body: .012em;
|
|
637
|
+
--icen-letter-spacing-heading: .045em;
|
|
638
|
+
--icen-duration-fast: calc(140ms * var(--icen-design-motion));
|
|
639
|
+
--icen-duration-normal: calc(240ms * var(--icen-design-motion));
|
|
640
|
+
--icen-duration-slow: calc(340ms * var(--icen-design-motion));
|
|
641
|
+
--icen-ease-out: cubic-bezier(.22, .68, .2, 1);
|
|
642
|
+
--icen-ease-bounce: var(--icen-ease-out);
|
|
643
|
+
--icen-token-surface-glass: var(--icen-token-surface);
|
|
644
|
+
--icen-token-shadow-card: 0 1px 2px color-mix(in srgb, var(--icen-design-shadow-color) calc(var(--icen-design-shadow-strength) * .45), transparent), 0 6px 18px color-mix(in srgb, var(--icen-design-shadow-color) calc(var(--icen-design-shadow-strength) * .25), transparent);
|
|
645
|
+
--icen-token-shadow-elevated: 0 1px 3px color-mix(in srgb, var(--icen-design-shadow-color) calc(var(--icen-design-shadow-strength) * .65), transparent), 0 12px 30px color-mix(in srgb, var(--icen-design-shadow-color) calc(var(--icen-design-shadow-strength) * .55), transparent);
|
|
646
|
+
--icen-token-shadow-overlay: 0 2px 5px color-mix(in srgb, var(--icen-design-shadow-color) var(--icen-design-shadow-strength), transparent), 0 24px 64px color-mix(in srgb, var(--icen-design-shadow-color) calc(var(--icen-design-shadow-strength) * .7), transparent);
|
|
647
|
+
--icen-token-shadow-popover: var(--icen-token-shadow-elevated);
|
|
648
|
+
--icen-token-shadow-inset: inset 0 0 0 0 transparent;
|
|
649
|
+
--icen-token-material-light: inset 0 0 0 0 transparent;
|
|
650
|
+
--icen-token-top-highlight: transparent;
|
|
651
|
+
--icen-token-material-edge: var(--icen-token-line);
|
|
652
|
+
}
|
|
653
|
+
|
|
654
|
+
|
|
655
|
+
/* ── tokens/soviet.css ── */
|
|
656
|
+
/* 苏式 / Soviet — architectural mass and constructivist typographic hierarchy.
|
|
657
|
+
* Square slabs, strong load-bearing edges and short, deliberate feedback.
|
|
658
|
+
* No ideological emblems or palette overrides: color remains a separate axis.
|
|
659
|
+
*/
|
|
660
|
+
:root[data-icen-style="soviet"],
|
|
661
|
+
:root[data-icen-style="soviet"] [data-icen-preset] {
|
|
662
|
+
--icen-design-font: 'Segoe UI', 'Helvetica Neue', 'PingFang SC', 'Microsoft YaHei', Arial, sans-serif;
|
|
663
|
+
--icen-design-font-size: 14px;
|
|
664
|
+
--icen-design-radius: 0px;
|
|
665
|
+
--icen-design-space: 4px;
|
|
666
|
+
--icen-design-control-height: 44px;
|
|
667
|
+
--icen-design-glass-opacity: 100%;
|
|
668
|
+
--icen-design-glass-blur: 0px;
|
|
669
|
+
--icen-radius-xs: var(--icen-design-radius);
|
|
670
|
+
--icen-radius-sm: var(--icen-design-radius);
|
|
671
|
+
--icen-radius-md: var(--icen-design-radius);
|
|
672
|
+
--icen-radius-lg: var(--icen-design-radius);
|
|
673
|
+
--icen-radius-xl: var(--icen-design-radius);
|
|
674
|
+
--icen-radius-full: var(--icen-design-radius);
|
|
675
|
+
--icen-font-body: var(--icen-design-font);
|
|
676
|
+
--icen-font-heading: 'Bahnschrift', 'DIN Alternate', 'Arial Narrow', 'Helvetica Neue', 'PingFang SC', 'Microsoft YaHei', sans-serif;
|
|
677
|
+
--icen-font-cjk: var(--icen-design-font);
|
|
678
|
+
--icen-line-height-body: 1.6;
|
|
679
|
+
--icen-line-height-heading: 1.12;
|
|
680
|
+
--icen-letter-spacing-body: 0;
|
|
681
|
+
--icen-letter-spacing-heading: -.025em;
|
|
682
|
+
--icen-duration-fast: calc(90ms * var(--icen-design-motion));
|
|
683
|
+
--icen-duration-normal: calc(150ms * var(--icen-design-motion));
|
|
684
|
+
--icen-duration-slow: calc(220ms * var(--icen-design-motion));
|
|
685
|
+
--icen-ease-out: cubic-bezier(.2, 0, .2, 1);
|
|
686
|
+
--icen-ease-bounce: var(--icen-ease-out);
|
|
687
|
+
--icen-token-surface-glass: var(--icen-token-surface);
|
|
688
|
+
--icen-token-shadow-card: 0 3px 0 var(--icen-token-line);
|
|
689
|
+
--icen-token-shadow-elevated: 0 4px 0 var(--icen-token-line-strong), 0 12px 24px color-mix(in srgb, var(--icen-design-shadow-color) calc(var(--icen-design-shadow-strength) * .65), transparent);
|
|
690
|
+
--icen-token-shadow-overlay: 0 6px 0 var(--icen-token-line-strong), 0 24px 48px color-mix(in srgb, var(--icen-design-shadow-color) var(--icen-design-shadow-strength), transparent);
|
|
691
|
+
--icen-token-shadow-popover: var(--icen-token-shadow-elevated);
|
|
692
|
+
--icen-token-shadow-inset: inset 0 -1px 0 var(--icen-token-line);
|
|
693
|
+
--icen-token-material-light: inset 0 0 0 0 transparent;
|
|
694
|
+
--icen-token-top-highlight: transparent;
|
|
695
|
+
--icen-token-material-edge: var(--icen-token-line-strong);
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
|
|
699
|
+
/* ── tokens/pixel.css ── */
|
|
700
|
+
/* 像素 / Pixel — a discrete grid, print-like contours and mechanical feedback.
|
|
701
|
+
* This is a primitive, never a palette: every color comes from the current theme.
|
|
702
|
+
* Native 12px CJK glyphs, 24/36/48px display sizes, four-pixel spacing, opaque
|
|
703
|
+
* materials, square corners and stepped shadows. No CRT haze or flashing noise.
|
|
704
|
+
*/
|
|
705
|
+
@font-face {
|
|
706
|
+
font-family: 'Icen Pixel';
|
|
707
|
+
src: url('./fonts/fusion-pixel-12px-zh-hans.woff2') format('woff2');
|
|
708
|
+
font-display: swap;
|
|
709
|
+
font-style: normal;
|
|
710
|
+
font-weight: 400;
|
|
1623
711
|
}
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
712
|
+
:root[data-icen-style="pixel"], :root[data-icen-style="pixel"] [data-icen-preset] {
|
|
713
|
+
--icen-design-font: 'Icen Pixel', ui-monospace, 'Microsoft YaHei', monospace;
|
|
714
|
+
--icen-design-font-size: 12px;
|
|
715
|
+
--icen-design-space: 4px;
|
|
716
|
+
--icen-design-control-height: 40px;
|
|
717
|
+
--icen-design-glass-opacity: 100%;
|
|
718
|
+
--icen-design-glass-blur: 0px;
|
|
719
|
+
--icen-design-motion: 0;
|
|
720
|
+
--icen-radius-xs: 0px;
|
|
721
|
+
--icen-radius-sm: 0px;
|
|
722
|
+
--icen-radius-md: 0px;
|
|
723
|
+
--icen-radius-lg: 0px;
|
|
724
|
+
--icen-radius-xl: 0px;
|
|
725
|
+
--icen-radius-full: 0px;
|
|
726
|
+
--icen-font-body: var(--icen-design-font);
|
|
727
|
+
--icen-font-heading: var(--icen-design-font);
|
|
728
|
+
--icen-font-cjk: var(--icen-design-font);
|
|
729
|
+
--icen-font-mono: var(--icen-design-font);
|
|
730
|
+
--icen-letter-spacing-heading: 0;
|
|
731
|
+
--icen-line-height-body: 2;
|
|
732
|
+
--icen-line-height-heading: 1.5;
|
|
733
|
+
--icen-token-shadow-card: 2px 2px 0 var(--icen-token-line-strong);
|
|
734
|
+
--icen-token-shadow-elevated: 4px 4px 0 var(--icen-token-line-strong);
|
|
735
|
+
--icen-token-shadow-overlay: 8px 8px 0 var(--icen-token-line-strong);
|
|
736
|
+
--icen-token-shadow-inset: none;
|
|
737
|
+
--icen-token-material-light: 0 0 0 1px var(--icen-token-line-strong);
|
|
738
|
+
--icen-token-top-highlight: transparent;
|
|
739
|
+
--icen-press: translate(2px, 2px);
|
|
740
|
+
--icen-press-soft: translate(2px, 2px);
|
|
741
|
+
--icen-ring: 0 0 0 2px var(--icen-token-surface), 0 0 0 4px var(--icen-token-accent);
|
|
742
|
+
--icen-ring-soft: 0 0 0 2px var(--icen-token-accent);
|
|
743
|
+
--icen-control-focus-shadow: 0 0 0 2px var(--icen-token-accent);
|
|
744
|
+
--icen-ease-out: steps(1, end);
|
|
745
|
+
--icen-ease-bounce: steps(1, end);
|
|
1634
746
|
}
|
|
1635
747
|
|
|
1636
|
-
.style-retro input[type="radio"] {
|
|
1637
|
-
border-radius: 0;
|
|
1638
|
-
}
|
|
1639
748
|
|
|
1640
|
-
.
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
|
|
1646
|
-
|
|
749
|
+
/* ── tokens/icon-masks.css ── */
|
|
750
|
+
/* Generated by scripts/icon-masks.ts from behaviors/icons.ts. */
|
|
751
|
+
:root {
|
|
752
|
+
--icen-token-icon-file: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%202.5h5.5L16%207v9.5a1%201%200%200%201-1%201H5a1%201%200%200%201-1-1v-12a2%202%200%200%201%202-2ZM11.5%202.5V7H16%22%2F%3E%3C%2Fsvg%3E");
|
|
753
|
+
--icen-token-icon-folder: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%205a1.5%201.5%200%200%201%201.5-1.5H8l2%202h5.5A1.5%201.5%200%200%201%2017%207v8a1.5%201.5%200%200%201-1.5%201.5h-11A1.5%201.5%200%200%201%203%2015Z%22%2F%3E%3C%2Fsvg%3E");
|
|
754
|
+
--icen-token-icon-globe: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M17.5%2010a7.5%207.5%200%201%201-15%200%207.5%207.5%200%200%201%2015%200ZM2.5%2010h15M10%202.5c-4%204-4%2011%200%2015%204-4%204-11%200-15Z%22%2F%3E%3C%2Fsvg%3E");
|
|
755
|
+
--icen-token-icon-document: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%202.5h5.5L16%207v9.5a1%201%200%200%201-1%201H5a1%201%200%200%201-1-1v-12a2%202%200%200%201%202-2ZM11.5%202.5V7H16M7%2010.5h6M7%2013.5h6%22%2F%3E%3C%2Fsvg%3E");
|
|
756
|
+
--icen-token-icon-agent: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M10%206V3M8%203h2M5%206h10a2%202%200%200%201%202%202v7a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2V8a2%202%200%200%201%202-2ZM1.5%2010h1.5M17%2010h1.5M7%2010v2M13%2010v2M8%2014h4%22%2F%3E%3C%2Fsvg%3E");
|
|
757
|
+
--icen-token-icon-paperclip: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M14%207%208.3%2012.7a1.6%201.6%200%200%201-2.3-2.3l6.3-6.3a3.2%203.2%200%200%201%204.5%204.5l-7%207a4.7%204.7%200%200%201-6.7-6.7l7-7%22%2F%3E%3C%2Fsvg%3E");
|
|
758
|
+
--icen-token-icon-stop: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6.5%205h7A1.5%201.5%200%200%201%2015%206.5v7a1.5%201.5%200%200%201-1.5%201.5h-7A1.5%201.5%200%200%201%205%2013.5v-7A1.5%201.5%200%200%201%206.5%205Z%22%2F%3E%3C%2Fsvg%3E");
|
|
759
|
+
--icen-token-icon-terminal: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%203.5h10a2%202%200%200%201%202%202v9a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2v-9a2%202%200%200%201%202-2ZM6%207l3%203-3%203M11%2013h3%22%2F%3E%3C%2Fsvg%3E");
|
|
760
|
+
--icen-token-icon-branch: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%206v8M14%206v2a4%204%200%200%201-4%204H6M8%204a2%202%200%201%201-4%200%202%202%200%200%201%204%200ZM8%2016a2%202%200%201%201-4%200%202%202%200%200%201%204%200ZM16%204a2%202%200%201%201-4%200%202%202%200%200%201%204%200Z%22%2F%3E%3C%2Fsvg%3E");
|
|
761
|
+
--icen-token-icon-line-numbers: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%205h2M3%2010h2M3%2015h2M8%205h9M8%2010h9M8%2015h9%22%2F%3E%3C%2Fsvg%3E");
|
|
762
|
+
--icen-token-icon-wrap: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%205h14M3%2010h10a3%203%200%200%201%200%206h-3M12.5%2013.5%2010%2016l2.5%202.5%22%2F%3E%3C%2Fsvg%3E");
|
|
763
|
+
--icen-token-icon-calendar: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5.5%204h9A2.5%202.5%200%200%201%2017%206.5v8a2.5%202.5%200%200%201-2.5%202.5h-9A2.5%202.5%200%200%201%203%2014.5v-8A2.5%202.5%200%200%201%205.5%204ZM6.5%202.5v3M13.5%202.5v3M3%208h14M6.5%2011h.1M10%2011h.1M13.5%2011h.1M6.5%2014h.1M10%2014h.1%22%2F%3E%3C%2Fsvg%3E");
|
|
764
|
+
--icen-token-icon-close: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%206l8%208M14%206l-8%208%22%2F%3E%3C%2Fsvg%3E");
|
|
765
|
+
--icen-token-icon-check: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4.5%2010.2l3.6%203.6%207.4-7.6%22%2F%3E%3C%2Fsvg%3E");
|
|
766
|
+
--icen-token-icon-chevron-down: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5.5%207.75%2010%2012.25l4.5-4.5%22%2F%3E%3C%2Fsvg%3E");
|
|
767
|
+
--icen-token-icon-chevron-up: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5.5%2012.25%2010%207.75l4.5%204.5%22%2F%3E%3C%2Fsvg%3E");
|
|
768
|
+
--icen-token-icon-chevron-right: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M7.75%205.5%2012.25%2010l-4.5%204.5%22%2F%3E%3C%2Fsvg%3E");
|
|
769
|
+
--icen-token-icon-chevron-left: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12.25%205.5%207.75%2010l4.5%204.5%22%2F%3E%3C%2Fsvg%3E");
|
|
770
|
+
--icen-token-icon-arrow-right: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3.5%2010h13M11%204.5l5.5%205.5-5.5%205.5%22%2F%3E%3C%2Fsvg%3E");
|
|
771
|
+
--icen-token-icon-arrow-left: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M16.5%2010h-13M9%204.5%203.5%2010%209%2015.5%22%2F%3E%3C%2Fsvg%3E");
|
|
772
|
+
--icen-token-icon-arrow-up: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M10%2016.5v-13M4.5%209%2010%203.5%2015.5%209%22%2F%3E%3C%2Fsvg%3E");
|
|
773
|
+
--icen-token-icon-arrow-down: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M10%203.5v13M4.5%2011l5.5%205.5%205.5-5.5%22%2F%3E%3C%2Fsvg%3E");
|
|
774
|
+
--icen-token-icon-plus: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M10%204v12M4%2010h12%22%2F%3E%3C%2Fsvg%3E");
|
|
775
|
+
--icen-token-icon-minus: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%2010h12%22%2F%3E%3C%2Fsvg%3E");
|
|
776
|
+
--icen-token-icon-sort: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%2015V4M3%207l3-3%203%203M14%205v11M11%2013l3%203%203-3%22%2F%3E%3C%2Fsvg%3E");
|
|
777
|
+
--icen-token-icon-search: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M13.3%2013.3%2017%2017M14.5%208.5a6%206%200%201%201-12%200%206%206%200%200%201%2012%200%22%2F%3E%3C%2Fsvg%3E");
|
|
778
|
+
--icen-token-icon-sun: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M13.5%2010a3.5%203.5%200%201%201-7%200%203.5%203.5%200%200%201%207%200M10%201.75v1.5M10%2016.75v1.5M1.75%2010h1.5M16.75%2010h1.5M4.17%204.17l1.06%201.06M14.77%2014.77l1.06%201.06M4.17%2015.83l1.06-1.06M14.77%205.23l1.06-1.06%22%2F%3E%3C%2Fsvg%3E");
|
|
779
|
+
--icen-token-icon-moon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M17.25%2011.15A7.5%207.5%200%200%201%208.85%202.75a7.5%207.5%200%201%200%208.4%208.4Z%22%2F%3E%3C%2Fsvg%3E");
|
|
780
|
+
--icen-token-icon-modern: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6.5%203h7A3.5%203.5%200%200%201%2017%206.5v7a3.5%203.5%200%200%201-3.5%203.5h-7A3.5%203.5%200%200%201%203%2013.5v-7A3.5%203.5%200%200%201%206.5%203ZM7%2010l3-3%203%203-3%203Z%22%2F%3E%3C%2Fsvg%3E");
|
|
781
|
+
--icen-token-icon-pixel: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%203h5v5H3ZM12%203h5v5h-5ZM3%2012h5v5H3ZM12%2012h5v5h-5Z%22%2F%3E%3C%2Fsvg%3E");
|
|
782
|
+
--icen-token-icon-chinese: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%208c3%200%205-2%207-5%202%203%204%205%207%205M4%208h12M6%208v8m8-8v8M3%2016h14M8%2016v-5h4v5%22%2F%3E%3C%2Fsvg%3E");
|
|
783
|
+
--icen-token-icon-soviet: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2017h14M5%2017V8h4v9m0-12h6v12M7%208V5h2m2%203h2m-2%203h2m-2%203h2M10%205V3h4v2%22%2F%3E%3C%2Fsvg%3E");
|
|
784
|
+
--icen-token-icon-more: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%209.9v.2M10%209.9v.2M16%209.9v.2%22%2F%3E%3C%2Fsvg%3E");
|
|
785
|
+
--icen-token-icon-copy: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M7%207h8a2%202%200%200%201%202%202v6a2%202%200%200%201-2%202H9a2%202%200%200%201-2-2V7ZM13%207V5a2%202%200%200%200-2-2H5a2%202%200%200%200-2%202v6a2%202%200%200%200%202%202h2%22%2F%3E%3C%2Fsvg%3E");
|
|
786
|
+
--icen-token-icon-edit: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M11.5%204.5l4%204M4%2012l9-9a1.4%201.4%200%200%201%202%200l2%202a1.4%201.4%200%200%201%200%202l-9%209-5%201Z%22%2F%3E%3C%2Fsvg%3E");
|
|
787
|
+
--icen-token-icon-link: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M8%206l2-2a4.2%204.2%200%200%201%206%206l-2%202M12%2014l-2%202a4.2%204.2%200%200%201-6-6l2-2M7%2013l6-6%22%2F%3E%3C%2Fsvg%3E");
|
|
788
|
+
--icen-token-icon-trash: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3.5%205.5h13M7%205.5V3h6v2.5M5%205.5l.7%2011.5h8.6L15%205.5M8%209v5M12%209v5%22%2F%3E%3C%2Fsvg%3E");
|
|
789
|
+
--icen-token-icon-spinner: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M10%203a7%207%200%201%201-7%207%22%2F%3E%3C%2Fsvg%3E");
|
|
790
|
+
--icen-token-icon-circle-check: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M18%2010a8%208%200%201%201-16%200%208%208%200%200%201%2016%200ZM6%2010l2.7%202.7%205.3-5.4%22%2F%3E%3C%2Fsvg%3E");
|
|
791
|
+
--icen-token-icon-circle-error: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M18%2010a8%208%200%201%201-16%200%208%208%200%200%201%2016%200ZM7.2%207.2l5.6%205.6M12.8%207.2l-5.6%205.6%22%2F%3E%3C%2Fsvg%3E");
|
|
792
|
+
--icen-token-icon-circle-info: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M18%2010a8%208%200%201%201-16%200%208%208%200%200%201%2016%200ZM10%209v5M10%206.1v.15%22%2F%3E%3C%2Fsvg%3E");
|
|
793
|
+
--icen-token-icon-triangle-alert: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M8.7%203.5a1.5%201.5%200%200%201%202.6%200l6.4%2011.3a1.5%201.5%200%200%201-1.3%202.2H3.6a1.5%201.5%200%200%201-1.3-2.2ZM10%207.2v4.4M10%2014v.15%22%2F%3E%3C%2Fsvg%3E");
|
|
794
|
+
--icen-token-icon-refresh: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M16.5%207.2A7%207%200%200%200%204.3%205.9L2.5%208M2.5%203.5V8H7M3.5%2012.8a7%207%200%200%200%2012.2%201.3l1.8-2.1M13%2012h4.5v4.5%22%2F%3E%3C%2Fsvg%3E");
|
|
795
|
+
--icen-token-icon-external: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M11.5%203H17v5.5M17%203l-8%208M8%203H5a2%202%200%200%200-2%202v10a2%202%200%200%200%202%202h10a2%202%200%200%200%202-2v-3%22%2F%3E%3C%2Fsvg%3E");
|
|
796
|
+
--icen-token-icon-home: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3.5%2010.25%2010%204l6.5%206.25M5.75%208.75v7a.75.75%200%200%200%20.75.75h7.5a.75.75%200%200%200%20.75-.75v-7%22%2F%3E%3C%2Fsvg%3E");
|
|
797
|
+
--icen-token-icon-settings: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3.5%205.5h13M3.5%2010h13M3.5%2014.5h13M7%204v3M12.5%208.5v3M8%2013v3%22%2F%3E%3C%2Fsvg%3E");
|
|
798
|
+
--icen-token-icon-star: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M10%202.5l2.4%205.1%205.6.4-4.2%203.7%201.3%205.5-5.1-3-5.1%203%201.3-5.5L1.8%208l5.6-.4Z%22%2F%3E%3C%2Fsvg%3E");
|
|
799
|
+
--icen-token-icon-eye: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M2.2%2010s3-5.4%207.8-5.4S17.8%2010%2017.8%2010s-3%205.4-7.8%205.4S2.2%2010%202.2%2010ZM10%2012.4a2.4%202.4%200%201%200%200-4.8%202.4%202.4%200%200%200%200%204.8Z%22%2F%3E%3C%2Fsvg%3E");
|
|
800
|
+
--icen-token-icon-eye-off: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M2.2%2010s3-5.4%207.8-5.4S17.8%2010%2017.8%2010s-3%205.4-7.8%205.4S2.2%2010%202.2%2010ZM10%2012.4a2.4%202.4%200%201%200%200-4.8%202.4%202.4%200%200%200%200%204.8ZM3.5%203.5l13%2013%22%2F%3E%3C%2Fsvg%3E");
|
|
801
|
+
--icen-token-icon-inbox: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3.5%2012.25h3.7l1.5%202.5h2.6l1.5-2.5h3.7M4.7%205.5l-1.2%206.75v3.25a1.5%201.5%200%200%200%201.5%201.5h10a1.5%201.5%200%200%200%201.5-1.5v-3.25L15.3%205.5a1.3%201.3%200%200%200-1.25-1H5.95a1.3%201.3%200%200%200-1.25%201Z%22%2F%3E%3C%2Fsvg%3E");
|
|
802
|
+
--icen-token-icon-bell: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M10%203.5a4.5%204.5%200%200%201%204.5%204.5c0%204.5%201.8%205.7%202.5%206.5H3c.7-.8%202.5-2%202.5-6.5A4.5%204.5%200%200%201%2010%203.5ZM8.5%2016.5a1.6%201.6%200%200%200%203%200%22%2F%3E%3C%2Fsvg%3E");
|
|
803
|
+
--icen-token-icon-users: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M13.8%2016.5v-1.5a3.5%203.5%200%200%200-3.5-3.5H6.3a3.5%203.5%200%200%200-3.5%203.5v1.5M8.3%208.9a2.7%202.7%200%201%200%200-5.4%202.7%202.7%200%200%200%200%205.4ZM16.5%2016.5v-1.3a3.3%203.3%200%200%200-2.3-3.1M12.3%203.7a2.7%202.7%200%200%201%200%205.2%22%2F%3E%3C%2Fsvg%3E");
|
|
804
|
+
--icen-token-icon-activity: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M17%2010h-2.6l-2%205.8L8%204.2%206%2010H3%22%2F%3E%3C%2Fsvg%3E");
|
|
805
|
+
--icen-token-icon-trend-up: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3.5%2014.5l4.2-4.2%202.8%202.8%205.9-5.9M12.4%207.2h4.2v4.2%22%2F%3E%3C%2Fsvg%3E");
|
|
806
|
+
--icen-token-icon-trend-down: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3.5%205.5l4.2%204.2%202.8-2.8%205.9%205.9M12.4%2012.8h4.2V8.6%22%2F%3E%3C%2Fsvg%3E");
|
|
807
|
+
--icen-token-icon-rocket: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M10%202.5c2%201.5%203.2%204%203.2%206.8%200%201.5-.3%202.9-.8%204.2H7.6c-.5-1.3-.8-2.7-.8-4.2%200-2.8%201.2-5.3%203.2-6.8ZM10%208.6a1.5%201.5%200%201%200%200-3%201.5%201.5%200%200%200%200%203ZM7.6%2012.5%205.6%2015.4c-.9.3-1.6%201-2%202M12.4%2012.5l2%202.9c.9.3%201.6%201%202%202M8.7%2013.8c0%201.8.5%203.1%201.3%204.2.8-1.1%201.3-2.4%201.3-4.2%22%2F%3E%3C%2Fsvg%3E");
|
|
808
|
+
--icen-token-icon-bold: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6.5%204h4.2a3%203%200%200%201%200%206H6.5M6.5%2010h5a3%203%200%200%201%200%206H6.5M6.5%204v12%22%2F%3E%3C%2Fsvg%3E");
|
|
809
|
+
--icen-token-icon-italic: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M8.5%204.5h7M4.5%2015.5h7M12.5%204.5l-5%2011%22%2F%3E%3C%2Fsvg%3E");
|
|
810
|
+
--icen-token-icon-underline: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%204v5.5a4%204%200%200%200%208%200V4M4.5%2016h11%22%2F%3E%3C%2Fsvg%3E");
|
|
811
|
+
--icen-token-icon-align-left: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3.5%204.5h13M3.5%2010h8.5M3.5%2015.5h11%22%2F%3E%3C%2Fsvg%3E");
|
|
812
|
+
--icen-token-icon-align-center: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3.5%204.5h13M5.75%2010h8.5M4.5%2015.5h11%22%2F%3E%3C%2Fsvg%3E");
|
|
813
|
+
--icen-token-icon-align-right: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3.5%204.5h13M8%2010h8.5M5.5%2015.5h11%22%2F%3E%3C%2Fsvg%3E");
|
|
814
|
+
--icen-token-icon-list: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6.5%205h10M6.5%2010h10M6.5%2015h10M3.5%205h.01M3.5%2010h.01M3.5%2015h.01%22%2F%3E%3C%2Fsvg%3E");
|
|
815
|
+
--icen-token-icon-server: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%203h14a1.5%201.5%200%200%201%201.5%201.5v2A1.5%201.5%200%200%201%2017%208H3a1.5%201.5%200%200%201-1.5-1.5v-2A1.5%201.5%200%200%201%203%203ZM3%2012h14a1.5%201.5%200%200%201%201.5%201.5v2A1.5%201.5%200%200%201%2017%2017H3a1.5%201.5%200%200%201-1.5-1.5v-2A1.5%201.5%200%200%201%203%2012ZM5%205.5h.01M5%2014.5h.01%22%2F%3E%3C%2Fsvg%3E");
|
|
816
|
+
--icen-token-icon-sparkle: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M10%202.5l1.6%204.3%204.3%201.6-4.3%201.6L10%2014.3l-1.6-4.3-4.3-1.6%204.3-1.6ZM15.5%2012.5l.8%202.1%202.1.8-2.1.8-.8%202.1-.8-2.1-2.1-.8%202.1-.8Z%22%2F%3E%3C%2Fsvg%3E");
|
|
817
|
+
--icen-token-icon-play: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6.5%204.8v10.4c0%20.9%201%201.5%201.8%201l8.3-5.2a1.2%201.2%200%200%200%200-2L8.3%203.8a1.2%201.2%200%200%200-1.8%201Z%22%2F%3E%3C%2Fsvg%3E");
|
|
818
|
+
--icen-token-icon-chart-line: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3.5%203.5v13h13M6.5%2012l2.8-2.8%202.2%202.2%204-4.4%22%2F%3E%3C%2Fsvg%3E");
|
|
819
|
+
--icen-token-icon-layers: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M10%203.2%203.6%206.5%2010%209.8l6.4-3.3ZM4.5%2010.4%2010%2013.2l5.5-2.8M4.5%2013.6%2010%2016.4l5.5-2.8%22%2F%3E%3C%2Fsvg%3E");
|
|
820
|
+
--icen-token-icon-box: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M17%206%2010%203.2%203%206v8l7%202.8%207-2.8ZM3%206l7%202.8L17%206M10%209v7.8%22%2F%3E%3C%2Fsvg%3E");
|
|
821
|
+
--icen-token-icon-filter: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%204.5h12l-4.4%205.1v5l-3.2-1.6V9.6Z%22%2F%3E%3C%2Fsvg%3E");
|
|
822
|
+
--icen-token-icon-columns: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3.5%204h13v12h-13ZM8.2%204v12M12.8%204v12%22%2F%3E%3C%2Fsvg%3E");
|
|
823
|
+
--icen-token-icon-download: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M10%203.5v8M6.8%208.3%2010%2011.5l3.2-3.2M4%2015v2.5a1.5%201.5%200%200%200%201.5%201.5h9a1.5%201.5%200%200%200%201.5-1.5V15%22%2F%3E%3C%2Fsvg%3E");
|
|
824
|
+
}
|
|
825
|
+
|
|
826
|
+
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
@layer icen.components {
|
|
830
|
+
/* Material contract (default 现代 primitive; theme via data-icen-preset):
|
|
831
|
+
* <section data-icen-material="content|chrome|floating">arbitrary content</section>
|
|
832
|
+
* content = opaque reading; chrome = translucent navigation; floating = temporary
|
|
833
|
+
* operations. HTML primitives need no JS. Existing components consume the same
|
|
834
|
+
* recipes automatically. Force opaque via html[data-icen-transparency="reduced"].
|
|
835
|
+
* This file ships with tokens.css as well as ui.css; kit consumers need no extras.
|
|
836
|
+
*/
|
|
837
|
+
/* The base layer also defines interaction defaults. Keep the primitive's
|
|
838
|
+
* interaction recipe in the components layer so separately imported base.css
|
|
839
|
+
* cannot quietly restore a different press/focus model. */
|
|
840
|
+
:root:where(:not([data-icen-style]),[data-icen-style="modern"]) {
|
|
841
|
+
--icen-press: scale(.985);
|
|
842
|
+
--icen-press-soft: scale(.99);
|
|
843
|
+
--icen-hover-border: var(--icen-token-line);
|
|
844
|
+
--icen-hover-border-strong: var(--icen-token-line-strong);
|
|
845
|
+
--icen-ring: 0 0 0 2px var(--icen-token-surface), 0 0 0 4px var(--icen-token-accent);
|
|
846
|
+
--icen-ring-soft: 0 0 0 3px var(--icen-token-accent-subtle);
|
|
847
|
+
--icen-control-focus-border: var(--icen-token-accent);
|
|
848
|
+
--icen-control-focus-shadow: var(--icen-token-shadow-inset), var(--icen-ring-soft);
|
|
849
|
+
--icen-disabled-opacity: .48;
|
|
850
|
+
}
|
|
851
|
+
/* Selection is a contained surface, never a check glyph. ARIA remains the source
|
|
852
|
+
* of truth for keyboard/assistive technology; focus has its own outer outline. */
|
|
853
|
+
:root :is(.icen-theme-switcher-option[aria-pressed="true"], .icen-select-option.is-selected, .icen-cascader-item.is-selected, .icen-cascader-item.is-active, .icen-tree-select-row.is-selected, .icen-tree-select-row.is-checked, .icen-menu-item[aria-checked="true"], .icen-menu-item--checked:not([aria-checked="false"]), .icen-ai-composer-popup-option[aria-selected="true"], .icen-kb-checkpoint-menu-item.is-checked) {
|
|
854
|
+
background: var(--icen-token-accent-subtle);
|
|
855
|
+
color: var(--icen-token-text);
|
|
856
|
+
box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--icen-token-accent) 65%, var(--icen-token-line-soft));
|
|
857
|
+
}
|
|
858
|
+
:root :is(.icen-select-option.is-focused, .icen-cascader-item.is-focused, .icen-tree-select-row.is-focused) { outline: 1px solid var(--icen-token-outline); outline-offset: -3px; }
|
|
859
|
+
|
|
860
|
+
/* Native selection controls keep native values, keyboard behavior and mixed state,
|
|
861
|
+
* but their selected geometry is an inset core rather than an OS check glyph. */
|
|
862
|
+
:root :is(input.icen-dt-check, input.icen-choice-box, .icen-form input[type="checkbox"], input[data-icen-kb-segment-clean]) {
|
|
863
|
+
appearance: none;
|
|
864
|
+
box-sizing: border-box;
|
|
865
|
+
inline-size: 16px;
|
|
866
|
+
block-size: 16px;
|
|
867
|
+
flex: 0 0 auto;
|
|
868
|
+
border: 1.5px solid var(--icen-token-outline);
|
|
869
|
+
border-radius: var(--icen-radius-xs);
|
|
870
|
+
padding: 3px;
|
|
871
|
+
background: var(--icen-token-surface);
|
|
872
|
+
background-clip: content-box;
|
|
873
|
+
cursor: pointer;
|
|
1647
874
|
}
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
|
|
875
|
+
:root :is(input.icen-dt-check, input.icen-choice-box, .icen-form input[type="checkbox"], input[data-icen-kb-segment-clean]):checked {
|
|
876
|
+
border-color: var(--icen-token-accent);
|
|
877
|
+
background-color: var(--icen-token-accent);
|
|
878
|
+
}
|
|
879
|
+
:root :is(input.icen-dt-check, input.icen-choice-box, .icen-form input[type="checkbox"], input[data-icen-kb-segment-clean]):indeterminate {
|
|
880
|
+
border-color: var(--icen-token-accent);
|
|
881
|
+
background-color: transparent;
|
|
882
|
+
background-image: linear-gradient(var(--icen-token-accent),var(--icen-token-accent));
|
|
883
|
+
background-size: 8px 2px;
|
|
884
|
+
background-position: center;
|
|
885
|
+
background-repeat: no-repeat;
|
|
886
|
+
}
|
|
887
|
+
:root :is(input.icen-dt-check, input.icen-choice-box, .icen-form input[type="checkbox"], input[data-icen-kb-segment-clean]):focus-visible { outline: 2px solid var(--icen-token-accent); outline-offset: 2px; }
|
|
888
|
+
@media (forced-colors: active) {
|
|
889
|
+
:root :is(.icen-theme-switcher-option[aria-pressed="true"], .icen-select-option.is-selected, .icen-cascader-item.is-selected, .icen-tree-select-row.is-selected, .icen-tree-select-row.is-checked, .icen-menu-item[aria-checked="true"], .icen-ai-composer-popup-option[aria-selected="true"], .icen-kb-checkpoint-menu-item.is-checked) { outline: 3px double Highlight; outline-offset: -3px; }
|
|
890
|
+
:root :is(input.icen-dt-check, input.icen-choice-box, .icen-form input[type="checkbox"], input[data-icen-kb-segment-clean]) { forced-color-adjust: none; border-color: CanvasText; background-color: Canvas; }
|
|
891
|
+
:root :is(input.icen-dt-check, input.icen-choice-box, .icen-form input[type="checkbox"], input[data-icen-kb-segment-clean]):checked { background-color: Highlight; }
|
|
892
|
+
:root :is(input.icen-dt-check, input.icen-choice-box, .icen-form input[type="checkbox"], input[data-icen-kb-segment-clean]):indeterminate { background-image: linear-gradient(Highlight,Highlight); }
|
|
893
|
+
}
|
|
894
|
+
|
|
895
|
+
/* Component display rules must not override native hidden semantics. Preserve
|
|
896
|
+
* until-found so browser find-in-page can reveal intentionally searchable content. */
|
|
897
|
+
:where([class^="icen-"], [class*=" icen-"])[hidden]:not([hidden="until-found"]) {
|
|
898
|
+
display: none !important; /* guard:allow-important native hidden must win over component display:flex/grid */
|
|
899
|
+
}
|
|
900
|
+
:root[data-icen-design-changing] *,
|
|
901
|
+
:root[data-icen-design-changing] *::before,
|
|
902
|
+
:root[data-icen-design-changing] *::after {
|
|
903
|
+
transition: none !important; /* guard:allow-important palette changes must not pass through unreadable intermediate colors */
|
|
904
|
+
}
|
|
905
|
+
:root body {
|
|
906
|
+
font-family: var(--icen-font-body);
|
|
907
|
+
font-variant-numeric: normal;
|
|
908
|
+
font-size: var(--icen-density-font-size-md);
|
|
909
|
+
line-height: var(--icen-line-height-body);
|
|
910
|
+
letter-spacing: var(--icen-letter-spacing-body);
|
|
911
|
+
background: var(--icen-token-canvas);
|
|
912
|
+
color: var(--icen-token-text);
|
|
913
|
+
}
|
|
914
|
+
:root :is(h1,h2,h3,h4,h5,h6) {
|
|
915
|
+
font-family: var(--icen-font-heading);
|
|
916
|
+
letter-spacing: var(--icen-letter-spacing-heading);
|
|
917
|
+
line-height: var(--icen-line-height-heading);
|
|
918
|
+
text-wrap: balance;
|
|
919
|
+
}
|
|
920
|
+
:root :is(button,input,textarea,select) { font-family: var(--icen-font-body); }
|
|
921
|
+
:root [data-icen-material] {
|
|
922
|
+
background: var(--icen-token-surface);
|
|
923
|
+
color: var(--icen-token-text);
|
|
924
|
+
border: 1px solid var(--icen-token-outline-soft);
|
|
925
|
+
border-radius: var(--icen-radius-lg);
|
|
926
|
+
}
|
|
927
|
+
:root :is([data-icen-material="content"],.icen-card) {
|
|
928
|
+
background: var(--icen-token-surface);
|
|
929
|
+
box-shadow: none;
|
|
1660
930
|
}
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
box-shadow:
|
|
1666
|
-
|
|
1667
|
-
|
|
931
|
+
/* Opaque fallback is the default. Enable transparency only with browser support. */
|
|
932
|
+
:root :is([data-icen-material="chrome"],[data-icen-material="floating"],.icen-menu,.icen-popover,.icen-select-panel,.icen-date-picker-panel,.icen-autocomplete-panel,.icen-cascader-panel,.icen-tree-select-panel,.icen-mentions-panel,.icen-ai-composer-popup,.icen-command-palette,.icen-card--glass,.icen-nav) {
|
|
933
|
+
background: var(--icen-token-surface);
|
|
934
|
+
border-color: var(--icen-token-material-edge);
|
|
935
|
+
box-shadow: var(--icen-token-material-light), var(--icen-token-shadow-elevated);
|
|
936
|
+
backdrop-filter: none;
|
|
937
|
+
-webkit-backdrop-filter: none;
|
|
1668
938
|
}
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
.style-retro * {
|
|
1675
|
-
scrollbar-width: thin;
|
|
1676
|
-
scrollbar-color: var(--token-accent) var(--token-bg-soft);
|
|
939
|
+
:root [data-icen-material="chrome"] { box-shadow: var(--icen-token-material-light); }
|
|
940
|
+
:root .icen-nav[data-icen-scroll-reactive]:not(.is-scrolled) {
|
|
941
|
+
background: var(--icen-token-surface);
|
|
942
|
+
backdrop-filter: none;
|
|
943
|
+
-webkit-backdrop-filter: none;
|
|
1677
944
|
}
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
945
|
+
@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
|
|
946
|
+
:root :is([data-icen-material="chrome"],[data-icen-material="floating"],.icen-menu,.icen-popover,.icen-select-panel,.icen-date-picker-panel,.icen-autocomplete-panel,.icen-cascader-panel,.icen-tree-select-panel,.icen-mentions-panel,.icen-ai-composer-popup,.icen-command-palette,.icen-card--glass,.icen-nav) {
|
|
947
|
+
background: var(--icen-token-surface-glass);
|
|
948
|
+
backdrop-filter: blur(var(--icen-design-glass-blur)) saturate(1.15);
|
|
949
|
+
-webkit-backdrop-filter: blur(var(--icen-design-glass-blur)) saturate(1.15);
|
|
950
|
+
}
|
|
951
|
+
}
|
|
952
|
+
:root .icen-nav { box-shadow: var(--icen-token-material-light); }
|
|
953
|
+
:root .icen-btn {
|
|
954
|
+
--btn-border-hover: var(--icen-token-line);
|
|
955
|
+
gap: var(--icen-density-space-sm);
|
|
956
|
+
border-radius: var(--icen-radius-md);
|
|
957
|
+
letter-spacing: 0;
|
|
958
|
+
}
|
|
959
|
+
:root .icen-btn-primary { --btn-border-hover: var(--icen-token-accent-strong); }
|
|
960
|
+
:root :is(.icen-btn-ghost,.icen-btn-link) { --btn-border-hover: transparent; }
|
|
961
|
+
:root .icen-btn-link { --btn-fg: var(--icen-token-accent-text); }
|
|
962
|
+
:root .icen-btn-primary:hover:not(:focus-visible) { box-shadow: none; }
|
|
963
|
+
:root .icen-btn:active:not(:disabled):not([aria-disabled="true"]):not([data-icen-disabled]):not(.is-loading) { transform: var(--icen-press-soft); }
|
|
964
|
+
:root .icen-btn-danger:hover { color: var(--icen-token-error); background: var(--icen-token-error-muted); }
|
|
965
|
+
:root .icen-segmented { padding: var(--icen-density-space-xs); gap: var(--icen-density-space-xs); }
|
|
966
|
+
:root .icen-segmented-item { border-radius: max(0px, calc(var(--icen-radius-md) - var(--icen-density-space-xs) - 1px)); }
|
|
967
|
+
:root :is(.icen-segmented-item.is-active,.icen-segmented-item[aria-checked="true"],.icen-toggle-group-btn.is-active) {
|
|
968
|
+
background: var(--icen-token-surface);
|
|
969
|
+
color: var(--icen-token-text);
|
|
970
|
+
box-shadow: var(--icen-token-shadow-card);
|
|
971
|
+
}
|
|
972
|
+
:root :is(.icen-menu,.icen-popover,.icen-select-panel) { border-radius: var(--icen-radius-lg); }
|
|
973
|
+
:root .icen-modal {
|
|
974
|
+
border-radius: var(--icen-radius-xl);
|
|
975
|
+
box-shadow: var(--icen-token-material-light), var(--icen-token-shadow-overlay);
|
|
976
|
+
}
|
|
977
|
+
:root :is(.icen-modal-backdrop,.icen-command-palette-backdrop) {
|
|
978
|
+
background: var(--icen-token-scrim);
|
|
979
|
+
backdrop-filter: none;
|
|
980
|
+
-webkit-backdrop-filter: none;
|
|
1682
981
|
}
|
|
1683
|
-
|
|
1684
|
-
.
|
|
1685
|
-
|
|
1686
|
-
|
|
982
|
+
:root .icen-card--elevated { box-shadow: var(--icen-token-shadow-card); }
|
|
983
|
+
:root .icen-card--interactive:hover { transform: none; border-color: var(--icen-token-line); }
|
|
984
|
+
:root .icen-card--interactive:focus-within { box-shadow: var(--icen-ring); }
|
|
985
|
+
:root .icen-switch-thumb { background: var(--icen-token-text-muted); }
|
|
986
|
+
:root .icen-switch[aria-checked="true"] .icen-switch-thumb { background: var(--icen-token-on-accent); }
|
|
987
|
+
:root .icen-input-wrap--sm { padding-inline: var(--icen-density-space-sm); }
|
|
988
|
+
/* 现代: small controls have a legible edge and a quiet, tactile surface. Keep
|
|
989
|
+
* these optical refinements local to the default primitive; other primitives
|
|
990
|
+
* supply their own surface physics without fighting a global component rule. */
|
|
991
|
+
:root:where(:not([data-icen-style]),[data-icen-style="modern"]) .icen-btn:not(.icen-btn-ghost):not(.icen-btn-link) {
|
|
992
|
+
box-shadow: inset 0 1px 0 color-mix(in srgb, var(--icen-token-top-highlight) 45%, transparent), 0 1px 2px color-mix(in srgb, var(--icen-design-shadow-color) calc(var(--icen-design-shadow-strength) * .35), transparent);
|
|
993
|
+
}
|
|
994
|
+
:root:where(:not([data-icen-style]),[data-icen-style="modern"]) .icen-btn:focus-visible {
|
|
995
|
+
box-shadow: var(--icen-ring);
|
|
996
|
+
}
|
|
997
|
+
:root:where(:not([data-icen-style]),[data-icen-style="modern"]) .icen-btn:active:not(:disabled):not([aria-disabled="true"]):not([data-icen-disabled]):not(.is-loading) {
|
|
998
|
+
box-shadow: var(--icen-token-shadow-inset);
|
|
999
|
+
}
|
|
1000
|
+
:root:where(:not([data-icen-style]),[data-icen-style="modern"]) .icen-btn:active:focus-visible {
|
|
1001
|
+
box-shadow: var(--icen-token-shadow-inset), var(--icen-ring);
|
|
1002
|
+
}
|
|
1003
|
+
:root:where(:not([data-icen-style]),[data-icen-style="modern"]) :is(.icen-input-wrap,.icen-textarea-wrap) {
|
|
1004
|
+
padding-inline: var(--icen-density-space-md);
|
|
1005
|
+
}
|
|
1006
|
+
:root:where(:not([data-icen-style]),[data-icen-style="modern"]) :is(.icen-input,.icen-textarea)::placeholder {
|
|
1007
|
+
color: var(--icen-token-text-faint);
|
|
1008
|
+
opacity: 1;
|
|
1009
|
+
}
|
|
1010
|
+
/* Data readability is explicit, never applied to every numeral in prose. */
|
|
1011
|
+
:root :is(.icen-numeric,.icen-table,.icen-datatable,.icen-stat-num) { font-variant-numeric: lining-nums tabular-nums; }
|
|
1012
|
+
/* Any translucent material has an opaque alternative, including native controls. */
|
|
1013
|
+
:root[data-icen-transparency="reduced"] :is([data-icen-material],.icen-menu,.icen-popover,.icen-select-panel,.icen-date-picker-panel,.icen-autocomplete-panel,.icen-cascader-panel,.icen-tree-select-panel,.icen-mentions-panel,.icen-ai-composer-popup,.icen-command-palette,.icen-card--glass,.icen-nav) {
|
|
1014
|
+
background: var(--icen-token-surface);
|
|
1015
|
+
backdrop-filter: none;
|
|
1016
|
+
-webkit-backdrop-filter: none;
|
|
1687
1017
|
}
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1018
|
+
@media (prefers-reduced-transparency: reduce) {
|
|
1019
|
+
:root :is([data-icen-material],.icen-menu,.icen-popover,.icen-select-panel,.icen-date-picker-panel,.icen-autocomplete-panel,.icen-cascader-panel,.icen-tree-select-panel,.icen-mentions-panel,.icen-ai-composer-popup,.icen-command-palette,.icen-card--glass,.icen-nav) {
|
|
1020
|
+
background: var(--icen-token-surface);
|
|
1021
|
+
backdrop-filter: none;
|
|
1022
|
+
-webkit-backdrop-filter: none;
|
|
1023
|
+
}
|
|
1024
|
+
}
|
|
1025
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1026
|
+
:root *, :root *::before, :root *::after {
|
|
1027
|
+
animation-duration: .01ms !important; /* guard:allow-important accessibility override must beat component animation */
|
|
1028
|
+
transition-duration: .01ms !important; /* guard:allow-important accessibility override must beat component transition */
|
|
1029
|
+
scroll-behavior: auto !important; /* guard:allow-important reduced motion includes scrolling */
|
|
1030
|
+
}
|
|
1031
|
+
}
|
|
1032
|
+
@media (pointer: coarse) {
|
|
1033
|
+
:root :is(.icen-btn,.icen-segmented-item,.icen-menu-item,.icen-modal-close) { min-block-size: var(--icen-density-input-height-md); }
|
|
1034
|
+
/* Preserve the switch's visual geometry, expand its pointer target instead. */
|
|
1035
|
+
:root .icen-switch::before {
|
|
1036
|
+
content: '';
|
|
1037
|
+
position: absolute;
|
|
1038
|
+
inset-block: calc((100% - 44px) / 2);
|
|
1039
|
+
inset-inline: 0;
|
|
1040
|
+
}
|
|
1041
|
+
}
|
|
1042
|
+
@media (forced-colors: active) {
|
|
1043
|
+
:root :focus-visible { outline: 2px solid Highlight; outline-offset: 2px; }
|
|
1044
|
+
:root :is([data-icen-material],.icen-menu,.icen-popover,.icen-card--glass) {
|
|
1045
|
+
background: Canvas;
|
|
1046
|
+
color: CanvasText;
|
|
1047
|
+
border-color: CanvasText;
|
|
1048
|
+
box-shadow: none;
|
|
1049
|
+
backdrop-filter: none;
|
|
1050
|
+
-webkit-backdrop-filter: none;
|
|
1051
|
+
}
|
|
1052
|
+
:root .icen-segmented-item[aria-checked="true"] { outline: 2px solid Highlight; }
|
|
1053
|
+
}
|
|
1054
|
+
|
|
1055
|
+
/* Pixel adapters: inherit palette, replace surface physics. */
|
|
1056
|
+
:root[data-icen-style="pixel"] :is([data-icen-material],.icen-menu,.icen-popover,.icen-select-panel,.icen-date-picker-panel,.icen-autocomplete-panel,.icen-cascader-panel,.icen-tree-select-panel,.icen-mentions-panel,.icen-ai-composer-popup,.icen-command-palette,.icen-card--glass,.icen-nav) {
|
|
1057
|
+
background: var(--icen-token-surface);
|
|
1058
|
+
border-color: var(--icen-token-line-strong);
|
|
1059
|
+
backdrop-filter: none;
|
|
1060
|
+
-webkit-backdrop-filter: none;
|
|
1693
1061
|
}
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1062
|
+
:root[data-icen-style="pixel"] :is(.icen-btn,.icen-input-wrap,.icen-textarea-wrap,.icen-select-trigger,.icen-segmented,[data-icen-material],.icen-card,.icen-modal) {
|
|
1063
|
+
border-width: 2px;
|
|
1064
|
+
border-radius: var(--icen-radius-md);
|
|
1065
|
+
}
|
|
1066
|
+
:root[data-icen-style="pixel"] :is(.icen-btn,.icen-input-wrap,.icen-select-trigger) { box-shadow: var(--icen-token-shadow-card); }
|
|
1067
|
+
:root[data-icen-style="pixel"] :is(.icen-btn-ghost,.icen-btn-link) { box-shadow: none; }
|
|
1068
|
+
:root[data-icen-style="pixel"] .icen-btn:active:not(:disabled):not([aria-disabled="true"]) { box-shadow: none; }
|
|
1069
|
+
:root[data-icen-style="pixel"] .icen-btn:focus-visible { box-shadow: var(--icen-ring); }
|
|
1070
|
+
:root[data-icen-style="pixel"] .icen-input-wrap:focus-within { box-shadow: var(--icen-control-focus-shadow); }
|
|
1071
|
+
:root[data-icen-style="pixel"] :is(h1,h2,h3,h4,h5,h6) { font-weight: 400; letter-spacing: 0; }
|
|
1072
|
+
:root[data-icen-style="pixel"] h1 { font-size: 48px; }
|
|
1073
|
+
:root[data-icen-style="pixel"] :is(h2,h3) { font-size: 24px; }
|
|
1074
|
+
:root[data-icen-style="pixel"] :is(button,input,select,textarea) { font-weight: 400; }
|
|
1075
|
+
:root[data-icen-style="pixel"] .icen-segmented-item { border-radius: var(--icen-radius-md); }
|
|
1076
|
+
:root[data-icen-style="pixel"] :is(.icen-switch,.icen-switch-thumb) { border-radius: var(--icen-radius-md); }
|
|
1077
|
+
:root[data-icen-style="pixel"] :is(.icen-avatar,.icen-stat-icon) { border-radius: var(--icen-radius-md); }
|
|
1078
|
+
/* Halftone is reserved for selected/structural surfaces, never under long text. */
|
|
1079
|
+
:root[data-icen-style="pixel"] .icen-segmented {
|
|
1080
|
+
background-color: var(--icen-token-bg-soft);
|
|
1081
|
+
background-image: repeating-linear-gradient(135deg,transparent 0 2px,var(--icen-token-line-soft) 2px 3px,transparent 3px 5px);
|
|
1082
|
+
}
|
|
1083
|
+
:root[data-icen-style="pixel"] :is(.icen-toast,.icen-notification,.icen-tooltip,.icen-date-picker-panel,.icen-menu,.icen-popover) {
|
|
1084
|
+
border: 2px solid var(--icen-token-line-strong);
|
|
1085
|
+
box-shadow: var(--icen-token-shadow-elevated);
|
|
1086
|
+
}
|
|
1087
|
+
:root[data-icen-style="pixel"] :is(.icen-menu-item,.icen-select-option) { border-radius: var(--icen-radius-md); }
|
|
1088
|
+
:root[data-icen-style="pixel"] :is(.icen-menu-item,.icen-select-option).is-focused {
|
|
1089
|
+
outline: 2px solid var(--icen-token-accent);
|
|
1090
|
+
outline-offset: -2px;
|
|
1697
1091
|
}
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
height: var(--token-scrollbar-size);
|
|
1703
|
-
background: var(--token-bg-soft);
|
|
1704
|
-
border: 1px solid var(--token-line);
|
|
1092
|
+
:root[data-icen-style="pixel"] :is(.icen-progress-track,.icen-slider-track) {
|
|
1093
|
+
border: 1px solid var(--icen-token-line-strong);
|
|
1094
|
+
border-radius: var(--icen-radius-md);
|
|
1095
|
+
background-image: repeating-linear-gradient(90deg,transparent 0 3px,var(--icen-token-line-soft) 3px 4px);
|
|
1705
1096
|
}
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1097
|
+
/* Standalone outline, including when shadows disappear in forced colors. */
|
|
1098
|
+
:root[data-icen-style="pixel"] :focus-visible { outline: 2px solid var(--icen-token-accent); outline-offset: 3px; }
|
|
1099
|
+
@media (max-width: 640px) {
|
|
1100
|
+
:root[data-icen-style="pixel"] h1 { font-size: 36px; }
|
|
1709
1101
|
}
|
|
1710
1102
|
|
|
1711
|
-
/*
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1103
|
+
/* 中式 material adapter. DOM contract: html[data-icen-style="chinese"] with
|
|
1104
|
+
* existing ICEN components or [data-icen-material="content|chrome|floating"].
|
|
1105
|
+
* No additional wrappers, decorative pseudo-elements or JavaScript required.
|
|
1106
|
+
*/
|
|
1107
|
+
:root[data-icen-style="chinese"] {
|
|
1108
|
+
--icen-press: scale(.995);
|
|
1109
|
+
--icen-press-soft: scale(.995);
|
|
1110
|
+
--icen-hover-border: var(--icen-token-line);
|
|
1111
|
+
--icen-hover-border-strong: var(--icen-token-line-strong);
|
|
1112
|
+
--icen-ring: 0 0 0 2px var(--icen-token-surface), 0 0 0 4px var(--icen-token-accent);
|
|
1113
|
+
--icen-ring-soft: 0 0 0 3px var(--icen-token-accent-subtle);
|
|
1114
|
+
--icen-control-focus-shadow: var(--icen-ring-soft);
|
|
1115
|
+
--icen-control-focus-border: var(--icen-token-accent);
|
|
1116
|
+
}
|
|
1117
|
+
:root[data-icen-style="chinese"] :is([data-icen-material],.icen-menu,.icen-popover,.icen-select-panel,.icen-date-picker-panel,.icen-autocomplete-panel,.icen-cascader-panel,.icen-tree-select-panel,.icen-mentions-panel,.icen-ai-composer-popup,.icen-command-palette,.icen-card--glass,.icen-nav) {
|
|
1118
|
+
background: var(--icen-token-surface);
|
|
1119
|
+
border-color: var(--icen-token-line);
|
|
1120
|
+
backdrop-filter: none;
|
|
1121
|
+
-webkit-backdrop-filter: none;
|
|
1717
1122
|
}
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
.style-retro a:hover,
|
|
1724
|
-
.style-retro [role="link"]:hover {
|
|
1725
|
-
text-decoration: underline;
|
|
1726
|
-
text-decoration-style: dashed;
|
|
1727
|
-
text-underline-offset: 3px;
|
|
1123
|
+
:root[data-icen-style="chinese"] :is(h1,h2,h3,h4,h5,h6,.icen-card-title,.icen-modal-title) {
|
|
1124
|
+
font-family: var(--icen-font-heading);
|
|
1125
|
+
font-weight: 500;
|
|
1126
|
+
letter-spacing: var(--icen-letter-spacing-heading);
|
|
1127
|
+
line-height: var(--icen-line-height-heading);
|
|
1728
1128
|
}
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
.style-retro .markdown-body img,
|
|
1735
|
-
.style-retro .markdown-body blockquote,
|
|
1736
|
-
.style-retro .markdown-body code,
|
|
1737
|
-
.style-retro .markdown-body pre {
|
|
1738
|
-
border-radius: 0;
|
|
1129
|
+
:root[data-icen-style="chinese"] :is(.icen-btn,.icen-page-tab,.icen-segmented-item) {
|
|
1130
|
+
font-family: var(--icen-font-body);
|
|
1131
|
+
letter-spacing: .025em;
|
|
1132
|
+
font-weight: 500;
|
|
1739
1133
|
}
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
|
|
1134
|
+
:root[data-icen-style="chinese"] :is(.icen-card,.icen-panel,[data-icen-material="content"]) {
|
|
1135
|
+
border-color: var(--icen-token-line-soft);
|
|
1136
|
+
box-shadow: none;
|
|
1137
|
+
}
|
|
1138
|
+
:root[data-icen-style="chinese"] .icen-card--elevated { box-shadow: var(--icen-token-shadow-card); }
|
|
1139
|
+
:root[data-icen-style="chinese"] :is(.icen-card.is-selected,.icen-card--interactive:focus-within) { box-shadow: var(--icen-ring); }
|
|
1140
|
+
:root[data-icen-style="chinese"] .icen-panel-title {
|
|
1141
|
+
padding-block: var(--icen-density-space-md);
|
|
1142
|
+
color: var(--icen-token-text);
|
|
1143
|
+
letter-spacing: .06em;
|
|
1144
|
+
text-transform: none;
|
|
1145
|
+
}
|
|
1146
|
+
:root[data-icen-style="chinese"] :is(.icen-card-desc,.icen-modal-desc,.icen-panel-subtitle) { line-height: var(--icen-line-height-body); }
|
|
1147
|
+
:root[data-icen-style="chinese"] .icen-segmented {
|
|
1148
|
+
background: var(--icen-token-bg-soft);
|
|
1149
|
+
border-color: var(--icen-token-line-soft);
|
|
1150
|
+
}
|
|
1151
|
+
:root[data-icen-style="chinese"] :is(.icen-segmented-item.is-active,.icen-segmented-item[aria-checked="true"],.icen-toggle-group-btn.is-active) {
|
|
1152
|
+
box-shadow: inset 0 0 0 1px var(--icen-token-line), var(--icen-token-shadow-card);
|
|
1153
|
+
}
|
|
1154
|
+
/* A quiet ink rule makes navigation legible without changing its layout. */
|
|
1155
|
+
:root[data-icen-style="chinese"] .icen-tabs:not(.icen-tabs--cards):not(.icen-tabs--segment):not(.icen-tabs--vertical) .icen-page-tab { border-block-end-width: 1px; }
|
|
1156
|
+
:root[data-icen-style="chinese"] :is(.icen-btn,.icen-menu-item,.icen-select-option,.icen-segmented-item):focus-visible {
|
|
1157
|
+
outline: 2px solid var(--icen-token-accent);
|
|
1158
|
+
outline-offset: 3px;
|
|
1159
|
+
}
|
|
1160
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1161
|
+
:root[data-icen-style="chinese"] { --icen-press: none; --icen-press-soft: none; }
|
|
1162
|
+
}
|
|
1163
|
+
@media (forced-colors: active) {
|
|
1164
|
+
:root[data-icen-style="chinese"] :is([data-icen-material],.icen-card,.icen-panel,.icen-menu,.icen-popover,.icen-select-panel,.icen-date-picker-panel,.icen-autocomplete-panel,.icen-cascader-panel,.icen-tree-select-panel,.icen-mentions-panel,.icen-ai-composer-popup,.icen-command-palette,.icen-modal,.icen-nav) {
|
|
1165
|
+
background: Canvas;
|
|
1166
|
+
color: CanvasText;
|
|
1167
|
+
border-color: CanvasText;
|
|
1168
|
+
box-shadow: none;
|
|
1169
|
+
}
|
|
1170
|
+
:root[data-icen-style="chinese"] :focus-visible { outline: 2px solid Highlight; outline-offset: 3px; }
|
|
1171
|
+
:root[data-icen-style="chinese"] :is(.icen-card.is-selected,.icen-card--interactive:focus-within) { box-shadow: none; outline: 2px solid Highlight; outline-offset: 2px; }
|
|
1172
|
+
}
|
|
1173
|
+
|
|
1174
|
+
/* 苏式 material adapter. DOM contract: html[data-icen-style="soviet"] with
|
|
1175
|
+
* existing ICEN components or [data-icen-material="content|chrome|floating"].
|
|
1176
|
+
* Structural emphasis belongs to frame/header/action, not long-form text.
|
|
1177
|
+
*/
|
|
1178
|
+
:root[data-icen-style="soviet"] {
|
|
1179
|
+
--icen-press: translateY(1px);
|
|
1180
|
+
--icen-press-soft: translateY(1px);
|
|
1181
|
+
--icen-hover-border: var(--icen-token-line-strong);
|
|
1182
|
+
--icen-hover-border-strong: var(--icen-token-text);
|
|
1183
|
+
--icen-ring: 0 0 0 2px var(--icen-token-surface), 0 0 0 4px var(--icen-token-accent);
|
|
1184
|
+
--icen-ring-soft: 0 0 0 2px var(--icen-token-accent-subtle);
|
|
1185
|
+
--icen-control-focus-shadow: inset 0 -2px 0 var(--icen-token-accent);
|
|
1186
|
+
--icen-control-focus-border: var(--icen-token-accent);
|
|
1187
|
+
}
|
|
1188
|
+
:root[data-icen-style="soviet"] :is([data-icen-material],.icen-menu,.icen-popover,.icen-select-panel,.icen-date-picker-panel,.icen-autocomplete-panel,.icen-cascader-panel,.icen-tree-select-panel,.icen-mentions-panel,.icen-ai-composer-popup,.icen-command-palette,.icen-card--glass,.icen-nav) {
|
|
1189
|
+
background: var(--icen-token-surface);
|
|
1190
|
+
border-color: var(--icen-token-line-strong);
|
|
1750
1191
|
backdrop-filter: none;
|
|
1751
1192
|
-webkit-backdrop-filter: none;
|
|
1752
1193
|
}
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
|
|
1759
|
-
.
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
}
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
/* 兜底:现代柔和阴影在 retro 下转为硬像素投影 */
|
|
1772
|
-
.style-retro .shadow-sm,
|
|
1773
|
-
.style-retro .shadow-md,
|
|
1774
|
-
.style-retro .shadow-lg,
|
|
1775
|
-
.style-retro .shadow-xl,
|
|
1776
|
-
.style-retro .shadow-2xl {
|
|
1777
|
-
box-shadow: var(--token-shadow-card);
|
|
1778
|
-
}
|
|
1779
|
-
|
|
1780
|
-
/* 非文本元素的硬像素焦点环 */
|
|
1781
|
-
.style-retro :focus-visible:not(input):not(textarea):not(select):not([contenteditable="true"]) {
|
|
1782
|
-
outline: 2px solid var(--token-accent);
|
|
1783
|
-
outline-offset: -2px;
|
|
1194
|
+
:root[data-icen-style="soviet"] :is(h1,h2,h3,h4,h5,h6,.icen-card-title,.icen-modal-title) {
|
|
1195
|
+
font-family: var(--icen-font-heading);
|
|
1196
|
+
font-weight: 750;
|
|
1197
|
+
letter-spacing: var(--icen-letter-spacing-heading);
|
|
1198
|
+
line-height: var(--icen-line-height-heading);
|
|
1199
|
+
}
|
|
1200
|
+
/* Only display text is condensed; labels, forms and paragraphs stay comfortable. */
|
|
1201
|
+
:root[data-icen-style="soviet"] :is(h1,h2) { font-stretch: condensed; }
|
|
1202
|
+
:root[data-icen-style="soviet"] :is(.icen-btn,.icen-page-tab,.icen-panel-title,.icen-table th) {
|
|
1203
|
+
font-family: var(--icen-font-body);
|
|
1204
|
+
font-weight: 650;
|
|
1205
|
+
letter-spacing: .035em;
|
|
1206
|
+
}
|
|
1207
|
+
:root[data-icen-style="soviet"] :is(.icen-btn,.icen-input-wrap,.icen-textarea-wrap,.icen-select-trigger,.icen-segmented) { border-width: 2px; }
|
|
1208
|
+
:root[data-icen-style="soviet"] :is(.icen-btn-ghost,.icen-btn-link) { border-color: transparent; }
|
|
1209
|
+
:root[data-icen-style="soviet"] :is(.icen-card,.icen-panel,[data-icen-material="content"]) {
|
|
1210
|
+
border-color: var(--icen-token-line);
|
|
1211
|
+
border-block-start: 3px solid var(--icen-token-line-strong);
|
|
1784
1212
|
box-shadow: none;
|
|
1785
|
-
border-radius: var(--radius-md);
|
|
1786
1213
|
}
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
--
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
--
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
-
|
|
1811
|
-
|
|
1214
|
+
:root[data-icen-style="soviet"] .icen-card--elevated { box-shadow: var(--icen-token-shadow-card); }
|
|
1215
|
+
:root[data-icen-style="soviet"] :is(.icen-card.is-selected,.icen-card--interactive:focus-within) { box-shadow: var(--icen-ring); }
|
|
1216
|
+
:root[data-icen-style="soviet"] .icen-panel-title {
|
|
1217
|
+
color: var(--icen-token-text);
|
|
1218
|
+
padding-block: var(--icen-density-space-md);
|
|
1219
|
+
border-block-end: 2px solid var(--icen-token-line);
|
|
1220
|
+
}
|
|
1221
|
+
:root[data-icen-style="soviet"] .icen-panel.is-collapsed .icen-panel-title { border-block-end-color: transparent; }
|
|
1222
|
+
:root[data-icen-style="soviet"] .icen-modal { border: 2px solid var(--icen-token-line-strong); }
|
|
1223
|
+
:root[data-icen-style="soviet"] :is(.icen-switch,.icen-switch-thumb) { border-radius: var(--icen-radius-sm); }
|
|
1224
|
+
:root[data-icen-style="soviet"] :is(.icen-segmented-item.is-active,.icen-segmented-item[aria-checked="true"],.icen-toggle-group-btn.is-active) {
|
|
1225
|
+
background: var(--icen-token-surface);
|
|
1226
|
+
box-shadow: inset 0 -3px 0 var(--icen-token-accent), inset 0 0 0 1px var(--icen-token-line);
|
|
1227
|
+
}
|
|
1228
|
+
:root[data-icen-style="soviet"] .icen-tabs:not(.icen-tabs--cards):not(.icen-tabs--segment):not(.icen-tabs--vertical) .icen-page-tab { border-block-end-width: 3px; }
|
|
1229
|
+
:root[data-icen-style="soviet"] :is(.icen-btn,.icen-menu-item,.icen-select-option,.icen-segmented-item):focus-visible {
|
|
1230
|
+
outline: 2px solid var(--icen-token-accent);
|
|
1231
|
+
outline-offset: 3px;
|
|
1232
|
+
}
|
|
1233
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1234
|
+
:root[data-icen-style="soviet"] { --icen-press: none; --icen-press-soft: none; }
|
|
1235
|
+
}
|
|
1236
|
+
@media (forced-colors: active) {
|
|
1237
|
+
:root[data-icen-style="soviet"] :is([data-icen-material],.icen-card,.icen-panel,.icen-menu,.icen-popover,.icen-select-panel,.icen-date-picker-panel,.icen-autocomplete-panel,.icen-cascader-panel,.icen-tree-select-panel,.icen-mentions-panel,.icen-ai-composer-popup,.icen-command-palette,.icen-modal,.icen-nav) {
|
|
1238
|
+
background: Canvas;
|
|
1239
|
+
color: CanvasText;
|
|
1240
|
+
border-color: CanvasText;
|
|
1241
|
+
box-shadow: none;
|
|
1242
|
+
}
|
|
1243
|
+
:root[data-icen-style="soviet"] :is(.icen-segmented-item[aria-checked="true"],.icen-segmented-item.is-active,.icen-toggle-group-btn.is-active) { outline: 2px solid Highlight; outline-offset: -2px; }
|
|
1244
|
+
:root[data-icen-style="soviet"] :focus-visible { outline: 2px solid Highlight; outline-offset: 3px; }
|
|
1245
|
+
:root[data-icen-style="soviet"] :is(.icen-card.is-selected,.icen-card--interactive:focus-within) { box-shadow: none; outline: 2px solid Highlight; outline-offset: 2px; }
|
|
1246
|
+
}
|
|
1247
|
+
|
|
1248
|
+
/* Interface symbols and quiet actions. SVG is usable without this CSS; this file
|
|
1249
|
+
* adds optical alignment, fixed action hit areas and progressive disclosure.
|
|
1250
|
+
* data-icen-reveal on a labelled secondary action: parent hover/focus reveals it;
|
|
1251
|
+
* keyboard and coarse pointers always retain access. No layout shift on reveal. */
|
|
1252
|
+
.icen-symbol { display: inline-block; flex: none; vertical-align: middle; overflow: visible; }
|
|
1253
|
+
.icen-icon-action {
|
|
1254
|
+
display: inline-flex;
|
|
1255
|
+
align-items: center;
|
|
1256
|
+
justify-content: center;
|
|
1257
|
+
flex: 0 0 auto;
|
|
1258
|
+
inline-size: var(--icen-density-input-height-sm);
|
|
1259
|
+
block-size: var(--icen-density-input-height-sm);
|
|
1260
|
+
padding: 0;
|
|
1261
|
+
border: 0;
|
|
1262
|
+
border-radius: var(--icen-radius-sm);
|
|
1263
|
+
background: transparent;
|
|
1264
|
+
color: var(--icen-token-text-muted);
|
|
1265
|
+
cursor: pointer;
|
|
1266
|
+
transition: opacity var(--icen-tx-fast), background-color var(--icen-tx-fast), color var(--icen-tx-fast), transform var(--icen-tx-fast);
|
|
1267
|
+
}
|
|
1268
|
+
.icen-icon-action:hover { background: var(--icen-token-fill-1); color: var(--icen-token-text); }
|
|
1269
|
+
.icen-icon-action:active { transform: scale(.94); }
|
|
1270
|
+
.icen-icon-action:focus-visible { outline: 2px solid var(--icen-token-accent); outline-offset: 2px; }
|
|
1271
|
+
.icen-icon-action:disabled { opacity: var(--icen-disabled-opacity); pointer-events: none; }
|
|
1272
|
+
@media (hover: hover) and (pointer: fine) {
|
|
1273
|
+
.icen-icon-action[data-icen-reveal] { opacity: 0; }
|
|
1274
|
+
:hover > .icen-icon-action[data-icen-reveal],
|
|
1275
|
+
:focus-within > .icen-icon-action[data-icen-reveal],
|
|
1276
|
+
.icen-icon-action[data-icen-reveal]:focus-visible { opacity: 1; }
|
|
1277
|
+
}
|
|
1278
|
+
@media (pointer: coarse) {
|
|
1279
|
+
.icen-icon-action { min-inline-size: 44px; min-block-size: 44px; }
|
|
1280
|
+
}
|
|
1281
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1282
|
+
.icen-icon-action { transition: none; }
|
|
1283
|
+
.icen-icon-action:active { transform: none; }
|
|
1284
|
+
}
|
|
1285
|
+
|
|
1286
|
+
:root[data-icen-style="pixel"] .icen-symbol { stroke-linecap: square; stroke-linejoin: miter; shape-rendering: crispEdges; }
|
|
1287
|
+
|
|
1288
|
+
/* Search action: enhanceSearchField(input) adds these classes to a dedicated
|
|
1289
|
+
wrapper and input, plus one labelled button with a decorative SVG.
|
|
1290
|
+
Zero specificity positioning preserves component sticky search headers. */
|
|
1291
|
+
:where(.icen-search-field) { position: relative; }
|
|
1292
|
+
.icen-search-input::-webkit-search-cancel-button,
|
|
1293
|
+
.icen-search-input::-webkit-search-decoration {
|
|
1294
|
+
-webkit-appearance: none;
|
|
1295
|
+
appearance: none;
|
|
1812
1296
|
}
|
|
1813
|
-
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
|
|
1297
|
+
.icen-search-clear {
|
|
1298
|
+
display: inline-flex;
|
|
1299
|
+
align-items: center;
|
|
1300
|
+
justify-content: center;
|
|
1301
|
+
inline-size: 24px;
|
|
1302
|
+
block-size: 24px;
|
|
1303
|
+
flex-shrink: 0;
|
|
1304
|
+
padding: 0;
|
|
1305
|
+
border: 0;
|
|
1306
|
+
border-radius: var(--icen-radius-sm);
|
|
1307
|
+
color: var(--icen-token-text-muted);
|
|
1308
|
+
background: transparent;
|
|
1309
|
+
cursor: pointer;
|
|
1310
|
+
transition: color var(--icen-tx-fast), background var(--icen-tx-fast);
|
|
1817
1311
|
}
|
|
1312
|
+
.icen-search-clear > svg { inline-size: 16px; block-size: 16px; pointer-events: none; }
|
|
1313
|
+
.icen-search-clear:hover {
|
|
1314
|
+
color: var(--icen-token-text);
|
|
1315
|
+
background: var(--icen-token-surface-hover);
|
|
1316
|
+
}
|
|
1317
|
+
.icen-search-clear:focus-visible {
|
|
1318
|
+
outline: 2px solid var(--icen-token-accent);
|
|
1319
|
+
outline-offset: -2px;
|
|
1320
|
+
}
|
|
1321
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1322
|
+
.icen-search-clear { transition: none; }
|
|
1323
|
+
}
|
|
1324
|
+
|
|
1325
|
+
/* Feedback actions keep their label's footprint while work is pending. */
|
|
1326
|
+
.icen-toast-action, .icen-notification-action { position: relative; }
|
|
1327
|
+
.icen-feedback-action-label { display: inline-block; }
|
|
1328
|
+
[aria-busy="true"] > .icen-feedback-action-label { opacity: 0; }
|
|
1329
|
+
.icen-feedback-action-spinner { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; pointer-events: none; }
|
|
1330
|
+
.icen-feedback-action-spinner > svg { inline-size: 16px; block-size: 16px; animation: icen-spin calc(var(--icen-duration-normal) * 4) linear infinite; }
|
|
1331
|
+
.icen-toast-action[aria-disabled="true"], .icen-notification-action[aria-disabled="true"] { cursor: progress; }
|
|
1332
|
+
.icen-toast-action[aria-disabled="true"]:not([aria-busy="true"]), .icen-notification-action[aria-disabled="true"]:not([aria-busy="true"]) { opacity: var(--icen-disabled-opacity); }
|
|
1333
|
+
.icen-feedback-error { display: block; margin-block-start: var(--icen-density-space-xs); color: var(--icen-token-error); font-size: var(--icen-density-font-size-sm); line-height: 1.5; }
|
|
1334
|
+
:root[data-icen-style="pixel"] .icen-feedback-action-spinner > svg { animation-timing-function: steps(8,end); }
|
|
1335
|
+
@media (prefers-reduced-motion: reduce) { .icen-feedback-action-spinner > svg { animation: none; } }
|
|
1336
|
+
.icen-suggestion-status { display: flex; align-items: center; gap: var(--icen-density-space-xs); padding: var(--icen-density-space-sm); color: var(--icen-token-text-muted); font-size: var(--icen-density-font-size-sm); line-height: var(--icen-line-height-body); }
|
|
1337
|
+
.icen-suggestion-symbol { display: inline-flex; align-items: center; justify-content: center; inline-size: 20px; block-size: 20px; flex: 0 0 20px; }
|
|
1338
|
+
.icen-suggestion-symbol > svg { inline-size: 16px; block-size: 16px; }
|
|
1339
|
+
.icen-suggestion-copy { flex: 1; min-inline-size: 0; overflow-wrap: anywhere; }
|
|
1340
|
+
.icen-suggestion-status.is-loading .icen-suggestion-symbol > svg { animation: icen-spin calc(var(--icen-duration-normal) * 4) linear infinite; }
|
|
1341
|
+
.icen-suggestion-retry { flex: 0 0 auto; padding-inline: var(--icen-density-space-sm); min-block-size: var(--icen-density-input-height-sm); border: 1px solid var(--icen-token-outline-soft); border-radius: var(--icen-radius-sm); background: var(--icen-token-fill-1); color: var(--icen-token-text); font: inherit; cursor: pointer; }
|
|
1342
|
+
.icen-suggestion-retry:focus-visible { outline: 2px solid var(--icen-token-accent); outline-offset: 1px; }
|
|
1343
|
+
@media (hover: hover) and (pointer: fine) { .icen-suggestion-retry:hover { background: var(--icen-token-fill-2); } }
|
|
1344
|
+
@media (pointer: coarse) { .icen-suggestion-retry { min-inline-size: 44px; min-block-size: 44px; } }
|
|
1345
|
+
:root[data-icen-style="pixel"] .icen-suggestion-status.is-loading .icen-suggestion-symbol > svg { animation-timing-function: steps(8,end); }
|
|
1346
|
+
@media (prefers-reduced-motion: reduce) { .icen-suggestion-status.is-loading .icen-suggestion-symbol > svg { animation: none; } }
|
|
1818
1347
|
|
|
1819
|
-
|
|
1820
|
-
/* ── tokens/typography.css ── */
|
|
1821
1348
|
/*
|
|
1822
|
-
* @icen.ai/ui —
|
|
1823
|
-
*
|
|
1824
|
-
*
|
|
1825
|
-
*
|
|
1349
|
+
* @icen.ai/ui — Component: input(wrapper 式输入框 / 多行 / 搜索)
|
|
1350
|
+
* 规格源自 opengal primitives/input.tsx;与 behaviors/input.ts 配套。
|
|
1351
|
+
*
|
|
1352
|
+
* 完整契约:
|
|
1353
|
+
* <div class="icen-input-wrap icen-control [--sm|--lg] [--search] [.is-error] [.is-disabled]">
|
|
1354
|
+
* <span class="icen-input-leading">…</span> 可选前缀(svg/icon/text)
|
|
1355
|
+
* <input class="icen-input" />
|
|
1356
|
+
* <button class="icen-input-clear" aria-label="清除">…</button> behavior 清空并聚焦
|
|
1357
|
+
* <button class="icen-input-pw-toggle" aria-label="切换可见性">…</button>
|
|
1358
|
+
* <span class="icen-input-trailing">…</span> 可选后缀(单位/字符计数等)
|
|
1359
|
+
* </div>
|
|
1360
|
+
*
|
|
1361
|
+
* 多行:<div class="icen-textarea-wrap icen-control" [.is-error|.is-disabled]><icen-textarea class="icen-textarea" data-icen-autosize></icen-textarea></div>
|
|
1362
|
+
*
|
|
1363
|
+
* --search 修饰:仅语义标记(让 behavior 知道这是搜索框,绑定 clear + Esc),
|
|
1364
|
+
* 不额外改样式;视觉上仍用 .icen-input-leading 放大镜。
|
|
1826
1365
|
*/
|
|
1827
1366
|
|
|
1828
|
-
/* ──
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1367
|
+
/* ── 单行 ── */
|
|
1368
|
+
/* One surface recipe for composed and standalone fields. KB domain hooks share
|
|
1369
|
+
the same recipe; domain CSS owns width/layout, never typography or material. */
|
|
1370
|
+
.icen-input-wrap,
|
|
1371
|
+
.icen-input-control,
|
|
1372
|
+
.icen-kb-input,
|
|
1373
|
+
.icen-kb-retrieval-query,
|
|
1374
|
+
.icen-kb-hittest-input,
|
|
1375
|
+
.icen-kb-filter-field,
|
|
1376
|
+
.icen-kb-filter-value {
|
|
1377
|
+
box-sizing: border-box;
|
|
1378
|
+
min-inline-size: 0;
|
|
1379
|
+
block-size: var(--input-height, var(--icen-density-input-height-md));
|
|
1380
|
+
padding: 0 var(--input-padding-inline, var(--icen-density-space-sm));
|
|
1381
|
+
font-family: var(--icen-font-body);
|
|
1382
|
+
font-size: var(--input-font-size, var(--icen-density-font-size-md));
|
|
1383
|
+
line-height: 1.5;
|
|
1384
|
+
color: var(--icen-token-text);
|
|
1385
|
+
background: var(--icen-token-control);
|
|
1386
|
+
border: 1px solid var(--icen-token-outline-soft);
|
|
1387
|
+
border-radius: var(--icen-radius-md);
|
|
1388
|
+
box-shadow: var(--icen-token-shadow-inset);
|
|
1389
|
+
transition: border-color var(--icen-tx-fast), box-shadow var(--icen-tx-fast);
|
|
1390
|
+
}
|
|
1391
|
+
.icen-input-wrap {
|
|
1392
|
+
position: relative;
|
|
1393
|
+
display: flex;
|
|
1394
|
+
align-items: center;
|
|
1395
|
+
gap: var(--icen-density-space-xs);
|
|
1396
|
+
inline-size: 100%;
|
|
1837
1397
|
}
|
|
1838
|
-
|
|
1839
|
-
:
|
|
1840
|
-
/* ── icen 品牌字体栈 ──
|
|
1841
|
-
body/mono:IBM Plex Mono(未安装时回退系统等宽,行为与 accounts 一致,不打包 webfont)
|
|
1842
|
-
heading:CJK 宋体系(页面标题/品牌名的书卷气) */
|
|
1843
|
-
--font-body: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Consolas, 'Courier New', monospace;
|
|
1844
|
-
--font-mono: var(--font-body);
|
|
1845
|
-
--font-heading: 'Songti SC', 'STSong', 'Noto Serif SC', 'Source Han Serif SC', SimSun, serif;
|
|
1846
|
-
--font-cjk: var(--font-heading);
|
|
1847
|
-
--line-height-body: 1.7;
|
|
1848
|
-
/* 独家定义(style-profiles.css 的 :root 不再重复;profile 差异化在各 .style-* 块覆盖) */
|
|
1849
|
-
--line-height-heading: 1.2;
|
|
1398
|
+
:is(.icen-input-wrap,.icen-input-control,.icen-kb-input,.icen-kb-retrieval-query,.icen-kb-hittest-input,.icen-kb-filter-field,.icen-kb-filter-value):hover {
|
|
1399
|
+
border-color: var(--icen-hover-border);
|
|
1850
1400
|
}
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
1858
|
-
|
|
1859
|
-
|
|
1401
|
+
:is(.icen-input-wrap,.icen-input-control,.icen-kb-input,.icen-kb-retrieval-query,.icen-kb-hittest-input,.icen-kb-filter-field,.icen-kb-filter-value):focus-within {
|
|
1402
|
+
outline: none;
|
|
1403
|
+
box-shadow: var(--icen-control-focus-shadow);
|
|
1404
|
+
border-color: var(--icen-control-focus-border);
|
|
1405
|
+
}
|
|
1406
|
+
.icen-input-wrap.is-error,
|
|
1407
|
+
.icen-input-wrap.is-error:focus-within {
|
|
1408
|
+
border-color: var(--icen-token-error);
|
|
1409
|
+
}
|
|
1410
|
+
.icen-input-wrap.is-error:focus-within {
|
|
1411
|
+
box-shadow: var(--icen-control-error-shadow);
|
|
1412
|
+
}
|
|
1413
|
+
.icen-input-wrap.is-disabled,
|
|
1414
|
+
.icen-input-wrap[aria-disabled='true'],
|
|
1415
|
+
.icen-input-wrap[data-icen-disabled] {
|
|
1416
|
+
opacity: var(--icen-disabled-opacity);
|
|
1417
|
+
background: var(--icen-token-bg-soft);
|
|
1418
|
+
cursor: not-allowed;
|
|
1419
|
+
pointer-events: none;
|
|
1420
|
+
}
|
|
1421
|
+
.icen-input-wrap.is-disabled .icen-input { cursor: not-allowed; }
|
|
1422
|
+
|
|
1423
|
+
/* 尺寸变体 */
|
|
1424
|
+
.icen-input-wrap--sm, .icen-input-control--sm,
|
|
1425
|
+
.icen-kb-input, .icen-kb-retrieval-query, .icen-kb-hittest-input, .icen-kb-filter-field, .icen-kb-filter-value {
|
|
1426
|
+
--input-height: var(--icen-density-input-height-sm);
|
|
1427
|
+
--input-padding-inline: max(8px, calc(var(--icen-density-space-sm) * 1.25));
|
|
1428
|
+
--input-font-size: var(--icen-density-font-size-sm);
|
|
1429
|
+
}
|
|
1430
|
+
.icen-input-wrap--lg, .icen-input-control--lg {
|
|
1431
|
+
--input-height: var(--icen-density-input-height-lg);
|
|
1432
|
+
--input-padding-inline: var(--icen-density-space-md);
|
|
1433
|
+
--input-font-size: var(--icen-density-font-size-lg);
|
|
1434
|
+
}
|
|
1435
|
+
|
|
1436
|
+
.icen-input {
|
|
1437
|
+
box-sizing: border-box;
|
|
1438
|
+
flex: 1;
|
|
1439
|
+
min-width: 0;
|
|
1440
|
+
padding: 0;
|
|
1441
|
+
background: transparent;
|
|
1442
|
+
border: none;
|
|
1443
|
+
outline: none;
|
|
1444
|
+
color: var(--icen-token-text);
|
|
1445
|
+
font: inherit;
|
|
1446
|
+
}
|
|
1447
|
+
.icen-input::placeholder {
|
|
1448
|
+
color: color-mix(in srgb, var(--icen-token-text-faint) 60%, transparent);
|
|
1449
|
+
}
|
|
1450
|
+
.icen-input:read-only {
|
|
1451
|
+
color: var(--icen-token-text-muted);
|
|
1452
|
+
cursor: default;
|
|
1453
|
+
}
|
|
1454
|
+
.icen-input::-webkit-search-cancel-button { -webkit-appearance: none; }
|
|
1455
|
+
|
|
1456
|
+
/* Composed searches use this same wrapper, font, inset and focus recipe. The
|
|
1457
|
+
parent search header owns only sticky placement and separation from results. */
|
|
1458
|
+
.icen-search-field > .icen-input-wrap { inline-size: 100%; }
|
|
1459
|
+
.icen-input-wrap > .icen-search-input {
|
|
1460
|
+
flex: 1;
|
|
1461
|
+
inline-size: 100%;
|
|
1462
|
+
min-inline-size: 0;
|
|
1463
|
+
block-size: auto;
|
|
1464
|
+
min-block-size: 0;
|
|
1465
|
+
padding: 0;
|
|
1466
|
+
border: 0;
|
|
1467
|
+
border-radius: 0;
|
|
1468
|
+
outline: none;
|
|
1469
|
+
box-shadow: none;
|
|
1470
|
+
background: transparent;
|
|
1471
|
+
color: var(--icen-token-text);
|
|
1472
|
+
font: inherit;
|
|
1473
|
+
}
|
|
1474
|
+
.icen-input-wrap > .icen-search-input:focus { border: 0; outline: none; box-shadow: none; }
|
|
1475
|
+
.icen-input-wrap > .icen-search-input::placeholder { color: var(--icen-token-text-muted); }
|
|
1476
|
+
@media (pointer: coarse) {
|
|
1477
|
+
.icen-input-wrap, .icen-input-control, .icen-kb-input, .icen-kb-retrieval-query, .icen-kb-hittest-input, .icen-kb-filter-field, .icen-kb-filter-value { font-size: max(16px, var(--input-font-size, var(--icen-density-font-size-md))); }
|
|
1478
|
+
.icen-input-wrap--sm { font-size: max(16px, var(--icen-density-font-size-sm)); }
|
|
1479
|
+
.icen-input-wrap--lg { font-size: max(16px, var(--icen-density-font-size-lg)); }
|
|
1480
|
+
.icen-input-clear, .icen-input-pw-toggle { min-inline-size: 44px; min-block-size: 44px; }
|
|
1481
|
+
.icen-input-wrap:has(.icen-input-clear:not([hidden]), .icen-input-pw-toggle) { min-block-size: 46px; }
|
|
1482
|
+
}
|
|
1483
|
+
|
|
1484
|
+
.icen-input-leading,
|
|
1485
|
+
.icen-input-trailing {
|
|
1486
|
+
display: inline-flex;
|
|
1487
|
+
align-items: center;
|
|
1488
|
+
flex-shrink: 0;
|
|
1489
|
+
color: var(--icen-token-text-faint);
|
|
1490
|
+
}
|
|
1491
|
+
.icen-input-leading svg, .icen-input-trailing svg { width: 14px; height: 14px; }
|
|
1492
|
+
|
|
1493
|
+
/* ── 前缀/后缀文字(单位、域名等)── */
|
|
1494
|
+
.icen-input-affix {
|
|
1495
|
+
display: inline-flex;
|
|
1496
|
+
align-items: center;
|
|
1497
|
+
flex-shrink: 0;
|
|
1498
|
+
padding: 0 var(--icen-density-space-xs);
|
|
1499
|
+
color: var(--icen-token-text-muted);
|
|
1500
|
+
font-size: 0.92em;
|
|
1501
|
+
background: var(--icen-token-fill-1);
|
|
1502
|
+
border-radius: var(--icen-radius-xs);
|
|
1503
|
+
}
|
|
1504
|
+
|
|
1505
|
+
.icen-input-clear,
|
|
1506
|
+
.icen-input-pw-toggle {
|
|
1507
|
+
display: inline-flex;
|
|
1508
|
+
align-items: center;
|
|
1509
|
+
justify-content: center;
|
|
1510
|
+
flex-shrink: 0;
|
|
1511
|
+
width: 22px; height: 22px;
|
|
1512
|
+
padding: 0;
|
|
1513
|
+
border: none;
|
|
1514
|
+
background: transparent;
|
|
1515
|
+
cursor: pointer;
|
|
1516
|
+
border-radius: var(--icen-radius-full);
|
|
1517
|
+
color: var(--icen-token-text-faint);
|
|
1518
|
+
transition:
|
|
1519
|
+
color var(--icen-tx-fast),
|
|
1520
|
+
background-color var(--icen-tx-fast);
|
|
1521
|
+
}
|
|
1522
|
+
.icen-input-clear:hover,
|
|
1523
|
+
.icen-input-pw-toggle:hover {
|
|
1524
|
+
color: var(--icen-token-text);
|
|
1525
|
+
background: var(--icen-token-surface-hover);
|
|
1526
|
+
}
|
|
1527
|
+
.icen-input-clear:focus-visible,
|
|
1528
|
+
.icen-input-pw-toggle:focus-visible {
|
|
1529
|
+
outline: none;
|
|
1530
|
+
box-shadow: var(--icen-ring);
|
|
1860
1531
|
}
|
|
1532
|
+
.icen-input-clear svg, .icen-input-pw-toggle svg { width: 12px; height: 12px; }
|
|
1861
1533
|
|
|
1862
|
-
|
|
1863
|
-
|
|
1864
|
-
|
|
1534
|
+
/* ── 多行:同一 wrapper 视觉,内部 textarea 裸奔 ── */
|
|
1535
|
+
.icen-textarea-wrap {
|
|
1536
|
+
position: relative;
|
|
1537
|
+
display: flex;
|
|
1538
|
+
width: 100%;
|
|
1539
|
+
background: var(--icen-token-control);
|
|
1540
|
+
border: 1px solid var(--icen-token-outline-soft);
|
|
1541
|
+
border-radius: var(--icen-radius-md);
|
|
1542
|
+
box-shadow: var(--icen-token-shadow-inset);
|
|
1543
|
+
transition: border-color var(--icen-tx-fast),
|
|
1544
|
+
box-shadow var(--icen-tx-fast);
|
|
1545
|
+
}
|
|
1546
|
+
.icen-textarea-wrap:hover {
|
|
1547
|
+
border-color: var(--icen-hover-border);
|
|
1865
1548
|
}
|
|
1549
|
+
.icen-textarea-wrap:focus-within {
|
|
1550
|
+
box-shadow: var(--icen-control-focus-shadow);
|
|
1551
|
+
border-color: var(--icen-control-focus-border);
|
|
1552
|
+
}
|
|
1553
|
+
.icen-textarea-wrap.is-error,
|
|
1554
|
+
.icen-textarea-wrap.is-error:focus-within {
|
|
1555
|
+
border-color: var(--icen-token-error);
|
|
1556
|
+
box-shadow: var(--icen-control-error-shadow);
|
|
1557
|
+
}
|
|
1558
|
+
.icen-textarea-wrap.is-disabled,
|
|
1559
|
+
.icen-textarea-wrap[aria-disabled='true'],
|
|
1560
|
+
.icen-textarea-wrap[data-icen-disabled] {
|
|
1561
|
+
opacity: var(--icen-disabled-opacity);
|
|
1562
|
+
background: var(--icen-token-bg-soft);
|
|
1563
|
+
cursor: not-allowed;
|
|
1564
|
+
pointer-events: none;
|
|
1565
|
+
}
|
|
1566
|
+
.icen-textarea-wrap.is-disabled .icen-textarea { cursor: not-allowed; }
|
|
1567
|
+
|
|
1568
|
+
.icen-textarea {
|
|
1569
|
+
width: 100%;
|
|
1570
|
+
padding: var(--icen-density-space-sm) var(--icen-density-space-md);
|
|
1571
|
+
background: transparent;
|
|
1572
|
+
border: none;
|
|
1573
|
+
outline: none;
|
|
1574
|
+
resize: vertical;
|
|
1575
|
+
color: var(--icen-token-text);
|
|
1576
|
+
font: inherit;
|
|
1577
|
+
font-size: var(--icen-density-font-size-md);
|
|
1578
|
+
line-height: 1.5;
|
|
1579
|
+
min-height: calc(3 * 1.5em + 24px);
|
|
1580
|
+
}
|
|
1581
|
+
.icen-textarea::placeholder {
|
|
1582
|
+
color: color-mix(in srgb, var(--icen-token-text-faint) 60%, transparent);
|
|
1583
|
+
}
|
|
1584
|
+
|
|
1585
|
+
/* 字符计数(behavior 可挂到 .icen-input-wrap 或 .icen-textarea-wrap 内行内末端) */
|
|
1586
|
+
.icen-input-wrap--has-counter { padding-inline-end: calc(var(--icen-density-space-sm) + 48px); }
|
|
1587
|
+
.icen-input-wrap--has-counter .icen-input-counter {
|
|
1588
|
+
position: absolute;
|
|
1589
|
+
inset-inline-end: var(--icen-density-space-sm);
|
|
1590
|
+
top: 50%;
|
|
1591
|
+
transform: translateY(-50%);
|
|
1592
|
+
font-size: var(--icen-density-font-size-xs);
|
|
1593
|
+
color: var(--icen-token-text-faint);
|
|
1594
|
+
font-variant-numeric: tabular-nums;
|
|
1595
|
+
pointer-events: none;
|
|
1596
|
+
}
|
|
1597
|
+
.icen-input-counter {
|
|
1598
|
+
position: absolute;
|
|
1599
|
+
inset-inline-end: var(--icen-density-space-sm);
|
|
1600
|
+
bottom: var(--icen-density-space-xs);
|
|
1601
|
+
font-size: var(--icen-density-font-size-xs);
|
|
1602
|
+
color: var(--icen-token-text-faint);
|
|
1603
|
+
font-variant-numeric: tabular-nums;
|
|
1604
|
+
pointer-events: none;
|
|
1605
|
+
transition: color var(--icen-tx-fast);
|
|
1606
|
+
}
|
|
1607
|
+
.icen-input-counter.is-warn { color: var(--icen-token-warning); }
|
|
1608
|
+
.icen-input-counter.is-error { color: var(--icen-token-error); font-weight: 600; }
|
|
1609
|
+
|
|
1610
|
+
.icen-textarea-wrap .icen-textarea { padding-bottom: 24px; }
|
|
1611
|
+
|
|
1612
|
+
/* 有计数器时的 textarea 底部留空 */
|
|
1613
|
+
.icen-textarea-wrap .icen-input-counter {
|
|
1614
|
+
position: absolute;
|
|
1615
|
+
inset-inline-end: var(--icen-density-space-sm);
|
|
1616
|
+
bottom: var(--icen-density-space-xs);
|
|
1617
|
+
}
|
|
1618
|
+
|
|
1619
|
+
/* Standalone fields expose the same disabled/read-only/error feedback. */
|
|
1620
|
+
:is(.icen-input-control,.icen-kb-input,.icen-kb-retrieval-query,.icen-kb-hittest-input,.icen-kb-filter-field,.icen-kb-filter-value):disabled {
|
|
1621
|
+
opacity: var(--icen-disabled-opacity);cursor: not-allowed;background: var(--icen-token-bg-soft);
|
|
1622
|
+
}
|
|
1623
|
+
:is(.icen-input-control,.icen-kb-input,.icen-kb-retrieval-query,.icen-kb-hittest-input,.icen-kb-filter-field,.icen-kb-filter-value):read-only { color: var(--icen-token-text-muted); }
|
|
1624
|
+
.icen-input-control[aria-invalid='true'] { border-color: var(--icen-token-error); }
|
|
1866
1625
|
|
|
1867
|
-
/* ── 数字密集区工具类 ── */
|
|
1868
|
-
.font-math {
|
|
1869
|
-
font-family: "Numeric Math", math, var(--font-body);
|
|
1870
|
-
font-variant-numeric: lining-nums tabular-nums;
|
|
1871
1626
|
}
|
|
1872
|
-
|