@xihan-ui/styles 3.0.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 +63 -0
- package/README.md +1 -1
- package/component-tokens.d.ts +29 -0
- package/components.tokens.json +683 -27
- 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-picker.css +81 -0
- 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 +39 -0
- package/css/date-picker.css +86 -9
- package/css/date-range-picker.css +47 -7
- package/css/diff-view.css +8 -8
- package/css/field-array.css +1 -1
- package/css/field.css +4 -0
- package/css/file-upload.css +1 -1
- package/css/float-button.css +140 -27
- package/css/form.css +14 -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 +26 -20
- 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 +19 -2
- package/css/tags-input.css +1 -1
- package/css/time-picker.css +59 -2
- package/css/tool-call.css +7 -7
- package/css/tooltip.css +1 -1
- package/css/tree-select.css +2 -2
- package/css/tree.css +81 -11
- 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 +7307 -6759
- package/index.unlayered.css +7309 -6761
- package/package.json +165 -164
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
|
|
package/css/color-picker.css
CHANGED
|
@@ -6,8 +6,10 @@
|
|
|
6
6
|
/* 定义 color picker 样式。 */
|
|
7
7
|
|
|
8
8
|
@import '../family/field-chrome.css';
|
|
9
|
+
@import '../family/action-control.css';
|
|
9
10
|
@import '../family/swatch.css';
|
|
10
11
|
@import '../family/motion.css';
|
|
12
|
+
@import '../family/tag-list.css';
|
|
11
13
|
|
|
12
14
|
@layer xihan.components {
|
|
13
15
|
/* 皮肤在场的标记:开发模式下按 scope 探一次,取不到就说明这份皮肤没被引入。 */
|
|
@@ -90,6 +92,46 @@
|
|
|
90
92
|
display: none;
|
|
91
93
|
}
|
|
92
94
|
|
|
95
|
+
/* 多选的标签行:选中的颜色在盒里排成标签,超过 maxTagCount 的折进 +N。
|
|
96
|
+
行里每一枚都是 tag(data-scope="tag"),样子归 tag.css;行怎么排、标签怎么进出归标签行家族配方。
|
|
97
|
+
基准取 0:只吃触发钮剩下的宽度、在自己里面折行;按内容宽算基准的话,盒子会先在钮前面折行,把钮挤到最后一行 */
|
|
98
|
+
[data-scope='color-picker'][data-part='tag-list'] {
|
|
99
|
+
--xh-tag-list-gap: var(--xh-color-picker-tag-list-gap, var(--xh-space-1));
|
|
100
|
+
|
|
101
|
+
flex: 1 1 0;
|
|
102
|
+
flex-wrap: wrap;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/* 颜色标签是定长的值串,截短了就读不出是哪个颜色:不收缩,排不下就折到下一行,
|
|
106
|
+
盒随行数长高(字段家族的 multi-tag 布局给),到上限后在盒内滚动 */
|
|
107
|
+
[data-scope='color-picker'][data-part='tag-list'] > [data-scope='tag'][data-part='root'] {
|
|
108
|
+
flex: none;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/* 每枚标签前一个色点,颜色由连接层写进内联私有槽;+N 那一枚没有 data-value,不画。
|
|
112
|
+
白色与近底色的颜色靠一圈默认描边从标签底上分出来 */
|
|
113
|
+
[data-scope='color-picker'][data-part='tag-list'] > [data-scope='tag'][data-part='root'][data-value]::before {
|
|
114
|
+
flex: none;
|
|
115
|
+
box-sizing: border-box;
|
|
116
|
+
inline-size: var(--xh-color-picker-tag-dot-size, var(--xh-control-indicator-sm));
|
|
117
|
+
block-size: var(--xh-color-picker-tag-dot-size, var(--xh-control-indicator-sm));
|
|
118
|
+
border: var(--xh-stroke-thin) solid var(--xh-color-picker-tag-dot-border, var(--xh-border-default));
|
|
119
|
+
border-radius: var(--xh-shape-circle);
|
|
120
|
+
background-color: var(--xh-_color-picker-tag-color, transparent);
|
|
121
|
+
content: '';
|
|
122
|
+
print-color-adjust: exact;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
[data-scope='color-picker'][data-part='control'][data-xh-field-layout='multi-tag'] {
|
|
126
|
+
max-block-size: var(--xh-color-picker-control-max-h, var(--xh-viewport-h-sm));
|
|
127
|
+
overflow-y: auto;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/* 多选时值文字让位,触发钮只剩一颗显示工作色的色块:不再占满剩余宽度,标签行吃掉余下的位置 */
|
|
131
|
+
[data-scope='color-picker'][data-part='control'][data-xh-field-layout='multi-tag'] > [data-scope='color-picker'][data-part='trigger'] {
|
|
132
|
+
flex: none;
|
|
133
|
+
}
|
|
134
|
+
|
|
93
135
|
/* 盒内那颗可聚焦的按钮:不画描边不铺底也不自带高度,只占满剩余宽度、排布色块与值文本 */
|
|
94
136
|
[data-scope='color-picker'][data-part='trigger'] {
|
|
95
137
|
display: inline-flex;
|
|
@@ -427,6 +469,39 @@
|
|
|
427
469
|
color: var(--xh-fg-disabled);
|
|
428
470
|
}
|
|
429
471
|
|
|
472
|
+
/* 「添加」沉到面板的行尾:它是多选时整块面板的出口,不跟取色面左对齐 */
|
|
473
|
+
[data-scope='color-picker'][data-part='content'] > [data-scope='color-picker'][data-part='confirm-trigger'] {
|
|
474
|
+
flex: none;
|
|
475
|
+
align-self: flex-end;
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
/* 「添加」是面板里唯一的主要动作:品牌实心、悬停 / 按下与 0.97 按压、焦点环全由 Action Control 的
|
|
479
|
+
text solid 档给;槽名统一按部件取 --xh-color-picker-confirm-trigger-*,只映射到家族桥接槽 */
|
|
480
|
+
[data-scope='color-picker'][data-part='confirm-trigger'] {
|
|
481
|
+
--xh-action-visual-size: var(--xh-color-picker-confirm-trigger-h, var(--xh-_action-profile-visual-size));
|
|
482
|
+
--xh-action-padding-inline: var(--xh-color-picker-confirm-trigger-px, var(--xh-_action-profile-padding-inline));
|
|
483
|
+
--xh-action-radius: var(--xh-color-picker-confirm-trigger-radius, var(--xh-shape-control));
|
|
484
|
+
--xh-action-bg-rest: var(--xh-color-picker-confirm-trigger-bg, var(--xh-_action-variant-bg-rest));
|
|
485
|
+
--xh-action-bg-hover: var(--xh-color-picker-confirm-trigger-bg-hover, var(--xh-_action-variant-bg-hover));
|
|
486
|
+
--xh-action-bg-pressed: var(--xh-color-picker-confirm-trigger-bg-active, var(--xh-_action-variant-bg-pressed));
|
|
487
|
+
--xh-action-fg-rest: var(--xh-color-picker-confirm-trigger-fg, var(--xh-_action-variant-fg-rest));
|
|
488
|
+
--xh-action-fg-hover: var(--xh-color-picker-confirm-trigger-fg, var(--xh-_action-variant-fg-hover));
|
|
489
|
+
--xh-action-fg-pressed: var(--xh-color-picker-confirm-trigger-fg, var(--xh-_action-variant-fg-pressed));
|
|
490
|
+
--xh-action-border-rest: transparent;
|
|
491
|
+
--xh-action-highlight-rest: transparent;
|
|
492
|
+
--xh-action-shadow-rest: var(--xh-color-picker-confirm-trigger-shadow, none);
|
|
493
|
+
--xh-action-shadow-hover: var(--xh-color-picker-confirm-trigger-shadow, none);
|
|
494
|
+
--xh-action-shadow-pressed: var(--xh-color-picker-confirm-trigger-shadow, none);
|
|
495
|
+
--xh-action-font-size: var(--xh-text-secondary-size);
|
|
496
|
+
|
|
497
|
+
border-width: 0;
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
/* 单选时连接层给的是 hidden 属性;家族那条 display 会把 UA 规则盖掉 */
|
|
501
|
+
[data-scope='color-picker'][data-part='confirm-trigger'][hidden] {
|
|
502
|
+
display: none;
|
|
503
|
+
}
|
|
504
|
+
|
|
430
505
|
/* 预设色板的挂载点,同时充当色板的根节点:color-swatch-picker 那份皮的 root 规则落在
|
|
431
506
|
[data-scope='color-swatch-picker'][data-part='root'] 上,而这里没有那个节点,所以根上挂的那几个私有槽
|
|
432
507
|
(格子边长、间距、徽标尺寸、语气色、图标尺)与排布得在这儿照抄一遍;格子的皮仍归色板那一份。
|
|
@@ -510,5 +585,11 @@
|
|
|
510
585
|
outline: var(--xh-stroke-thin) solid ButtonBorder;
|
|
511
586
|
outline-offset: calc(-1 * var(--xh-stroke-thin));
|
|
512
587
|
}
|
|
588
|
+
|
|
589
|
+
/* 标签前的色点画的也是颜色本身:同样退出强制着色,用系统文字色描一圈 */
|
|
590
|
+
[data-scope='color-picker'][data-part='tag-list'] > [data-scope='tag'][data-part='root'][data-value]::before {
|
|
591
|
+
forced-color-adjust: none;
|
|
592
|
+
border-color: CanvasText;
|
|
593
|
+
}
|
|
513
594
|
}
|
|
514
595
|
}
|