@xihan-ui/styles 2.0.0 → 3.0.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/CHANGELOG.md +1328 -0
- package/README.md +6 -1
- package/component-tokens.d.ts +505 -111
- package/components.tokens.json +34750 -26291
- package/css/accordion.css +39 -13
- package/css/alert.css +61 -3
- package/css/anchor.css +49 -11
- package/css/approval.css +124 -84
- package/css/avatar-group.css +1 -1
- package/css/avatar.css +13 -5
- package/css/back-top.css +63 -44
- package/css/badge.css +63 -13
- package/css/bar-code.css +1 -1
- package/css/breadcrumb.css +63 -4
- package/css/button-group.css +5 -5
- package/css/button.css +69 -21
- package/css/calendar-picker.css +27 -8
- package/css/calendar-range-picker.css +48 -11
- package/css/card.css +116 -2
- package/css/carousel.css +153 -48
- package/css/cartesian-chart.css +830 -0
- package/css/cascader.css +184 -70
- package/css/checkbox-group.css +69 -99
- package/css/checkbox.css +21 -54
- package/css/citation.css +470 -0
- package/css/clipboard.css +23 -66
- package/css/code-view.css +103 -8
- package/css/collapsible.css +37 -11
- package/css/color-field.css +18 -0
- package/css/color-picker.css +57 -62
- package/css/color-slider.css +26 -19
- package/css/color-swatch-picker.css +8 -6
- package/css/combobox.css +82 -37
- package/css/command.css +48 -48
- package/css/context-menu.css +43 -28
- package/css/date-field.css +23 -0
- package/css/date-picker.css +57 -24
- package/css/date-range-picker.css +301 -14
- package/css/description.css +17 -1
- package/css/descriptions.css +43 -1
- package/css/dialog.css +99 -43
- package/css/diff-view.css +101 -16
- package/css/download-trigger.css +46 -80
- package/css/drawer.css +168 -133
- package/css/editable.css +19 -0
- package/css/empty-state.css +8 -7
- package/css/field-array.css +36 -0
- package/css/field.css +17 -19
- package/css/fieldset.css +1 -1
- package/css/file-upload.css +126 -136
- package/css/flex.css +324 -8
- package/css/float-button.css +168 -41
- package/css/floating-panel.css +59 -27
- package/css/form.css +26 -20
- package/css/funnel-chart.css +106 -0
- package/css/graph-chart.css +205 -0
- package/css/grid-list.css +235 -0
- package/css/grid.css +252 -1
- package/css/heatmap.css +119 -36
- package/css/hierarchy-chart.css +298 -0
- package/css/hover-card.css +33 -18
- package/css/icon.css +100 -0
- package/css/image-cropper.css +34 -8
- package/css/image-viewer.css +169 -26
- package/css/image.css +23 -4
- package/css/infinite-scroll.css +2 -2
- package/css/input-group.css +13 -15
- package/css/json-viewer.css +55 -7
- package/css/kbd.css +1 -1
- package/css/layout.css +71 -21
- package/css/liquid.css +106 -0
- package/css/list.css +2 -2
- package/css/listbox.css +72 -23
- package/css/loading-bar.css +27 -13
- package/css/log.css +131 -35
- package/css/markdown-stream.css +1 -1
- package/css/marquee.css +163 -7
- package/css/matrix-code.css +1 -1
- package/css/mention.css +35 -21
- package/css/menu.css +40 -28
- package/css/menubar.css +42 -28
- package/css/message-feed.css +174 -53
- package/css/navigation-menu.css +177 -18
- package/css/notification.css +431 -110
- package/css/number-field.css +22 -0
- package/css/page-header.css +4 -2
- package/css/pagination.css +129 -29
- package/css/password-input.css +40 -8
- package/css/pie-chart.css +247 -0
- package/css/popconfirm.css +50 -58
- package/css/popover.css +55 -21
- package/css/progress.css +308 -10
- package/css/prompt-input.css +37 -1
- package/css/question-flow.css +104 -64
- package/css/radar-chart.css +233 -0
- package/css/radio-group.css +372 -14
- package/css/rating.css +25 -27
- package/css/reasoning.css +62 -55
- package/css/reset.css +1 -1
- package/css/resizable.css +6 -1
- package/css/sankey-chart.css +174 -0
- package/css/scroll-area.css +32 -0
- package/css/scrollbar.css +1 -1
- package/css/select.css +76 -59
- package/css/side-nav.css +177 -30
- package/css/signature-pad.css +23 -8
- package/css/skeleton.css +13 -14
- package/css/slider.css +39 -17
- package/css/sortable.css +38 -8
- package/css/sparkline.css +164 -0
- package/css/spinner.css +50 -22
- package/css/splitter.css +8 -2
- package/css/statistic.css +10 -0
- package/css/steps.css +257 -38
- package/css/switch.css +30 -55
- package/css/table.css +168 -128
- package/css/tabs.css +243 -31
- package/css/tag-group.css +65 -37
- package/css/tag.css +55 -14
- package/css/tags-input.css +40 -3
- package/css/text-field.css +19 -0
- package/css/time-field.css +20 -1
- package/css/time-picker.css +44 -17
- package/css/time-range-picker.css +45 -18
- package/css/timeline.css +1 -1
- package/css/toggle-group.css +8 -8
- package/css/toggle.css +6 -5
- package/css/tool-call.css +64 -56
- package/css/toolbar.css +105 -7
- package/css/tooltip.css +18 -7
- package/css/tour.css +49 -21
- package/css/transfer.css +104 -81
- package/css/tree-select.css +235 -58
- package/css/tree.css +240 -147
- package/css/truncate.css +55 -12
- package/css/typography.css +93 -0
- package/css/virtualizer.css +57 -1
- package/css/watermark.css +23 -0
- package/family/action-control.css +14 -5
- package/family/chart.css +480 -0
- package/family/check-mark.css +94 -0
- package/family/choice-card.css +97 -0
- package/family/collection-item.css +70 -27
- package/family/field-chrome.css +1 -12
- package/family/loading-ring.css +95 -0
- package/family/material.css +72 -0
- package/family/menu-choice.css +56 -0
- package/family/motion.css +208 -11
- package/family/tag-list.css +59 -0
- package/index.css +23363 -14091
- package/index.unlayered.css +23198 -13922
- package/package.json +20 -8
- package/css/gradient-text.css +0 -91
- package/css/icon-wrapper.css +0 -81
- package/css/segmented.css +0 -280
- package/css/toast.css +0 -499
package/css/switch.css
CHANGED
|
@@ -5,16 +5,10 @@
|
|
|
5
5
|
|
|
6
6
|
/* 定义 switch 样式。 */
|
|
7
7
|
|
|
8
|
+
/* 共享关键帧由 family/motion.css 提供,本皮肤 @import 它,单独引入仍成立。 */
|
|
9
|
+
@import '../family/motion.css';
|
|
8
10
|
@import '../family/action-control.css';
|
|
9
|
-
|
|
10
|
-
@layer xihan.motion {
|
|
11
|
-
/* 转圈的关键帧定义在本文件里:引用别处文件的动画名时那份文件不一定在场,动画会静默不跑 */
|
|
12
|
-
@keyframes xh-switch-rotate {
|
|
13
|
-
to {
|
|
14
|
-
transform: rotate(1turn);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
}
|
|
11
|
+
@import '../family/loading-ring.css';
|
|
18
12
|
|
|
19
13
|
@layer xihan.components {
|
|
20
14
|
/* 皮肤在场的标记:开发模式下按 scope 探一次,取不到就说明这份皮肤没被引入。 */
|
|
@@ -41,9 +35,9 @@
|
|
|
41
35
|
--xh-_switch-track-bg-pressed: var(--xh-switch-bg-pressed, var(--xh-_switch-track-bg));
|
|
42
36
|
--xh-_switch-fg: var(--xh-switch-fg, var(--xh-fg-default));
|
|
43
37
|
|
|
44
|
-
/* 轨道接 Action Control text
|
|
38
|
+
/* 轨道接 Action Control text 档(定尺轨道):悬停 / 按下 / 禁用面、0.97 缩放与换底、粗指针热区、
|
|
45
39
|
焦点环与过渡由家族配方给,这里只把轨道的私有槽映射到桥接槽。轨道没有实描边(边界以内描边画,不吃行程),
|
|
46
|
-
边位映射 transparent 并把 border 宽度归零;内描边经 shadow
|
|
40
|
+
边位映射 transparent 并把 border 宽度归零;内描边经 shadow 通道各态同一支。悬停不换面(阶梯只给按下) */
|
|
47
41
|
--xh-action-visual-size: var(--xh-_switch-track-h);
|
|
48
42
|
--xh-action-min-inline-size: calc(var(--xh-_switch-track-h) * 2 - var(--xh-_switch-pad) * 2);
|
|
49
43
|
--xh-action-padding-inline: var(--xh-_switch-pad);
|
|
@@ -89,7 +83,7 @@
|
|
|
89
83
|
|
|
90
84
|
/* 只读:值仍要读得清、也仍会随表单提交,所以不压对比度、也不借禁用那档灰。
|
|
91
85
|
变的是"动不动得了":指针不摆手型、按下不缩放不换底(家族的按压块由这里的映射钉回静息面),
|
|
92
|
-
|
|
86
|
+
选中档的轨道退回未选中那一档的中性底(交互态的底只从语义面派生),
|
|
93
87
|
滑块收掉那层抬起的投影——投影是"这颗按得动"的信号。与文本框只读那一档同口径(压低底色而非置灰)。
|
|
94
88
|
滑块停在哪一端不受影响,值本身仍由位置这条非颜色通道读出。 */
|
|
95
89
|
[data-scope='switch'][data-part='root'][data-readonly]:not([data-disabled]) {
|
|
@@ -126,7 +120,7 @@
|
|
|
126
120
|
box-shadow: var(--xh-switch-thumb-shadow-readonly, none);
|
|
127
121
|
}
|
|
128
122
|
|
|
129
|
-
/*
|
|
123
|
+
/* 禁用:不靠 opacity——轨道退回 --xh-bg-subtle 底 + --xh-border-default 内描边,滑块前景置灰;
|
|
130
124
|
选中的禁用轨道同样退回中性面,值由滑块位置读出。面与手型由家族的禁用块按映射给 */
|
|
131
125
|
[data-scope='switch'][data-part='root'][data-disabled] {
|
|
132
126
|
--xh-_switch-track-border: var(--xh-switch-border-disabled, var(--xh-border-default));
|
|
@@ -163,7 +157,7 @@
|
|
|
163
157
|
}
|
|
164
158
|
}
|
|
165
159
|
|
|
166
|
-
/* 滑块是 raised
|
|
160
|
+
/* 滑块是 raised 抬起面(可拖起部件,逐部件登记):--xh-bg-surface-raised 底 + --xh-border-default 描边 +
|
|
167
161
|
--xh-elevation-raised 影,无顶光;描边必须在,影只是加成 */
|
|
168
162
|
[data-scope='switch'][data-part='thumb'] {
|
|
169
163
|
position: relative;
|
|
@@ -180,18 +174,22 @@
|
|
|
180
174
|
line-height: 0;
|
|
181
175
|
/* 状态切换只动位移与表面,按压拉伸另走 inline-size;不使用 transition-all。 */
|
|
182
176
|
transition:
|
|
183
|
-
translate var(--xh-motion-duration-
|
|
184
|
-
inline-size var(--xh-motion-duration-
|
|
177
|
+
translate var(--xh-motion-duration-nudge) var(--xh-motion-ease-continuous),
|
|
178
|
+
inline-size var(--xh-motion-duration-nudge) var(--xh-motion-ease-continuous),
|
|
185
179
|
box-shadow var(--xh-motion-duration-micro) var(--xh-motion-ease-enter);
|
|
186
180
|
}
|
|
187
181
|
|
|
182
|
+
/* flex 的 inline-start 随书写方向翻转,物理 translate 乘方向符号跟着反向,checked 才始终走到 inline-end;
|
|
183
|
+
符号按就近的 dir 继承,rtl 页面里局部写回 ltr 的开关照 ltr 走 */
|
|
188
184
|
[data-scope='switch'][data-part='thumb'][data-state='checked'] {
|
|
189
|
-
translate: var(--xh-_switch-thumb-size) 0;
|
|
185
|
+
translate: calc(var(--xh-direction-sign) * var(--xh-_switch-thumb-size)) 0;
|
|
190
186
|
}
|
|
191
187
|
|
|
192
|
-
/*
|
|
193
|
-
[
|
|
194
|
-
|
|
188
|
+
/* 拖动与松手落定期间位移由连接层逐帧写进内联 translate,位移不能再叠一层过渡;按住拉长与投影照常过渡 */
|
|
189
|
+
[data-scope='switch'][data-part='thumb']:is([data-dragging], [data-animating]) {
|
|
190
|
+
transition:
|
|
191
|
+
inline-size var(--xh-motion-duration-nudge) var(--xh-motion-ease-continuous),
|
|
192
|
+
box-shadow var(--xh-motion-duration-micro) var(--xh-motion-ease-enter);
|
|
195
193
|
}
|
|
196
194
|
|
|
197
195
|
/* Naive 同类的橡皮带回执:按住时向行进方向拉长并压平投影,已选中端同步回退同一段,外缘不越出轨道。 */
|
|
@@ -203,13 +201,7 @@
|
|
|
203
201
|
|
|
204
202
|
[data-scope='switch'][data-part='root'][data-state='checked']:not([data-disabled]):not([data-readonly]):not([data-loading]):is(:active, [data-pressed])
|
|
205
203
|
[data-scope='switch'][data-part='thumb'] {
|
|
206
|
-
translate: calc(var(--xh-_switch-thumb-size) - var(--xh-_switch-thumb-press-stretch)) 0;
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
[dir='rtl']
|
|
210
|
-
[data-scope='switch'][data-part='root'][data-state='checked']:not([data-disabled]):not([data-readonly]):not([data-loading]):is(:active, [data-pressed])
|
|
211
|
-
[data-scope='switch'][data-part='thumb'] {
|
|
212
|
-
translate: calc(-1 * (var(--xh-_switch-thumb-size) - var(--xh-_switch-thumb-press-stretch))) 0;
|
|
204
|
+
translate: calc(var(--xh-direction-sign) * (var(--xh-_switch-thumb-size) - var(--xh-_switch-thumb-press-stretch))) 0;
|
|
213
205
|
}
|
|
214
206
|
|
|
215
207
|
/* 禁用滑块收掉抬起影、前景置灰;描边与底保持,滑块仍是一块读得出位置的实体 */
|
|
@@ -227,19 +219,22 @@
|
|
|
227
219
|
--xh-action-cursor-focus-visible: progress;
|
|
228
220
|
}
|
|
229
221
|
|
|
230
|
-
|
|
222
|
+
/* 滑块里那枚环由加载环配方画在 ::before 上(连接层投影 data-xh-loading-ring),随 data-loading 淡入淡出、
|
|
223
|
+
转与停;起始边取强调色、转速认使用者槽。环叠在滑块正中那一格,不挤开作者放进滑块的图形 */
|
|
224
|
+
[data-scope='switch'][data-part='thumb'] {
|
|
225
|
+
--xh-_loading-ring-fg: var(--xh-switch-loading-fg, var(--xh-_switch-accent));
|
|
226
|
+
--xh-_loading-ring-duration: var(--xh-switch-loading-duration, var(--xh-motion-loop-spin));
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
[data-scope='switch'][data-part='thumb']::before {
|
|
231
230
|
content: '';
|
|
231
|
+
grid-area: 1 / 1;
|
|
232
232
|
inline-size: 60%;
|
|
233
233
|
block-size: 60%;
|
|
234
|
-
border: var(--xh-stroke-thin) solid transparent;
|
|
235
|
-
border-block-start-color: var(--xh-switch-loading-fg, var(--xh-_switch-accent));
|
|
236
|
-
/* 加载环是等宽高的圆(§6.3 全部加载环取 circle) */
|
|
237
|
-
border-radius: var(--xh-shape-circle);
|
|
238
|
-
animation: xh-switch-rotate var(--xh-switch-loading-duration, var(--xh-spin-duration)) var(--xh-motion-ease-loop) infinite;
|
|
239
234
|
}
|
|
240
235
|
|
|
241
236
|
/* —— 带文字的整行:<label> 包住控件与文字,与 checkbox 的标签、checkbox-group 的条目同一副样子 ——
|
|
242
|
-
文字是控件自己的文字,字号随 size 档取 --xh-control-font
|
|
237
|
+
文字是控件自己的文字,字号随 size 档取 --xh-control-font-*(控件字号随档);
|
|
243
238
|
行高取正文档,长文字可以自然换行 */
|
|
244
239
|
[data-scope='switch'][data-part='label'] {
|
|
245
240
|
--xh-_switch-label-font-size: var(--xh-control-font-md);
|
|
@@ -261,7 +256,7 @@
|
|
|
261
256
|
--xh-_switch-label-font-size: var(--xh-control-font-lg);
|
|
262
257
|
}
|
|
263
258
|
|
|
264
|
-
/* 禁用标签色统一 --xh-fg-subtle
|
|
259
|
+
/* 禁用标签色统一 --xh-fg-subtle */
|
|
265
260
|
[data-scope='switch'][data-part='label'][data-disabled] {
|
|
266
261
|
color: var(--xh-switch-label-fg-disabled, var(--xh-fg-subtle));
|
|
267
262
|
cursor: not-allowed;
|
|
@@ -291,23 +286,12 @@
|
|
|
291
286
|
[data-scope='switch'][data-part='root'] {
|
|
292
287
|
--xh-_switch-thumb-press-stretch: var(--xh-motion-distance-sm);
|
|
293
288
|
}
|
|
294
|
-
|
|
295
|
-
[data-scope='switch'][data-part='thumb'][data-loading]::after {
|
|
296
|
-
border-style: dotted;
|
|
297
|
-
border-color: var(--xh-switch-loading-fg, var(--xh-_switch-accent));
|
|
298
|
-
animation: none;
|
|
299
|
-
}
|
|
300
289
|
}
|
|
301
290
|
|
|
302
291
|
:where([data-motion='reduce']) [data-scope='switch'][data-part='root'] {
|
|
303
292
|
--xh-_switch-thumb-press-stretch: var(--xh-motion-distance-sm);
|
|
304
293
|
}
|
|
305
294
|
|
|
306
|
-
:where([data-motion='reduce']) [data-scope='switch'][data-part='thumb'][data-loading]::after {
|
|
307
|
-
border-style: dotted;
|
|
308
|
-
border-color: var(--xh-switch-loading-fg, var(--xh-_switch-accent));
|
|
309
|
-
animation: none;
|
|
310
|
-
}
|
|
311
295
|
|
|
312
296
|
/* 声明过任何 display 就盖掉了 UA 的 [hidden]{display:none},收起态得自己还回去。
|
|
313
297
|
写在文件末尾:兜底必须排在该部件所有 display 声明之后 */
|
|
@@ -363,14 +347,5 @@
|
|
|
363
347
|
box-shadow: none;
|
|
364
348
|
}
|
|
365
349
|
|
|
366
|
-
/* 打印:动画会被定格在任意一帧——转了一半的圈、扫到一半的微光。这里换成静止的表达,
|
|
367
|
-
取值与减弱动效那一档相同。两档各写一块、不并进一条媒体查询列表:减弱动效另有一份
|
|
368
|
-
:where([data-motion='reduce']) 的钩子版本与它成对,打印没有对应的钩子可配,
|
|
369
|
-
并成一条之后这层配对关系在文本上就断了。 */
|
|
370
|
-
[data-scope='switch'][data-part='thumb'][data-loading]::after {
|
|
371
|
-
border-style: dotted;
|
|
372
|
-
border-color: var(--xh-switch-loading-fg, var(--xh-_switch-accent));
|
|
373
|
-
animation: none;
|
|
374
|
-
}
|
|
375
350
|
}
|
|
376
351
|
}
|