@xihan-ui/styles 3.1.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +470 -0
- package/component-tokens.d.ts +230 -60
- package/components.tokens.json +5156 -1557
- package/css/accordion.css +47 -20
- package/css/alert.css +16 -17
- package/css/anchor.css +2 -2
- package/css/approval.css +41 -17
- package/css/avatar-group.css +9 -12
- package/css/avatar.css +20 -18
- package/css/back-top.css +21 -7
- package/css/badge.css +5 -5
- package/css/breadcrumb.css +18 -16
- package/css/button-group.css +4 -6
- package/css/button.css +13 -12
- package/css/calendar-picker.css +178 -95
- package/css/calendar-range-picker.css +207 -122
- package/css/card.css +34 -6
- package/css/carousel.css +94 -46
- package/css/cartesian-chart.css +11 -11
- package/css/cascader.css +51 -39
- package/css/checkbox-group.css +9 -6
- package/css/checkbox.css +5 -4
- package/css/citation.css +9 -4
- package/css/clipboard.css +20 -4
- package/css/code-view.css +6 -6
- package/css/collapsible.css +29 -14
- package/css/color-field.css +4 -4
- package/css/color-picker.css +77 -23
- package/css/color-slider.css +10 -8
- package/css/color-swatch-picker.css +14 -9
- package/css/combobox.css +26 -14
- package/css/command.css +14 -9
- package/css/context-menu.css +10 -5
- package/css/date-field.css +12 -6
- package/css/date-picker.css +178 -109
- package/css/date-range-picker.css +199 -130
- package/css/description.css +10 -6
- package/css/descriptions.css +47 -19
- package/css/dialog.css +50 -35
- package/css/diff-view.css +8 -8
- package/css/drawer.css +75 -21
- package/css/editable.css +15 -41
- package/css/empty-state.css +21 -3
- package/css/field-array.css +5 -2
- package/css/field.css +17 -18
- package/css/fieldset.css +33 -13
- package/css/file-upload.css +66 -33
- package/css/float-button.css +60 -35
- package/css/floating-panel.css +1 -1
- package/css/form.css +30 -16
- package/css/graph-chart.css +2 -2
- package/css/grid-list.css +1 -1
- package/css/highlight.css +5 -5
- package/css/hover-card.css +19 -12
- package/css/image-viewer.css +77 -27
- package/css/image.css +13 -5
- package/css/infinite-scroll.css +8 -4
- package/css/input-group.css +74 -26
- package/css/kbd.css +1 -1
- package/css/label.css +27 -11
- package/css/layout.css +17 -10
- package/css/list.css +13 -9
- package/css/listbox.css +12 -7
- package/css/loading-bar.css +3 -0
- package/css/mention.css +11 -9
- package/css/menu.css +10 -5
- package/css/menubar.css +13 -8
- package/css/message-feed.css +1 -1
- package/css/navigation-menu.css +2 -2
- package/css/notification.css +132 -49
- package/css/number-animation.css +2 -2
- package/css/number-field.css +75 -52
- package/css/page-header.css +64 -27
- package/css/pagination.css +35 -38
- package/css/password-input.css +12 -68
- package/css/pin-input.css +18 -26
- package/css/popconfirm.css +23 -14
- package/css/popover.css +18 -12
- package/css/progress.css +14 -13
- package/css/prompt-input.css +3 -3
- package/css/question-flow.css +41 -15
- package/css/radar-chart.css +6 -6
- package/css/radio-group.css +120 -55
- package/css/rating.css +32 -15
- package/css/select.css +16 -12
- package/css/separator.css +24 -6
- package/css/side-nav.css +29 -24
- package/css/signature-pad.css +23 -9
- package/css/skeleton.css +12 -12
- package/css/slider.css +77 -48
- package/css/sortable.css +2 -2
- package/css/sparkline.css +8 -2
- package/css/spinner.css +40 -20
- package/css/statistic.css +14 -14
- package/css/steps.css +115 -84
- package/css/switch.css +9 -7
- package/css/table.css +29 -12
- package/css/tabs.css +35 -12
- package/css/tag-group.css +17 -6
- package/css/tag.css +54 -29
- package/css/tags-input.css +39 -20
- package/css/text-field.css +5 -5
- package/css/time-field.css +4 -4
- package/css/time-picker.css +150 -64
- package/css/time-range-picker.css +91 -62
- package/css/timeline.css +37 -20
- package/css/timer.css +3 -3
- package/css/toggle-group.css +4 -4
- package/css/tool-call.css +13 -11
- package/css/toolbar.css +6 -5
- package/css/tooltip.css +16 -17
- package/css/tour.css +14 -7
- package/css/transfer.css +22 -16
- package/css/tree-select.css +12 -12
- package/css/tree.css +26 -25
- package/css/typography.css +28 -25
- package/dist/css/accordion.css +296 -0
- package/dist/css/affix.css +47 -0
- package/dist/css/alert.css +246 -0
- package/dist/css/anchor.css +252 -0
- package/dist/css/approval.css +525 -0
- package/dist/css/avatar-group.css +96 -0
- package/dist/css/avatar.css +100 -0
- package/dist/css/back-top.css +175 -0
- package/dist/css/badge.css +205 -0
- package/dist/css/bar-code.css +62 -0
- package/dist/css/breadcrumb.css +232 -0
- package/dist/css/button-group.css +261 -0
- package/dist/css/button.css +216 -0
- package/dist/css/calendar-picker.css +550 -0
- package/dist/css/calendar-range-picker.css +639 -0
- package/dist/css/card.css +249 -0
- package/dist/css/carousel.css +726 -0
- package/dist/css/cartesian-chart.css +830 -0
- package/dist/css/cascader.css +973 -0
- package/dist/css/checkbox-group.css +361 -0
- package/dist/css/checkbox.css +258 -0
- package/dist/css/citation.css +475 -0
- package/dist/css/clipboard.css +331 -0
- package/dist/css/code-view.css +374 -0
- package/dist/css/collapsible.css +200 -0
- package/dist/css/color-field.css +176 -0
- package/dist/css/color-picker.css +649 -0
- package/dist/css/color-slider.css +283 -0
- package/dist/css/color-swatch-picker.css +250 -0
- package/dist/css/color-swatch.css +35 -0
- package/dist/css/combobox.css +578 -0
- package/dist/css/command.css +404 -0
- package/dist/css/context-menu.css +425 -0
- package/dist/css/date-field.css +317 -0
- package/dist/css/date-picker.css +931 -0
- package/dist/css/date-range-picker.css +949 -0
- package/dist/css/description.css +71 -0
- package/dist/css/descriptions.css +327 -0
- package/dist/css/dialog.css +470 -0
- package/dist/css/diff-view.css +513 -0
- package/dist/css/download-trigger.css +151 -0
- package/dist/css/drawer.css +606 -0
- package/dist/css/editable.css +269 -0
- package/dist/css/empty-state.css +181 -0
- package/dist/css/field-array.css +229 -0
- package/dist/css/field.css +165 -0
- package/dist/css/fieldset.css +122 -0
- package/dist/css/file-upload.css +462 -0
- package/dist/css/flex.css +441 -0
- package/dist/css/float-button.css +579 -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 +407 -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 +233 -0
- package/dist/css/icon.css +225 -0
- package/dist/css/image-cropper.css +373 -0
- package/dist/css/image-viewer.css +588 -0
- package/dist/css/image.css +106 -0
- package/dist/css/infinite-scroll.css +81 -0
- package/dist/css/input-group.css +323 -0
- package/dist/css/json-viewer.css +379 -0
- package/dist/css/kbd.css +72 -0
- package/dist/css/label.css +94 -0
- package/dist/css/layers.css +7 -0
- package/dist/css/layout.css +379 -0
- package/dist/css/liquid.css +106 -0
- package/dist/css/list.css +156 -0
- package/dist/css/listbox.css +395 -0
- package/dist/css/loading-bar.css +144 -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 +395 -0
- package/dist/css/menu.css +369 -0
- package/dist/css/menubar.css +461 -0
- package/dist/css/message-feed.css +318 -0
- package/dist/css/navigation-menu.css +513 -0
- package/dist/css/notification.css +865 -0
- package/dist/css/number-animation.css +44 -0
- package/dist/css/number-field.css +275 -0
- package/dist/css/overlay-arrow.css +56 -0
- package/dist/css/page-header.css +221 -0
- package/dist/css/pagination.css +447 -0
- package/dist/css/password-input.css +335 -0
- package/dist/css/pie-chart.css +247 -0
- package/dist/css/pin-input.css +191 -0
- package/dist/css/pointer.css +36 -0
- package/dist/css/popconfirm.css +329 -0
- package/dist/css/popover.css +285 -0
- package/dist/css/progress.css +502 -0
- package/dist/css/prompt-input.css +260 -0
- package/dist/css/question-flow.css +579 -0
- package/dist/css/radar-chart.css +233 -0
- package/dist/css/radio-group.css +663 -0
- package/dist/css/rating.css +311 -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 +616 -0
- package/dist/css/separator.css +140 -0
- package/dist/css/side-nav.css +481 -0
- package/dist/css/signature-pad.css +193 -0
- package/dist/css/skeleton.css +161 -0
- package/dist/css/slider.css +403 -0
- package/dist/css/sortable.css +228 -0
- package/dist/css/sparkline.css +170 -0
- package/dist/css/spinner.css +256 -0
- package/dist/css/splitter.css +159 -0
- package/dist/css/statistic.css +137 -0
- package/dist/css/steps.css +658 -0
- package/dist/css/switch.css +353 -0
- package/dist/css/table.css +1162 -0
- package/dist/css/tabs.css +967 -0
- package/dist/css/tag-group.css +258 -0
- package/dist/css/tag.css +335 -0
- package/dist/css/tags-input.css +341 -0
- package/dist/css/text-field.css +197 -0
- package/dist/css/time-field.css +277 -0
- package/dist/css/time-picker.css +793 -0
- package/dist/css/time-range-picker.css +775 -0
- package/dist/css/timeline.css +440 -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 +431 -0
- package/dist/css/toolbar.css +366 -0
- package/dist/css/tooltip.css +217 -0
- package/dist/css/tour.css +446 -0
- package/dist/css/transfer.css +644 -0
- package/dist/css/tree-select.css +878 -0
- package/dist/css/tree.css +734 -0
- package/dist/css/truncate.css +108 -0
- package/dist/css/typography.css +475 -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 +493 -0
- package/dist/family/chart.css +537 -0
- package/dist/family/check-mark.css +94 -0
- package/dist/family/choice-card.css +97 -0
- package/dist/family/collection-item.css +768 -0
- package/dist/family/field-chrome.css +296 -0
- package/dist/family/loading-ring.css +102 -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 +65 -0
- package/family/action-control.css +33 -36
- package/family/chart.css +57 -0
- package/family/collection-item.css +12 -8
- package/family/field-chrome.css +28 -19
- package/family/loading-ring.css +20 -13
- package/family/swatch.css +4 -4
- package/family/tag-list.css +6 -0
- package/index.css +10349 -8756
- package/index.unlayered.css +10350 -8758
- package/package.json +165 -164
package/css/popconfirm.css
CHANGED
|
@@ -115,15 +115,19 @@
|
|
|
115
115
|
|
|
116
116
|
/* 作者塞进面板里的图标按控件档取;两颗动作钮另由家族配方按 sm 档下发字形尺 */
|
|
117
117
|
--xh-icon-size: var(--xh-popconfirm-icon-size, var(--xh-glyph-size-md));
|
|
118
|
-
/*
|
|
119
|
-
--xh-_popconfirm-
|
|
118
|
+
/* 尺寸档只换这三个私有槽:横向内衬比纵向高一档(缺省纵 12 横 16),与 popover 同一套 */
|
|
119
|
+
--xh-_popconfirm-py: var(--xh-surface-pad-md);
|
|
120
|
+
--xh-_popconfirm-px: var(--xh-surface-pad-lg);
|
|
120
121
|
--xh-_popconfirm-max-w: var(--xh-overlay-max-w);
|
|
121
122
|
|
|
122
123
|
position: relative;
|
|
123
124
|
display: grid;
|
|
124
125
|
grid-template-columns: 1fr auto auto;
|
|
125
126
|
align-items: center;
|
|
126
|
-
|
|
127
|
+
/* 行距与气泡族同一档:标题与说明之间只留 4px;两颗钮之间的列距另由 column-gap 放宽。
|
|
128
|
+
column-gap 写在 gap 之后,先回落到 gap 槽再取缺省:作者只写 --xh-popconfirm-gap 时行列一起跟着它走 */
|
|
129
|
+
gap: var(--xh-popconfirm-gap, var(--xh-space-1));
|
|
130
|
+
column-gap: var(--xh-popconfirm-column-gap, var(--xh-popconfirm-gap, var(--xh-space-2)));
|
|
127
131
|
inline-size: max-content;
|
|
128
132
|
/* 静态档与落位后的可用宽度取小:窄视口下面板伸出去,最右侧的两颗钮就点不到了 */
|
|
129
133
|
max-inline-size: min(var(--xh-popconfirm-max-w, var(--xh-_popconfirm-max-w)), var(--xh-_popconfirm-available-w));
|
|
@@ -132,8 +136,8 @@
|
|
|
132
136
|
overflow-y: auto;
|
|
133
137
|
/* 浮在页面之上的 Overlay 滚动面:滚到头不把页面一起带走 */
|
|
134
138
|
overscroll-behavior: contain;
|
|
135
|
-
padding-block: var(--xh-popconfirm-py, var(--xh-_popconfirm-
|
|
136
|
-
padding-inline: var(--xh-popconfirm-px, var(--xh-_popconfirm-
|
|
139
|
+
padding-block: var(--xh-popconfirm-py, var(--xh-_popconfirm-py));
|
|
140
|
+
padding-inline: var(--xh-popconfirm-px, var(--xh-_popconfirm-px));
|
|
137
141
|
border-radius: var(--xh-popconfirm-radius, var(--xh-shape-overlay));
|
|
138
142
|
pointer-events: auto;
|
|
139
143
|
/* 进退场的缩放锚在贴着锚点的那条边上;两个分量由 positioner 按 placement 写进私有槽 */
|
|
@@ -145,7 +149,7 @@
|
|
|
145
149
|
}
|
|
146
150
|
|
|
147
151
|
/* 箭头绝对定位挂在 content 上,不占格:吃到栅格位的话它的贴边就从格线起算,被内衬推进面里 */
|
|
148
|
-
[data-scope='popconfirm'][data-part='content'] > [data-part='arrow'] {
|
|
152
|
+
[data-scope='popconfirm'][data-part='content'] > [data-part='arrow']:where([data-scope='popconfirm']) {
|
|
149
153
|
grid-column: auto;
|
|
150
154
|
}
|
|
151
155
|
|
|
@@ -171,32 +175,35 @@
|
|
|
171
175
|
}
|
|
172
176
|
|
|
173
177
|
/* —— 尺寸 —— */
|
|
174
|
-
/* 缺省档写在 content
|
|
178
|
+
/* 缺省档写在 content 的基础规则里;内衬三档取 surface-pad 那把尺,横向始终比纵向高一档 */
|
|
175
179
|
[data-scope='popconfirm'][data-part='content'][data-size='sm'] {
|
|
176
|
-
--xh-_popconfirm-
|
|
180
|
+
--xh-_popconfirm-py: var(--xh-surface-pad-sm);
|
|
181
|
+
--xh-_popconfirm-px: var(--xh-surface-pad-md);
|
|
177
182
|
--xh-_popconfirm-max-w: var(--xh-overlay-max-w-sm);
|
|
178
183
|
}
|
|
179
184
|
|
|
180
185
|
[data-scope='popconfirm'][data-part='content'][data-size='lg'] {
|
|
181
|
-
--xh-_popconfirm-
|
|
186
|
+
--xh-_popconfirm-py: var(--xh-surface-pad-lg);
|
|
187
|
+
--xh-_popconfirm-px: var(--xh-surface-pad-xl);
|
|
182
188
|
--xh-_popconfirm-max-w: var(--xh-overlay-max-w-lg);
|
|
183
189
|
}
|
|
184
190
|
|
|
191
|
+
/* 气泡标题:14px / medium / 正文色 */
|
|
185
192
|
[data-scope='popconfirm'][data-part='title'] {
|
|
186
193
|
margin: 0;
|
|
187
194
|
min-inline-size: 0;
|
|
188
195
|
font-size: var(--xh-popconfirm-title-font-size, var(--xh-text-label-size));
|
|
189
|
-
font-weight: var(--xh-popconfirm-title-font-weight, var(--xh-font-weight-
|
|
196
|
+
font-weight: var(--xh-popconfirm-title-font-weight, var(--xh-font-weight-medium));
|
|
190
197
|
line-height: var(--xh-leading-tight);
|
|
191
198
|
overflow-wrap: anywhere;
|
|
192
199
|
color: var(--xh-popconfirm-title-fg, var(--xh-material-frosted-fg));
|
|
193
200
|
}
|
|
194
201
|
|
|
195
|
-
/*
|
|
202
|
+
/* 说明就是气泡的正文:14px 正文字号 + fg-muted 次级色 */
|
|
196
203
|
[data-scope='popconfirm'][data-part='description'] {
|
|
197
204
|
margin: 0;
|
|
198
205
|
min-inline-size: 0;
|
|
199
|
-
font-size: var(--xh-popconfirm-description-font-size, var(--xh-text-
|
|
206
|
+
font-size: var(--xh-popconfirm-description-font-size, var(--xh-text-body-size));
|
|
200
207
|
line-height: var(--xh-leading-normal);
|
|
201
208
|
overflow-wrap: anywhere;
|
|
202
209
|
color: var(--xh-popconfirm-description-fg, var(--xh-fg-muted));
|
|
@@ -231,14 +238,16 @@
|
|
|
231
238
|
|
|
232
239
|
/* 动作钮的文字与 Button 同一字重(家族配方不管字重) */
|
|
233
240
|
font-weight: var(--xh-popconfirm-action-font-weight, var(--xh-text-label-weight));
|
|
241
|
+
/* 末行与上面的文字隔开:栅格行距只有标题与说明之间那 4px,钮再往下让 12px,文字与钮之间共 16px */
|
|
242
|
+
margin-block-start: var(--xh-popconfirm-action-mt, var(--xh-space-3));
|
|
234
243
|
}
|
|
235
244
|
|
|
236
245
|
/* 并排落在最后一行的右侧两格;取消在左、确认在右 */
|
|
237
|
-
[data-scope='popconfirm'][data-part='content'] > [data-part='cancel-trigger'] {
|
|
246
|
+
[data-scope='popconfirm'][data-part='content'] > [data-part='cancel-trigger']:where([data-scope='popconfirm']) {
|
|
238
247
|
grid-column: 2;
|
|
239
248
|
}
|
|
240
249
|
|
|
241
|
-
[data-scope='popconfirm'][data-part='content'] > [data-part='confirm-trigger'] {
|
|
250
|
+
[data-scope='popconfirm'][data-part='content'] > [data-part='confirm-trigger']:where([data-scope='popconfirm']) {
|
|
242
251
|
grid-column: 3;
|
|
243
252
|
}
|
|
244
253
|
|
package/css/popover.css
CHANGED
|
@@ -108,15 +108,17 @@
|
|
|
108
108
|
/* 作者塞进面板里的图标按控件档取;关闭钮另由家族配方按 sm 档下发字形尺 */
|
|
109
109
|
--xh-icon-size: var(--xh-popover-icon-size, var(--xh-glyph-size-md));
|
|
110
110
|
|
|
111
|
-
/*
|
|
112
|
-
|
|
113
|
-
--xh-_popover-
|
|
111
|
+
/* 尺寸档只换这三个私有槽。popover 没有 root 部件,size 落在浮层树最外层的 content 上。
|
|
112
|
+
横向内衬比纵向高一档(缺省纵 12 横 16)。语气不接:面板是内容容器,语气该由里面的内容表达 */
|
|
113
|
+
--xh-_popover-py: var(--xh-surface-pad-md);
|
|
114
|
+
--xh-_popover-px: var(--xh-surface-pad-lg);
|
|
114
115
|
--xh-_popover-max-w: var(--xh-overlay-max-w);
|
|
115
116
|
|
|
116
117
|
position: relative;
|
|
117
118
|
display: flex;
|
|
118
119
|
flex-direction: column;
|
|
119
|
-
|
|
120
|
+
/* 标题与正文贴着排:两行之间只留 4px */
|
|
121
|
+
gap: var(--xh-popover-gap, var(--xh-space-1));
|
|
120
122
|
inline-size: max-content;
|
|
121
123
|
/* 静态档与落位后的可用宽度取小:窄视口下面板伸出去,最右侧的内容就点不到了 */
|
|
122
124
|
max-inline-size: min(var(--xh-popover-max-w, var(--xh-_popover-max-w)), var(--xh-_popover-available-w));
|
|
@@ -125,8 +127,8 @@
|
|
|
125
127
|
overflow-y: auto;
|
|
126
128
|
/* 浮在页面之上的 Overlay 滚动面:滚到头不把页面一起带走 */
|
|
127
129
|
overscroll-behavior: contain;
|
|
128
|
-
padding-block: var(--xh-popover-py, var(--xh-_popover-
|
|
129
|
-
padding-inline: var(--xh-popover-px, var(--xh-_popover-
|
|
130
|
+
padding-block: var(--xh-popover-py, var(--xh-_popover-py));
|
|
131
|
+
padding-inline: var(--xh-popover-px, var(--xh-_popover-px));
|
|
130
132
|
border-radius: var(--xh-popover-radius, var(--xh-shape-overlay));
|
|
131
133
|
pointer-events: auto;
|
|
132
134
|
/* 进退场的缩放锚在贴着锚点的那条边上;两个分量由 positioner 按 placement 写进私有槽 */
|
|
@@ -155,28 +157,32 @@
|
|
|
155
157
|
}
|
|
156
158
|
|
|
157
159
|
/* —— 尺寸 —— */
|
|
158
|
-
/* 缺省档写在 content
|
|
160
|
+
/* 缺省档写在 content 的基础规则里;内衬三档取 surface-pad 那把尺,横向始终比纵向高一档 */
|
|
159
161
|
[data-scope='popover'][data-part='content'][data-size='sm'] {
|
|
160
|
-
--xh-_popover-
|
|
162
|
+
--xh-_popover-py: var(--xh-surface-pad-sm);
|
|
163
|
+
--xh-_popover-px: var(--xh-surface-pad-md);
|
|
161
164
|
--xh-_popover-max-w: var(--xh-overlay-max-w-sm);
|
|
162
165
|
}
|
|
163
166
|
|
|
164
167
|
[data-scope='popover'][data-part='content'][data-size='lg'] {
|
|
165
|
-
--xh-_popover-
|
|
168
|
+
--xh-_popover-py: var(--xh-surface-pad-lg);
|
|
169
|
+
--xh-_popover-px: var(--xh-surface-pad-xl);
|
|
166
170
|
--xh-_popover-max-w: var(--xh-overlay-max-w-lg);
|
|
167
171
|
}
|
|
168
172
|
|
|
173
|
+
/* 气泡标题:14px / medium / 正文色 */
|
|
169
174
|
[data-scope='popover'][data-part='title'] {
|
|
170
175
|
margin: 0;
|
|
171
176
|
font-size: var(--xh-popover-title-font-size, var(--xh-text-label-size));
|
|
172
|
-
font-weight: var(--xh-popover-title-font-weight, var(--xh-font-weight-
|
|
177
|
+
font-weight: var(--xh-popover-title-font-weight, var(--xh-font-weight-medium));
|
|
173
178
|
color: var(--xh-popover-title-fg, var(--xh-material-frosted-fg));
|
|
174
179
|
}
|
|
175
180
|
|
|
176
|
-
/*
|
|
181
|
+
/* 说明就是气泡的正文:14px 正文字号 + fg-muted 次级色 */
|
|
177
182
|
[data-scope='popover'][data-part='description'] {
|
|
178
183
|
margin: 0;
|
|
179
|
-
font-size: var(--xh-popover-description-font-size, var(--xh-text-
|
|
184
|
+
font-size: var(--xh-popover-description-font-size, var(--xh-text-body-size));
|
|
185
|
+
line-height: var(--xh-leading-normal);
|
|
180
186
|
color: var(--xh-popover-description-fg, var(--xh-fg-muted));
|
|
181
187
|
}
|
|
182
188
|
|
package/css/progress.css
CHANGED
|
@@ -38,10 +38,10 @@
|
|
|
38
38
|
--xh-progress-skin: 1;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
/* 私有槽位:组件令牌 →
|
|
42
|
-
尺寸档才改得动一处就够,track
|
|
41
|
+
/* 私有槽位:组件令牌 → 中档两级回退。厚度写在 root 上而不是 track 上,
|
|
42
|
+
尺寸档才改得动一处就够,track 靠继承拿到值。线形是一条细轨,按轨道厚度三档取 sm / md / lg = 3 / 4 / 8px */
|
|
43
43
|
[data-scope='progress'][data-part='root'] {
|
|
44
|
-
--xh-_progress-thickness: var(--xh-progress-thickness, var(--xh-track-thickness));
|
|
44
|
+
--xh-_progress-thickness: var(--xh-progress-thickness, var(--xh-track-thickness-md));
|
|
45
45
|
|
|
46
46
|
/* 目标刻度与环形的刻度值按根落位 */
|
|
47
47
|
position: relative;
|
|
@@ -58,7 +58,8 @@
|
|
|
58
58
|
inline-size: 100%;
|
|
59
59
|
block-size: var(--xh-_progress-thickness);
|
|
60
60
|
border-radius: var(--xh-progress-track-radius, var(--xh-shape-pill));
|
|
61
|
-
|
|
61
|
+
/* 底槽取淡底阶梯的 200 档(--xh-bg-subtle-hover),环形的底槽同一支 */
|
|
62
|
+
background: var(--xh-progress-track, var(--xh-bg-subtle-hover));
|
|
62
63
|
}
|
|
63
64
|
|
|
64
65
|
/* 语气槽由 root 上的 data-tone 声明、经继承发下来;没写 data-tone 时退回原来的品牌色。
|
|
@@ -136,11 +137,11 @@
|
|
|
136
137
|
/* —— 尺寸 —— */
|
|
137
138
|
/* 线形只有厚度分档;中间档不写规则,缺省即中档 */
|
|
138
139
|
[data-scope='progress'][data-part='root'][data-size='sm'] {
|
|
139
|
-
--xh-_progress-thickness: var(--xh-progress-thickness, var(--xh-
|
|
140
|
+
--xh-_progress-thickness: var(--xh-progress-thickness, var(--xh-track-thickness-sm));
|
|
140
141
|
}
|
|
141
142
|
|
|
142
143
|
[data-scope='progress'][data-part='root'][data-size='lg'] {
|
|
143
|
-
--xh-_progress-thickness: var(--xh-progress-thickness, var(--xh-
|
|
144
|
+
--xh-_progress-thickness: var(--xh-progress-thickness, var(--xh-track-thickness-lg));
|
|
144
145
|
}
|
|
145
146
|
|
|
146
147
|
/* —— 环形 —— */
|
|
@@ -176,10 +177,10 @@
|
|
|
176
177
|
block-size: 100%;
|
|
177
178
|
}
|
|
178
179
|
|
|
179
|
-
/*
|
|
180
|
+
/* 环心文字:12px 次级色,占位不撑格子,长内容自己换行由作者定 */
|
|
180
181
|
[data-scope='progress'][data-part='label'] {
|
|
181
|
-
color: var(--xh-progress-label-fg, var(--xh-fg-
|
|
182
|
-
font-size: var(--xh-progress-label-font-size, var(--xh-text-
|
|
182
|
+
color: var(--xh-progress-label-fg, var(--xh-fg-muted));
|
|
183
|
+
font-size: var(--xh-progress-label-font-size, var(--xh-text-caption-size));
|
|
183
184
|
line-height: var(--xh-leading-none);
|
|
184
185
|
text-align: center;
|
|
185
186
|
}
|
|
@@ -188,7 +189,7 @@
|
|
|
188
189
|
底槽不跟着语气换族:只有已完成的那段换色,才读得出"完成了多少" */
|
|
189
190
|
[data-scope='progress'][data-part='track'][data-variant='circle'],
|
|
190
191
|
[data-scope='progress'][data-part='track'][data-variant='dashboard'] {
|
|
191
|
-
stroke: var(--xh-progress-track, var(--xh-bg-subtle-
|
|
192
|
+
stroke: var(--xh-progress-track, var(--xh-bg-subtle-hover));
|
|
192
193
|
}
|
|
193
194
|
|
|
194
195
|
[data-scope='progress'][data-part='range'][data-variant='circle'],
|
|
@@ -204,16 +205,16 @@
|
|
|
204
205
|
/* 子弹图:有分段时轨道加厚一档,填充收窄成中间一条压在色带上,色带在填充两侧照样读得出。
|
|
205
206
|
三档厚度各比普通线形高一档,阶梯次序不变 */
|
|
206
207
|
[data-scope='progress'][data-part='root'][data-variant='line'][data-banded] {
|
|
207
|
-
--xh-_progress-thickness: var(--xh-progress-thickness, var(--xh-
|
|
208
|
+
--xh-_progress-thickness: var(--xh-progress-thickness, var(--xh-track-band-thickness-md));
|
|
208
209
|
--xh-_progress-range-size: 50%;
|
|
209
210
|
}
|
|
210
211
|
|
|
211
212
|
[data-scope='progress'][data-part='root'][data-variant='line'][data-banded][data-size='sm'] {
|
|
212
|
-
--xh-_progress-thickness: var(--xh-progress-thickness, var(--xh-
|
|
213
|
+
--xh-_progress-thickness: var(--xh-progress-thickness, var(--xh-track-band-thickness-sm));
|
|
213
214
|
}
|
|
214
215
|
|
|
215
216
|
[data-scope='progress'][data-part='root'][data-variant='line'][data-banded][data-size='lg'] {
|
|
216
|
-
--xh-_progress-thickness: var(--xh-progress-thickness, var(--xh-
|
|
217
|
+
--xh-_progress-thickness: var(--xh-progress-thickness, var(--xh-track-band-thickness-lg));
|
|
217
218
|
}
|
|
218
219
|
|
|
219
220
|
/* 色带取本段语气的淡色:同一族颜色里填充是实色、色带浅一档,读得出填充落在哪一段 */
|
package/css/prompt-input.css
CHANGED
|
@@ -15,12 +15,12 @@
|
|
|
15
15
|
--xh-prompt-input-skin: 1;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
/* root
|
|
19
|
-
|
|
18
|
+
/* root 就是视觉盒:描边、底色、圆角、聚焦面、悬停与禁用面由 Field Chrome 家族画在它身上(静息描边式:
|
|
19
|
+
字段淡底 + --xh-border-control 描边 + 无影,聚焦换承载面底 + 品牌描边、不画环;登记的例外只在 surface 圆角),内部 textarea
|
|
20
20
|
无边框;align-items: flex-end 让按钮随输入框长高贴着底边。
|
|
21
21
|
三个视觉轴都落在 root 上:形态三档由家族按 data-variant 生成,语气管用哪族颜色,尺寸管高度与字号 */
|
|
22
22
|
[data-scope='prompt-input'][data-part='root'] {
|
|
23
|
-
/*
|
|
23
|
+
/* 圆角可由使用者槽切换,家族只过渡底、描边与影 */
|
|
24
24
|
transition: border-radius var(--xh-motion-duration-micro) var(--xh-motion-ease-enter);
|
|
25
25
|
/* 尺寸缺省档:不写 data-size 时按中档走 */
|
|
26
26
|
--xh-_prompt-input-h: var(--xh-control-h-md);
|
package/css/question-flow.css
CHANGED
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
/* 卡片出现时滑入;落在首帧就在的列表条目里(历史消息)时直接呈现,不跟着整屏一起入场 */
|
|
44
|
-
[data-scope='question-flow'][data-part='root']:not([data-scope][data-part='item'][data-instant]
|
|
44
|
+
[data-scope='question-flow'][data-part='root']:not([data-scope][data-part='item'][data-instant] :where([data-scope='question-flow'])) {
|
|
45
45
|
animation: xh-item-in var(--xh-motion-duration-enter) var(--xh-motion-ease-enter-strong);
|
|
46
46
|
}
|
|
47
47
|
|
|
@@ -201,27 +201,27 @@
|
|
|
201
201
|
位次就是到达顺序。落在首帧就在的列表条目里(历史消息)时直接呈现。
|
|
202
202
|
backwards 不能省:等待期间起帧不生效的话,后面几条会先露一下再跳回去。
|
|
203
203
|
第 6 条起并到同一拍上 */
|
|
204
|
-
[data-scope='question-flow'][data-part='question'][data-current] [data-part='item']:not([data-scope][data-part='item'][data-instant]
|
|
204
|
+
[data-scope='question-flow'][data-part='question'][data-current] [data-part='item']:where([data-scope='question-flow']):not([data-scope][data-part='item'][data-instant] :where([data-scope='question-flow'])) {
|
|
205
205
|
animation: xh-rise-in var(--xh-motion-duration-enter) var(--xh-motion-ease-enter-strong) backwards;
|
|
206
206
|
}
|
|
207
207
|
|
|
208
|
-
[data-scope='question-flow'][data-part='question'][data-current] [data-part='item']:nth-child(2):not([data-scope][data-part='item'][data-instant]
|
|
208
|
+
[data-scope='question-flow'][data-part='question'][data-current] [data-part='item']:where([data-scope='question-flow']):nth-child(2):not([data-scope][data-part='item'][data-instant] :where([data-scope='question-flow'])) {
|
|
209
209
|
animation-delay: calc(var(--xh-motion-stagger-step) * 1);
|
|
210
210
|
}
|
|
211
211
|
|
|
212
|
-
[data-scope='question-flow'][data-part='question'][data-current] [data-part='item']:nth-child(3):not([data-scope][data-part='item'][data-instant]
|
|
212
|
+
[data-scope='question-flow'][data-part='question'][data-current] [data-part='item']:where([data-scope='question-flow']):nth-child(3):not([data-scope][data-part='item'][data-instant] :where([data-scope='question-flow'])) {
|
|
213
213
|
animation-delay: calc(var(--xh-motion-stagger-step) * 2);
|
|
214
214
|
}
|
|
215
215
|
|
|
216
|
-
[data-scope='question-flow'][data-part='question'][data-current] [data-part='item']:nth-child(4):not([data-scope][data-part='item'][data-instant]
|
|
216
|
+
[data-scope='question-flow'][data-part='question'][data-current] [data-part='item']:where([data-scope='question-flow']):nth-child(4):not([data-scope][data-part='item'][data-instant] :where([data-scope='question-flow'])) {
|
|
217
217
|
animation-delay: calc(var(--xh-motion-stagger-step) * 3);
|
|
218
218
|
}
|
|
219
219
|
|
|
220
|
-
[data-scope='question-flow'][data-part='question'][data-current] [data-part='item']:nth-child(5):not([data-scope][data-part='item'][data-instant]
|
|
220
|
+
[data-scope='question-flow'][data-part='question'][data-current] [data-part='item']:where([data-scope='question-flow']):nth-child(5):not([data-scope][data-part='item'][data-instant] :where([data-scope='question-flow'])) {
|
|
221
221
|
animation-delay: calc(var(--xh-motion-stagger-step) * 4);
|
|
222
222
|
}
|
|
223
223
|
|
|
224
|
-
[data-scope='question-flow'][data-part='question'][data-current] [data-part='item']:nth-child(n + 6):not([data-scope][data-part='item'][data-instant]
|
|
224
|
+
[data-scope='question-flow'][data-part='question'][data-current] [data-part='item']:where([data-scope='question-flow']):nth-child(n + 6):not([data-scope][data-part='item'][data-instant] :where([data-scope='question-flow'])) {
|
|
225
225
|
animation-delay: calc(var(--xh-motion-stagger-step) * 5);
|
|
226
226
|
}
|
|
227
227
|
|
|
@@ -243,7 +243,7 @@
|
|
|
243
243
|
flex: none;
|
|
244
244
|
align-items: center;
|
|
245
245
|
justify-content: center;
|
|
246
|
-
border: var(--xh-stroke-thin) solid var(--xh-question-flow-indicator-border, var(--xh-border-
|
|
246
|
+
border: var(--xh-stroke-thin) solid var(--xh-question-flow-indicator-border, var(--xh-border-strong));
|
|
247
247
|
border-radius: var(--xh-question-flow-indicator-radius, var(--xh-shape-inset));
|
|
248
248
|
background: var(--xh-question-flow-indicator-bg, transparent);
|
|
249
249
|
color: var(--xh-question-flow-indicator-fg, var(--xh-_tone-on, var(--xh-fg-on-brand)));
|
|
@@ -335,7 +335,7 @@
|
|
|
335
335
|
display: none;
|
|
336
336
|
}
|
|
337
337
|
|
|
338
|
-
/*
|
|
338
|
+
/* 自由文本:与选项同等算数的一条答案,占满整行。框照字段外壳:字段淡底 + 控件描边,悬停描边升一档 */
|
|
339
339
|
[data-scope='question-flow'][data-part='note'] {
|
|
340
340
|
display: block;
|
|
341
341
|
inline-size: 100%;
|
|
@@ -343,11 +343,13 @@
|
|
|
343
343
|
padding-block: var(--xh-question-flow-note-py, var(--xh-space-1_5));
|
|
344
344
|
border: var(--xh-stroke-thin) solid var(--xh-question-flow-note-border, var(--xh-border-control));
|
|
345
345
|
border-radius: var(--xh-question-flow-note-radius, var(--xh-shape-control));
|
|
346
|
-
background: var(--xh-question-flow-note-bg, var(--xh-bg-
|
|
346
|
+
background: var(--xh-question-flow-note-bg, var(--xh-bg-field));
|
|
347
347
|
color: var(--xh-question-flow-note-fg, var(--xh-fg-default));
|
|
348
348
|
font-family: inherit;
|
|
349
349
|
font-size: var(--xh-question-flow-note-font-size, var(--xh-_question-flow-font-size));
|
|
350
|
-
transition:
|
|
350
|
+
transition:
|
|
351
|
+
background-color var(--xh-motion-duration-micro) var(--xh-motion-ease-enter),
|
|
352
|
+
border-color var(--xh-motion-duration-micro) var(--xh-motion-ease-enter);
|
|
351
353
|
}
|
|
352
354
|
|
|
353
355
|
[data-scope='question-flow'][data-part='note'][hidden] {
|
|
@@ -358,7 +360,23 @@
|
|
|
358
360
|
color: var(--xh-question-flow-placeholder-fg, var(--xh-fg-subtle));
|
|
359
361
|
}
|
|
360
362
|
|
|
363
|
+
[data-scope='question-flow'][data-part='note']:hover:not(:disabled, :focus, [data-invalid]) {
|
|
364
|
+
border-color: var(--xh-question-flow-note-border-hover, var(--xh-border-strong));
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
/* 聚焦换承载面底 + 品牌描边,不画环:焦点由描边换色与底色差标出,强制色档补一圈 Highlight 环 */
|
|
368
|
+
[data-scope='question-flow'][data-part='note']:focus-within {
|
|
369
|
+
border-color: var(--xh-question-flow-note-border-focus, var(--xh-border-control-focus));
|
|
370
|
+
background: var(--xh-question-flow-note-bg-focus, var(--xh-bg-surface));
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
[data-scope='question-flow'][data-part='note']:focus-visible {
|
|
374
|
+
outline: none;
|
|
375
|
+
}
|
|
376
|
+
|
|
361
377
|
[data-scope='question-flow'][data-part='note']:disabled {
|
|
378
|
+
border-color: var(--xh-question-flow-note-border-disabled, var(--xh-border-default));
|
|
379
|
+
background: var(--xh-question-flow-note-bg-disabled, var(--xh-bg-subtle));
|
|
362
380
|
color: var(--xh-fg-disabled);
|
|
363
381
|
}
|
|
364
382
|
|
|
@@ -486,16 +504,18 @@
|
|
|
486
504
|
--xh-action-ring-color-focus-visible: currentColor;
|
|
487
505
|
}
|
|
488
506
|
|
|
489
|
-
/*
|
|
507
|
+
/* 交卷之后才露出的那一格:与 Tag 的 sm 档同一副方签——control 圆角、块尺寸取 chip 档、竖向内衬为 0 */
|
|
490
508
|
[data-scope='question-flow'][data-part='result'] {
|
|
491
509
|
display: inline-flex;
|
|
492
510
|
align-self: flex-start;
|
|
493
511
|
align-items: center;
|
|
512
|
+
box-sizing: border-box;
|
|
494
513
|
gap: var(--xh-question-flow-result-gap, var(--xh-space-1));
|
|
514
|
+
min-block-size: var(--xh-question-flow-result-h, var(--xh-chip-h-sm));
|
|
495
515
|
padding-inline: var(--xh-question-flow-result-px, var(--xh-space-1_5));
|
|
496
|
-
padding-block: var(--xh-question-flow-result-py,
|
|
516
|
+
padding-block: var(--xh-question-flow-result-py, 0);
|
|
497
517
|
border: var(--xh-stroke-thin) solid transparent;
|
|
498
|
-
border-radius: var(--xh-question-flow-result-radius, var(--xh-shape-
|
|
518
|
+
border-radius: var(--xh-question-flow-result-radius, var(--xh-shape-control));
|
|
499
519
|
background: var(--xh-question-flow-result-bg, var(--xh-_tone-subtle));
|
|
500
520
|
color: var(--xh-question-flow-result-fg, var(--xh-_tone-fg));
|
|
501
521
|
font-size: var(--xh-question-flow-result-font-size, var(--xh-text-caption-size));
|
|
@@ -504,7 +524,7 @@
|
|
|
504
524
|
}
|
|
505
525
|
|
|
506
526
|
/* 落定结果弹出;落在首帧就在的列表条目里(历史消息)时直接呈现,不跟着整屏一起入场 */
|
|
507
|
-
[data-scope='question-flow'][data-part='result']:not([data-scope][data-part='item'][data-instant]
|
|
527
|
+
[data-scope='question-flow'][data-part='result']:not([data-scope][data-part='item'][data-instant] :where([data-scope='question-flow'])) {
|
|
508
528
|
animation: xh-pop-in var(--xh-motion-duration-enter) var(--xh-motion-ease-enter-strong);
|
|
509
529
|
}
|
|
510
530
|
|
|
@@ -536,6 +556,12 @@
|
|
|
536
556
|
background-color: CanvasText;
|
|
537
557
|
}
|
|
538
558
|
|
|
559
|
+
/* 备注框聚焦不画环、描边又被换成系统色,补一圈 Highlight 环 */
|
|
560
|
+
[data-scope='question-flow'][data-part='note']:focus {
|
|
561
|
+
outline: var(--xh-ring-width) solid Highlight;
|
|
562
|
+
outline-offset: var(--xh-ring-offset);
|
|
563
|
+
}
|
|
564
|
+
|
|
539
565
|
[data-scope='question-flow']:is([data-part='prev-trigger'], [data-part='next-trigger']):empty::before {
|
|
540
566
|
forced-color-adjust: none;
|
|
541
567
|
background-color: ButtonText;
|
package/css/radar-chart.css
CHANGED
|
@@ -167,12 +167,12 @@
|
|
|
167
167
|
|
|
168
168
|
/* —— 纹理:颜色不可用或不可靠时(强制色、打印、祖先写了 data-xh-chart-patterns),面积改用本系列在 defs 里的
|
|
169
169
|
纹理填充、描出轮廓,轮廓换线型。色标的纹理在配方里 —— */
|
|
170
|
-
:where([data-xh-chart-patterns]) [data-scope='radar-chart'][data-xh-chart-pattern] > [data-part='area-fill'] {
|
|
170
|
+
:where([data-xh-chart-patterns]) [data-scope='radar-chart'][data-xh-chart-pattern] > [data-part='area-fill']:where([data-scope='radar-chart']) {
|
|
171
171
|
fill: var(--xh-_chart-pattern);
|
|
172
172
|
fill-opacity: 1;
|
|
173
173
|
}
|
|
174
174
|
|
|
175
|
-
:where([data-xh-chart-patterns]) [data-scope='radar-chart'][data-xh-chart-pattern] > [data-part='line'] {
|
|
175
|
+
:where([data-xh-chart-patterns]) [data-scope='radar-chart'][data-xh-chart-pattern] > [data-part='line']:where([data-scope='radar-chart']) {
|
|
176
176
|
stroke-dasharray: var(--xh-_chart-dash);
|
|
177
177
|
}
|
|
178
178
|
|
|
@@ -204,13 +204,13 @@
|
|
|
204
204
|
stroke: Canvas;
|
|
205
205
|
}
|
|
206
206
|
|
|
207
|
-
[data-scope='radar-chart'][data-xh-chart-pattern] > [data-part='area-fill'] {
|
|
207
|
+
[data-scope='radar-chart'][data-xh-chart-pattern] > [data-part='area-fill']:where([data-scope='radar-chart']) {
|
|
208
208
|
forced-color-adjust: none;
|
|
209
209
|
fill: var(--xh-_chart-pattern);
|
|
210
210
|
fill-opacity: 1;
|
|
211
211
|
}
|
|
212
212
|
|
|
213
|
-
[data-scope='radar-chart'][data-xh-chart-pattern] > [data-part='line'] {
|
|
213
|
+
[data-scope='radar-chart'][data-xh-chart-pattern] > [data-part='line']:where([data-scope='radar-chart']) {
|
|
214
214
|
stroke-dasharray: var(--xh-_chart-dash);
|
|
215
215
|
}
|
|
216
216
|
}
|
|
@@ -221,12 +221,12 @@
|
|
|
221
221
|
display: none;
|
|
222
222
|
}
|
|
223
223
|
|
|
224
|
-
[data-scope='radar-chart'][data-xh-chart-pattern] > [data-part='area-fill'] {
|
|
224
|
+
[data-scope='radar-chart'][data-xh-chart-pattern] > [data-part='area-fill']:where([data-scope='radar-chart']) {
|
|
225
225
|
fill: var(--xh-_chart-pattern);
|
|
226
226
|
fill-opacity: 1;
|
|
227
227
|
}
|
|
228
228
|
|
|
229
|
-
[data-scope='radar-chart'][data-xh-chart-pattern] > [data-part='line'] {
|
|
229
|
+
[data-scope='radar-chart'][data-xh-chart-pattern] > [data-part='line']:where([data-scope='radar-chart']) {
|
|
230
230
|
stroke-dasharray: var(--xh-_chart-dash);
|
|
231
231
|
}
|
|
232
232
|
}
|