@xihan-ui/styles 3.1.0 → 3.2.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 +29 -0
- package/component-tokens.d.ts +1 -0
- package/components.tokens.json +32 -2
- package/css/alert.css +2 -2
- package/css/approval.css +4 -4
- package/css/button.css +9 -5
- package/css/calendar-picker.css +3 -3
- package/css/calendar-range-picker.css +7 -7
- package/css/carousel.css +45 -13
- package/css/cartesian-chart.css +11 -11
- package/css/cascader.css +10 -10
- package/css/citation.css +2 -2
- package/css/code-view.css +6 -6
- package/css/color-swatch-picker.css +9 -4
- package/css/combobox.css +12 -4
- package/css/command.css +1 -1
- package/css/date-field.css +8 -2
- package/css/date-picker.css +13 -7
- package/css/date-range-picker.css +13 -7
- package/css/diff-view.css +8 -8
- package/css/field-array.css +1 -1
- package/css/file-upload.css +1 -1
- package/css/float-button.css +42 -27
- package/css/form.css +6 -6
- package/css/graph-chart.css +2 -2
- package/css/highlight.css +1 -1
- package/css/image.css +1 -1
- package/css/mention.css +1 -1
- package/css/message-feed.css +1 -1
- package/css/notification.css +18 -18
- package/css/number-field.css +18 -18
- package/css/page-header.css +2 -2
- package/css/password-input.css +2 -2
- package/css/popconfirm.css +3 -3
- package/css/question-flow.css +8 -8
- package/css/radar-chart.css +6 -6
- package/css/rating.css +1 -1
- package/css/select.css +2 -2
- package/css/separator.css +2 -2
- package/css/side-nav.css +13 -13
- package/css/skeleton.css +5 -5
- package/css/slider.css +6 -6
- package/css/sortable.css +2 -2
- package/css/table.css +2 -2
- package/css/tags-input.css +1 -1
- package/css/tool-call.css +7 -7
- package/css/tooltip.css +1 -1
- package/css/tree-select.css +2 -2
- package/dist/css/accordion.css +269 -0
- package/dist/css/affix.css +47 -0
- package/dist/css/alert.css +247 -0
- package/dist/css/anchor.css +252 -0
- package/dist/css/approval.css +501 -0
- package/dist/css/avatar-group.css +99 -0
- package/dist/css/avatar.css +98 -0
- package/dist/css/back-top.css +161 -0
- package/dist/css/badge.css +205 -0
- package/dist/css/bar-code.css +62 -0
- package/dist/css/breadcrumb.css +230 -0
- package/dist/css/button-group.css +263 -0
- package/dist/css/button.css +219 -0
- package/dist/css/calendar-picker.css +467 -0
- package/dist/css/calendar-range-picker.css +554 -0
- package/dist/css/card.css +221 -0
- package/dist/css/carousel.css +710 -0
- package/dist/css/cartesian-chart.css +830 -0
- package/dist/css/cascader.css +961 -0
- package/dist/css/checkbox-group.css +358 -0
- package/dist/css/checkbox.css +257 -0
- package/dist/css/citation.css +470 -0
- package/dist/css/clipboard.css +315 -0
- package/dist/css/code-view.css +374 -0
- package/dist/css/collapsible.css +185 -0
- package/dist/css/color-field.css +176 -0
- package/dist/css/color-picker.css +595 -0
- package/dist/css/color-slider.css +281 -0
- package/dist/css/color-swatch-picker.css +250 -0
- package/dist/css/color-swatch.css +35 -0
- package/dist/css/combobox.css +574 -0
- package/dist/css/command.css +399 -0
- package/dist/css/context-menu.css +420 -0
- package/dist/css/date-field.css +317 -0
- package/dist/css/date-picker.css +868 -0
- package/dist/css/date-range-picker.css +886 -0
- package/dist/css/description.css +67 -0
- package/dist/css/descriptions.css +299 -0
- package/dist/css/dialog.css +455 -0
- package/dist/css/diff-view.css +513 -0
- package/dist/css/download-trigger.css +151 -0
- package/dist/css/drawer.css +552 -0
- package/dist/css/editable.css +295 -0
- package/dist/css/empty-state.css +163 -0
- package/dist/css/field-array.css +226 -0
- package/dist/css/field.css +166 -0
- package/dist/css/fieldset.css +102 -0
- package/dist/css/file-upload.css +429 -0
- package/dist/css/flex.css +441 -0
- package/dist/css/float-button.css +569 -0
- package/dist/css/floating-panel.css +429 -0
- package/dist/css/focus.css +46 -0
- package/dist/css/forced-colors.css +93 -0
- package/dist/css/form.css +393 -0
- package/dist/css/funnel-chart.css +106 -0
- package/dist/css/graph-chart.css +205 -0
- package/dist/css/grid-list.css +235 -0
- package/dist/css/grid.css +1201 -0
- package/dist/css/heatmap.css +552 -0
- package/dist/css/hierarchy-chart.css +298 -0
- package/dist/css/highlight.css +41 -0
- package/dist/css/hover-card.css +226 -0
- package/dist/css/icon.css +225 -0
- package/dist/css/image-cropper.css +373 -0
- package/dist/css/image-viewer.css +538 -0
- package/dist/css/image.css +98 -0
- package/dist/css/infinite-scroll.css +77 -0
- package/dist/css/input-group.css +275 -0
- package/dist/css/json-viewer.css +379 -0
- package/dist/css/kbd.css +72 -0
- package/dist/css/label.css +78 -0
- package/dist/css/layers.css +7 -0
- package/dist/css/layout.css +372 -0
- package/dist/css/liquid.css +106 -0
- package/dist/css/list.css +152 -0
- package/dist/css/listbox.css +390 -0
- package/dist/css/loading-bar.css +141 -0
- package/dist/css/log.css +306 -0
- package/dist/css/markdown-stream.css +149 -0
- package/dist/css/marquee.css +378 -0
- package/dist/css/masonry.css +70 -0
- package/dist/css/matrix-code.css +67 -0
- package/dist/css/mention.css +393 -0
- package/dist/css/menu.css +364 -0
- package/dist/css/menubar.css +456 -0
- package/dist/css/message-feed.css +318 -0
- package/dist/css/navigation-menu.css +513 -0
- package/dist/css/notification.css +782 -0
- package/dist/css/number-animation.css +44 -0
- package/dist/css/number-field.css +252 -0
- package/dist/css/overlay-arrow.css +56 -0
- package/dist/css/page-header.css +184 -0
- package/dist/css/pagination.css +450 -0
- package/dist/css/password-input.css +391 -0
- package/dist/css/pie-chart.css +247 -0
- package/dist/css/pin-input.css +199 -0
- package/dist/css/pointer.css +36 -0
- package/dist/css/popconfirm.css +320 -0
- package/dist/css/popover.css +279 -0
- package/dist/css/progress.css +501 -0
- package/dist/css/prompt-input.css +260 -0
- package/dist/css/question-flow.css +553 -0
- package/dist/css/radar-chart.css +233 -0
- package/dist/css/radio-group.css +598 -0
- package/dist/css/rating.css +294 -0
- package/dist/css/reasoning.css +343 -0
- package/dist/css/reset.css +117 -0
- package/dist/css/resizable.css +242 -0
- package/dist/css/sankey-chart.css +174 -0
- package/dist/css/scroll-area.css +240 -0
- package/dist/css/scrollbar.css +204 -0
- package/dist/css/select.css +612 -0
- package/dist/css/separator.css +122 -0
- package/dist/css/side-nav.css +476 -0
- package/dist/css/signature-pad.css +179 -0
- package/dist/css/skeleton.css +161 -0
- package/dist/css/slider.css +374 -0
- package/dist/css/sortable.css +228 -0
- package/dist/css/sparkline.css +164 -0
- package/dist/css/spinner.css +236 -0
- package/dist/css/splitter.css +159 -0
- package/dist/css/statistic.css +137 -0
- package/dist/css/steps.css +627 -0
- package/dist/css/switch.css +351 -0
- package/dist/css/table.css +1145 -0
- package/dist/css/tabs.css +944 -0
- package/dist/css/tag-group.css +247 -0
- package/dist/css/tag.css +310 -0
- package/dist/css/tags-input.css +322 -0
- package/dist/css/text-field.css +197 -0
- package/dist/css/time-field.css +277 -0
- package/dist/css/time-picker.css +707 -0
- package/dist/css/time-range-picker.css +746 -0
- package/dist/css/timeline.css +423 -0
- package/dist/css/timer.css +123 -0
- package/dist/css/timestamp.css +34 -0
- package/dist/css/toggle-group.css +424 -0
- package/dist/css/toggle.css +146 -0
- package/dist/css/tone.css +189 -0
- package/dist/css/tool-call.css +429 -0
- package/dist/css/toolbar.css +365 -0
- package/dist/css/tooltip.css +218 -0
- package/dist/css/tour.css +439 -0
- package/dist/css/transfer.css +638 -0
- package/dist/css/tree-select.css +878 -0
- package/dist/css/tree.css +733 -0
- package/dist/css/truncate.css +108 -0
- package/dist/css/typography.css +472 -0
- package/dist/css/undefined.css +58 -0
- package/dist/css/virtualizer.css +166 -0
- package/dist/css/visually-hidden.css +20 -0
- package/dist/css/watermark.css +82 -0
- package/dist/family/action-control.css +487 -0
- package/dist/family/chart.css +480 -0
- package/dist/family/check-mark.css +94 -0
- package/dist/family/choice-card.css +97 -0
- package/dist/family/collection-item.css +764 -0
- package/dist/family/field-chrome.css +287 -0
- package/dist/family/loading-ring.css +95 -0
- package/dist/family/material.css +72 -0
- package/dist/family/menu-choice.css +56 -0
- package/dist/family/motion.css +363 -0
- package/dist/family/swatch.css +59 -0
- package/dist/family/tag-list.css +59 -0
- package/family/action-control.css +3 -12
- package/index.css +6882 -6809
- package/index.unlayered.css +6884 -6811
- package/package.json +165 -164
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,34 @@
|
|
|
1
1
|
# @xihan-ui/styles
|
|
2
2
|
|
|
3
|
+
## 3.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 0d4e616: Carousel 分页点新增组件槽 `--xh-carousel-indicator-thickness`:垂直于轨道的粗细单独可调(横轨管高、纵轨管宽),缺省与 `--xh-carousel-indicator-size` 同值,现有圆点与胶囊不变。此前分页点的宽高共用一个长度槽,只画得出圆点与拉长的胶囊,想要细横条只能覆盖指示点盒子本身的尺寸与底色,粗指针下盒子撑成 44px 命中区、点改由伪元素画,覆盖的底色就把整块命中区涂满。现在粗细调小即成细横条(圆角另把 `--xh-carousel-indicator-radius` 换成 `var(--xh-shape-pill)`):细指针的命中区垂直于轨道多外扩一些、不低于 24px,粗指针下伪元素画的点与自动播放进度条同样按粗细画,44px 命中区不变。
|
|
8
|
+
- 8b8d520: 浮在内容之上的圆钮(Action Control `floating` 档)整体下移一档:sm / md / lg 由 40 / 48 / 56px 改为 32 / 40 / 48px(compact 28 / 36 / 44px),图标 16 / 20 / 24px,缺省 md 即 40px。48px 的钮在矮视口与小卡片里会叠住内容与彼此(走马灯的翻页钮与播放钮、纵向轨道压住正文)。
|
|
9
|
+
|
|
10
|
+
视觉默认变化:BackTop、FloatButton(含展开列表里的动作项)缺省由 48px 变为 40px,`size="lg"` 由 56px 变为 48px;ImageViewer 翻页钮由 48px 变为 40px、关闭钮由 40px 变为 32px;Carousel 翻页与播放钮为 40px。Log / MessageFeed 的回到底部钮缺省仍是 32px。
|
|
11
|
+
|
|
12
|
+
新增尺寸档:
|
|
13
|
+
|
|
14
|
+
- Carousel 新增 `size`(sm / md / lg,缺省 md),翻页、播放三颗钮同档。
|
|
15
|
+
- ImageViewer 新增 `size`(sm / md / lg,缺省 md),翻页钮同档,关闭钮比它低一档、最低 sm。
|
|
16
|
+
- Log、MessageFeed 的回到底部钮随组件已有的 `size` 换档:比组件低一档、最低 sm(sm / md 时 32px,lg 时 40px)。
|
|
17
|
+
|
|
18
|
+
新增的 `size` 与其他组件一样接全局配置,没写时取全局尺寸。
|
|
19
|
+
|
|
20
|
+
- 831acc9: 每个角色节点另带皮肤挂载类 `xh-scope-<组件名>`,与 `data-scope` 一一对应(`data-scope="dialog"` 的节点带 `xh-scope-dialog`)。解剖产出的 attrs 多一项 `class`,Vue 与作者的 class 合并、React 落成 `className` 并与作者的拼接、Web Components 按词增删不覆盖作者写的类;asChild 把部件属性合进自带解剖的子节点时,挂载类随 `data-scope` 一起让位,一个节点不会同时吃两个组件的皮肤。core 新增导出 `SCOPE_CLASS_PREFIX`、`scopeClass()` 与 `stripScopeClass()`。
|
|
21
|
+
|
|
22
|
+
挂载类是皮肤产物改以类名领头的前提:浏览器按类名给规则分桶,属性选择器只按属性名分桶,几千条以 `[data-scope=…]` 领头的皮肤规则挤在同一个桶里,每个组件节点每次样式重算都要逐条试一遍。`data-scope` / `data-part` 仍是公开的样式契约,作者的覆盖写法不变。节点的 class 属性因此多了一个词:对 DOM 做快照或精确比对 `className` 的测试需要随之更新。只用 `@xihan-ui/styles`、自己书写标记的页面,要给每个带 `data-scope="x"` 的节点补上 `class="xh-scope-x"`,否则皮肤不命中。
|
|
23
|
+
|
|
24
|
+
### Patch Changes
|
|
25
|
+
|
|
26
|
+
- fca75b0: 皮肤里挂在运行期状态后面的后代与兄弟规则,主体都带上了组件特征。浏览器按属性名 / 伪类全局登记「某个属性一变要重算哪些节点」,不看取值也不看同一节里的组件限定:主体只靠 `[data-part]`(或 `> *` 这类没有特征的主体)时,页面上任何元素翻转 `data-state`、`data-current`、`data-disabled`、`data-instant` 等,都会把它整棵子树一起标脏。3500 个组件节点的容器上翻一次 `data-state` 由 150ms 降到 4ms,`data-current` 152ms → 2ms,`data-disabled` 155ms → 8ms,`data-instant` 80ms → 11ms。
|
|
27
|
+
|
|
28
|
+
本组件的部件补 `:where([data-scope='x'])`(产物里成为 `:where(.xh-scope-x)`,不加特异性,层叠不变);作者放进来的任意子节点(按钮加载环与色板徽标里的图形、组合框展开钮的箭头、日期输入的段位、浮动按钮的动作项)改为由父节点写私有槽、子节点只读槽。浮动按钮动作项的冒出与缩回交错改由名次与收起标记算出,收起时的指针关闭挪到 list 上继承。
|
|
29
|
+
|
|
30
|
+
- @xihan-ui/tokens@3.2.0
|
|
31
|
+
|
|
3
32
|
## 3.1.0
|
|
4
33
|
|
|
5
34
|
### Minor Changes
|
package/component-tokens.d.ts
CHANGED
|
@@ -380,6 +380,7 @@ export type ComponentTokenName
|
|
|
380
380
|
| '--xh-carousel-indicator-size'
|
|
381
381
|
| '--xh-carousel-indicator-size-current'
|
|
382
382
|
| '--xh-carousel-indicator-target-size'
|
|
383
|
+
| '--xh-carousel-indicator-thickness'
|
|
383
384
|
| '--xh-carousel-trigger-bg'
|
|
384
385
|
| '--xh-carousel-trigger-bg-active'
|
|
385
386
|
| '--xh-carousel-trigger-bg-hover'
|
package/components.tokens.json
CHANGED
|
@@ -7557,7 +7557,9 @@
|
|
|
7557
7557
|
],
|
|
7558
7558
|
"property": [
|
|
7559
7559
|
"block-size",
|
|
7560
|
-
"inline-size"
|
|
7560
|
+
"inline-size",
|
|
7561
|
+
"inset-block",
|
|
7562
|
+
"inset-inline"
|
|
7561
7563
|
],
|
|
7562
7564
|
"state": [
|
|
7563
7565
|
"@media (pointer: coarse)",
|
|
@@ -7571,7 +7573,7 @@
|
|
|
7571
7573
|
"--xh-space-2"
|
|
7572
7574
|
],
|
|
7573
7575
|
"visibility": "public",
|
|
7574
|
-
"description": "carousel 的 indicator、indicator-group、root 部件 block-size、inline-size 覆盖槽。"
|
|
7576
|
+
"description": "carousel 的 indicator、indicator-group、root 部件 block-size、inline-size、inset-block、inset-inline 覆盖槽。"
|
|
7575
7577
|
},
|
|
7576
7578
|
{
|
|
7577
7579
|
"name": "--xh-carousel-indicator-size-current",
|
|
@@ -7626,6 +7628,34 @@
|
|
|
7626
7628
|
"visibility": "public",
|
|
7627
7629
|
"description": "carousel 的 indicator、root 部件 min-block-size、min-inline-size 覆盖槽。"
|
|
7628
7630
|
},
|
|
7631
|
+
{
|
|
7632
|
+
"name": "--xh-carousel-indicator-thickness",
|
|
7633
|
+
"component": "carousel",
|
|
7634
|
+
"part": [
|
|
7635
|
+
"indicator",
|
|
7636
|
+
"indicator-group",
|
|
7637
|
+
"root"
|
|
7638
|
+
],
|
|
7639
|
+
"property": [
|
|
7640
|
+
"block-size",
|
|
7641
|
+
"inline-size",
|
|
7642
|
+
"inset-block",
|
|
7643
|
+
"inset-inline"
|
|
7644
|
+
],
|
|
7645
|
+
"state": [
|
|
7646
|
+
"@media (pointer: coarse)",
|
|
7647
|
+
"autoplay",
|
|
7648
|
+
"current",
|
|
7649
|
+
"default",
|
|
7650
|
+
"orientation=vertical",
|
|
7651
|
+
"paused"
|
|
7652
|
+
],
|
|
7653
|
+
"defaultToken": [
|
|
7654
|
+
"--xh-carousel-indicator-size"
|
|
7655
|
+
],
|
|
7656
|
+
"visibility": "public",
|
|
7657
|
+
"description": "carousel 的 indicator、indicator-group、root 部件 block-size、inline-size、inset-block、inset-inline 覆盖槽。"
|
|
7658
|
+
},
|
|
7629
7659
|
{
|
|
7630
7660
|
"name": "--xh-carousel-trigger-bg",
|
|
7631
7661
|
"component": "carousel",
|
package/css/alert.css
CHANGED
|
@@ -100,8 +100,8 @@
|
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
/* 列里的两段文字不再参与 root 那一行的伸缩:宽度由列自己给 */
|
|
103
|
-
[data-scope='alert'][data-part='content'] [data-part='title'],
|
|
104
|
-
[data-scope='alert'][data-part='content'] [data-part='description'] {
|
|
103
|
+
[data-scope='alert'][data-part='content'] [data-part='title']:where([data-scope='alert']),
|
|
104
|
+
[data-scope='alert'][data-part='content'] [data-part='description']:where([data-scope='alert']) {
|
|
105
105
|
flex: none;
|
|
106
106
|
}
|
|
107
107
|
|
package/css/approval.css
CHANGED
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
/* 卡片出现时滑入;落在首帧就在的列表条目里(历史消息)时直接呈现,不跟着整屏一起入场 */
|
|
51
|
-
[data-scope='approval'][data-part='root']:not([data-scope][data-part='item'][data-instant]
|
|
51
|
+
[data-scope='approval'][data-part='root']:not([data-scope][data-part='item'][data-instant] :where([data-scope='approval'])) {
|
|
52
52
|
animation: xh-item-in var(--xh-motion-duration-enter) var(--xh-motion-ease-enter-strong);
|
|
53
53
|
}
|
|
54
54
|
|
|
@@ -252,12 +252,12 @@
|
|
|
252
252
|
color: var(--xh-approval-item-text-fg, var(--xh-fg-muted));
|
|
253
253
|
}
|
|
254
254
|
|
|
255
|
-
[data-scope='approval'][data-part='item'][data-state='checked'] [data-part='item-text'] {
|
|
255
|
+
[data-scope='approval'][data-part='item'][data-state='checked'] [data-part='item-text']:where([data-scope='approval']) {
|
|
256
256
|
color: var(--xh-approval-item-text-fg-checked, var(--xh-fg-default));
|
|
257
257
|
}
|
|
258
258
|
|
|
259
259
|
/* 排在勾选档之后:禁用项无论勾没勾都是禁用色 */
|
|
260
|
-
[data-scope='approval'][data-part='item'][data-disabled] [data-part='item-text'] {
|
|
260
|
+
[data-scope='approval'][data-part='item'][data-disabled] [data-part='item-text']:where([data-scope='approval']) {
|
|
261
261
|
color: var(--xh-fg-disabled);
|
|
262
262
|
}
|
|
263
263
|
|
|
@@ -325,7 +325,7 @@
|
|
|
325
325
|
}
|
|
326
326
|
|
|
327
327
|
/* 落定结果弹出;落在首帧就在的列表条目里(历史消息)时直接呈现,不跟着整屏一起入场 */
|
|
328
|
-
[data-scope='approval'][data-part='result']:not([data-scope][data-part='item'][data-instant]
|
|
328
|
+
[data-scope='approval'][data-part='result']:not([data-scope][data-part='item'][data-instant] :where([data-scope='approval'])) {
|
|
329
329
|
animation: xh-pop-in var(--xh-motion-duration-enter) var(--xh-motion-ease-enter-strong);
|
|
330
330
|
}
|
|
331
331
|
|
package/css/button.css
CHANGED
|
@@ -156,16 +156,20 @@
|
|
|
156
156
|
content: none;
|
|
157
157
|
}
|
|
158
158
|
|
|
159
|
+
/* 作者的图形是任意节点,规则主体没有可认的特征:加载与否写在 indicator 自己的私有槽上,
|
|
160
|
+
图形只读槽。翻转 data-loading 时失效的只有 indicator 本身,不会让全页同名属性的变化整棵子树重算 */
|
|
159
161
|
[data-scope='button'][data-part='indicator'] > * {
|
|
160
|
-
opacity: 0;
|
|
162
|
+
opacity: var(--xh-_button-indicator-opacity, 0);
|
|
161
163
|
transition: opacity var(--xh-motion-duration-micro) var(--xh-motion-ease-enter);
|
|
164
|
+
transition-delay: calc(var(--xh-motion-duration-micro) * var(--xh-_button-indicator-delay, 0));
|
|
162
165
|
animation: xh-spin var(--xh-button-spin-duration, var(--xh-motion-loop-spin)) var(--xh-motion-ease-loop) infinite paused;
|
|
166
|
+
animation-play-state: var(--xh-_button-indicator-play, paused);
|
|
163
167
|
}
|
|
164
168
|
|
|
165
|
-
[data-scope='button'][data-part='root'][data-loading] > [data-scope='button'][data-part='indicator']
|
|
166
|
-
opacity: 1;
|
|
167
|
-
|
|
168
|
-
|
|
169
|
+
[data-scope='button'][data-part='root'][data-loading] > [data-scope='button'][data-part='indicator'] {
|
|
170
|
+
--xh-_button-indicator-opacity: 1;
|
|
171
|
+
--xh-_button-indicator-delay: 1;
|
|
172
|
+
--xh-_button-indicator-play: running;
|
|
169
173
|
}
|
|
170
174
|
|
|
171
175
|
/* 钮里原有的内容与环交叉:进入在途同样等一个 micro 才淡出、留位不塌,退出不等 */
|
package/css/calendar-picker.css
CHANGED
|
@@ -143,7 +143,7 @@
|
|
|
143
143
|
}
|
|
144
144
|
|
|
145
145
|
/* 周期格沿横轴铺开,但始终保持控制件高度;选中面只换颜色,不改变几何尺寸。 */
|
|
146
|
-
[data-scope='calendar-picker'][data-part='grid']:is([data-view='week'], [data-view='month'], [data-view='quarter'], [data-view='year']) [data-part='cell-trigger'] {
|
|
146
|
+
[data-scope='calendar-picker'][data-part='grid']:is([data-view='week'], [data-view='month'], [data-view='quarter'], [data-view='year']) [data-part='cell-trigger']:where([data-scope='calendar-picker']) {
|
|
147
147
|
flex: 0 0 auto;
|
|
148
148
|
aspect-ratio: auto;
|
|
149
149
|
min-inline-size: 0;
|
|
@@ -152,7 +152,7 @@
|
|
|
152
152
|
border-radius: var(--xh-calendar-picker-period-radius, var(--xh-shape-control));
|
|
153
153
|
}
|
|
154
154
|
|
|
155
|
-
[data-scope='calendar-picker'][data-part='grid'][data-view='week'] [data-part='cell-trigger'] {
|
|
155
|
+
[data-scope='calendar-picker'][data-part='grid'][data-view='week'] [data-part='cell-trigger']:where([data-scope='calendar-picker']) {
|
|
156
156
|
flex: 1 1 auto;
|
|
157
157
|
justify-content: flex-start;
|
|
158
158
|
inline-size: 100%;
|
|
@@ -361,7 +361,7 @@
|
|
|
361
361
|
只收日视图这一档:粗粒度视图(月格、年格)点一格是往下钻一层,只读也照做,
|
|
362
362
|
那些格子仍是按得动的按钮,手型不能撤 */
|
|
363
363
|
[data-scope='calendar-picker'][data-part='grid'][data-readonly][data-view='day']
|
|
364
|
-
[data-part='cell-trigger']:not([data-disabled]) {
|
|
364
|
+
[data-part='cell-trigger']:where([data-scope='calendar-picker']):not([data-disabled]) {
|
|
365
365
|
--xh-action-cursor-rest: default;
|
|
366
366
|
--xh-action-cursor-hover: default;
|
|
367
367
|
--xh-action-cursor-pressed: default;
|
|
@@ -143,7 +143,7 @@
|
|
|
143
143
|
}
|
|
144
144
|
|
|
145
145
|
/* 周期格沿横轴铺开,但始终保持控制件高度;选中面只换颜色,不改变几何尺寸。 */
|
|
146
|
-
[data-scope='calendar-range-picker'][data-part='grid']:is([data-view='week'], [data-view='month'], [data-view='quarter'], [data-view='year']) [data-part='cell-trigger'] {
|
|
146
|
+
[data-scope='calendar-range-picker'][data-part='grid']:is([data-view='week'], [data-view='month'], [data-view='quarter'], [data-view='year']) [data-part='cell-trigger']:where([data-scope='calendar-range-picker']) {
|
|
147
147
|
flex: 0 0 auto;
|
|
148
148
|
aspect-ratio: auto;
|
|
149
149
|
min-inline-size: 0;
|
|
@@ -152,7 +152,7 @@
|
|
|
152
152
|
border-radius: var(--xh-calendar-range-picker-period-radius, var(--xh-shape-control));
|
|
153
153
|
}
|
|
154
154
|
|
|
155
|
-
[data-scope='calendar-range-picker'][data-part='grid'][data-view='week'] [data-part='cell-trigger'] {
|
|
155
|
+
[data-scope='calendar-range-picker'][data-part='grid'][data-view='week'] [data-part='cell-trigger']:where([data-scope='calendar-range-picker']) {
|
|
156
156
|
flex: 1 1 auto;
|
|
157
157
|
justify-content: flex-start;
|
|
158
158
|
inline-size: 100%;
|
|
@@ -264,13 +264,13 @@
|
|
|
264
264
|
|
|
265
265
|
/* 行首与行尾收圆:区间跨周时每一行各是一条两头圆的横杠。
|
|
266
266
|
摆了周序号格的行里,行首那一格排在它后面 */
|
|
267
|
-
[data-scope='calendar-range-picker'][data-part='week-row'] > [data-part='cell'][data-in-range]:first-child::before,
|
|
268
|
-
[data-scope='calendar-range-picker'][data-part='week-row'] > [data-part='week-number'] + [data-part='cell'][data-in-range]::before {
|
|
267
|
+
[data-scope='calendar-range-picker'][data-part='week-row'] > [data-part='cell'][data-in-range]:where([data-scope='calendar-range-picker']):first-child::before,
|
|
268
|
+
[data-scope='calendar-range-picker'][data-part='week-row'] > [data-part='week-number'] + [data-part='cell'][data-in-range]:where([data-scope='calendar-range-picker'])::before {
|
|
269
269
|
border-start-start-radius: var(--xh-calendar-range-picker-range-row-radius, var(--xh-shape-inset));
|
|
270
270
|
border-end-start-radius: var(--xh-calendar-range-picker-range-row-radius, var(--xh-shape-inset));
|
|
271
271
|
}
|
|
272
272
|
|
|
273
|
-
[data-scope='calendar-range-picker'][data-part='week-row'] > [data-part='cell'][data-in-range]:last-child::before {
|
|
273
|
+
[data-scope='calendar-range-picker'][data-part='week-row'] > [data-part='cell'][data-in-range]:where([data-scope='calendar-range-picker']):last-child::before {
|
|
274
274
|
border-start-end-radius: var(--xh-calendar-range-picker-range-row-radius, var(--xh-shape-inset));
|
|
275
275
|
border-end-end-radius: var(--xh-calendar-range-picker-range-row-radius, var(--xh-shape-inset));
|
|
276
276
|
}
|
|
@@ -286,7 +286,7 @@
|
|
|
286
286
|
}
|
|
287
287
|
|
|
288
288
|
/* 粗粒度的格子之间有间隙,底色本就接不成一条,每一格各自收圆 */
|
|
289
|
-
[data-scope='calendar-range-picker'][data-part='grid']:is([data-view='week'], [data-view='month'], [data-view='quarter'], [data-view='year']) > [data-part='cell'][data-in-range]::before {
|
|
289
|
+
[data-scope='calendar-range-picker'][data-part='grid']:is([data-view='week'], [data-view='month'], [data-view='quarter'], [data-view='year']) > [data-part='cell'][data-in-range]:where([data-scope='calendar-range-picker'])::before {
|
|
290
290
|
border-radius: var(--xh-calendar-range-picker-cell-radius, var(--xh-shape-inset));
|
|
291
291
|
}
|
|
292
292
|
|
|
@@ -441,7 +441,7 @@
|
|
|
441
441
|
只收日视图这一档:粗粒度视图(月格、年格)点一格是往下钻一层,只读也照做,
|
|
442
442
|
那些格子仍是按得动的按钮,手型不能撤 */
|
|
443
443
|
[data-scope='calendar-range-picker'][data-part='grid'][data-readonly][data-view='day']
|
|
444
|
-
[data-part='cell-trigger']:not([data-disabled]) {
|
|
444
|
+
[data-part='cell-trigger']:where([data-scope='calendar-range-picker']):not([data-disabled]) {
|
|
445
445
|
--xh-action-cursor-rest: default;
|
|
446
446
|
--xh-action-cursor-hover: default;
|
|
447
447
|
--xh-action-cursor-pressed: default;
|
package/css/carousel.css
CHANGED
|
@@ -269,7 +269,9 @@
|
|
|
269
269
|
|
|
270
270
|
/* 分页点与 Tour 的步骤点同一种语言:8px 圆点,当前页拉长成 20px 胶囊并换品牌色。
|
|
271
271
|
本体就是那颗点:没有文字(页码交给作者,默认不显示),底色即标记。
|
|
272
|
-
悬停 /
|
|
272
|
+
悬停 / 按下的回执落在点的颜色上:中性标记按前景阶梯加深一档、再加深一档;当前页按品牌阶梯压一档。
|
|
273
|
+
沿轨道的长度取 indicator-size(当前页 indicator-size-current),垂直于轨道的粗细取 indicator-thickness,
|
|
274
|
+
缺省与长度同值、仍是圆点;粗细单独调小就成细横条(横条不是正方盒,圆角另把 indicator-radius 换成胶囊) */
|
|
273
275
|
[data-scope='carousel'][data-part='indicator'] {
|
|
274
276
|
position: relative;
|
|
275
277
|
display: inline-flex;
|
|
@@ -277,7 +279,7 @@
|
|
|
277
279
|
align-items: center;
|
|
278
280
|
justify-content: center;
|
|
279
281
|
inline-size: var(--xh-carousel-indicator-size, var(--xh-space-2));
|
|
280
|
-
block-size: var(--xh-carousel-indicator-size, var(--xh-space-2));
|
|
282
|
+
block-size: var(--xh-carousel-indicator-thickness, var(--xh-carousel-indicator-size, var(--xh-space-2)));
|
|
281
283
|
padding: 0;
|
|
282
284
|
border: 0;
|
|
283
285
|
border-radius: var(--xh-carousel-indicator-radius, var(--xh-shape-circle));
|
|
@@ -297,11 +299,25 @@
|
|
|
297
299
|
display: none;
|
|
298
300
|
}
|
|
299
301
|
|
|
300
|
-
/* 细指针的命中区外扩到 24×24(8px 点四面各扩 8px
|
|
302
|
+
/* 细指针的命中区外扩到 24×24(8px 点四面各扩 8px);粗指针下这颗伪元素改画点,盒子自己承担命中。
|
|
303
|
+
点调细了,垂直于轨道那一向多扩一些,命中区不低于 24px 的最小目标 */
|
|
301
304
|
[data-scope='carousel'][data-part='indicator']::after {
|
|
302
305
|
content: '';
|
|
303
306
|
position: absolute;
|
|
304
|
-
inset: calc(-1 * var(--xh-space-2));
|
|
307
|
+
inset-inline: calc(-1 * var(--xh-space-2));
|
|
308
|
+
inset-block: min(
|
|
309
|
+
calc(-1 * var(--xh-space-2)),
|
|
310
|
+
calc((var(--xh-carousel-indicator-thickness, var(--xh-carousel-indicator-size, var(--xh-space-2))) - var(--xh-space-6)) / 2)
|
|
311
|
+
);
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
[data-scope='carousel'][data-part='indicator-group'][data-orientation='vertical']
|
|
315
|
+
> [data-scope='carousel'][data-part='indicator']::after {
|
|
316
|
+
inset-inline: min(
|
|
317
|
+
calc(-1 * var(--xh-space-2)),
|
|
318
|
+
calc((var(--xh-carousel-indicator-thickness, var(--xh-carousel-indicator-size, var(--xh-space-2))) - var(--xh-space-6)) / 2)
|
|
319
|
+
);
|
|
320
|
+
inset-block: calc(-1 * var(--xh-space-2));
|
|
305
321
|
}
|
|
306
322
|
|
|
307
323
|
[data-scope='carousel'][data-part='indicator']:hover:not([data-current]) {
|
|
@@ -383,9 +399,15 @@
|
|
|
383
399
|
}
|
|
384
400
|
|
|
385
401
|
/* 纵轨:胶囊沿块轴拉长,进度条从上往下长 */
|
|
402
|
+
[data-scope='carousel'][data-part='indicator-group'][data-orientation='vertical']
|
|
403
|
+
> [data-scope='carousel'][data-part='indicator'] {
|
|
404
|
+
inline-size: var(--xh-carousel-indicator-thickness, var(--xh-carousel-indicator-size, var(--xh-space-2)));
|
|
405
|
+
block-size: var(--xh-carousel-indicator-size, var(--xh-space-2));
|
|
406
|
+
}
|
|
407
|
+
|
|
386
408
|
[data-scope='carousel'][data-part='indicator-group'][data-orientation='vertical']
|
|
387
409
|
> [data-scope='carousel'][data-part='indicator'][data-current] {
|
|
388
|
-
inline-size: var(--xh-carousel-indicator-size, var(--xh-space-2));
|
|
410
|
+
inline-size: var(--xh-carousel-indicator-thickness, var(--xh-carousel-indicator-size, var(--xh-space-2)));
|
|
389
411
|
block-size: var(--xh-carousel-indicator-size-current, var(--xh-space-5));
|
|
390
412
|
}
|
|
391
413
|
|
|
@@ -400,7 +422,7 @@
|
|
|
400
422
|
}
|
|
401
423
|
|
|
402
424
|
[data-scope='carousel'][data-part='root'][data-orientation='vertical']
|
|
403
|
-
> :is([data-part='prev-trigger'], [data-part='next-trigger']) {
|
|
425
|
+
> :is([data-part='prev-trigger'], [data-part='next-trigger']):where([data-scope='carousel']) {
|
|
404
426
|
inset-inline-start: 50%;
|
|
405
427
|
inset-inline-end: auto;
|
|
406
428
|
translate: -50% 0;
|
|
@@ -408,23 +430,23 @@
|
|
|
408
430
|
}
|
|
409
431
|
|
|
410
432
|
[data-scope='carousel'][data-part='root'][data-orientation='vertical']
|
|
411
|
-
> :is([data-part='prev-trigger'], [data-part='next-trigger']):dir(rtl) {
|
|
433
|
+
> :is([data-part='prev-trigger'], [data-part='next-trigger']):where([data-scope='carousel']):dir(rtl) {
|
|
412
434
|
translate: 50% 0;
|
|
413
435
|
}
|
|
414
436
|
|
|
415
437
|
/* 纵轨的翻页钮整颗转了 90°,形变会跟着转到错的方向,这一档不挂 */
|
|
416
438
|
:where([data-material='liquid']) [data-scope='carousel'][data-part='root'][data-orientation='vertical']
|
|
417
|
-
> :is([data-part='prev-trigger'], [data-part='next-trigger'])[data-xh-liquid] {
|
|
439
|
+
> :is([data-part='prev-trigger'], [data-part='next-trigger']):where([data-scope='carousel'])[data-xh-liquid] {
|
|
418
440
|
transform: none;
|
|
419
441
|
}
|
|
420
442
|
|
|
421
443
|
[data-scope='carousel'][data-part='root'][data-orientation='vertical']
|
|
422
|
-
> [data-part='prev-trigger'] {
|
|
444
|
+
> [data-part='prev-trigger']:where([data-scope='carousel']) {
|
|
423
445
|
inset-block-start: var(--xh-carousel-control-inset, var(--xh-space-3));
|
|
424
446
|
}
|
|
425
447
|
|
|
426
448
|
[data-scope='carousel'][data-part='root'][data-orientation='vertical']
|
|
427
|
-
> [data-part='next-trigger'] {
|
|
449
|
+
> [data-part='next-trigger']:where([data-scope='carousel']) {
|
|
428
450
|
inset-block-start: auto;
|
|
429
451
|
inset-block-end: var(--xh-carousel-control-inset, var(--xh-space-3));
|
|
430
452
|
}
|
|
@@ -564,7 +586,7 @@
|
|
|
564
586
|
inset-block-start: 50%;
|
|
565
587
|
inset-inline-start: 50%;
|
|
566
588
|
inline-size: var(--xh-carousel-indicator-size, var(--xh-space-2));
|
|
567
|
-
block-size: var(--xh-carousel-indicator-size, var(--xh-space-2));
|
|
589
|
+
block-size: var(--xh-carousel-indicator-thickness, var(--xh-carousel-indicator-size, var(--xh-space-2)));
|
|
568
590
|
border-radius: var(--xh-carousel-indicator-radius, var(--xh-shape-circle));
|
|
569
591
|
background: var(--xh-carousel-indicator-bg, var(--xh-bg-subtle-hover-opaque));
|
|
570
592
|
translate: -50% -50%;
|
|
@@ -614,7 +636,7 @@
|
|
|
614
636
|
inset-inline-start: 50%;
|
|
615
637
|
z-index: 1;
|
|
616
638
|
inline-size: var(--xh-carousel-indicator-size-current, var(--xh-space-5));
|
|
617
|
-
block-size: var(--xh-carousel-indicator-size, var(--xh-space-2));
|
|
639
|
+
block-size: var(--xh-carousel-indicator-thickness, var(--xh-carousel-indicator-size, var(--xh-space-2)));
|
|
618
640
|
border-radius: var(--xh-carousel-indicator-radius-current, var(--xh-shape-pill));
|
|
619
641
|
translate: -50% -50%;
|
|
620
642
|
}
|
|
@@ -626,6 +648,16 @@
|
|
|
626
648
|
translate: 50% -50%;
|
|
627
649
|
}
|
|
628
650
|
|
|
651
|
+
/* 纵轨:细指针那条按轨道方向外扩命中区的规则更具体,这里把点的定位一并收回到居中 */
|
|
652
|
+
[data-scope='carousel'][data-part='indicator-group'][data-orientation='vertical']
|
|
653
|
+
> [data-scope='carousel'][data-part='indicator']::after {
|
|
654
|
+
inset: auto;
|
|
655
|
+
inset-block-start: 50%;
|
|
656
|
+
inset-inline-start: 50%;
|
|
657
|
+
inline-size: var(--xh-carousel-indicator-thickness, var(--xh-carousel-indicator-size, var(--xh-space-2)));
|
|
658
|
+
block-size: var(--xh-carousel-indicator-size, var(--xh-space-2));
|
|
659
|
+
}
|
|
660
|
+
|
|
629
661
|
[data-scope='carousel'][data-part='indicator-group'][data-orientation='vertical']
|
|
630
662
|
> [data-scope='carousel'][data-part='indicator'][data-current]::after,
|
|
631
663
|
[data-scope='carousel'][data-part='root'][data-autoplay]
|
|
@@ -634,7 +666,7 @@
|
|
|
634
666
|
[data-scope='carousel'][data-part='root'][data-paused]
|
|
635
667
|
[data-scope='carousel'][data-part='indicator-group'][data-orientation='vertical']
|
|
636
668
|
> [data-scope='carousel'][data-part='indicator'][data-current]::before {
|
|
637
|
-
inline-size: var(--xh-carousel-indicator-size, var(--xh-space-2));
|
|
669
|
+
inline-size: var(--xh-carousel-indicator-thickness, var(--xh-carousel-indicator-size, var(--xh-space-2)));
|
|
638
670
|
block-size: var(--xh-carousel-indicator-size-current, var(--xh-space-5));
|
|
639
671
|
}
|
|
640
672
|
}
|
package/css/cartesian-chart.css
CHANGED
|
@@ -109,7 +109,7 @@
|
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
/* 裁切出来的形状画不出空心:隐藏的项改为淡出,名字的删除线与次级字色照常 */
|
|
112
|
-
[data-scope='cartesian-chart'][data-part='legend-item'][aria-pressed='false'] > [data-part='legend-swatch'][data-mark='point']:not([data-symbol='circle'], [data-symbol='square']) {
|
|
112
|
+
[data-scope='cartesian-chart'][data-part='legend-item'][aria-pressed='false'] > [data-part='legend-swatch'][data-mark='point']:where([data-scope='cartesian-chart']):not([data-symbol='circle'], [data-symbol='square']) {
|
|
113
113
|
background: var(--xh-_chart-series);
|
|
114
114
|
opacity: var(--xh-chart-dim-alpha);
|
|
115
115
|
}
|
|
@@ -241,7 +241,7 @@
|
|
|
241
241
|
cursor: grab;
|
|
242
242
|
}
|
|
243
243
|
|
|
244
|
-
[data-scope='cartesian-chart'][data-part='zoom-slider'][data-dragging] [data-part='zoom-window'] {
|
|
244
|
+
[data-scope='cartesian-chart'][data-part='zoom-slider'][data-dragging] [data-part='zoom-window']:where([data-scope='cartesian-chart']) {
|
|
245
245
|
cursor: grabbing;
|
|
246
246
|
}
|
|
247
247
|
|
|
@@ -633,15 +633,15 @@
|
|
|
633
633
|
|
|
634
634
|
/* —— 纹理:颜色不可用或不可靠时(强制色、打印、祖先写了 data-xh-chart-patterns),柱与面积改用本系列在
|
|
635
635
|
defs 里的纹理填充、描出轮廓,折线换线型;压在柱上的标签改用标签色、描一圈承载面色。色标的纹理在配方里 —— */
|
|
636
|
-
:where([data-xh-chart-patterns]) [data-scope='cartesian-chart'][data-xh-chart-pattern] > [data-part='bar'],
|
|
637
|
-
:where([data-xh-chart-patterns]) [data-scope='cartesian-chart'][data-xh-chart-pattern] > [data-part='area-fill'] {
|
|
636
|
+
:where([data-xh-chart-patterns]) [data-scope='cartesian-chart'][data-xh-chart-pattern] > [data-part='bar']:where([data-scope='cartesian-chart']),
|
|
637
|
+
:where([data-xh-chart-patterns]) [data-scope='cartesian-chart'][data-xh-chart-pattern] > [data-part='area-fill']:where([data-scope='cartesian-chart']) {
|
|
638
638
|
fill: var(--xh-_chart-pattern);
|
|
639
639
|
fill-opacity: 1;
|
|
640
640
|
stroke: var(--xh-_chart-series);
|
|
641
641
|
stroke-width: var(--xh-stroke-thin);
|
|
642
642
|
}
|
|
643
643
|
|
|
644
|
-
:where([data-xh-chart-patterns]) [data-scope='cartesian-chart'][data-xh-chart-pattern] > [data-part='line']:not([data-drawing]) {
|
|
644
|
+
:where([data-xh-chart-patterns]) [data-scope='cartesian-chart'][data-xh-chart-pattern] > [data-part='line']:where([data-scope='cartesian-chart']):not([data-drawing]) {
|
|
645
645
|
stroke-dasharray: var(--xh-_chart-dash);
|
|
646
646
|
}
|
|
647
647
|
|
|
@@ -775,8 +775,8 @@
|
|
|
775
775
|
stroke: Highlight;
|
|
776
776
|
}
|
|
777
777
|
|
|
778
|
-
[data-scope='cartesian-chart'][data-xh-chart-pattern] > [data-part='bar'],
|
|
779
|
-
[data-scope='cartesian-chart'][data-xh-chart-pattern] > [data-part='area-fill'] {
|
|
778
|
+
[data-scope='cartesian-chart'][data-xh-chart-pattern] > [data-part='bar']:where([data-scope='cartesian-chart']),
|
|
779
|
+
[data-scope='cartesian-chart'][data-xh-chart-pattern] > [data-part='area-fill']:where([data-scope='cartesian-chart']) {
|
|
780
780
|
forced-color-adjust: none;
|
|
781
781
|
fill: var(--xh-_chart-pattern);
|
|
782
782
|
fill-opacity: 1;
|
|
@@ -784,7 +784,7 @@
|
|
|
784
784
|
stroke-width: var(--xh-stroke-thin);
|
|
785
785
|
}
|
|
786
786
|
|
|
787
|
-
[data-scope='cartesian-chart'][data-xh-chart-pattern] > [data-part='line']:not([data-drawing]) {
|
|
787
|
+
[data-scope='cartesian-chart'][data-xh-chart-pattern] > [data-part='line']:where([data-scope='cartesian-chart']):not([data-drawing]) {
|
|
788
788
|
stroke-dasharray: var(--xh-_chart-dash);
|
|
789
789
|
}
|
|
790
790
|
|
|
@@ -803,15 +803,15 @@
|
|
|
803
803
|
display: none;
|
|
804
804
|
}
|
|
805
805
|
|
|
806
|
-
[data-scope='cartesian-chart'][data-xh-chart-pattern] > [data-part='bar'],
|
|
807
|
-
[data-scope='cartesian-chart'][data-xh-chart-pattern] > [data-part='area-fill'] {
|
|
806
|
+
[data-scope='cartesian-chart'][data-xh-chart-pattern] > [data-part='bar']:where([data-scope='cartesian-chart']),
|
|
807
|
+
[data-scope='cartesian-chart'][data-xh-chart-pattern] > [data-part='area-fill']:where([data-scope='cartesian-chart']) {
|
|
808
808
|
fill: var(--xh-_chart-pattern);
|
|
809
809
|
fill-opacity: 1;
|
|
810
810
|
stroke: var(--xh-_chart-series);
|
|
811
811
|
stroke-width: var(--xh-stroke-thin);
|
|
812
812
|
}
|
|
813
813
|
|
|
814
|
-
[data-scope='cartesian-chart'][data-xh-chart-pattern] > [data-part='line']:not([data-drawing]) {
|
|
814
|
+
[data-scope='cartesian-chart'][data-xh-chart-pattern] > [data-part='line']:where([data-scope='cartesian-chart']):not([data-drawing]) {
|
|
815
815
|
stroke-dasharray: var(--xh-_chart-dash);
|
|
816
816
|
}
|
|
817
817
|
|
package/css/cascader.css
CHANGED
|
@@ -219,14 +219,14 @@
|
|
|
219
219
|
|
|
220
220
|
/* 标签行露面时 value-text 让位:两者是触发器里的同一格,占位文字与标签不同屏。
|
|
221
221
|
value-text 留在 DOM 里,trigger 的可及名仍从它取到完整的选中路径文本 */
|
|
222
|
-
[data-scope='cascader'][data-part='trigger']:has([data-part='tag-list']:not([hidden])) [data-part='value-text'] {
|
|
222
|
+
[data-scope='cascader'][data-part='trigger']:has([data-part='tag-list']:not([hidden])) [data-part='value-text']:where([data-scope='cascader']) {
|
|
223
223
|
display: none;
|
|
224
224
|
}
|
|
225
225
|
|
|
226
226
|
/* 有值时清空钮顶上来,箭头让位:两个图标并排堆着,用户分不清点哪个。
|
|
227
227
|
判据查的是盒里此刻真有一颗没收起的清空钮,不是「有没有值」——
|
|
228
228
|
作者没摆清空钮时箭头照常留着,不然让了位没人接,指示符整个消失 */
|
|
229
|
-
[data-scope='cascader'][data-part='control']:has([data-part='clear-trigger']:not([hidden])) [data-part='indicator'] {
|
|
229
|
+
[data-scope='cascader'][data-part='control']:has([data-part='clear-trigger']:not([hidden])) [data-part='indicator']:where([data-scope='cascader']) {
|
|
230
230
|
display: none;
|
|
231
231
|
}
|
|
232
232
|
|
|
@@ -503,29 +503,29 @@
|
|
|
503
503
|
/* 一列开幕:条目自上而下逐条淡入。只在列头一次出现时播(浮层展开、此前收着的子列铺出来);
|
|
504
504
|
列此前就在、展开路径换到同列另一个父项时(悬停扫过),连接层给露面的条目标 data-instant,
|
|
505
505
|
换内容不重播。backwards 让每条在自己那份延迟里保持起始帧 */
|
|
506
|
-
[data-scope='cascader'][data-part='column'] [data-part='item']:not([data-instant]) {
|
|
506
|
+
[data-scope='cascader'][data-part='column'] [data-part='item']:where([data-scope='cascader']):not([data-instant]) {
|
|
507
507
|
animation: xh-fade-in var(--xh-motion-duration-enter) var(--xh-motion-ease-enter) backwards;
|
|
508
508
|
}
|
|
509
509
|
|
|
510
510
|
/* 交错的间隔:第二条起逐级往后推,第六条起统一钉在第五级,条目再多也不会拖出一条越来越慢的尾巴。
|
|
511
511
|
列里同时挂着别的父节点下的条目(收起态),计数把它们排掉,序号才对得上看得见的那几条 */
|
|
512
|
-
[data-scope='cascader'][data-part='column'] [data-part='item']:nth-child(2 of :not([hidden])) {
|
|
512
|
+
[data-scope='cascader'][data-part='column'] [data-part='item']:where([data-scope='cascader']):nth-child(2 of :not([hidden])) {
|
|
513
513
|
animation-delay: var(--xh-motion-stagger-step);
|
|
514
514
|
}
|
|
515
515
|
|
|
516
|
-
[data-scope='cascader'][data-part='column'] [data-part='item']:nth-child(3 of :not([hidden])) {
|
|
516
|
+
[data-scope='cascader'][data-part='column'] [data-part='item']:where([data-scope='cascader']):nth-child(3 of :not([hidden])) {
|
|
517
517
|
animation-delay: calc(2 * var(--xh-motion-stagger-step));
|
|
518
518
|
}
|
|
519
519
|
|
|
520
|
-
[data-scope='cascader'][data-part='column'] [data-part='item']:nth-child(4 of :not([hidden])) {
|
|
520
|
+
[data-scope='cascader'][data-part='column'] [data-part='item']:where([data-scope='cascader']):nth-child(4 of :not([hidden])) {
|
|
521
521
|
animation-delay: calc(3 * var(--xh-motion-stagger-step));
|
|
522
522
|
}
|
|
523
523
|
|
|
524
|
-
[data-scope='cascader'][data-part='column'] [data-part='item']:nth-child(5 of :not([hidden])) {
|
|
524
|
+
[data-scope='cascader'][data-part='column'] [data-part='item']:where([data-scope='cascader']):nth-child(5 of :not([hidden])) {
|
|
525
525
|
animation-delay: calc(4 * var(--xh-motion-stagger-step));
|
|
526
526
|
}
|
|
527
527
|
|
|
528
|
-
[data-scope='cascader'][data-part='column'] [data-part='item']:nth-child(n + 6 of :not([hidden])) {
|
|
528
|
+
[data-scope='cascader'][data-part='column'] [data-part='item']:where([data-scope='cascader']):nth-child(n + 6 of :not([hidden])) {
|
|
529
529
|
animation-delay: calc(5 * var(--xh-motion-stagger-step));
|
|
530
530
|
}
|
|
531
531
|
|
|
@@ -710,7 +710,7 @@
|
|
|
710
710
|
}
|
|
711
711
|
|
|
712
712
|
/* 搜索视图里列整体让位 */
|
|
713
|
-
[data-scope='cascader'][data-part='content'][data-searching] [data-part='column'] {
|
|
713
|
+
[data-scope='cascader'][data-part='content'][data-searching] [data-part='column']:where([data-scope='cascader']) {
|
|
714
714
|
display: none;
|
|
715
715
|
}
|
|
716
716
|
|
|
@@ -809,7 +809,7 @@
|
|
|
809
809
|
|
|
810
810
|
/* —— 空态:当前视图没有条目时由 empty 部件出面,文案由适配器或作者供给,皮肤只管排版 —— */
|
|
811
811
|
/* 根列没有条目时那条空列让位,占位面接管整个浮层 */
|
|
812
|
-
[data-scope='cascader'][data-part='content'][data-empty] [data-part='column'] {
|
|
812
|
+
[data-scope='cascader'][data-part='content'][data-empty] [data-part='column']:where([data-scope='cascader']) {
|
|
813
813
|
display: none;
|
|
814
814
|
}
|
|
815
815
|
|
package/css/citation.css
CHANGED
|
@@ -388,7 +388,7 @@
|
|
|
388
388
|
color var(--xh-motion-duration-micro) var(--xh-motion-ease-enter);
|
|
389
389
|
}
|
|
390
390
|
|
|
391
|
-
[data-scope='citation'][data-part='source'][data-state='active'] [data-part='source-index'] {
|
|
391
|
+
[data-scope='citation'][data-part='source'][data-state='active'] [data-part='source-index']:where([data-scope='citation']) {
|
|
392
392
|
background: var(--xh-citation-index-active-bg, var(--xh-bg-brand));
|
|
393
393
|
color: var(--xh-citation-index-active-fg, var(--xh-fg-on-brand));
|
|
394
394
|
}
|
|
@@ -416,7 +416,7 @@
|
|
|
416
416
|
}
|
|
417
417
|
|
|
418
418
|
@media (forced-colors: active) {
|
|
419
|
-
[data-scope='citation'][data-part='source'][data-state='active'] [data-part='source-index'] {
|
|
419
|
+
[data-scope='citation'][data-part='source'][data-state='active'] [data-part='source-index']:where([data-scope='citation']) {
|
|
420
420
|
background: Highlight;
|
|
421
421
|
color: HighlightText;
|
|
422
422
|
}
|
package/css/code-view.css
CHANGED
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
/* 折叠时 <pre> 的高度被连接层写死,超出部分沿圆角收边 */
|
|
94
|
-
[data-scope='code-view'][data-part='root'][data-clamped] [data-part='pre'] {
|
|
94
|
+
[data-scope='code-view'][data-part='root'][data-clamped] [data-part='pre']:where([data-scope='code-view']) {
|
|
95
95
|
overflow-y: hidden;
|
|
96
96
|
}
|
|
97
97
|
|
|
@@ -163,13 +163,13 @@
|
|
|
163
163
|
|
|
164
164
|
/* 开了换行:pre-wrap 仍保留缩进与连续空白,只是允许行尾折下来;
|
|
165
165
|
anywhere 让没有空格的长串(url、base64)也能断,否则照样撑出横向滚动 */
|
|
166
|
-
[data-scope='code-view'][data-part='code'][data-wrap] [data-part='line-content'] {
|
|
166
|
+
[data-scope='code-view'][data-part='code'][data-wrap] [data-part='line-content']:where([data-scope='code-view']) {
|
|
167
167
|
white-space: pre-wrap;
|
|
168
168
|
overflow-wrap: anywhere;
|
|
169
169
|
}
|
|
170
170
|
|
|
171
171
|
/* 没开行号时正文自带左内衬;开了行号则由行号槽的内衬顶开 */
|
|
172
|
-
[data-scope='code-view'][data-part='root']:not([data-line-numbers]) [data-part='line-content'] {
|
|
172
|
+
[data-scope='code-view'][data-part='root']:not([data-line-numbers]) [data-part='line-content']:where([data-scope='code-view']) {
|
|
173
173
|
padding-inline-start: var(--xh-code-view-px, var(--xh-space-3));
|
|
174
174
|
}
|
|
175
175
|
|
|
@@ -233,12 +233,12 @@
|
|
|
233
233
|
--xh-_code-view-fold-col: var(--xh-code-view-fold-col, var(--xh-code-view-line-height, var(--xh-text-code-leading)));
|
|
234
234
|
}
|
|
235
235
|
|
|
236
|
-
[data-scope='code-view'][data-part='root'][data-block-folding] [data-part='line-content'] {
|
|
236
|
+
[data-scope='code-view'][data-part='root'][data-block-folding] [data-part='line-content']:where([data-scope='code-view']) {
|
|
237
237
|
position: relative;
|
|
238
238
|
padding-inline-start: var(--xh-_code-view-fold-col);
|
|
239
239
|
}
|
|
240
240
|
|
|
241
|
-
[data-scope='code-view'][data-part='root'][data-block-folding]:not([data-line-numbers]) [data-part='line-content'] {
|
|
241
|
+
[data-scope='code-view'][data-part='root'][data-block-folding]:not([data-line-numbers]) [data-part='line-content']:where([data-scope='code-view']) {
|
|
242
242
|
padding-inline-start: calc(var(--xh-code-view-px, var(--xh-space-3)) + var(--xh-_code-view-fold-col));
|
|
243
243
|
}
|
|
244
244
|
|
|
@@ -258,7 +258,7 @@
|
|
|
258
258
|
block-size: var(--xh-_code-view-fold-col);
|
|
259
259
|
}
|
|
260
260
|
|
|
261
|
-
[data-scope='code-view'][data-part='root'][data-block-folding]:not([data-line-numbers]) [data-part='line-fold-trigger'] {
|
|
261
|
+
[data-scope='code-view'][data-part='root'][data-block-folding]:not([data-line-numbers]) [data-part='line-fold-trigger']:where([data-scope='code-view']) {
|
|
262
262
|
inset-inline-start: var(--xh-code-view-px, var(--xh-space-3));
|
|
263
263
|
}
|
|
264
264
|
|