@xihan-ui/styles 2.1.0 → 3.1.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 +1261 -0
- package/README.md +6 -1
- package/component-tokens.d.ts +533 -96
- package/components.tokens.json +35461 -26045
- package/css/accordion.css +34 -8
- package/css/alert.css +59 -1
- package/css/anchor.css +46 -8
- package/css/approval.css +116 -76
- package/css/avatar-group.css +1 -1
- package/css/avatar.css +13 -5
- package/css/back-top.css +61 -42
- package/css/badge.css +62 -12
- package/css/bar-code.css +1 -1
- package/css/breadcrumb.css +62 -3
- package/css/button-group.css +4 -4
- package/css/button.css +67 -19
- package/css/calendar-picker.css +19 -0
- package/css/calendar-range-picker.css +39 -2
- package/css/card.css +115 -1
- package/css/carousel.css +148 -43
- package/css/cartesian-chart.css +830 -0
- package/css/cascader.css +181 -65
- package/css/checkbox-group.css +59 -89
- package/css/checkbox.css +16 -49
- package/css/citation.css +470 -0
- package/css/clipboard.css +20 -63
- package/css/code-view.css +101 -6
- package/css/collapsible.css +34 -8
- package/css/color-field.css +18 -0
- package/css/color-picker.css +128 -50
- package/css/color-slider.css +22 -15
- package/css/color-swatch-picker.css +3 -1
- package/css/combobox.css +80 -33
- package/css/command.css +45 -43
- package/css/context-menu.css +39 -22
- package/css/date-field.css +56 -0
- package/css/date-picker.css +132 -26
- package/css/date-range-picker.css +337 -14
- package/css/description.css +17 -1
- package/css/descriptions.css +42 -0
- package/css/dialog.css +94 -36
- package/css/diff-view.css +97 -12
- package/css/download-trigger.css +44 -78
- package/css/drawer.css +160 -119
- package/css/editable.css +19 -0
- package/css/empty-state.css +7 -6
- package/css/field-array.css +36 -0
- package/css/field.css +20 -18
- package/css/file-upload.css +125 -135
- package/css/flex.css +324 -8
- package/css/float-button.css +263 -38
- package/css/floating-panel.css +53 -19
- package/css/form.css +31 -17
- 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 +31 -14
- package/css/icon.css +100 -0
- package/css/image-cropper.css +33 -7
- package/css/image-viewer.css +167 -22
- package/css/image.css +23 -4
- package/css/input-group.css +11 -13
- package/css/json-viewer.css +50 -2
- package/css/layout.css +68 -18
- package/css/liquid.css +106 -0
- package/css/list.css +1 -1
- package/css/listbox.css +46 -6
- package/css/loading-bar.css +27 -13
- package/css/log.css +129 -33
- 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 -19
- package/css/menu.css +35 -21
- package/css/menubar.css +36 -20
- package/css/message-feed.css +172 -51
- package/css/navigation-menu.css +172 -11
- package/css/notification.css +435 -108
- package/css/number-field.css +22 -0
- package/css/page-header.css +3 -1
- package/css/pagination.css +126 -24
- package/css/password-input.css +40 -8
- package/css/pie-chart.css +247 -0
- package/css/popconfirm.css +44 -50
- package/css/popover.css +50 -14
- package/css/progress.css +308 -10
- package/css/prompt-input.css +36 -0
- package/css/question-flow.css +97 -57
- package/css/radar-chart.css +233 -0
- package/css/radio-group.css +363 -5
- package/css/rating.css +21 -23
- package/css/reasoning.css +61 -54
- 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 +74 -55
- package/css/side-nav.css +173 -24
- package/css/signature-pad.css +16 -1
- package/css/skeleton.css +13 -14
- package/css/slider.css +35 -13
- package/css/sortable.css +37 -7
- package/css/sparkline.css +164 -0
- package/css/spinner.css +50 -22
- package/css/splitter.css +7 -1
- package/css/statistic.css +10 -0
- package/css/steps.css +248 -29
- package/css/switch.css +23 -48
- package/css/table.css +175 -118
- package/css/tabs.css +231 -19
- package/css/tag-group.css +27 -3
- package/css/tag.css +53 -12
- 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 +103 -17
- package/css/time-range-picker.css +45 -16
- package/css/timeline.css +1 -1
- package/css/toggle-group.css +4 -4
- package/css/toggle.css +4 -3
- package/css/tool-call.css +59 -51
- package/css/toolbar.css +101 -3
- package/css/tooltip.css +15 -2
- package/css/tour.css +42 -12
- package/css/transfer.css +98 -75
- package/css/tree-select.css +232 -53
- package/css/tree.css +271 -55
- package/css/truncate.css +55 -12
- package/css/typography.css +93 -0
- package/css/virtualizer.css +56 -0
- 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 +9 -15
- 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 +207 -10
- package/family/tag-list.css +59 -0
- package/index.css +13824 -4030
- package/index.unlayered.css +13403 -3605
- 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/date-picker.css
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
/* 共享关键帧由 family/motion.css 提供,本皮肤 @import 它,单独引入仍成立。 */
|
|
14
14
|
@import '../family/motion.css';
|
|
15
|
+
@import '../family/tag-list.css';
|
|
15
16
|
|
|
16
17
|
@layer xihan.components {
|
|
17
18
|
/* 皮肤在场的标记:开发模式下按 scope 探一次,取不到就说明这份皮肤没被引入。 */
|
|
@@ -73,6 +74,7 @@
|
|
|
73
74
|
--xh-_date-picker-control-px: var(--xh-control-px-md);
|
|
74
75
|
--xh-_date-picker-gap: var(--xh-control-gap-md);
|
|
75
76
|
--xh-_date-picker-font-size: var(--xh-control-font-md);
|
|
77
|
+
--xh-_date-picker-item-py: var(--xh-list-option-py-md);
|
|
76
78
|
|
|
77
79
|
/* 选中对号随语气走。没写 data-tone 时这几个 --xh-_tone* 没被声明,退回品牌色 */
|
|
78
80
|
/* 内嵌日期段沿用日期输入的轻强调焦点:当前段是「当前项」,淡底 + 淡底前景,不另画一套实心选择态。 */
|
|
@@ -80,7 +82,8 @@
|
|
|
80
82
|
--xh-_date-field-segment-fg: var(--xh-_tone-fg, var(--xh-fg-on-brand-subtle));
|
|
81
83
|
/* 对号画在普通面上,取语气前景角色,不能拿确认按钮的实心背景色充当前景。 */
|
|
82
84
|
--xh-_date-picker-check-fg: var(--xh-_tone, var(--xh-fg-brand));
|
|
83
|
-
|
|
85
|
+
/* 时间列与预设的对号与 Select 等列表的对号同一把尺:指示符档,随密度收放 */
|
|
86
|
+
--xh-_date-picker-time-item-check-size: var(--xh-control-indicator-size);
|
|
84
87
|
}
|
|
85
88
|
|
|
86
89
|
/* 与文本框、分段日期同一套堆叠:标签一行、输入行一行 */
|
|
@@ -107,6 +110,7 @@
|
|
|
107
110
|
--xh-_date-picker-control-px: var(--xh-control-px-sm);
|
|
108
111
|
--xh-_date-picker-gap: var(--xh-control-gap-sm);
|
|
109
112
|
--xh-_date-picker-font-size: var(--xh-control-font-sm);
|
|
113
|
+
--xh-_date-picker-item-py: var(--xh-list-option-py-sm);
|
|
110
114
|
}
|
|
111
115
|
|
|
112
116
|
[data-scope='date-picker']:is([data-part='root'], [data-part='positioner'])[data-size='lg'] {
|
|
@@ -115,10 +119,11 @@
|
|
|
115
119
|
--xh-_date-picker-control-px: var(--xh-control-px-lg);
|
|
116
120
|
--xh-_date-picker-gap: var(--xh-control-gap-lg);
|
|
117
121
|
--xh-_date-picker-font-size: var(--xh-control-font-lg);
|
|
122
|
+
--xh-_date-picker-item-py: var(--xh-list-option-py-lg);
|
|
118
123
|
}
|
|
119
124
|
|
|
120
125
|
/* 375px 复合面板要同时容下日历与时/分两列;手机档用正式小指示符,平板起恢复16px。 */
|
|
121
|
-
@media (width
|
|
126
|
+
@media not all and (min-width: 768px) {
|
|
122
127
|
[data-scope='date-picker']:is([data-part='root'], [data-part='positioner']) {
|
|
123
128
|
--xh-_date-picker-time-item-check-size: var(--xh-control-indicator-sm);
|
|
124
129
|
}
|
|
@@ -199,11 +204,69 @@
|
|
|
199
204
|
color: var(--xh-date-picker-literal-fg, var(--xh-fg-subtle));
|
|
200
205
|
}
|
|
201
206
|
|
|
207
|
+
/* 整条占位:一段都没填、焦点也不在段上时,段位与分隔符让位给一句占位文字,焦点一进到段上就换回段位。
|
|
208
|
+
段位只是淡出(仍可聚焦、仍在读屏树里),文字以生成内容压在同一行上、不吃指针,点下去落到底下的段位 */
|
|
209
|
+
[data-scope='date-picker'][data-part='segment-group'][data-placeholder-shown] {
|
|
210
|
+
position: relative;
|
|
211
|
+
color: transparent;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
[data-scope='date-picker'][data-part='segment-group'][data-placeholder-shown] > * {
|
|
215
|
+
opacity: 0;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
[data-scope='date-picker'][data-part='segment-group'][data-placeholder-shown]::before {
|
|
219
|
+
content: attr(data-placeholder-text);
|
|
220
|
+
position: absolute;
|
|
221
|
+
inset-inline: 0;
|
|
222
|
+
inset-block-start: 50%;
|
|
223
|
+
overflow: hidden;
|
|
224
|
+
color: var(--xh-date-picker-placeholder-fg, var(--xh-fg-subtle));
|
|
225
|
+
white-space: nowrap;
|
|
226
|
+
text-overflow: ellipsis;
|
|
227
|
+
pointer-events: none;
|
|
228
|
+
translate: 0 -50%;
|
|
229
|
+
}
|
|
230
|
+
|
|
202
231
|
/* 容器自己不占 Tab 位、也不承载焦点,环由 control 画,这里不再套一圈 */
|
|
203
232
|
[data-scope='date-picker'][data-part='segment-group']:focus-visible {
|
|
204
233
|
outline: none;
|
|
205
234
|
}
|
|
206
235
|
|
|
236
|
+
/* 多选的标签行:段位让位,选中的日期在盒里排成标签,超过 maxTagCount 的折进 +N。
|
|
237
|
+
行里每一枚都是 tag(data-scope="tag"),样子归 tag.css;行怎么排、标签怎么进出归标签行家族配方,
|
|
238
|
+
这里只接使用者的间距槽,并让它像段位那样占满输入行剩下的宽度 */
|
|
239
|
+
[data-scope='date-picker'][data-part='tag-list'] {
|
|
240
|
+
--xh-tag-list-gap: var(--xh-date-picker-tag-list-gap, var(--xh-space-1));
|
|
241
|
+
|
|
242
|
+
/* 基准取 0:只吃两颗钮剩下的宽度、在自己里面折行;按内容宽算基准的话,盒子会先在钮前面折行,把钮挤到最后一行 */
|
|
243
|
+
flex: 1 1 0;
|
|
244
|
+
flex-wrap: wrap;
|
|
245
|
+
font-size: var(--xh-date-picker-font-size, var(--xh-_date-picker-font-size));
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
/* 日期标签是定长文字,截短了就读不出是哪天:不收缩,排不下就折到下一行(与标签输入同一种排法),
|
|
249
|
+
盒随行数长高(字段家族的 multi-tag 布局给),到上限后在盒内滚动 */
|
|
250
|
+
[data-scope='date-picker'][data-part='tag-list'] > [data-scope='tag'][data-part='root'] {
|
|
251
|
+
flex: none;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
[data-scope='date-picker'][data-part='control'][data-xh-field-layout='multi-tag'] {
|
|
255
|
+
max-block-size: var(--xh-date-picker-control-max-h, var(--xh-viewport-h-sm));
|
|
256
|
+
overflow-y: auto;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
/* 没有选中时这一行承载整条占位:与单选那条占位同一句文字、同一个颜色槽 */
|
|
260
|
+
[data-scope='date-picker'][data-part='tag-list'][data-placeholder-shown]::before {
|
|
261
|
+
content: attr(data-placeholder-text);
|
|
262
|
+
min-inline-size: 0;
|
|
263
|
+
overflow: hidden;
|
|
264
|
+
color: var(--xh-date-picker-placeholder-fg, var(--xh-fg-subtle));
|
|
265
|
+
white-space: nowrap;
|
|
266
|
+
text-overflow: ellipsis;
|
|
267
|
+
pointer-events: none;
|
|
268
|
+
}
|
|
269
|
+
|
|
207
270
|
/* 两个按钮同一副长相:贴在框内末端的小方钮,不占宽度也不撑高 control。正方视觉盒、inset 圆角、
|
|
208
271
|
悬停 100 / 按下 200 与 0.97 按压、粗指针热区、禁用面与 :focus-visible 关环(盒的 :focus-within
|
|
209
272
|
已画了一圈)全由 Action Control 的 field-inset ghost 档给,组件只映射既有覆盖槽。
|
|
@@ -243,10 +306,11 @@
|
|
|
243
306
|
--xh-action-fg-rest: var(--xh-date-picker-action-fg-hover, var(--xh-fg-default));
|
|
244
307
|
}
|
|
245
308
|
|
|
246
|
-
/*
|
|
309
|
+
/* 有值时清空钮顶上来,日历钮让位:两颗并排堆着用户分不清点哪个。
|
|
310
|
+
多选不让位:段位收起后日历钮是唯一的键盘入口(退格摘标签也在它身上),藏了键盘就进不来 */
|
|
247
311
|
[data-scope='date-picker'][data-part='control']:has(
|
|
248
312
|
> [data-scope='date-picker'][data-part='clear-trigger']:not([hidden])
|
|
249
|
-
)
|
|
313
|
+
):not(:has(> [data-scope='date-picker'][data-part='tag-list']:not([hidden])))
|
|
250
314
|
> [data-scope='date-picker'][data-part='trigger'] {
|
|
251
315
|
display: none;
|
|
252
316
|
}
|
|
@@ -265,9 +329,10 @@
|
|
|
265
329
|
border-radius: var(--xh-date-picker-content-radius, var(--xh-shape-overlay));
|
|
266
330
|
background: var(--xh-date-picker-content-bg, var(--xh-bg-surface));
|
|
267
331
|
color: var(--xh-date-picker-content-fg, var(--xh-fg-default));
|
|
268
|
-
/*
|
|
332
|
+
/* 日历是定高结构:网格、时间列与确认行都按 px 排,天然高度就是它们的和,缺省不另设上限
|
|
333
|
+
(按 rem 的滚动面档会随根字号缩小,根字号低于 16px 时确认行就被挤到滚动里);
|
|
269
334
|
可用高度是定位引擎算出的视口余量,视口真放不下时再收一截 */
|
|
270
|
-
max-block-size: min(var(--xh-date-picker-max-h, var(--xh-
|
|
335
|
+
max-block-size: min(var(--xh-date-picker-max-h, var(--xh-_date-picker-available-h)), var(--xh-_date-picker-available-h));
|
|
271
336
|
/* 两轴都滚:块轴放不下时面板内自己竖滚,行内轴放不下时面板内自己横滚,
|
|
272
337
|
日历那几块保持各自的天然宽度,不被压 */
|
|
273
338
|
overflow: auto;
|
|
@@ -291,7 +356,8 @@
|
|
|
291
356
|
outline: none;
|
|
292
357
|
}
|
|
293
358
|
|
|
294
|
-
|
|
359
|
+
/* 挂载时就开着的那一段(data-instant)属于首帧,直接呈现 */
|
|
360
|
+
[data-scope='date-picker'][data-part='content'][data-state='open']:not([data-instant]) {
|
|
295
361
|
animation: xh-overlay-slide-in var(--xh-motion-duration-enter) var(--xh-motion-ease-enter-strong);
|
|
296
362
|
}
|
|
297
363
|
|
|
@@ -344,7 +410,7 @@
|
|
|
344
410
|
手机档两张月历折行堆叠,线画在块起始边 */
|
|
345
411
|
[data-scope='date-picker'][data-part='calendar'] + [data-scope='date-picker'][data-part='calendar'] {
|
|
346
412
|
padding-block-start: var(--xh-date-picker-panel-gap, var(--xh-space-3));
|
|
347
|
-
border-block-start: var(--xh-stroke-thin) solid var(--xh-date-picker-panel-divider, var(--xh-material-
|
|
413
|
+
border-block-start: var(--xh-stroke-thin) solid var(--xh-date-picker-panel-divider, var(--xh-material-solid-separator));
|
|
348
414
|
}
|
|
349
415
|
|
|
350
416
|
/* 平板起两张月历并排放得下,线改画在行内起始边 */
|
|
@@ -353,7 +419,7 @@
|
|
|
353
419
|
padding-block-start: 0;
|
|
354
420
|
padding-inline-start: var(--xh-date-picker-panel-gap, var(--xh-space-3));
|
|
355
421
|
border-block-start: none;
|
|
356
|
-
border-inline-start: var(--xh-stroke-thin) solid var(--xh-date-picker-panel-divider, var(--xh-material-
|
|
422
|
+
border-inline-start: var(--xh-stroke-thin) solid var(--xh-date-picker-panel-divider, var(--xh-material-solid-separator));
|
|
357
423
|
}
|
|
358
424
|
}
|
|
359
425
|
|
|
@@ -393,7 +459,7 @@
|
|
|
393
459
|
inset-block: 0;
|
|
394
460
|
inset-inline-end: calc(-1 * var(--xh-stroke-thin));
|
|
395
461
|
inline-size: var(--xh-stroke-thin);
|
|
396
|
-
background: var(--xh-date-picker-column-divider, var(--xh-material-
|
|
462
|
+
background: var(--xh-date-picker-column-divider, var(--xh-material-solid-separator));
|
|
397
463
|
pointer-events: none;
|
|
398
464
|
}
|
|
399
465
|
|
|
@@ -418,7 +484,7 @@
|
|
|
418
484
|
overflow-y: hidden;
|
|
419
485
|
/* 浮层滚动面:滚到头不把页面一起带走 */
|
|
420
486
|
overscroll-behavior: contain;
|
|
421
|
-
border-block-end: var(--xh-stroke-thin) solid var(--xh-date-picker-column-divider, var(--xh-material-
|
|
487
|
+
border-block-end: var(--xh-stroke-thin) solid var(--xh-date-picker-column-divider, var(--xh-material-solid-separator));
|
|
422
488
|
}
|
|
423
489
|
|
|
424
490
|
/* 平板起:换成贴在日历行内起始一侧的竖列,滚动轴与分隔线一起转过来 */
|
|
@@ -428,7 +494,7 @@
|
|
|
428
494
|
flex-direction: column;
|
|
429
495
|
overflow: auto;
|
|
430
496
|
border-block-end: none;
|
|
431
|
-
border-inline-end: var(--xh-stroke-thin) solid var(--xh-date-picker-column-divider, var(--xh-material-
|
|
497
|
+
border-inline-end: var(--xh-stroke-thin) solid var(--xh-date-picker-column-divider, var(--xh-material-solid-separator));
|
|
432
498
|
}
|
|
433
499
|
}
|
|
434
500
|
|
|
@@ -443,7 +509,7 @@
|
|
|
443
509
|
--xh-collection-block-padding: var(--xh-date-picker-preset-py, var(--xh-space-1));
|
|
444
510
|
--xh-collection-inline-padding: var(--xh-date-picker-preset-px, var(--xh-space-3));
|
|
445
511
|
--xh-collection-font-size: var(--xh-text-secondary-size);
|
|
446
|
-
--xh-collection-radius: var(--xh-date-picker-preset-radius, var(--xh-shape-
|
|
512
|
+
--xh-collection-radius: var(--xh-date-picker-preset-radius, var(--xh-shape-inset));
|
|
447
513
|
/* 面板是实体面(floating),正文取页面前景 */
|
|
448
514
|
--xh-collection-fg-rest: var(--xh-fg-default);
|
|
449
515
|
--xh-collection-fg-hover: var(--xh-fg-default);
|
|
@@ -470,7 +536,7 @@
|
|
|
470
536
|
/* 对号的末端轨始终留着,切换选中时文字与整列宽度都不移动。 */
|
|
471
537
|
padding-inline-end: calc(
|
|
472
538
|
var(--xh-date-picker-preset-px, var(--xh-space-3)) +
|
|
473
|
-
var(--xh-date-picker-preset-check-size, var(--xh-
|
|
539
|
+
var(--xh-date-picker-preset-check-size, var(--xh-control-indicator-size)) +
|
|
474
540
|
var(--xh-space-1)
|
|
475
541
|
);
|
|
476
542
|
white-space: nowrap;
|
|
@@ -495,8 +561,8 @@
|
|
|
495
561
|
position: absolute;
|
|
496
562
|
inset-block-start: 50%;
|
|
497
563
|
inset-inline-end: var(--xh-date-picker-preset-px, var(--xh-space-3));
|
|
498
|
-
inline-size: var(--xh-date-picker-preset-check-size, var(--xh-
|
|
499
|
-
block-size: var(--xh-date-picker-preset-check-size, var(--xh-
|
|
564
|
+
inline-size: var(--xh-date-picker-preset-check-size, var(--xh-control-indicator-size));
|
|
565
|
+
block-size: var(--xh-date-picker-preset-check-size, var(--xh-control-indicator-size));
|
|
500
566
|
translate: 0 -50%;
|
|
501
567
|
background-color: var(--xh-date-picker-preset-check-fg, var(--xh-_date-picker-check-fg));
|
|
502
568
|
opacity: 0;
|
|
@@ -523,10 +589,7 @@
|
|
|
523
589
|
gap: var(--xh-date-picker-time-column-gap, 0);
|
|
524
590
|
min-inline-size: var(--xh-date-picker-time-column-min-w, var(--xh-overlay-column-min-w));
|
|
525
591
|
/* 几列并排:定高而不是随内容收,否则时列与分列的可选值一多一少就错位 */
|
|
526
|
-
block-size: var(
|
|
527
|
-
--xh-date-picker-time-column-h,
|
|
528
|
-
min(var(--xh-viewport-h-md), calc(var(--xh-control-h-sm) * 7 + var(--xh-space-7)))
|
|
529
|
-
);
|
|
592
|
+
block-size: var(--xh-date-picker-time-column-h, var(--xh-overlay-calendar-column-h));
|
|
530
593
|
margin-block-start: var(
|
|
531
594
|
--xh-date-picker-time-column-offset,
|
|
532
595
|
calc(var(--xh-control-h-sm) + var(--xh-date-picker-calendar-gap, var(--xh-space-2)))
|
|
@@ -537,7 +600,7 @@
|
|
|
537
600
|
overflow-y: auto;
|
|
538
601
|
/* 浮层滚动面:滚到头不把页面一起带走 */
|
|
539
602
|
overscroll-behavior: contain;
|
|
540
|
-
border-inline-start: var(--xh-stroke-thin) solid var(--xh-date-picker-column-divider, var(--xh-material-
|
|
603
|
+
border-inline-start: var(--xh-stroke-thin) solid var(--xh-date-picker-column-divider, var(--xh-material-solid-separator));
|
|
541
604
|
}
|
|
542
605
|
|
|
543
606
|
[data-scope='date-picker'][data-part='time-column'][hidden] {
|
|
@@ -554,10 +617,10 @@
|
|
|
554
617
|
var(--xh-date-picker-time-item-px, var(--xh-space-0_5)),
|
|
555
618
|
calc(var(--xh-date-picker-time-item-check-size, var(--xh-_date-picker-time-item-check-size)) + var(--xh-space-0_5))
|
|
556
619
|
);
|
|
557
|
-
--xh-collection-block-padding: var(--xh-date-picker-time-item-py,
|
|
620
|
+
--xh-collection-block-padding: var(--xh-date-picker-time-item-py, var(--xh-_date-picker-item-py));
|
|
558
621
|
--xh-collection-inline-padding: var(--xh-_date-picker-time-item-rail);
|
|
559
|
-
--xh-collection-font-size: var(--xh-
|
|
560
|
-
--xh-collection-radius: var(--xh-date-picker-time-item-radius, var(--xh-shape-
|
|
622
|
+
--xh-collection-font-size: var(--xh-date-picker-time-item-font-size, var(--xh-_date-picker-font-size));
|
|
623
|
+
--xh-collection-radius: var(--xh-date-picker-time-item-radius, var(--xh-shape-inset));
|
|
561
624
|
--xh-collection-fg-rest: var(--xh-date-picker-time-item-fg, var(--xh-material-frosted-fg));
|
|
562
625
|
--xh-collection-fg-hover: var(--xh-date-picker-time-item-fg, var(--xh-material-frosted-fg));
|
|
563
626
|
--xh-collection-fg-keyboard-highlight: var(--xh-date-picker-time-item-fg, var(--xh-material-frosted-fg));
|
|
@@ -584,8 +647,9 @@
|
|
|
584
647
|
flex: none;
|
|
585
648
|
align-items: center;
|
|
586
649
|
justify-content: center;
|
|
587
|
-
block-size: var(--xh-date-picker-time-item-h,
|
|
650
|
+
block-size: var(--xh-date-picker-time-item-h, auto);
|
|
588
651
|
font-variant-numeric: tabular-nums;
|
|
652
|
+
line-height: var(--xh-leading-normal);
|
|
589
653
|
text-align: center;
|
|
590
654
|
white-space: nowrap;
|
|
591
655
|
user-select: none;
|
|
@@ -628,7 +692,12 @@
|
|
|
628
692
|
opacity: 1;
|
|
629
693
|
}
|
|
630
694
|
|
|
631
|
-
|
|
695
|
+
/* 界外、被判为不可用的格走 aria-disabled,家族按它给禁用面;选中标记跟着降级 */
|
|
696
|
+
[data-scope='date-picker'][data-part='time-item'][data-disabled]::after {
|
|
697
|
+
background-color: var(--xh-fg-disabled);
|
|
698
|
+
}
|
|
699
|
+
|
|
700
|
+
@media not all and (min-width: 768px) {
|
|
632
701
|
[data-scope='date-picker'][data-part='content'] {
|
|
633
702
|
padding-inline: var(--xh-date-picker-content-px, var(--xh-space-2));
|
|
634
703
|
}
|
|
@@ -726,6 +795,16 @@
|
|
|
726
795
|
}
|
|
727
796
|
|
|
728
797
|
@media (forced-colors: active) {
|
|
798
|
+
/* 整条占位的文字照系统的弱色画;段位让位时的透明字不被强制换色顶回来 */
|
|
799
|
+
[data-scope='date-picker'][data-part='segment-group'][data-placeholder-shown] {
|
|
800
|
+
forced-color-adjust: none;
|
|
801
|
+
}
|
|
802
|
+
|
|
803
|
+
[data-scope='date-picker'][data-part='segment-group'][data-placeholder-shown]::before,
|
|
804
|
+
[data-scope='date-picker'][data-part='tag-list'][data-placeholder-shown]::before {
|
|
805
|
+
color: GrayText;
|
|
806
|
+
}
|
|
807
|
+
|
|
729
808
|
/* 系统接管底色后仍保住末端对号;禁用标记改用系统失效色。 */
|
|
730
809
|
[data-scope='date-picker'][data-part='preset']::after,
|
|
731
810
|
[data-scope='date-picker'][data-part='time-item']::after {
|
|
@@ -733,16 +812,43 @@
|
|
|
733
812
|
background-color: CanvasText;
|
|
734
813
|
}
|
|
735
814
|
|
|
815
|
+
/* 按下与没被高亮时的悬停,家族把条目涂成 Highlight,对号跟着换 HighlightText */
|
|
816
|
+
[data-scope='date-picker'][data-part='preset']:not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):is(:active, [data-pressed], :hover:not(:focus-visible, [data-highlighted]))::after,
|
|
817
|
+
[data-scope='date-picker'][data-part='time-item']:not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):is(:active, [data-pressed], :hover:not(:focus-visible, [data-highlighted]))::after {
|
|
818
|
+
background-color: HighlightText;
|
|
819
|
+
}
|
|
820
|
+
|
|
736
821
|
[data-scope='date-picker'][data-part='preset'][data-disabled]::after,
|
|
822
|
+
[data-scope='date-picker'][data-part='time-item'][data-disabled]::after,
|
|
737
823
|
[data-scope='date-picker'][data-part='time-column'][aria-disabled='true'] [data-part='time-item']::after {
|
|
738
824
|
background-color: GrayText;
|
|
739
825
|
}
|
|
740
826
|
|
|
741
827
|
[data-scope='date-picker'][data-part='preset'][data-disabled],
|
|
828
|
+
[data-scope='date-picker'][data-part='time-item'][data-disabled],
|
|
742
829
|
[data-scope='date-picker'][data-part='time-column'][aria-disabled='true'] [data-part='time-item'] {
|
|
743
830
|
color: GrayText;
|
|
744
831
|
}
|
|
745
832
|
}
|
|
833
|
+
|
|
834
|
+
@media (forced-colors: active) {
|
|
835
|
+
/* 兜底字形是 mask 挖出来的一块底色,这一档里底色被系统换成 Canvas,字形跟着消失。
|
|
836
|
+
字形退出强制换色、直接写系统色(不能取 currentColor:退出强制换色的伪元素读到的是被系统换掉之前的作者色):
|
|
837
|
+
按钮面上取 ButtonText,悬停与按下时家族把按钮涂成 Highlight、字形换 HighlightText;
|
|
838
|
+
禁用取 GrayText */
|
|
839
|
+
[data-scope='date-picker']:is([data-part='clear-trigger'], [data-part='trigger']):empty::before {
|
|
840
|
+
forced-color-adjust: none;
|
|
841
|
+
background-color: ButtonText;
|
|
842
|
+
}
|
|
843
|
+
|
|
844
|
+
[data-scope='date-picker']:is([data-part='clear-trigger'], [data-part='trigger']):not([data-disabled]):not([data-loading]):is(:hover, :active, [data-pressed]):empty::before {
|
|
845
|
+
background-color: HighlightText;
|
|
846
|
+
}
|
|
847
|
+
|
|
848
|
+
[data-scope='date-picker']:is([data-part='clear-trigger'], [data-part='trigger'])[data-disabled]:empty::before {
|
|
849
|
+
background-color: GrayText;
|
|
850
|
+
}
|
|
851
|
+
}
|
|
746
852
|
}
|
|
747
853
|
|
|
748
854
|
@layer xihan.motion {
|