@xihan-ui/styles 3.2.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 +441 -0
- package/component-tokens.d.ts +229 -60
- package/components.tokens.json +5124 -1555
- package/css/accordion.css +47 -20
- package/css/alert.css +14 -15
- package/css/anchor.css +2 -2
- package/css/approval.css +37 -13
- 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 +4 -7
- package/css/calendar-picker.css +177 -94
- package/css/calendar-range-picker.css +206 -121
- package/css/card.css +34 -6
- package/css/carousel.css +65 -49
- package/css/cascader.css +41 -29
- package/css/checkbox-group.css +9 -6
- package/css/checkbox.css +5 -4
- package/css/citation.css +7 -2
- package/css/clipboard.css +20 -4
- 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 +5 -5
- package/css/combobox.css +14 -10
- package/css/command.css +13 -8
- package/css/context-menu.css +10 -5
- package/css/date-field.css +4 -4
- package/css/date-picker.css +165 -102
- package/css/date-range-picker.css +186 -123
- package/css/description.css +10 -6
- package/css/descriptions.css +47 -19
- package/css/dialog.css +50 -35
- package/css/drawer.css +75 -21
- package/css/editable.css +15 -41
- package/css/empty-state.css +21 -3
- package/css/field-array.css +4 -1
- package/css/field.css +17 -18
- package/css/fieldset.css +33 -13
- package/css/file-upload.css +65 -32
- package/css/float-button.css +25 -15
- package/css/floating-panel.css +1 -1
- package/css/form.css +24 -10
- package/css/grid-list.css +1 -1
- package/css/highlight.css +4 -4
- package/css/hover-card.css +19 -12
- package/css/image-viewer.css +77 -27
- package/css/image.css +12 -4
- 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 +10 -8
- package/css/menu.css +10 -5
- package/css/menubar.css +13 -8
- package/css/navigation-menu.css +2 -2
- package/css/notification.css +114 -31
- package/css/number-animation.css +2 -2
- package/css/number-field.css +60 -37
- package/css/page-header.css +63 -26
- package/css/pagination.css +35 -38
- package/css/password-input.css +10 -66
- package/css/pin-input.css +18 -26
- package/css/popconfirm.css +20 -11
- package/css/popover.css +18 -12
- package/css/progress.css +14 -13
- package/css/prompt-input.css +3 -3
- package/css/question-flow.css +33 -7
- package/css/radio-group.css +120 -55
- package/css/rating.css +31 -14
- package/css/select.css +14 -10
- package/css/separator.css +22 -4
- package/css/side-nav.css +16 -11
- package/css/signature-pad.css +23 -9
- package/css/skeleton.css +7 -7
- package/css/slider.css +71 -42
- 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 +27 -10
- package/css/tabs.css +35 -12
- package/css/tag-group.css +17 -6
- package/css/tag.css +54 -29
- package/css/tags-input.css +38 -19
- 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 +6 -4
- package/css/toolbar.css +6 -5
- package/css/tooltip.css +15 -16
- package/css/tour.css +14 -7
- package/css/transfer.css +22 -16
- package/css/tree-select.css +10 -10
- package/css/tree.css +26 -25
- package/css/typography.css +28 -25
- package/dist/css/accordion.css +47 -20
- package/dist/css/alert.css +14 -15
- package/dist/css/anchor.css +2 -2
- package/dist/css/approval.css +37 -13
- package/dist/css/avatar-group.css +9 -12
- package/dist/css/avatar.css +20 -18
- package/dist/css/back-top.css +21 -7
- package/dist/css/badge.css +5 -5
- package/dist/css/breadcrumb.css +18 -16
- package/dist/css/button-group.css +4 -6
- package/dist/css/button.css +4 -7
- package/dist/css/calendar-picker.css +177 -94
- package/dist/css/calendar-range-picker.css +206 -121
- package/dist/css/card.css +34 -6
- package/dist/css/carousel.css +65 -49
- package/dist/css/cascader.css +41 -29
- package/dist/css/checkbox-group.css +9 -6
- package/dist/css/checkbox.css +5 -4
- package/dist/css/citation.css +7 -2
- package/dist/css/clipboard.css +20 -4
- package/dist/css/collapsible.css +29 -14
- package/dist/css/color-field.css +4 -4
- package/dist/css/color-picker.css +77 -23
- package/dist/css/color-slider.css +10 -8
- package/dist/css/color-swatch-picker.css +5 -5
- package/dist/css/combobox.css +14 -10
- package/dist/css/command.css +13 -8
- package/dist/css/context-menu.css +10 -5
- package/dist/css/date-field.css +4 -4
- package/dist/css/date-picker.css +165 -102
- package/dist/css/date-range-picker.css +186 -123
- package/dist/css/description.css +10 -6
- package/dist/css/descriptions.css +47 -19
- package/dist/css/dialog.css +50 -35
- package/dist/css/drawer.css +75 -21
- package/dist/css/editable.css +15 -41
- package/dist/css/empty-state.css +21 -3
- package/dist/css/field-array.css +4 -1
- package/dist/css/field.css +17 -18
- package/dist/css/fieldset.css +33 -13
- package/dist/css/file-upload.css +65 -32
- package/dist/css/float-button.css +25 -15
- package/dist/css/floating-panel.css +1 -1
- package/dist/css/form.css +24 -10
- package/dist/css/grid-list.css +1 -1
- package/dist/css/highlight.css +4 -4
- package/dist/css/hover-card.css +19 -12
- package/dist/css/image-viewer.css +77 -27
- package/dist/css/image.css +12 -4
- package/dist/css/infinite-scroll.css +8 -4
- package/dist/css/input-group.css +74 -26
- package/dist/css/kbd.css +1 -1
- package/dist/css/label.css +27 -11
- package/dist/css/layout.css +17 -10
- package/dist/css/list.css +13 -9
- package/dist/css/listbox.css +12 -7
- package/dist/css/loading-bar.css +3 -0
- package/dist/css/mention.css +10 -8
- package/dist/css/menu.css +10 -5
- package/dist/css/menubar.css +13 -8
- package/dist/css/navigation-menu.css +2 -2
- package/dist/css/notification.css +114 -31
- package/dist/css/number-animation.css +2 -2
- package/dist/css/number-field.css +60 -37
- package/dist/css/page-header.css +63 -26
- package/dist/css/pagination.css +35 -38
- package/dist/css/password-input.css +10 -66
- package/dist/css/pin-input.css +18 -26
- package/dist/css/popconfirm.css +20 -11
- package/dist/css/popover.css +18 -12
- package/dist/css/progress.css +14 -13
- package/dist/css/prompt-input.css +3 -3
- package/dist/css/question-flow.css +33 -7
- package/dist/css/radio-group.css +120 -55
- package/dist/css/rating.css +31 -14
- package/dist/css/select.css +14 -10
- package/dist/css/separator.css +22 -4
- package/dist/css/side-nav.css +16 -11
- package/dist/css/signature-pad.css +23 -9
- package/dist/css/skeleton.css +7 -7
- package/dist/css/slider.css +71 -42
- package/dist/css/sparkline.css +8 -2
- package/dist/css/spinner.css +40 -20
- package/dist/css/statistic.css +14 -14
- package/dist/css/steps.css +115 -84
- package/dist/css/switch.css +9 -7
- package/dist/css/table.css +27 -10
- package/dist/css/tabs.css +35 -12
- package/dist/css/tag-group.css +17 -6
- package/dist/css/tag.css +54 -29
- package/dist/css/tags-input.css +38 -19
- package/dist/css/text-field.css +5 -5
- package/dist/css/time-field.css +4 -4
- package/dist/css/time-picker.css +150 -64
- package/dist/css/time-range-picker.css +91 -62
- package/dist/css/timeline.css +37 -20
- package/dist/css/timer.css +3 -3
- package/dist/css/toggle-group.css +4 -4
- package/dist/css/tool-call.css +6 -4
- package/dist/css/toolbar.css +6 -5
- package/dist/css/tooltip.css +15 -16
- package/dist/css/tour.css +14 -7
- package/dist/css/transfer.css +22 -16
- package/dist/css/tree-select.css +10 -10
- package/dist/css/tree.css +26 -25
- package/dist/css/typography.css +28 -25
- package/dist/family/action-control.css +30 -24
- package/dist/family/chart.css +57 -0
- package/dist/family/collection-item.css +12 -8
- package/dist/family/field-chrome.css +28 -19
- package/dist/family/loading-ring.css +20 -13
- package/dist/family/swatch.css +4 -4
- package/dist/family/tag-list.css +6 -0
- package/family/action-control.css +30 -24
- 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 +3580 -2060
- package/index.unlayered.css +3579 -2060
- package/package.json +2 -2
package/dist/css/label.css
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
/*
|
|
7
7
|
* 字段族标签的公共层,按 [data-part='label'] 匹配下面逐个列出的 scope。
|
|
8
8
|
*
|
|
9
|
-
* 收在这里的是逐值相同的四条:行距取 --xh-leading-none
|
|
10
|
-
* 必填星号取 --xh-glyph-mark-required + --xh-space-1 + --xh-fg-danger
|
|
9
|
+
* 收在这里的是逐值相同的四条:行距取 --xh-leading-none,禁用档字色留在 --xh-fg-muted,
|
|
10
|
+
* 必填星号取 --xh-glyph-mark-required + --xh-space-1 + --xh-fg-danger、排在标签文字之前,无效档字色取 --xh-fg-danger。
|
|
11
11
|
* 字色、字号、字重三条留在各组件皮肤——它们挂着 --xh-<组件>-label-* 覆盖槽,
|
|
12
12
|
* 槽名里带组件名,写不进一条共享规则。
|
|
13
13
|
*
|
|
@@ -42,29 +42,45 @@
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
/*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
45
|
+
* 禁用档的字色:字段标签禁用不另变色,留在静息的 --xh-fg-muted。再淡一档的 --xh-fg-subtle 与它几乎分不出,
|
|
46
|
+
* --xh-fg-disabled 只有 2.66:1,读屏与无障碍扫描都把关联禁用控件的标签当正文判对比度;禁用由控件自己的
|
|
47
|
+
* 禁用面表出。这四家没有 --xh-<组件>-label-fg-disabled 覆盖槽,取值只有这一处;挂了那个槽的组件在各自皮肤里
|
|
48
|
+
* 另写一条,排在本份之后,压过这里。
|
|
47
49
|
*/
|
|
48
50
|
.xh-scope-color-picker[data-part='label'][data-disabled],
|
|
49
51
|
.xh-scope-rating[data-part='label'][data-disabled],
|
|
50
52
|
.xh-scope-signature-pad[data-part='label'][data-disabled],
|
|
51
53
|
.xh-scope-slider[data-part='label'][data-disabled] {
|
|
52
|
-
color: var(--xh-fg-
|
|
54
|
+
color: var(--xh-fg-muted);
|
|
53
55
|
}
|
|
54
56
|
|
|
55
57
|
/*
|
|
56
|
-
* 必填星号:跟着标签自己的 data-required
|
|
57
|
-
*
|
|
58
|
+
* 必填星号:跟着标签自己的 data-required 亮,选填不标。字形、字号、间距、颜色是公共层规则,
|
|
59
|
+
* 自带标签的字段不得各画一套。星号排在标签文字之前(一列标签的星号在同一条起始线上,扫读时先看到),
|
|
60
|
+
* 取说明字号——它是标记,不与标签文字抢层级。
|
|
58
61
|
*
|
|
59
62
|
* 接入 = connect 在标签部件投影 data-required + 把 scope 加进这张列表;控件本体不画。
|
|
60
63
|
* 有 --xh-<组件>-label-star 覆盖槽的组件在各自皮肤里只另写一条 color 压过这里(field 的
|
|
61
|
-
* --xh-field-label-star、fieldset 的 --xh-fieldset-legend-star),content
|
|
64
|
+
* --xh-field-label-star、fieldset 的 --xh-fieldset-legend-star),content、字号与间距不再重写。
|
|
65
|
+
*
|
|
66
|
+
* 星号排在文字之前,就进了经 aria-labelledby / for 算出的控件名开头,读屏先念一声「星号」。
|
|
67
|
+
* 必填已由控件上的 aria-required 表达,星号只给眼睛看:content 带一段空的替代文本,可及树里不念。
|
|
68
|
+
* 替代文本的写法晚于浏览器地板(Firefox 128 / Safari 17.4 起),而 content 里带 var() 不在解析期校验,
|
|
69
|
+
* 不认的引擎整条落空、星号跟着没了,同块写两条兜不住:块外留旧写法,新写法收进同一特性的 @supports 里
|
|
62
70
|
*/
|
|
63
|
-
.xh-scope-field[data-part='label'][data-required]::
|
|
64
|
-
.xh-scope-fieldset[data-part='legend'][data-required]::
|
|
71
|
+
.xh-scope-field[data-part='label'][data-required]::before,
|
|
72
|
+
.xh-scope-fieldset[data-part='legend'][data-required]::before {
|
|
65
73
|
content: var(--xh-glyph-mark-required);
|
|
66
|
-
margin-inline-
|
|
74
|
+
margin-inline-end: var(--xh-space-1);
|
|
67
75
|
color: var(--xh-fg-danger);
|
|
76
|
+
font-size: var(--xh-text-caption-size);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
@supports (content: '' / '') {
|
|
80
|
+
.xh-scope-field[data-part='label'][data-required]::before,
|
|
81
|
+
.xh-scope-fieldset[data-part='legend'][data-required]::before {
|
|
82
|
+
content: var(--xh-glyph-mark-required) / '';
|
|
83
|
+
}
|
|
68
84
|
}
|
|
69
85
|
|
|
70
86
|
/*
|
package/dist/css/layout.css
CHANGED
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
--xh-_layout-sider-expanded-w: var(--xh-layout-sider-w, var(--xh-sider-w));
|
|
34
34
|
--xh-_layout-sider-w: var(--xh-_layout-sider-expanded-w);
|
|
35
35
|
--xh-_layout-sider-collapsed-w: var(--xh-layout-sider-collapsed-w, var(--xh-sider-collapsed-w));
|
|
36
|
-
--xh-_layout-header-h: var(--xh-layout-header-h,
|
|
36
|
+
--xh-_layout-header-h: var(--xh-layout-header-h, var(--xh-app-header-h));
|
|
37
37
|
/* 侧栏吸附时钉在哪条线上:缺省贴滚动容器上沿,头也吸顶时改成让开头的高度 */
|
|
38
38
|
--xh-_layout-sider-offset: 0px;
|
|
39
39
|
}
|
|
@@ -92,11 +92,8 @@
|
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
/* 宽度过渡在这里声明一次,展开与折叠两档、以及 props 直接写进内联的宽度,走的都是这一条。
|
|
95
|
-
|
|
96
|
-
覆盖档换成 elevated 白底,那一档的规则把阶梯写回 100 → 200 */
|
|
95
|
+
侧栏与头同是白底承载面,坐在灰的页面底上:把手摆进来走白底阶梯 hover 100 → pressed 200 */
|
|
97
96
|
.xh-scope-layout[data-part='sider'] {
|
|
98
|
-
--xh-action-host-bg-hover: var(--xh-bg-subtle-hover);
|
|
99
|
-
--xh-action-host-bg-pressed: var(--xh-bg-subtle-active);
|
|
100
97
|
/* 内衬缺省一档,装了 SideNav 的侧栏在下面归零;覆盖档与安全区取大时读的也是这一支 */
|
|
101
98
|
--xh-_layout-sider-padding: var(--xh-space-3);
|
|
102
99
|
|
|
@@ -104,7 +101,7 @@
|
|
|
104
101
|
inline-size: var(--xh-_layout-sider-w);
|
|
105
102
|
overflow: hidden;
|
|
106
103
|
padding: var(--xh-layout-sider-padding, var(--xh-_layout-sider-padding));
|
|
107
|
-
background: var(--xh-layout-sider-bg, var(--xh-bg-
|
|
104
|
+
background: var(--xh-layout-sider-bg, var(--xh-bg-surface));
|
|
108
105
|
transition: inline-size var(--xh-motion-duration-move) var(--xh-motion-ease-continuous);
|
|
109
106
|
}
|
|
110
107
|
|
|
@@ -160,6 +157,20 @@
|
|
|
160
157
|
}
|
|
161
158
|
|
|
162
159
|
/* —— 分隔线 —— */
|
|
160
|
+
/* 头与侧栏都是白底:头的下沿与侧栏挨着内容的那一边缺省画一条内部分隔,两块白面才分得开;
|
|
161
|
+
作者开了 split 再换成 border-default,并把内容与尾也隔开 */
|
|
162
|
+
.xh-scope-layout[data-part='header'] {
|
|
163
|
+
border-block-end: var(--xh-stroke-thin) solid var(--xh-layout-border, var(--xh-border-subtle));
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.xh-scope-layout[data-part='sider'][data-placement='start'] {
|
|
167
|
+
border-inline-end: var(--xh-stroke-thin) solid var(--xh-layout-border, var(--xh-border-subtle));
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.xh-scope-layout[data-part='sider'][data-placement='end'] {
|
|
171
|
+
border-inline-start: var(--xh-stroke-thin) solid var(--xh-layout-border, var(--xh-border-subtle));
|
|
172
|
+
}
|
|
173
|
+
|
|
163
174
|
/* 后代选择器带上 data-scope:骨架里装着整页内容,光凭 data-part 会连里面别的组件同名段一起画上线 */
|
|
164
175
|
.xh-scope-layout[data-part='root'][data-split] .xh-scope-layout[data-part='header'] {
|
|
165
176
|
border-block-end: var(--xh-stroke-thin) solid var(--xh-layout-border, var(--xh-border-default));
|
|
@@ -251,10 +262,6 @@
|
|
|
251
262
|
减弱动效下归零。写成槽位而不是写死物理方向:贴边用的是逻辑 inset,RTL 下行首落在物理右边,
|
|
252
263
|
位移若写死物理方向就会出现「贴在右边、却从左边滑进来」 */
|
|
253
264
|
--xh-_layout-sheet-shift: calc(-1 * var(--xh-motion-travel));
|
|
254
|
-
/* 这一档的底是 elevated 白底:交互阶梯按承载面走,把上面占位档下发的 200 → 300 写回
|
|
255
|
-
白底的 hover 100 → pressed 200 */
|
|
256
|
-
--xh-action-host-bg-hover: var(--xh-bg-subtle);
|
|
257
|
-
--xh-action-host-bg-pressed: var(--xh-bg-subtle-hover);
|
|
258
265
|
|
|
259
266
|
position: fixed;
|
|
260
267
|
z-index: var(--xh-layout-sider-layer, var(--xh-layer-drawer));
|
package/dist/css/list.css
CHANGED
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
换档不必给每个部件各写一条选择器 */
|
|
17
17
|
--xh-_list-item-py: var(--xh-list-item-py-md);
|
|
18
18
|
--xh-_list-item-px: var(--xh-list-item-px-md);
|
|
19
|
-
--xh-_list-item-gap: var(--xh-space-
|
|
19
|
+
--xh-_list-item-gap: var(--xh-space-4);
|
|
20
20
|
--xh-_list-title-size: var(--xh-control-font-md);
|
|
21
|
-
--xh-_list-description-size: var(--xh-control-
|
|
21
|
+
--xh-_list-description-size: var(--xh-control-font-md);
|
|
22
22
|
/* 条目悬停换到的面:坐在白底上是 100,淡底档的根把它抬到 200(按承载面的阶梯) */
|
|
23
23
|
--xh-_list-item-bg-hover: var(--xh-bg-subtle);
|
|
24
24
|
|
|
@@ -29,6 +29,8 @@
|
|
|
29
29
|
padding: 0;
|
|
30
30
|
list-style: none;
|
|
31
31
|
color: var(--xh-list-fg, var(--xh-fg-default));
|
|
32
|
+
font-size: var(--xh-text-body-size);
|
|
33
|
+
line-height: var(--xh-text-body-leading);
|
|
32
34
|
}
|
|
33
35
|
|
|
34
36
|
/* 上面声明了 display,会盖掉 UA 的 [hidden] 规则,收起态要在这里接回来 */
|
|
@@ -40,17 +42,17 @@
|
|
|
40
42
|
.xh-scope-list[data-part='root'][data-size='sm'] {
|
|
41
43
|
--xh-_list-item-py: var(--xh-list-item-py-sm);
|
|
42
44
|
--xh-_list-item-px: var(--xh-list-item-px-sm);
|
|
43
|
-
--xh-_list-item-gap: var(--xh-space-
|
|
45
|
+
--xh-_list-item-gap: var(--xh-space-3);
|
|
44
46
|
--xh-_list-title-size: var(--xh-control-font-sm);
|
|
45
|
-
--xh-_list-description-size: var(--xh-control-
|
|
47
|
+
--xh-_list-description-size: var(--xh-control-font-sm);
|
|
46
48
|
}
|
|
47
49
|
|
|
48
50
|
.xh-scope-list[data-part='root'][data-size='lg'] {
|
|
49
51
|
--xh-_list-item-py: var(--xh-list-item-py-lg);
|
|
50
52
|
--xh-_list-item-px: var(--xh-list-item-px-lg);
|
|
51
|
-
--xh-_list-item-gap: var(--xh-space-
|
|
53
|
+
--xh-_list-item-gap: var(--xh-space-5);
|
|
52
54
|
--xh-_list-title-size: var(--xh-control-font-lg);
|
|
53
|
-
--xh-_list-description-size: var(--xh-control-
|
|
55
|
+
--xh-_list-description-size: var(--xh-control-font-lg);
|
|
54
56
|
}
|
|
55
57
|
|
|
56
58
|
/* —— 形态:ghost 即基础规则,不画壳 —— */
|
|
@@ -87,7 +89,7 @@
|
|
|
87
89
|
.xh-scope-list[data-part='root'][data-split]
|
|
88
90
|
> .xh-scope-list[data-part='item']
|
|
89
91
|
+ .xh-scope-list[data-part='item'] {
|
|
90
|
-
border-block-start: var(--xh-stroke-thin) solid var(--xh-list-divider, var(--xh-border-
|
|
92
|
+
border-block-start: var(--xh-stroke-thin) solid var(--xh-list-divider, var(--xh-border-default));
|
|
91
93
|
}
|
|
92
94
|
|
|
93
95
|
.xh-scope-list[data-part='root'][data-hoverable] > .xh-scope-list[data-part='item'] {
|
|
@@ -114,7 +116,9 @@
|
|
|
114
116
|
display: flex;
|
|
115
117
|
flex: 1 1 auto;
|
|
116
118
|
flex-direction: column;
|
|
117
|
-
gap: var(--xh-list-content-gap, var(--xh-space-
|
|
119
|
+
gap: var(--xh-list-content-gap, var(--xh-space-0_5));
|
|
120
|
+
/* 标题与说明两行再上下各让出 4px,两行条目与单行条目的高度差拉开,扫读时一条一块 */
|
|
121
|
+
padding-block: var(--xh-list-item-content-py, var(--xh-space-1));
|
|
118
122
|
/* flex 项默认不肯收到内容以下,这行让长文本能被压窄 */
|
|
119
123
|
min-inline-size: 0;
|
|
120
124
|
}
|
|
@@ -123,7 +127,7 @@
|
|
|
123
127
|
color: var(--xh-list-title-fg, var(--xh-fg-default));
|
|
124
128
|
font-size: var(--xh-list-title-font-size, var(--xh-_list-title-size));
|
|
125
129
|
font-weight: var(--xh-list-title-font-weight, var(--xh-font-weight-medium));
|
|
126
|
-
line-height: var(--xh-leading-
|
|
130
|
+
line-height: var(--xh-leading-normal);
|
|
127
131
|
}
|
|
128
132
|
|
|
129
133
|
.xh-scope-list[data-part='item-description'] {
|
package/dist/css/listbox.css
CHANGED
|
@@ -239,7 +239,7 @@
|
|
|
239
239
|
/* 取下一页的按钮:铺满一行摆在列表尾——铺满一行的独立动作条目,接 Action Control 的 row 档、
|
|
240
240
|
ghost 形态:宽度由容器给、高度随内容、按下只换面不缩放;盒几何、悬停 / 按下 / 禁用面、
|
|
241
241
|
焦点环与粗指针热区全由家族给,白底承载 hover 100 → pressed 200。
|
|
242
|
-
|
|
242
|
+
这里只把使用者槽映射到桥接槽,文案居中写在下一条 */
|
|
243
243
|
.xh-scope-listbox[data-part='load-more-trigger'] {
|
|
244
244
|
--xh-action-gap: var(--xh-listbox-load-more-trigger-gap, var(--xh-_listbox-gap));
|
|
245
245
|
--xh-action-padding-block: var(--xh-listbox-load-more-trigger-py, var(--xh-_listbox-item-py));
|
|
@@ -251,12 +251,17 @@
|
|
|
251
251
|
--xh-action-fg-pressed: var(--xh-listbox-load-more-trigger-fg, var(--xh-_tone-fg, var(--xh-fg-brand-strong)));
|
|
252
252
|
--xh-action-font-size: var(--xh-listbox-load-more-trigger-font-size, var(--xh-_listbox-font-size));
|
|
253
253
|
|
|
254
|
-
justify-content: center;
|
|
255
|
-
text-align: center;
|
|
256
254
|
/* row 档允许换行、高度随内容,折行的文案走正文行高 */
|
|
257
255
|
line-height: var(--xh-leading-normal);
|
|
258
256
|
}
|
|
259
257
|
|
|
258
|
+
/* 文案居中(单行整段居中,折行逐行居中),盖掉 row 档的靠起始缘排布:它是一行里唯一的东西,
|
|
259
|
+
靠起始缘会像一条没对齐的条目。选择器点名 row 档,有层与无层两份产物里都压得住它 */
|
|
260
|
+
.xh-scope-listbox[data-part='load-more-trigger'][data-xh-action-profile='row'] {
|
|
261
|
+
justify-content: center;
|
|
262
|
+
text-align: center;
|
|
263
|
+
}
|
|
264
|
+
|
|
260
265
|
.xh-scope-listbox[data-part='load-more-trigger'][hidden] {
|
|
261
266
|
display: none;
|
|
262
267
|
}
|
|
@@ -282,10 +287,10 @@
|
|
|
282
287
|
--xh-collection-fg-selected-hover: var(--xh-listbox-item-fg-selected, var(--xh-listbox-item-fg, var(--xh-fg-default)));
|
|
283
288
|
--xh-collection-fg-selected-highlight: var(--xh-listbox-item-fg-selected, var(--xh-listbox-item-fg, var(--xh-fg-default)));
|
|
284
289
|
--xh-collection-fg-selected-pressed: var(--xh-listbox-item-fg-selected, var(--xh-listbox-item-fg, var(--xh-fg-default)));
|
|
285
|
-
--xh-collection-font-weight-selected: var(--xh-listbox-item-font-weight-selected, var(--xh-font-weight-
|
|
286
|
-
--xh-collection-font-weight-selected-hover: var(--xh-listbox-item-font-weight-selected, var(--xh-font-weight-
|
|
287
|
-
--xh-collection-font-weight-selected-highlight: var(--xh-listbox-item-font-weight-selected, var(--xh-font-weight-
|
|
288
|
-
--xh-collection-font-weight-selected-pressed: var(--xh-listbox-item-font-weight-selected, var(--xh-font-weight-
|
|
290
|
+
--xh-collection-font-weight-selected: var(--xh-listbox-item-font-weight-selected, var(--xh-font-weight-medium));
|
|
291
|
+
--xh-collection-font-weight-selected-hover: var(--xh-listbox-item-font-weight-selected, var(--xh-font-weight-medium));
|
|
292
|
+
--xh-collection-font-weight-selected-highlight: var(--xh-listbox-item-font-weight-selected, var(--xh-font-weight-medium));
|
|
293
|
+
--xh-collection-font-weight-selected-pressed: var(--xh-listbox-item-font-weight-selected, var(--xh-font-weight-medium));
|
|
289
294
|
--xh-collection-bg-hover: var(--xh-listbox-item-bg-hover, var(--xh-bg-subtle));
|
|
290
295
|
--xh-collection-bg-keyboard-highlight: var(--xh-listbox-item-bg-hover, var(--xh-bg-subtle));
|
|
291
296
|
--xh-collection-bg-pressed: var(--xh-listbox-item-bg-pressed, var(--xh-bg-subtle-hover));
|
package/dist/css/loading-bar.css
CHANGED
|
@@ -68,6 +68,9 @@
|
|
|
68
68
|
.xh-scope-loading-bar[data-part='range'] {
|
|
69
69
|
inline-size: 100%;
|
|
70
70
|
block-size: 100%;
|
|
71
|
+
/* 露出的前端(行尾)是一维对象的圆头;行首一端由轨道与视口边裁掉,保持方头贴边 */
|
|
72
|
+
border-start-end-radius: var(--xh-loading-bar-range-radius, var(--xh-shape-pill));
|
|
73
|
+
border-end-end-radius: var(--xh-loading-bar-range-radius, var(--xh-shape-pill));
|
|
71
74
|
background: var(--xh-loading-bar-range, var(--xh-_tone-soft, var(--xh-bg-brand)));
|
|
72
75
|
translate: calc((var(--xh-_loading-bar-value, 0) - 1) * 100%) 0;
|
|
73
76
|
transition: translate var(--xh-loading-bar-speed, var(--xh-motion-duration-move)) var(--xh-motion-ease-continuous);
|
package/dist/css/mention.css
CHANGED
|
@@ -75,6 +75,7 @@
|
|
|
75
75
|
--xh-_mention-h: var(--xh-control-h-md);
|
|
76
76
|
--xh-_mention-px: var(--xh-control-px-md);
|
|
77
77
|
--xh-_mention-item-py: var(--xh-list-option-py-md);
|
|
78
|
+
--xh-_mention-item-h: var(--xh-list-option-h-md);
|
|
78
79
|
--xh-_mention-item-px: var(--xh-control-px-md);
|
|
79
80
|
--xh-_mention-gap: var(--xh-control-gap-md);
|
|
80
81
|
--xh-_mention-font-size: var(--xh-control-font-md);
|
|
@@ -98,8 +99,8 @@
|
|
|
98
99
|
/* 标题:与输入框上下排,行距不留额外空白 */
|
|
99
100
|
.xh-scope-mention[data-part='label'] {
|
|
100
101
|
display: block;
|
|
101
|
-
margin-block-end: var(--xh-mention-label-gap, var(--xh-space-
|
|
102
|
-
color: var(--xh-mention-label-fg, var(--xh-fg-
|
|
102
|
+
margin-block-end: var(--xh-mention-label-gap, var(--xh-space-2));
|
|
103
|
+
color: var(--xh-mention-label-fg, var(--xh-fg-muted));
|
|
103
104
|
font-size: var(--xh-mention-label-font-size, var(--xh-text-label-size));
|
|
104
105
|
font-weight: var(--xh-mention-label-font-weight, var(--xh-text-label-weight));
|
|
105
106
|
line-height: var(--xh-leading-none);
|
|
@@ -110,7 +111,7 @@
|
|
|
110
111
|
}
|
|
111
112
|
|
|
112
113
|
.xh-scope-mention[data-part='label'][data-disabled] {
|
|
113
|
-
color: var(--xh-mention-label-fg-disabled, var(--xh-fg-
|
|
114
|
+
color: var(--xh-mention-label-fg-disabled, var(--xh-fg-muted));
|
|
114
115
|
}
|
|
115
116
|
|
|
116
117
|
/* —— 尺寸 —— */
|
|
@@ -119,6 +120,7 @@
|
|
|
119
120
|
--xh-_mention-h: var(--xh-control-h-sm);
|
|
120
121
|
--xh-_mention-px: var(--xh-control-px-sm);
|
|
121
122
|
--xh-_mention-item-py: var(--xh-list-option-py-sm);
|
|
123
|
+
--xh-_mention-item-h: var(--xh-list-option-h-sm);
|
|
122
124
|
--xh-_mention-item-px: var(--xh-control-px-sm);
|
|
123
125
|
--xh-_mention-gap: var(--xh-control-gap-sm);
|
|
124
126
|
--xh-_mention-font-size: var(--xh-control-font-sm);
|
|
@@ -128,6 +130,7 @@
|
|
|
128
130
|
--xh-_mention-h: var(--xh-control-h-lg);
|
|
129
131
|
--xh-_mention-px: var(--xh-control-px-lg);
|
|
130
132
|
--xh-_mention-item-py: var(--xh-list-option-py-lg);
|
|
133
|
+
--xh-_mention-item-h: var(--xh-list-option-h-lg);
|
|
131
134
|
--xh-_mention-item-px: var(--xh-control-px-lg);
|
|
132
135
|
--xh-_mention-gap: var(--xh-control-gap-lg);
|
|
133
136
|
--xh-_mention-font-size: var(--xh-control-font-lg);
|
|
@@ -152,8 +155,6 @@
|
|
|
152
155
|
--xh-field-border-hover: var(--xh-mention-input-border-hover, var(--xh-_field-variant-border-hover));
|
|
153
156
|
--xh-field-border-focus: var(--xh-mention-input-border-focus, var(--xh-_field-variant-border-focus));
|
|
154
157
|
--xh-field-border-invalid: var(--xh-mention-input-border-invalid, var(--xh-_field-variant-border-invalid));
|
|
155
|
-
--xh-field-ring-focus: var(--xh-ring-focus);
|
|
156
|
-
--xh-field-ring-invalid: var(--xh-ring-invalid);
|
|
157
158
|
--xh-field-shadow-rest: var(--xh-mention-input-shadow, none);
|
|
158
159
|
|
|
159
160
|
inline-size: 100%;
|
|
@@ -170,7 +171,7 @@
|
|
|
170
171
|
/* 多行形态:正文可以换行,框随 rows 定起始高度、不钉单行控件高(家族的多行布局给);
|
|
171
172
|
框自己就是 chrome,家族多行布局把上下内衬归零,这里按文本字段多行档同一支令牌补回,只许纵向拉伸 */
|
|
172
173
|
.xh-scope-mention[data-part='input'][data-xh-field-layout='textarea'] {
|
|
173
|
-
padding-block: var(--xh-mention-textarea-py, var(--xh-space-
|
|
174
|
+
padding-block: var(--xh-mention-textarea-py, var(--xh-space-1));
|
|
174
175
|
resize: vertical;
|
|
175
176
|
}
|
|
176
177
|
|
|
@@ -218,7 +219,7 @@
|
|
|
218
219
|
min-block-size: var(--xh-mention-content-min-h, var(--xh-_mention-h));
|
|
219
220
|
max-block-size: min(var(--xh-mention-content-max-h, var(--xh-overlay-max-h)), var(--xh-_mention-available-h));
|
|
220
221
|
padding-block: var(--xh-mention-content-py, var(--xh-space-1));
|
|
221
|
-
padding-inline: var(--xh-mention-content-px,
|
|
222
|
+
padding-inline: var(--xh-mention-content-px, 0);
|
|
222
223
|
border-radius: var(--xh-mention-content-radius, var(--xh-shape-overlay));
|
|
223
224
|
overflow-y: auto;
|
|
224
225
|
/* 浮层滚动面:滚到头不把页面一起带走 */
|
|
@@ -253,10 +254,11 @@
|
|
|
253
254
|
overlay 语境的选中面透明,高亮与悬停同走 --xh-bg-subtle,正文保持常规字重 */
|
|
254
255
|
.xh-scope-mention[data-part='item'] {
|
|
255
256
|
--xh-collection-block-padding: var(--xh-mention-item-py, var(--xh-_mention-item-py));
|
|
257
|
+
--xh-collection-row-h: var(--xh-mention-item-h, var(--xh-_mention-item-h));
|
|
256
258
|
--xh-collection-inline-padding: var(--xh-mention-item-px, var(--xh-_mention-item-px));
|
|
257
259
|
--xh-collection-gap: var(--xh-mention-item-gap, var(--xh-_mention-gap));
|
|
258
260
|
--xh-collection-font-size: var(--xh-mention-item-font-size, var(--xh-_mention-font-size));
|
|
259
|
-
--xh-collection-radius: var(--xh-mention-item-radius,
|
|
261
|
+
--xh-collection-radius: var(--xh-mention-item-radius, 0);
|
|
260
262
|
--xh-collection-fg-rest: var(--xh-mention-item-fg, var(--xh-material-frosted-fg));
|
|
261
263
|
--xh-collection-fg-hover: var(--xh-mention-item-fg, var(--xh-material-frosted-fg));
|
|
262
264
|
--xh-collection-fg-keyboard-highlight: var(--xh-mention-item-fg, var(--xh-material-frosted-fg));
|
package/dist/css/menu.css
CHANGED
|
@@ -87,6 +87,7 @@
|
|
|
87
87
|
/* 尺寸档只换这四个私有槽,条目从 content 继承它们,换档不必给每个部件各写一条选择器。
|
|
88
88
|
菜单没有 root 部件(浮层树的最外层就是 content),三轴属性都落在这里 */
|
|
89
89
|
--xh-_menu-item-py: var(--xh-list-option-py-md);
|
|
90
|
+
--xh-_menu-item-h: var(--xh-list-option-h-md);
|
|
90
91
|
--xh-_menu-item-px: var(--xh-control-px-md);
|
|
91
92
|
--xh-_menu-item-gap: var(--xh-control-gap-md);
|
|
92
93
|
--xh-_menu-font-size: var(--xh-control-font-md);
|
|
@@ -102,7 +103,7 @@
|
|
|
102
103
|
列表族的 16rem 对命令菜单偏矮,这里另给一档 */
|
|
103
104
|
max-block-size: min(var(--xh-menu-max-h, var(--xh-overlay-menu-max-h)), var(--xh-_menu-available-h));
|
|
104
105
|
padding-block: var(--xh-menu-content-py, var(--xh-surface-pad-xs));
|
|
105
|
-
padding-inline: var(--xh-menu-content-px,
|
|
106
|
+
padding-inline: var(--xh-menu-content-px, 0);
|
|
106
107
|
border-radius: var(--xh-menu-content-radius, var(--xh-shape-overlay));
|
|
107
108
|
/* 条目超过上限就在菜单内部滚。条目的焦点环是内收的,滚动容器裁在内边距缘上,环切不着。
|
|
108
109
|
浮层滚动面:到底后不把滚动链穿透给页面 */
|
|
@@ -140,6 +141,7 @@
|
|
|
140
141
|
.xh-scope-menu[data-part='content'][data-size='sm'] {
|
|
141
142
|
--xh-icon-size: var(--xh-menu-icon-size, var(--xh-glyph-size-sm));
|
|
142
143
|
--xh-_menu-item-py: var(--xh-list-option-py-sm);
|
|
144
|
+
--xh-_menu-item-h: var(--xh-list-option-h-sm);
|
|
143
145
|
--xh-_menu-item-px: var(--xh-control-px-sm);
|
|
144
146
|
--xh-_menu-item-gap: var(--xh-control-gap-sm);
|
|
145
147
|
--xh-_menu-font-size: var(--xh-control-font-sm);
|
|
@@ -148,6 +150,7 @@
|
|
|
148
150
|
.xh-scope-menu[data-part='content'][data-size='lg'] {
|
|
149
151
|
--xh-icon-size: var(--xh-menu-icon-size, var(--xh-glyph-size-lg));
|
|
150
152
|
--xh-_menu-item-py: var(--xh-list-option-py-lg);
|
|
153
|
+
--xh-_menu-item-h: var(--xh-list-option-h-lg);
|
|
151
154
|
--xh-_menu-item-px: var(--xh-control-px-lg);
|
|
152
155
|
--xh-_menu-item-gap: var(--xh-control-gap-lg);
|
|
153
156
|
--xh-_menu-font-size: var(--xh-control-font-lg);
|
|
@@ -159,10 +162,11 @@
|
|
|
159
162
|
子菜单箭头是行尾的伪元素;间距统一由行的 gap 给,家族按槽下发的外边距归零 */
|
|
160
163
|
.xh-scope-menu[data-part='item'] {
|
|
161
164
|
--xh-collection-block-padding: var(--xh-menu-item-py, var(--xh-_menu-item-py));
|
|
165
|
+
--xh-collection-row-h: var(--xh-menu-item-h, var(--xh-_menu-item-h));
|
|
162
166
|
--xh-collection-inline-padding: var(--xh-menu-item-px, var(--xh-_menu-item-px));
|
|
163
167
|
--xh-collection-gap: 0;
|
|
164
168
|
--xh-collection-font-size: var(--xh-menu-item-font-size, var(--xh-_menu-font-size));
|
|
165
|
-
--xh-collection-radius: var(--xh-menu-item-radius,
|
|
169
|
+
--xh-collection-radius: var(--xh-menu-item-radius, 0);
|
|
166
170
|
--xh-collection-fg-rest: var(--xh-menu-item-fg, var(--xh-material-frosted-fg));
|
|
167
171
|
--xh-collection-fg-hover: var(--xh-menu-item-fg, var(--xh-material-frosted-fg));
|
|
168
172
|
--xh-collection-fg-keyboard-highlight: var(--xh-menu-item-fg, var(--xh-material-frosted-fg));
|
|
@@ -263,7 +267,7 @@
|
|
|
263
267
|
margin-inline-start: auto;
|
|
264
268
|
inline-size: var(--xh-menu-submenu-indicator-size, var(--xh-control-indicator-size));
|
|
265
269
|
block-size: var(--xh-menu-submenu-indicator-size, var(--xh-control-indicator-size));
|
|
266
|
-
background-color: var(--xh-menu-submenu-indicator-fg,
|
|
270
|
+
background-color: var(--xh-menu-submenu-indicator-fg, currentColor);
|
|
267
271
|
-webkit-mask: var(--xh-glyph-mark-chevron-right) center / contain no-repeat;
|
|
268
272
|
mask: var(--xh-glyph-mark-chevron-right) center / contain no-repeat;
|
|
269
273
|
}
|
|
@@ -284,15 +288,16 @@
|
|
|
284
288
|
display: none;
|
|
285
289
|
}
|
|
286
290
|
|
|
287
|
-
/*
|
|
291
|
+
/* 分组标题不是条目、进不了导航,画成小号常规字重的次要文字,上方让出 8px 与上一组分开;
|
|
288
292
|
内缩与条目对齐(同一个 padding-inline),标题与条目文字才在一条竖线上 */
|
|
289
293
|
.xh-scope-menu[data-part='group-label'] {
|
|
290
294
|
display: block;
|
|
295
|
+
margin-block-start: var(--xh-menu-group-label-mt, var(--xh-space-2));
|
|
291
296
|
padding-block: var(--xh-menu-group-label-py, var(--xh-space-1));
|
|
292
297
|
padding-inline: var(--xh-menu-group-label-px, var(--xh-_menu-item-px));
|
|
293
298
|
color: var(--xh-menu-group-label-fg, var(--xh-material-frosted-fg-muted));
|
|
294
299
|
font-size: var(--xh-menu-group-label-font-size, var(--xh-text-caption-size));
|
|
295
|
-
font-weight: var(--xh-menu-group-label-font-weight, var(--xh-font-weight-
|
|
300
|
+
font-weight: var(--xh-menu-group-label-font-weight, var(--xh-font-weight-regular));
|
|
296
301
|
line-height: var(--xh-leading-none);
|
|
297
302
|
user-select: none;
|
|
298
303
|
}
|
package/dist/css/menubar.css
CHANGED
|
@@ -139,9 +139,10 @@
|
|
|
139
139
|
自己身上把 --xh-icon-size 改接到盒的尺,子菜单箭头走 --xh-menubar-submenu-indicator-size */
|
|
140
140
|
--xh-icon-size: var(--xh-menubar-icon-size, var(--xh-glyph-size-md));
|
|
141
141
|
|
|
142
|
-
--xh-_menubar-trigger-py: var(--xh-space-
|
|
142
|
+
--xh-_menubar-trigger-py: var(--xh-space-2);
|
|
143
143
|
--xh-_menubar-trigger-px: var(--xh-control-px-md);
|
|
144
144
|
--xh-_menubar-item-py: var(--xh-list-option-py-md);
|
|
145
|
+
--xh-_menubar-item-h: var(--xh-list-option-h-md);
|
|
145
146
|
--xh-_menubar-item-px: var(--xh-control-px-md);
|
|
146
147
|
--xh-_menubar-item-gap: var(--xh-control-gap-md);
|
|
147
148
|
--xh-_menubar-font-size: var(--xh-control-font-md);
|
|
@@ -149,9 +150,10 @@
|
|
|
149
150
|
|
|
150
151
|
.xh-scope-menubar[data-size='sm']:is([data-part='root'], [data-part='positioner']) {
|
|
151
152
|
--xh-icon-size: var(--xh-menubar-icon-size, var(--xh-glyph-size-sm));
|
|
152
|
-
--xh-_menubar-trigger-py: var(--xh-space-
|
|
153
|
+
--xh-_menubar-trigger-py: var(--xh-space-1_5);
|
|
153
154
|
--xh-_menubar-trigger-px: var(--xh-control-px-sm);
|
|
154
155
|
--xh-_menubar-item-py: var(--xh-list-option-py-sm);
|
|
156
|
+
--xh-_menubar-item-h: var(--xh-list-option-h-sm);
|
|
155
157
|
--xh-_menubar-item-px: var(--xh-control-px-sm);
|
|
156
158
|
--xh-_menubar-item-gap: var(--xh-control-gap-sm);
|
|
157
159
|
--xh-_menubar-font-size: var(--xh-control-font-sm);
|
|
@@ -159,9 +161,10 @@
|
|
|
159
161
|
|
|
160
162
|
.xh-scope-menubar[data-size='lg']:is([data-part='root'], [data-part='positioner']) {
|
|
161
163
|
--xh-icon-size: var(--xh-menubar-icon-size, var(--xh-glyph-size-lg));
|
|
162
|
-
--xh-_menubar-trigger-py: var(--xh-space-
|
|
164
|
+
--xh-_menubar-trigger-py: var(--xh-space-2_5);
|
|
163
165
|
--xh-_menubar-trigger-px: var(--xh-control-px-lg);
|
|
164
166
|
--xh-_menubar-item-py: var(--xh-list-option-py-lg);
|
|
167
|
+
--xh-_menubar-item-h: var(--xh-list-option-h-lg);
|
|
165
168
|
--xh-_menubar-item-px: var(--xh-control-px-lg);
|
|
166
169
|
--xh-_menubar-item-gap: var(--xh-control-gap-lg);
|
|
167
170
|
--xh-_menubar-font-size: var(--xh-control-font-lg);
|
|
@@ -188,7 +191,7 @@
|
|
|
188
191
|
列表族的 16rem 对命令菜单偏矮,这里另给一档 */
|
|
189
192
|
max-block-size: min(var(--xh-menubar-max-h, var(--xh-overlay-menu-max-h)), var(--xh-_menubar-available-h));
|
|
190
193
|
padding-block: var(--xh-menubar-content-py, var(--xh-surface-pad-xs));
|
|
191
|
-
padding-inline: var(--xh-menubar-content-px,
|
|
194
|
+
padding-inline: var(--xh-menubar-content-px, 0);
|
|
192
195
|
border-radius: var(--xh-menubar-content-radius, var(--xh-shape-overlay));
|
|
193
196
|
/* 条目超过上限就在菜单内部滚。条目的焦点环是内收的,滚动容器裁在内边距缘上,环切不着。
|
|
194
197
|
浮层滚动面:到底后不把滚动链穿透给页面 */
|
|
@@ -235,15 +238,16 @@
|
|
|
235
238
|
display: none;
|
|
236
239
|
}
|
|
237
240
|
|
|
238
|
-
/*
|
|
241
|
+
/* 分组标题不是条目、进不了导航,画成小号常规字重的次要文字,上方让出 8px 与上一组分开;
|
|
239
242
|
内缩与条目对齐(同一个 padding-inline),标题与条目文字才在一条竖线上 */
|
|
240
243
|
.xh-scope-menubar[data-part='group-label'] {
|
|
241
244
|
display: block;
|
|
245
|
+
margin-block-start: var(--xh-menubar-group-label-mt, var(--xh-space-2));
|
|
242
246
|
padding-block: var(--xh-menubar-group-label-py, var(--xh-space-1));
|
|
243
247
|
padding-inline: var(--xh-menubar-group-label-px, var(--xh-_menubar-item-px));
|
|
244
248
|
color: var(--xh-menubar-group-label-fg, var(--xh-material-frosted-fg-muted));
|
|
245
249
|
font-size: var(--xh-menubar-group-label-font-size, var(--xh-text-caption-size));
|
|
246
|
-
font-weight: var(--xh-menubar-group-label-font-weight, var(--xh-font-weight-
|
|
250
|
+
font-weight: var(--xh-menubar-group-label-font-weight, var(--xh-font-weight-regular));
|
|
247
251
|
line-height: var(--xh-leading-none);
|
|
248
252
|
user-select: none;
|
|
249
253
|
}
|
|
@@ -258,10 +262,11 @@
|
|
|
258
262
|
子菜单箭头是行尾的伪元素;间距统一由行的 gap 给,家族按槽下发的外边距归零 */
|
|
259
263
|
.xh-scope-menubar[data-part='item'] {
|
|
260
264
|
--xh-collection-block-padding: var(--xh-menubar-item-py, var(--xh-_menubar-item-py));
|
|
265
|
+
--xh-collection-row-h: var(--xh-menubar-item-h, var(--xh-_menubar-item-h));
|
|
261
266
|
--xh-collection-inline-padding: var(--xh-menubar-item-px, var(--xh-_menubar-item-px));
|
|
262
267
|
--xh-collection-gap: 0;
|
|
263
268
|
--xh-collection-font-size: var(--xh-menubar-item-font-size, var(--xh-_menubar-font-size));
|
|
264
|
-
--xh-collection-radius: var(--xh-menubar-item-radius,
|
|
269
|
+
--xh-collection-radius: var(--xh-menubar-item-radius, 0);
|
|
265
270
|
--xh-collection-fg-rest: var(--xh-menubar-item-fg, var(--xh-material-frosted-fg));
|
|
266
271
|
--xh-collection-fg-hover: var(--xh-menubar-item-fg, var(--xh-material-frosted-fg));
|
|
267
272
|
--xh-collection-fg-keyboard-highlight: var(--xh-menubar-item-fg, var(--xh-material-frosted-fg));
|
|
@@ -305,7 +310,7 @@
|
|
|
305
310
|
margin-inline-start: auto;
|
|
306
311
|
inline-size: var(--xh-menubar-submenu-indicator-size, var(--xh-control-indicator-size));
|
|
307
312
|
block-size: var(--xh-menubar-submenu-indicator-size, var(--xh-control-indicator-size));
|
|
308
|
-
background-color: var(--xh-menubar-submenu-indicator-fg,
|
|
313
|
+
background-color: var(--xh-menubar-submenu-indicator-fg, currentColor);
|
|
309
314
|
-webkit-mask: var(--xh-glyph-mark-chevron-right) center / contain no-repeat;
|
|
310
315
|
mask: var(--xh-glyph-mark-chevron-right) center / contain no-repeat;
|
|
311
316
|
}
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
--xh-_navigation-menu-highlight-bg: var(--xh-bg-subtle);
|
|
39
39
|
|
|
40
40
|
/* 语气只落在指示条上;没写 data-tone 时 --xh-_tone 没被声明,退回品牌色。
|
|
41
|
-
当前链接的字色不随语气:导航当前页恒取 --xh-fg-brand
|
|
41
|
+
当前链接的字色不随语气:导航当前页恒取 --xh-fg-brand。聚焦环恒是 --xh-ring-focus */
|
|
42
42
|
--xh-_navigation-menu-accent: var(--xh-_tone, var(--xh-fg-brand));
|
|
43
43
|
|
|
44
44
|
position: relative;
|
|
@@ -224,7 +224,7 @@
|
|
|
224
224
|
--xh-collection-bg-hover: var(--xh-navigation-menu-link-bg-hover, var(--xh-_navigation-menu-highlight-bg));
|
|
225
225
|
--xh-collection-bg-keyboard-highlight: var(--xh-navigation-menu-link-bg-hover, var(--xh-_navigation-menu-highlight-bg));
|
|
226
226
|
--xh-collection-bg-pressed: var(--xh-navigation-menu-link-bg-pressed, var(--xh-bg-subtle-hover));
|
|
227
|
-
--xh-collection-fg-current: var(--xh-navigation-menu-link-fg-current, var(--xh-fg-brand
|
|
227
|
+
--xh-collection-fg-current: var(--xh-navigation-menu-link-fg-current, var(--xh-fg-brand));
|
|
228
228
|
--xh-collection-font-weight-current: var(--xh-navigation-menu-link-font-weight-current, var(--xh-font-weight-medium));
|
|
229
229
|
|
|
230
230
|
position: relative;
|