@xihan-ui/styles 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +101 -0
- package/component-tokens.d.ts +0 -15
- package/components.tokens.json +65 -396
- package/css/accordion.css +6 -6
- package/css/alert.css +2 -2
- package/css/anchor.css +3 -3
- package/css/approval.css +8 -8
- package/css/back-top.css +2 -2
- package/css/badge.css +1 -1
- package/css/breadcrumb.css +1 -1
- package/css/button-group.css +1 -1
- package/css/button.css +2 -2
- package/css/calendar-picker.css +8 -8
- package/css/calendar-range-picker.css +9 -9
- package/css/card.css +1 -1
- package/css/carousel.css +6 -6
- package/css/cascader.css +3 -5
- package/css/checkbox-group.css +10 -10
- package/css/checkbox.css +5 -5
- package/css/clipboard.css +4 -4
- package/css/code-view.css +2 -2
- package/css/collapsible.css +4 -4
- package/css/color-picker.css +2 -4
- package/css/color-slider.css +4 -4
- package/css/color-swatch-picker.css +5 -5
- package/css/combobox.css +2 -4
- package/css/command.css +3 -5
- package/css/context-menu.css +4 -6
- package/css/date-picker.css +0 -2
- package/css/date-range-picker.css +0 -2
- package/css/descriptions.css +1 -1
- package/css/dialog.css +5 -7
- package/css/diff-view.css +4 -4
- package/css/download-trigger.css +3 -3
- package/css/drawer.css +9 -15
- package/css/empty-state.css +1 -1
- package/css/field.css +1 -1
- package/css/fieldset.css +1 -1
- package/css/file-upload.css +1 -1
- package/css/float-button.css +3 -3
- package/css/floating-panel.css +6 -8
- package/css/form.css +3 -3
- package/css/heatmap.css +1 -1
- package/css/hover-card.css +2 -4
- package/css/image-cropper.css +2 -2
- package/css/image-viewer.css +2 -4
- package/css/infinite-scroll.css +2 -2
- package/css/input-group.css +2 -2
- package/css/json-viewer.css +5 -5
- package/css/kbd.css +1 -1
- package/css/layout.css +3 -3
- package/css/list.css +1 -1
- package/css/listbox.css +26 -17
- package/css/log.css +2 -2
- package/css/mention.css +0 -2
- package/css/menu.css +5 -7
- package/css/menubar.css +6 -8
- package/css/message-feed.css +2 -2
- package/css/navigation-menu.css +5 -7
- package/css/notification.css +3 -3
- package/css/page-header.css +1 -1
- package/css/pagination.css +5 -7
- package/css/popconfirm.css +6 -8
- package/css/popover.css +5 -7
- package/css/prompt-input.css +1 -1
- package/css/question-flow.css +7 -7
- package/css/radio-group.css +9 -9
- package/css/rating.css +4 -4
- package/css/reasoning.css +5 -5
- package/css/reset.css +1 -1
- package/css/segmented.css +7 -7
- package/css/select.css +2 -4
- package/css/side-nav.css +4 -6
- package/css/signature-pad.css +7 -7
- package/css/slider.css +5 -5
- package/css/sortable.css +1 -1
- package/css/splitter.css +1 -1
- package/css/steps.css +10 -10
- package/css/switch.css +8 -8
- package/css/table.css +11 -11
- package/css/tabs.css +12 -12
- package/css/tag-group.css +39 -35
- package/css/tag.css +2 -2
- package/css/time-picker.css +0 -2
- package/css/time-range-picker.css +0 -2
- package/css/toast.css +3 -3
- package/css/toggle-group.css +4 -4
- package/css/toggle.css +2 -2
- package/css/tool-call.css +5 -5
- package/css/toolbar.css +4 -4
- package/css/tooltip.css +4 -6
- package/css/tour.css +7 -9
- package/css/transfer.css +6 -6
- package/css/tree-select.css +3 -5
- package/css/tree.css +46 -99
- package/css/virtualizer.css +1 -1
- package/family/collection-item.css +61 -12
- package/family/motion.css +1 -1
- package/index.css +506 -553
- package/index.unlayered.css +506 -553
- package/package.json +2 -2
package/css/clipboard.css
CHANGED
|
@@ -138,7 +138,7 @@
|
|
|
138
138
|
border-end-end-radius: 0;
|
|
139
139
|
}
|
|
140
140
|
|
|
141
|
-
/* 焦点边一律 --xh-border-control-focus,不随 tone
|
|
141
|
+
/* 焦点边一律 --xh-border-control-focus,不随 tone */
|
|
142
142
|
[data-scope='clipboard'][data-part='input']:focus-visible {
|
|
143
143
|
border-color: var(--xh-clipboard-input-border-focus, var(--xh-border-control-focus));
|
|
144
144
|
}
|
|
@@ -159,7 +159,7 @@
|
|
|
159
159
|
-webkit-text-fill-color: var(--xh-clipboard-input-autofill-fg, var(--xh-fg-default));
|
|
160
160
|
}
|
|
161
161
|
|
|
162
|
-
/*
|
|
162
|
+
/* 复制钮是定尺的独立动作按钮:盒型、四态面、0.97 按压与粗指针命中区由家族配方给出,
|
|
163
163
|
这里只把公开槽桥接到矩阵之前(使用者槽 → 形态矩阵 → 家族缺省)与几何槽映射。
|
|
164
164
|
叠格布局要保留:两侧指示器叠在同一格,切换时不抖宽度 */
|
|
165
165
|
[data-scope='clipboard'][data-part='copy-trigger'] {
|
|
@@ -179,7 +179,7 @@
|
|
|
179
179
|
--xh-action-border-pressed: var(--xh-clipboard-copy-trigger-border-hover, var(--xh-_action-variant-border-pressed));
|
|
180
180
|
--xh-action-border-focus-visible: var(--xh-clipboard-copy-trigger-border, var(--xh-_action-variant-border-focus-visible));
|
|
181
181
|
--xh-action-border-disabled: var(--xh-clipboard-copy-trigger-border-disabled, var(--xh-_action-variant-border-disabled));
|
|
182
|
-
/*
|
|
182
|
+
/* 矩阵各态无影(淡底与阴影互斥):solid 也不再悬停抬影,使用者槽仍可自行加 */
|
|
183
183
|
--xh-action-shadow-hover: var(--xh-clipboard-copy-trigger-shadow-hover, none);
|
|
184
184
|
--xh-action-radius: var(--xh-clipboard-copy-trigger-radius, var(--xh-shape-control));
|
|
185
185
|
--xh-action-visual-size: var(--xh-clipboard-copy-trigger-h, var(--xh-_clipboard-h));
|
|
@@ -245,7 +245,7 @@
|
|
|
245
245
|
margin: auto;
|
|
246
246
|
border: var(--xh-stroke-thin) solid transparent;
|
|
247
247
|
border-block-start-color: currentColor;
|
|
248
|
-
/* 正圆的加载环:正方盒取 circle
|
|
248
|
+
/* 正圆的加载环:正方盒取 circle */
|
|
249
249
|
border-radius: var(--xh-shape-circle);
|
|
250
250
|
opacity: 0;
|
|
251
251
|
animation:
|
package/css/code-view.css
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
--xh-code-view-skin: 1;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
/* 一张静态内容面:--xh-border-default 描边 + surface 底 +
|
|
17
|
+
/* 一张静态内容面:--xh-border-default 描边 + surface 底 + 无影(边界只由描边承担),
|
|
18
18
|
overflow: hidden 让内部 <pre> 的滚动内容沿圆角收边;不设 display,排布由作者决定。
|
|
19
19
|
color 给整段未着色的代码定基线,字号在这里消费一次,缺省即 sm 档。 */
|
|
20
20
|
[data-scope='code-view'][data-part='root'] {
|
|
@@ -202,7 +202,7 @@
|
|
|
202
202
|
}
|
|
203
203
|
|
|
204
204
|
/* 折叠条是铺满一行的 disclosure trigger,盒型、悬停与按下面由 Action Control 的 disclosure-trigger 档给
|
|
205
|
-
(ghost 形态:白底承载 hover 100 → pressed 200
|
|
205
|
+
(ghost 形态:白底承载 hover 100 → pressed 200,按下只换面不缩放);这里只把使用者槽映射到
|
|
206
206
|
桥接槽:圆角归零贴住卡边,内衬沿用代码区的横向内距与折叠条自己的纵向内距,字号与头部条同档。
|
|
207
207
|
顶边是与头部条同一支的内部分隔线:配方按状态写 border-color 简写,四个状态的边色槽都映射到
|
|
208
208
|
这支分隔色,再把四边宽归零、只留顶边一条 */
|
package/css/collapsible.css
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
/* 根容器自己不排版,这条只声明尺寸档的私有槽:正文与标题行从 root 继承它们,
|
|
20
20
|
换档不必给部件各写一条选择器;触发器的三档几何由家族 disclosure-trigger 档给 */
|
|
21
21
|
[data-scope='collapsible'][data-part='root'] {
|
|
22
|
-
/* 作者塞进正文里的图标与皮肤画的兜底字形同一把尺:md
|
|
22
|
+
/* 作者塞进正文里的图标与皮肤画的兜底字形同一把尺:md 档,触发器上另按家族档取值 */
|
|
23
23
|
--xh-icon-size: var(--xh-collapsible-icon-size, var(--xh-glyph-size-md));
|
|
24
24
|
|
|
25
25
|
--xh-_collapsible-trigger-gap: var(--xh-control-gap-md);
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
/* 触发器铺满一行,盒型、三档几何、悬停 / 按下 / 禁用面由 Action Control 的 disclosure-trigger 档给
|
|
62
|
-
(ghost 形态:根无壳,按画布承载 hover 100 → pressed 200
|
|
62
|
+
(ghost 形态:根无壳,按画布承载 hover 100 → pressed 200;按下只换面不缩放);
|
|
63
63
|
这里只把使用者槽映射到桥接槽:字色三态同值(家族的 hover / pressed 字色规则比皮肤更特定,不映射会被换回
|
|
64
64
|
缺省字色),字形按触发器自己的档位取 --xh-_action-profile-glyph-size;边归零贴住标题行,几何与迁移前一致 */
|
|
65
65
|
[data-scope='collapsible'][data-part='trigger'] {
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
/* 展开着的那一档单开一个槽:与常态共用一个的话,作者一改常态字色就把展开态也改掉了。
|
|
84
|
-
悬停 /
|
|
84
|
+
悬停 / 按下的面与收起态同档(open 与家族 hover 同档中性) */
|
|
85
85
|
[data-scope='collapsible'][data-part='trigger'][data-state='open'] {
|
|
86
86
|
--xh-action-fg-rest: var(--xh-collapsible-trigger-fg-open, var(--xh-_collapsible-open-fg));
|
|
87
87
|
--xh-action-fg-hover: var(--xh-collapsible-trigger-fg-open, var(--xh-_collapsible-open-fg));
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
justify-content: center;
|
|
102
102
|
color: var(--xh-collapsible-indicator-fg, var(--xh-fg-muted));
|
|
103
103
|
line-height: var(--xh-leading-none);
|
|
104
|
-
/*
|
|
104
|
+
/* 指示器与正文同档转向:正文 enter 档展开,箭头也用同一段时长翻过去 */
|
|
105
105
|
transition: rotate var(--xh-motion-duration-enter) var(--xh-motion-ease-enter-strong);
|
|
106
106
|
}
|
|
107
107
|
|
package/css/color-picker.css
CHANGED
|
@@ -217,9 +217,9 @@
|
|
|
217
217
|
padding-inline: var(--xh-color-picker-content-px, var(--xh-space-3));
|
|
218
218
|
max-block-size: min(var(--xh-color-picker-max-h, var(--xh-viewport-h-md)), var(--xh-_color-picker-available-h));
|
|
219
219
|
overflow-y: auto;
|
|
220
|
-
/*
|
|
220
|
+
/* 浮层滚动面:滚到头不把页面一起带走 */
|
|
221
221
|
overscroll-behavior: contain;
|
|
222
|
-
/* 面域 + 滑杆 + 通道输入的表单型多列面板,走 floating
|
|
222
|
+
/* 面域 + 滑杆 + 通道输入的表单型多列面板,走 floating 材质——实体底 + --xh-border-default 描边 +
|
|
223
223
|
--xh-elevation-floating 落影,不透景、不画顶部边界光 */
|
|
224
224
|
border: var(--xh-stroke-thin) solid var(--xh-color-picker-content-border, var(--xh-border-default));
|
|
225
225
|
border-radius: var(--xh-color-picker-content-radius, var(--xh-shape-overlay));
|
|
@@ -229,9 +229,7 @@
|
|
|
229
229
|
pointer-events: auto;
|
|
230
230
|
}
|
|
231
231
|
|
|
232
|
-
/* 在场那一档才提前备好合成层:属性随 data-state 一起消失,收起后不长期占着 */
|
|
233
232
|
[data-scope='color-picker'][data-part='content'][data-state='open'] {
|
|
234
|
-
will-change: opacity, translate;
|
|
235
233
|
animation: xh-overlay-slide-in var(--xh-motion-duration-enter) var(--xh-motion-ease-enter-strong);
|
|
236
234
|
}
|
|
237
235
|
|
package/css/color-slider.css
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
display: flex;
|
|
25
25
|
flex-direction: column;
|
|
26
|
-
/*
|
|
26
|
+
/* 字段标签贴控件(复合单字段) */
|
|
27
27
|
gap: var(--xh-color-slider-gap, var(--xh-space-1));
|
|
28
28
|
}
|
|
29
29
|
|
|
@@ -33,10 +33,10 @@
|
|
|
33
33
|
align-items: center;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
/*
|
|
36
|
+
/* 禁用不整体压暗:标签是文字,换到禁用前景;颜色带与拇指画的是颜色本身,换不得色,
|
|
37
37
|
压暗只做一次、落在 control 上(track / thumb 各自再叠一层 opacity 会越叠越黑),拇指另收掉抬升 */
|
|
38
38
|
|
|
39
|
-
/* 字段标签:14 / 500 / fg-default
|
|
39
|
+
/* 字段标签:14 / 500 / fg-default,禁用换到 --xh-fg-subtle */
|
|
40
40
|
[data-scope='color-slider'][data-part='label'] {
|
|
41
41
|
color: var(--xh-color-slider-label-fg, var(--xh-fg-default));
|
|
42
42
|
font-size: var(--xh-color-slider-label-font-size, var(--xh-text-label-size));
|
|
@@ -122,7 +122,7 @@
|
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
/* 圆点浮在轨道之上:轨道是流内的,拇指是绝对定位的,天然后来居上。
|
|
125
|
-
拇指填的是当前那一档的颜色(连接层写进私有槽),拇指是可拖起的 raised
|
|
125
|
+
拇指填的是当前那一档的颜色(连接层写进私有槽),拇指是可拖起的 raised 面:
|
|
126
126
|
--xh-border-default 描边把它从任何底色里框出来,raised 影只是加成、不作边界。
|
|
127
127
|
box-sizing 必须显式写:描边要吃进直径里,否则下面按半个直径回拉的负外边距就对不上圆心。 */
|
|
128
128
|
[data-scope='color-slider'][data-part='thumb'] {
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
--xh-_color-swatch-picker-indicator: var(--xh-control-indicator-lg);
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
/*
|
|
54
|
+
/* 标题独占一行,格子从下一行起排。复合单字段的标签:14 / 500 / fg-default,不随档;
|
|
55
55
|
与格子的距离贴控件 space-1——容器的 gap 归格子之间,标签在它之上补一段差值把距离收成目标值 */
|
|
56
56
|
[data-scope='color-swatch-picker'][data-part='label'] {
|
|
57
57
|
flex-basis: 100%;
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
flex: none;
|
|
81
81
|
inline-size: var(--xh-color-swatch-picker-item-size, var(--xh-_color-swatch-picker-cell));
|
|
82
82
|
block-size: var(--xh-color-swatch-picker-item-size, var(--xh-_color-swatch-picker-cell));
|
|
83
|
-
/* 色块 item 的身份是 inset
|
|
83
|
+
/* 色块 item 的身份是 inset(嵌在 control 内的小块) */
|
|
84
84
|
border-radius: var(--xh-color-swatch-picker-item-radius, var(--xh-shape-inset));
|
|
85
85
|
outline: none;
|
|
86
86
|
cursor: pointer;
|
|
@@ -88,12 +88,12 @@
|
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
/* 指到哪一格:描边换到控件的悬停边(border-strong 只留给 contrast-more 与登记的强调边);
|
|
91
|
-
|
|
91
|
+
选中的那一格保留自己的品牌描边(选中身份不被悬停盖掉) */
|
|
92
92
|
[data-scope='color-swatch-picker'][data-part='item']:not([data-disabled], [data-readonly], [data-state='checked']):hover {
|
|
93
93
|
--xh-_color-swatch-picker-edge: var(--xh-color-swatch-picker-swatch-border-hover, var(--xh-border-control-hover));
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
/*
|
|
96
|
+
/* 这一格的底色就是它要展示的那个颜色,换底等于把展示物盖掉(的「同时换底」在这里落不下去),
|
|
97
97
|
交互回执只能落在别处:按下去看下压,描边同时换到品牌色作第二通道(按住即将选中的那一格)。
|
|
98
98
|
置灰与只读的都不压;指针 :active 与 Headless 投影的 data-pressed 看见同一副按压面 */
|
|
99
99
|
[data-scope='color-swatch-picker'][data-part='item']:not([data-disabled], [data-readonly]):is(:active, [data-pressed]) {
|
|
@@ -162,7 +162,7 @@
|
|
|
162
162
|
inline-size: var(--xh-color-swatch-picker-indicator-size, var(--xh-_color-swatch-picker-indicator));
|
|
163
163
|
block-size: var(--xh-color-swatch-picker-indicator-size, var(--xh-_color-swatch-picker-indicator));
|
|
164
164
|
border: var(--xh-stroke-thin) solid var(--xh-color-swatch-picker-indicator-border, var(--xh-bg-canvas));
|
|
165
|
-
/* 正方盒取 circle
|
|
165
|
+
/* 正方盒取 circle(宽高同槽的盒不得用 pill 冒充圆) */
|
|
166
166
|
border-radius: var(--xh-shape-circle);
|
|
167
167
|
background: var(--xh-color-swatch-picker-indicator-bg, var(--xh-_color-swatch-picker-accent));
|
|
168
168
|
opacity: 0;
|
package/css/combobox.css
CHANGED
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
|
|
86
86
|
/* 作者塞进指示符槽的图标跟着控件的尺寸档走;它自己写了 size 时仍以作者的为准。
|
|
87
87
|
浮层条目里自绘的状态字形(勾选标记所在的标记盒与盒里的勾)不读这支:它们是指示符,走
|
|
88
|
-
--xh-control-indicator-* 一族——标记盒在自己身上把 --xh-icon-size
|
|
88
|
+
--xh-control-indicator-* 一族——标记盒在自己身上把 --xh-icon-size 改接到盒的尺 */
|
|
89
89
|
--xh-icon-size: var(--xh-combobox-icon-size, var(--xh-glyph-size-md));
|
|
90
90
|
|
|
91
91
|
/* 语气只落在勾选标记上,单选与多选正文使用同一颜色。 */
|
|
@@ -323,8 +323,6 @@
|
|
|
323
323
|
|
|
324
324
|
[data-scope='combobox'][data-part='content'][data-state='open'] {
|
|
325
325
|
animation: xh-overlay-slide-in var(--xh-motion-duration-enter) var(--xh-motion-ease-enter-strong);
|
|
326
|
-
/* 只在开着的这一档挂:合成层随 data-state 一起收走,收起后不再占着 */
|
|
327
|
-
will-change: opacity, translate;
|
|
328
326
|
}
|
|
329
327
|
|
|
330
328
|
/* 退场:收起那一帧 hidden 由退场闸门押后,这里才播得出来。forwards 把末态钉住,
|
|
@@ -425,7 +423,7 @@
|
|
|
425
423
|
|
|
426
424
|
/* 勾选标记落在家族网格的 indicator 列,只在选中项上显形(家族按 aria-selected / data-state=checked 给);
|
|
427
425
|
未选中时占位不塌,切换选中不引起行宽抖动。
|
|
428
|
-
|
|
426
|
+
盒与盒里的勾是指示符:盒按指示符档取尺,并在自己身上把 --xh-icon-size 改接到盒的尺,皮肤画的
|
|
429
427
|
兜底勾与作者塞进盒里的 XhIcon 读同一把尺、与盒同边长(勾选标记不是勾选格,不取 × 0.75,与 Select /
|
|
430
428
|
Listbox / Menu 族同口径);不读 root / positioner 按档下发的 --xh-icon-size——那支只管作者放进条目里的
|
|
431
429
|
图标,按图标档取的 20px 比 16 / 14 的指示符档大一圈 */
|
package/css/command.css
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
谁先命中谁给出这一档的取值;条目、检索框与提示条都从面板继承下去 */
|
|
20
20
|
[data-scope='command']:is([data-part='positioner'], [data-part='content']) {
|
|
21
21
|
/* 条目外的字形(分组标题、底部提示条)按档取尺,缺省 md,随 data-size 换档;命令里的图标由家族随
|
|
22
|
-
data-xh-collection-size
|
|
22
|
+
data-xh-collection-size 下发 */
|
|
23
23
|
--xh-icon-size: var(--xh-command-icon-size, var(--xh-glyph-size-md));
|
|
24
24
|
|
|
25
25
|
/* 尺寸档只换这六个私有槽,换档不必给每个部件各写一条选择器 */
|
|
@@ -118,7 +118,7 @@
|
|
|
118
118
|
max-inline-size: var(--xh-command-max-w, var(--xh-_command-max-w));
|
|
119
119
|
/* 封顶才有可滚的余量:不封顶结果列表会一路撑到视口外,滚动条永远出不来 */
|
|
120
120
|
max-block-size: var(--xh-command-max-h, var(--xh-overlay-max-h));
|
|
121
|
-
/* 模态命令面板与 Dialog 同档:overlay 圆角 + sheet 三件套(material-elevated 的边 / 底 /
|
|
121
|
+
/* 模态命令面板与 Dialog 同档:overlay 圆角 + sheet 三件套(material-elevated 的边 / 底 / 影),
|
|
122
122
|
边界由描边承担,不再只靠落影 */
|
|
123
123
|
border: var(--xh-stroke-thin) solid var(--xh-command-border, var(--xh-material-elevated-border));
|
|
124
124
|
border-radius: var(--xh-command-radius, var(--xh-shape-overlay));
|
|
@@ -148,8 +148,6 @@
|
|
|
148
148
|
|
|
149
149
|
[data-scope='command'][data-part='content'][data-state='open'] {
|
|
150
150
|
animation: xh-overlay-pop-in var(--xh-motion-duration-enter) var(--xh-motion-ease-enter-strong);
|
|
151
|
-
/* 只在开着的这一档挂:合成层随 data-state 一起收走,收起后不再占着 */
|
|
152
|
-
will-change: opacity, scale, translate;
|
|
153
151
|
}
|
|
154
152
|
|
|
155
153
|
/* 退场:收起那一帧 hidden 由退场闸门押后,这里才播得出来。forwards 把末态钉住,
|
|
@@ -205,7 +203,7 @@
|
|
|
205
203
|
min-block-size: 0;
|
|
206
204
|
padding-block: var(--xh-command-list-py, var(--xh-space-2));
|
|
207
205
|
padding-inline: var(--xh-command-list-px, var(--xh-space-2));
|
|
208
|
-
/*
|
|
206
|
+
/* 模态面板里的滚动面:到底后不把滚动链穿透给页面 */
|
|
209
207
|
overflow-y: auto;
|
|
210
208
|
overscroll-behavior: contain;
|
|
211
209
|
}
|
package/css/context-menu.css
CHANGED
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
/* 私有槽同时声明在根与 positioner 上:浮层被搬到 portal 落点,不是根的后代,继承不过去 */
|
|
64
64
|
[data-scope='context-menu']:is([data-part='root'], [data-part='positioner']) {
|
|
65
65
|
/* 条目外的字形(分组标题等)按档取尺,缺省 md,随 data-size 换档;同样声明在 positioner 上,被搬走的浮层
|
|
66
|
-
才拿得到;条目里作者放的图标由家族随 data-xh-collection-size
|
|
66
|
+
才拿得到;条目里作者放的图标由家族随 data-xh-collection-size 下发。菜单自绘的状态字形(标记位的盒、
|
|
67
67
|
盒里兜底的勾、子菜单的展开 chevron)不读这支:它们是指示符,走 --xh-control-indicator-* 一族——标记位在
|
|
68
68
|
自己身上把 --xh-icon-size 改接到盒的尺,子菜单箭头走 --xh-context-menu-submenu-indicator-size */
|
|
69
69
|
--xh-icon-size: var(--xh-context-menu-icon-size, var(--xh-glyph-size-md));
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
-webkit-backdrop-filter: var(--xh-context-menu-backdrop, var(--xh-material-frosted-backdrop));
|
|
103
103
|
backdrop-filter: var(--xh-context-menu-backdrop, var(--xh-material-frosted-backdrop));
|
|
104
104
|
/* 条目超过上限就在菜单内部滚;内收焦点环不会被内边距缘裁掉。
|
|
105
|
-
|
|
105
|
+
浮层滚动面:到底后不把滚动链穿透给页面 */
|
|
106
106
|
overflow-y: auto;
|
|
107
107
|
overscroll-behavior: contain;
|
|
108
108
|
pointer-events: auto;
|
|
@@ -178,8 +178,6 @@
|
|
|
178
178
|
|
|
179
179
|
/* 首帧落位后从锚点一侧淡入短移,不缩放整张面。 */
|
|
180
180
|
[data-scope='context-menu'][data-part='content'][data-state='open'] {
|
|
181
|
-
/* 在场那一档才提前备好合成层:属性随 data-state 一起消失,收起后不长期占着 */
|
|
182
|
-
will-change: opacity, translate;
|
|
183
181
|
animation: xh-overlay-slide-in var(--xh-motion-duration-enter) var(--xh-motion-ease-enter-strong);
|
|
184
182
|
}
|
|
185
183
|
|
|
@@ -260,7 +258,7 @@
|
|
|
260
258
|
}
|
|
261
259
|
|
|
262
260
|
/* 子菜单箭头留在主行末端;description 即使写在它前面,也由 order 独占下一行。
|
|
263
|
-
|
|
261
|
+
箭头是指示符:与标记位的盒同走 --xh-control-indicator-size,不读 --xh-icon-size——
|
|
264
262
|
按图标档取的 20px 会比 16px 的标记位盒大一圈 */
|
|
265
263
|
[data-scope='context-menu'][data-part='item'][aria-haspopup='menu']::after {
|
|
266
264
|
content: '';
|
|
@@ -292,7 +290,7 @@
|
|
|
292
290
|
display: none;
|
|
293
291
|
}
|
|
294
292
|
|
|
295
|
-
/* 标记位(勾选符号 /
|
|
293
|
+
/* 标记位(勾选符号 / 图标)按作者写入的槽位留在主行,不为没写的条目强制占列。盒是指示符:按指示符档
|
|
296
294
|
取尺,与 Menu / Cascader 的标记位同走 --xh-control-indicator-size,不读家族按档下发的 --xh-icon-size——
|
|
297
295
|
按图标档取的 20px 会比同一行 16px 的指示符档大一圈。盒在自己身上把 --xh-icon-size 改接到盒的尺,
|
|
298
296
|
皮肤画的兜底勾与作者塞进标记位的 XhIcon 读同一把尺、与盒同边长(行尾标记不是勾选格,不取 × 0.75);
|
package/css/date-picker.css
CHANGED
|
@@ -292,8 +292,6 @@
|
|
|
292
292
|
}
|
|
293
293
|
|
|
294
294
|
[data-scope='date-picker'][data-part='content'][data-state='open'] {
|
|
295
|
-
/* 只在展开态挂着:随状态属性一起消失,不长期占着合成层 */
|
|
296
|
-
will-change: opacity, translate;
|
|
297
295
|
animation: xh-overlay-slide-in var(--xh-motion-duration-enter) var(--xh-motion-ease-enter-strong);
|
|
298
296
|
}
|
|
299
297
|
|
|
@@ -313,8 +313,6 @@
|
|
|
313
313
|
}
|
|
314
314
|
|
|
315
315
|
[data-scope='date-range-picker'][data-part='content'][data-state='open'] {
|
|
316
|
-
/* 只在展开态挂着:随状态属性一起消失,不长期占着合成层 */
|
|
317
|
-
will-change: opacity, translate;
|
|
318
316
|
animation: xh-overlay-slide-in var(--xh-motion-duration-enter) var(--xh-motion-ease-enter-strong);
|
|
319
317
|
}
|
|
320
318
|
|
package/css/descriptions.css
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
/* 一个尺寸档只换这几个私有槽,每一格与格内两段都从根上继承它们,
|
|
16
16
|
换档不必给每个部件各写一条选择器 */
|
|
17
17
|
--xh-_descriptions-gap: var(--xh-space-3);
|
|
18
|
-
/* 标签是每一格的集合标题:叠着排时与取值隔 space-2
|
|
18
|
+
/* 标签是每一格的集合标题:叠着排时与取值隔 space-2(集合标题与集合的间距) */
|
|
19
19
|
--xh-_descriptions-pair-gap: var(--xh-space-2);
|
|
20
20
|
--xh-_descriptions-label-gap: var(--xh-space-2);
|
|
21
21
|
--xh-_descriptions-py: var(--xh-space-2);
|
package/css/dialog.css
CHANGED
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
/*
|
|
51
|
-
*
|
|
51
|
+
* 触发器是页面上的独立文字按钮:盒型、md 档几何、outline 四态面、0.97 按压并换底与粗指针命中区
|
|
52
52
|
* 由家族配方按连接层投影的 data-xh-action-variant / -size 给出。皮肤没有自己的外观规则,
|
|
53
53
|
* 只把作者塞进按钮的图标接到随档字形尺(md = 20px)。
|
|
54
54
|
*/
|
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
}
|
|
113
113
|
|
|
114
114
|
[data-scope='dialog'][data-part='content'] {
|
|
115
|
-
/*
|
|
115
|
+
/* 作者塞进面板里的图标按控件档取;语气徽记与关闭钮另有各自的尺 */
|
|
116
116
|
--xh-icon-size: var(--xh-dialog-icon-size, var(--xh-glyph-size-md));
|
|
117
117
|
|
|
118
118
|
/* 尺寸档只换这一个私有槽。它声明在 content 而不是别处:dialog 的解剖里没有 root,
|
|
@@ -180,8 +180,6 @@
|
|
|
180
180
|
|
|
181
181
|
[data-scope='dialog'][data-part='content'][data-state='open'] {
|
|
182
182
|
animation: xh-dialog-in var(--xh-motion-duration-enter) var(--xh-motion-ease-enter-strong);
|
|
183
|
-
/* 只在开着的这一档挂:合成层随 data-state 一起收走,收起后不再占着 */
|
|
184
|
-
will-change: opacity, scale, translate;
|
|
185
183
|
}
|
|
186
184
|
|
|
187
185
|
[data-scope='dialog'][data-part='content'][data-state='closed'] {
|
|
@@ -262,7 +260,7 @@
|
|
|
262
260
|
|
|
263
261
|
/* 正文段:面板里唯一会滚的一段。最小高度归零,
|
|
264
262
|
否则弹性项按内容撑高,容器再矮也不产生溢出,滚动条永远出不来。
|
|
265
|
-
模态 body
|
|
263
|
+
模态 body 是原生细条滚动面:细条由 reset 层统一给,滚到头不把页面一起带走 */
|
|
266
264
|
[data-scope='dialog'][data-part='body'] {
|
|
267
265
|
flex: 1 1 auto;
|
|
268
266
|
min-block-size: 0;
|
|
@@ -305,7 +303,7 @@
|
|
|
305
303
|
color: var(--xh-dialog-title-fg, var(--xh-fg-default));
|
|
306
304
|
}
|
|
307
305
|
|
|
308
|
-
/*
|
|
306
|
+
/* 说明文字走说明档:13px + fg-muted */
|
|
309
307
|
[data-scope='dialog'][data-part='description'] {
|
|
310
308
|
margin: 0;
|
|
311
309
|
font-size: var(--xh-dialog-description-font-size, var(--xh-text-secondary-size));
|
|
@@ -320,7 +318,7 @@
|
|
|
320
318
|
}
|
|
321
319
|
|
|
322
320
|
/*
|
|
323
|
-
*
|
|
321
|
+
* 关闭钮是面板角落的单图标钮:正方盒、sm 档几何、ghost 四态面、0.97 按压并换底与粗指针命中区
|
|
324
322
|
* 由家族配方给出——白面上走画布承载阶梯悬停 --xh-bg-subtle(100)→ 按下 --xh-bg-subtle-hover(200),
|
|
325
323
|
* 焦点面透明吃库环。这里只把公开槽桥接到矩阵之前(使用者槽 → 形态矩阵 → 家族缺省)与摆放,
|
|
326
324
|
* 聚焦档的 -bg-focus / -fg-focus 两槽同样桥到配方的 focus-visible 面,缺省仍是透明底与悬停字色;
|
package/css/diff-view.css
CHANGED
|
@@ -14,10 +14,10 @@
|
|
|
14
14
|
--xh-diff-view-skin: 1;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
/* 一张静态内容面:--xh-border-default 描边 + surface 底 +
|
|
17
|
+
/* 一张静态内容面:--xh-border-default 描边 + surface 底 + 无影(边界只由描边承担);
|
|
18
18
|
头部、行号列与并排接缝的内部分隔线走另一支 --xh-diff-view-divider(subtle) */
|
|
19
19
|
[data-scope='diff-view'][data-part='root'] {
|
|
20
|
-
/* 作者塞进部件里的图标与皮肤画的兜底字形同一把尺:md 档,随 data-size
|
|
20
|
+
/* 作者塞进部件里的图标与皮肤画的兜底字形同一把尺:md 档,随 data-size 换档 */
|
|
21
21
|
--xh-icon-size: var(--xh-diff-view-icon-size, var(--xh-glyph-size-md));
|
|
22
22
|
|
|
23
23
|
/* 尺寸缺省档:不写 data-size 时的取值。三档都只写这三个私有槽,
|
|
@@ -258,7 +258,7 @@
|
|
|
258
258
|
color: var(--xh-diff-view-punctuation-fg, var(--xh-fg-subtle));
|
|
259
259
|
}
|
|
260
260
|
|
|
261
|
-
/* 折起来的那一行:整行都是展开按钮。行是淡底承载面,向按钮下发 hover 200 → pressed 300
|
|
261
|
+
/* 折起来的那一行:整行都是展开按钮。行是淡底承载面,向按钮下发 hover 200 → pressed 300 */
|
|
262
262
|
[data-scope='diff-view'][data-part='gap'] {
|
|
263
263
|
--xh-action-host-bg-hover: var(--xh-bg-subtle-hover);
|
|
264
264
|
--xh-action-host-bg-pressed: var(--xh-bg-subtle-active);
|
|
@@ -276,7 +276,7 @@
|
|
|
276
276
|
}
|
|
277
277
|
|
|
278
278
|
/* 展开按钮铺满折叠格,盒型、悬停与按下面由 Action Control 的 disclosure-trigger 档给(ghost 形态,
|
|
279
|
-
|
|
279
|
+
按下只换面不缩放);这里只把使用者槽映射到桥接槽:圆角归零贴住格边、纵向内衬归零、
|
|
280
280
|
高度锚在代码行高上让折叠格与相邻代码行同高,字号跟着正文走 */
|
|
281
281
|
[data-scope='diff-view'][data-part='gap-trigger'] {
|
|
282
282
|
--xh-action-radius: 0;
|
package/css/download-trigger.css
CHANGED
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
/*
|
|
38
|
-
*
|
|
38
|
+
* 触发器就是这一个原生按钮,是定尺的独立动作按钮:盒型、三档几何、四态面、0.97 按压与粗指针
|
|
39
39
|
* 命中区由家族配方按 data-xh-action-variant / -size 给出(缺省 subtle 由连接层显式投影,只有 solid 才品牌实心)。
|
|
40
40
|
* 这里只把公开槽桥接到矩阵之前(使用者槽 → 形态矩阵 → 家族缺省)与几何槽映射;
|
|
41
41
|
* 要换成品牌样式的作者改 --xh-download-trigger-* 这一族槽位,或直接写自己的类名。
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
--xh-action-border-pressed: var(--xh-download-trigger-border-hover, var(--xh-_action-variant-border-pressed));
|
|
58
58
|
--xh-action-border-focus-visible: var(--xh-download-trigger-border, var(--xh-_action-variant-border-focus-visible));
|
|
59
59
|
--xh-action-border-disabled: var(--xh-download-trigger-border-disabled, var(--xh-_action-variant-border-disabled));
|
|
60
|
-
/*
|
|
60
|
+
/* 矩阵各态无影(淡底与阴影互斥):solid 也不再悬停抬影,使用者槽仍可自行加 */
|
|
61
61
|
--xh-action-shadow-hover: var(--xh-download-trigger-shadow-hover, none);
|
|
62
62
|
--xh-action-radius: var(--xh-download-trigger-radius, var(--xh-shape-control));
|
|
63
63
|
--xh-action-visual-size: var(--xh-download-trigger-h, var(--xh-_action-profile-visual-size));
|
|
@@ -121,7 +121,7 @@
|
|
|
121
121
|
margin: auto;
|
|
122
122
|
border: var(--xh-stroke-thin) solid transparent;
|
|
123
123
|
border-block-start-color: var(--xh-_download-trigger-loading-fg);
|
|
124
|
-
/* 正圆的加载环:正方盒取 circle
|
|
124
|
+
/* 正圆的加载环:正方盒取 circle */
|
|
125
125
|
border-radius: var(--xh-shape-circle);
|
|
126
126
|
opacity: 0;
|
|
127
127
|
animation:
|
package/css/drawer.css
CHANGED
|
@@ -107,7 +107,7 @@
|
|
|
107
107
|
/* root 留在页面原地,只是 data-side / data-state 的落点,不该凭空多出一层盒子把
|
|
108
108
|
trigger 从作者的 flex / grid 行里挤出去,故 display: contents。 */
|
|
109
109
|
[data-scope='drawer'][data-part='root'] {
|
|
110
|
-
/*
|
|
110
|
+
/* 作者塞进面板里的图标按控件档取;触发器与关闭钮另由家族配方按各自的档下发字形尺 */
|
|
111
111
|
--xh-icon-size: var(--xh-drawer-icon-size, var(--xh-glyph-size-md));
|
|
112
112
|
|
|
113
113
|
display: contents;
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
}
|
|
126
126
|
|
|
127
127
|
/*
|
|
128
|
-
*
|
|
128
|
+
* 触发器是页面上的独立文字按钮:盒型、md 档几何、outline 四态面、0.97 按压并换底与粗指针命中区
|
|
129
129
|
* 由家族配方按连接层投影的 data-xh-action-variant / -size 给出(此前自写描边盒型,hover 落 200 / active 落 300)。
|
|
130
130
|
* 这里只把公开槽桥接到矩阵之前(使用者槽 → 形态矩阵 → 家族缺省)与几何槽映射。
|
|
131
131
|
*/
|
|
@@ -159,7 +159,7 @@
|
|
|
159
159
|
}
|
|
160
160
|
|
|
161
161
|
/* 抽屉展开期间触发按钮压住不弹起:面板贴在视口边上,它和按钮往往离得很远,
|
|
162
|
-
按钮自己得说明"这一扇是我开的"。open 与家族 hover
|
|
162
|
+
按钮自己得说明"这一扇是我开的"。open 与家族 hover 同档中性:
|
|
163
163
|
白底承载的 --xh-bg-subtle(100)+ 悬停描边,聚焦时这块面留着 */
|
|
164
164
|
[data-scope='drawer'][data-part='trigger'][data-state='open'] {
|
|
165
165
|
--xh-action-bg-rest: var(--xh-drawer-trigger-bg-open, var(--xh-bg-subtle));
|
|
@@ -259,13 +259,13 @@
|
|
|
259
259
|
env(safe-area-inset-left),
|
|
260
260
|
env(safe-area-inset-right)
|
|
261
261
|
);
|
|
262
|
-
/* M4 sheet
|
|
262
|
+
/* M4 sheet 三件套:任何浮层不得只靠 box-shadow 分层,亮色下面板与页面同色,
|
|
263
263
|
1px 描边才是它的边界;影只是加成 */
|
|
264
264
|
border: var(--xh-stroke-thin) solid var(--xh-drawer-border, var(--xh-material-elevated-border));
|
|
265
265
|
background: var(--xh-drawer-bg, var(--xh-material-elevated-bg));
|
|
266
266
|
color: var(--xh-drawer-fg, var(--xh-material-elevated-fg));
|
|
267
267
|
box-shadow: var(--xh-drawer-shadow, var(--xh-material-elevated-shadow));
|
|
268
|
-
/* 作者不用 header / body / footer
|
|
268
|
+
/* 作者不用 header / body / footer 三段时它是唯一的滚动层:模态面滚到头不把页面一起带走 */
|
|
269
269
|
overflow: auto;
|
|
270
270
|
overscroll-behavior: contain;
|
|
271
271
|
/* 尺寸是照视口那条边算出来的,padding 再往外顶就会把面板挤出屏幕、
|
|
@@ -350,13 +350,7 @@
|
|
|
350
350
|
border-start-end-radius: var(--xh-drawer-radius, var(--xh-shape-overlay));
|
|
351
351
|
}
|
|
352
352
|
|
|
353
|
-
/*
|
|
354
|
-
合成层随 data-state 一起收走,收起后不再占着 */
|
|
355
|
-
[data-scope='drawer'][data-part='content'][data-state='open'] {
|
|
356
|
-
will-change: translate;
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
/* 滑入/滑出按边配对。入场是整面板从画外推入的大尺度位移(§9.5):走 --xh-motion-duration-slide
|
|
353
|
+
/* 滑入/滑出按边配对。入场是整面板从画外推入的大尺度位移:走 --xh-motion-duration-slide
|
|
360
354
|
与 --xh-motion-ease-slide;退场仍走 exit 档。退场一律 forwards:presence 要等 animationend 才卸载,
|
|
361
355
|
不定住终态,面板会在最后一帧弹回原位再消失。 */
|
|
362
356
|
[data-scope='drawer'][data-part='content'][data-side='right'][data-state='open'] {
|
|
@@ -413,7 +407,7 @@
|
|
|
413
407
|
|
|
414
408
|
/* 正文段:面板里唯一会滚的一段。最小高度归零,
|
|
415
409
|
否则弹性项按内容撑高,容器再矮也不产生溢出,滚动条永远出不来。
|
|
416
|
-
模态 body
|
|
410
|
+
模态 body 是原生细条滚动面:细条由 reset 层统一给,滚到头不把页面一起带走 */
|
|
417
411
|
[data-scope='drawer'][data-part='body'] {
|
|
418
412
|
flex: 1 1 auto;
|
|
419
413
|
min-block-size: 0;
|
|
@@ -451,7 +445,7 @@
|
|
|
451
445
|
color: var(--xh-drawer-title-fg, var(--xh-fg-default));
|
|
452
446
|
}
|
|
453
447
|
|
|
454
|
-
/*
|
|
448
|
+
/* 说明文字走说明档:13px + fg-muted */
|
|
455
449
|
[data-scope='drawer'][data-part='description'] {
|
|
456
450
|
margin: 0;
|
|
457
451
|
font-size: var(--xh-drawer-description-font-size, var(--xh-text-secondary-size));
|
|
@@ -466,7 +460,7 @@
|
|
|
466
460
|
}
|
|
467
461
|
|
|
468
462
|
/*
|
|
469
|
-
*
|
|
463
|
+
* 关闭钮是面板角落的单图标钮:正方盒、sm 档几何、ghost 四态面、0.97 按压并换底与粗指针命中区
|
|
470
464
|
* 由家族配方给出——白面上走画布承载阶梯悬停 --xh-bg-subtle(100)→ 按下 --xh-bg-subtle-hover(200),
|
|
471
465
|
* 焦点面透明吃库环。这里只把公开槽桥接到矩阵之前(使用者槽 → 形态矩阵 → 家族缺省)与摆放,
|
|
472
466
|
* 聚焦档的 -bg-focus / -fg-focus 两槽同样桥到配方的 focus-visible 面(与 dialog 一致),缺省仍是透明底与悬停字色;
|
package/css/empty-state.css
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
--xh-_empty-state-gap: var(--xh-stack-gap-md);
|
|
21
21
|
--xh-_empty-state-py: var(--xh-section-py-md);
|
|
22
22
|
--xh-_empty-state-icon-size: var(--xh-glyph-size-2xl);
|
|
23
|
-
/* 标题走 Surface / Feedback 标题档 14/600
|
|
23
|
+
/* 标题走 Surface / Feedback 标题档 14/600;sm 同档只缩图形与留白,lg 升到页面级 heading-3 */
|
|
24
24
|
--xh-_empty-state-title-size: var(--xh-text-label-size);
|
|
25
25
|
/* 图标区的强调色:由 data-status(状态码)或 data-tone(语气)换掉;两样都没写就退成中性 */
|
|
26
26
|
--xh-_empty-state-accent: var(--xh-fg-subtle);
|
package/css/field.css
CHANGED
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
--xh-field-border-hover: var(--xh-field-control-border-hover, var(--xh-_field-variant-border-hover));
|
|
101
101
|
--xh-field-border-focus: var(--xh-field-control-border-focus, var(--xh-_field-variant-border-focus));
|
|
102
102
|
--xh-field-border-invalid: var(--xh-field-control-border-invalid, var(--xh-_field-variant-border-invalid));
|
|
103
|
-
/*
|
|
103
|
+
/* 焦点环与家族同一支公共环,不再留逐组件的环色槽(焦点边与环一律公共) */
|
|
104
104
|
--xh-field-ring-focus: var(--xh-ring-focus);
|
|
105
105
|
--xh-field-ring-invalid: var(--xh-ring-invalid);
|
|
106
106
|
--xh-field-shadow-rest: var(--xh-field-control-shadow, none);
|
package/css/fieldset.css
CHANGED
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
[data-scope='fieldset'][data-part='legend'] {
|
|
32
32
|
padding: 0;
|
|
33
33
|
margin-block-end: var(--xh-fieldset-legend-gap, var(--xh-space-2));
|
|
34
|
-
/*
|
|
34
|
+
/* 组标题是「一组字段的标题」,归集合标题角色:fg-muted,与组 --xh-space-2,字号字重同字段标签 */
|
|
35
35
|
color: var(--xh-fieldset-legend-fg, var(--xh-fg-muted));
|
|
36
36
|
font-size: var(--xh-fieldset-legend-font-size, var(--xh-text-label-size));
|
|
37
37
|
font-weight: var(--xh-fieldset-legend-font-weight, var(--xh-text-label-weight));
|
package/css/file-upload.css
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
[data-scope='file-upload'][data-part='root'] {
|
|
15
15
|
/* 作者放进缩略图槽、删除钮与清空钮里的图标跟着字号走,与皮肤画的兜底叉同一把尺。
|
|
16
16
|
条目行首自绘的状态标记(传完的勾、失败的警示)不读这支:它们是指示符,与同一行里 icon 档的
|
|
17
|
-
删除钮并排、走 --xh-control-indicator-*
|
|
17
|
+
删除钮并排、走 --xh-control-indicator-* 一族,尺寸由 --xh-file-upload-item-mark-size 单独控 */
|
|
18
18
|
--xh-icon-size: var(--xh-file-upload-icon-size, var(--xh-glyph-size-text));
|
|
19
19
|
|
|
20
20
|
display: flex;
|
package/css/float-button.css
CHANGED
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
/* —— 形态:给展开列表里原生动作项用的面 ——
|
|
85
85
|
触发器的面由 Action Control 形态矩阵按 data-xh-action-variant 给(solid / subtle / ghost),
|
|
86
86
|
原生动作项读不到矩阵,这几块私有槽按矩阵同一张表镜像;ghost 与 outline 的悬停 / 按下走画布承载的
|
|
87
|
-
阶梯(100 → 200
|
|
87
|
+
阶梯(100 → 200)。缺省 outline(连接层不传 variant 时显式落)是磨砂面:背景、边缘、
|
|
88
88
|
顶光、投影与磨砂从同一份 M2 配方取,高对比、减少透明度、打印和强制色便能一起降级——钮浮在正文
|
|
89
89
|
之上,透空的面在任何内容上都读不出边界,所以 outline 这一档面留着 */
|
|
90
90
|
[data-scope='float-button'][data-part='root'][data-variant='solid'] {
|
|
@@ -128,7 +128,7 @@
|
|
|
128
128
|
}
|
|
129
129
|
|
|
130
130
|
/* —— 触发器 ——
|
|
131
|
-
浮在内容之上的单图标圆钮,接 Action Control floating
|
|
131
|
+
浮在内容之上的单图标圆钮,接 Action Control floating 档:盒型(md = box-lg 48px,圆形)、
|
|
132
132
|
四态面、0.97 按压与 44px 命中区由家族配方按 data-xh-action-variant / -size 给出。
|
|
133
133
|
这里只把公开槽桥接到矩阵之前(使用者槽 → 形态矩阵 → 家族缺省)与几何槽映射 */
|
|
134
134
|
[data-scope='float-button'][data-part='trigger'] {
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
--xh-action-border-pressed: var(--xh-float-button-border-hover, var(--xh-_action-variant-border-pressed));
|
|
147
147
|
--xh-action-border-focus-visible: var(--xh-float-button-border, var(--xh-_action-variant-border-focus-visible));
|
|
148
148
|
--xh-action-border-disabled: var(--xh-float-button-border, var(--xh-_action-variant-border-disabled));
|
|
149
|
-
/*
|
|
149
|
+
/* 矩阵各态无影(淡底与阴影互斥);outline 那一档的磨砂投影在下面另桥接 */
|
|
150
150
|
--xh-action-shadow-rest: var(--xh-float-button-shadow, none);
|
|
151
151
|
--xh-action-shadow-hover: var(--xh-float-button-shadow, none);
|
|
152
152
|
--xh-action-shadow-pressed: var(--xh-float-button-shadow, none);
|