@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.
Files changed (101) hide show
  1. package/CHANGELOG.md +101 -0
  2. package/component-tokens.d.ts +0 -15
  3. package/components.tokens.json +65 -396
  4. package/css/accordion.css +6 -6
  5. package/css/alert.css +2 -2
  6. package/css/anchor.css +3 -3
  7. package/css/approval.css +8 -8
  8. package/css/back-top.css +2 -2
  9. package/css/badge.css +1 -1
  10. package/css/breadcrumb.css +1 -1
  11. package/css/button-group.css +1 -1
  12. package/css/button.css +2 -2
  13. package/css/calendar-picker.css +8 -8
  14. package/css/calendar-range-picker.css +9 -9
  15. package/css/card.css +1 -1
  16. package/css/carousel.css +6 -6
  17. package/css/cascader.css +3 -5
  18. package/css/checkbox-group.css +10 -10
  19. package/css/checkbox.css +5 -5
  20. package/css/clipboard.css +4 -4
  21. package/css/code-view.css +2 -2
  22. package/css/collapsible.css +4 -4
  23. package/css/color-picker.css +2 -4
  24. package/css/color-slider.css +4 -4
  25. package/css/color-swatch-picker.css +5 -5
  26. package/css/combobox.css +2 -4
  27. package/css/command.css +3 -5
  28. package/css/context-menu.css +4 -6
  29. package/css/date-picker.css +0 -2
  30. package/css/date-range-picker.css +0 -2
  31. package/css/descriptions.css +1 -1
  32. package/css/dialog.css +5 -7
  33. package/css/diff-view.css +4 -4
  34. package/css/download-trigger.css +3 -3
  35. package/css/drawer.css +9 -15
  36. package/css/empty-state.css +1 -1
  37. package/css/field.css +1 -1
  38. package/css/fieldset.css +1 -1
  39. package/css/file-upload.css +1 -1
  40. package/css/float-button.css +3 -3
  41. package/css/floating-panel.css +6 -8
  42. package/css/form.css +3 -3
  43. package/css/heatmap.css +1 -1
  44. package/css/hover-card.css +2 -4
  45. package/css/image-cropper.css +2 -2
  46. package/css/image-viewer.css +2 -4
  47. package/css/infinite-scroll.css +2 -2
  48. package/css/input-group.css +2 -2
  49. package/css/json-viewer.css +5 -5
  50. package/css/kbd.css +1 -1
  51. package/css/layout.css +3 -3
  52. package/css/list.css +1 -1
  53. package/css/listbox.css +26 -17
  54. package/css/log.css +2 -2
  55. package/css/mention.css +0 -2
  56. package/css/menu.css +5 -7
  57. package/css/menubar.css +6 -8
  58. package/css/message-feed.css +2 -2
  59. package/css/navigation-menu.css +5 -7
  60. package/css/notification.css +3 -3
  61. package/css/page-header.css +1 -1
  62. package/css/pagination.css +5 -7
  63. package/css/popconfirm.css +6 -8
  64. package/css/popover.css +5 -7
  65. package/css/prompt-input.css +1 -1
  66. package/css/question-flow.css +7 -7
  67. package/css/radio-group.css +9 -9
  68. package/css/rating.css +4 -4
  69. package/css/reasoning.css +5 -5
  70. package/css/reset.css +1 -1
  71. package/css/segmented.css +7 -7
  72. package/css/select.css +2 -4
  73. package/css/side-nav.css +4 -6
  74. package/css/signature-pad.css +7 -7
  75. package/css/slider.css +5 -5
  76. package/css/sortable.css +1 -1
  77. package/css/splitter.css +1 -1
  78. package/css/steps.css +10 -10
  79. package/css/switch.css +8 -8
  80. package/css/table.css +11 -11
  81. package/css/tabs.css +12 -12
  82. package/css/tag-group.css +39 -35
  83. package/css/tag.css +2 -2
  84. package/css/time-picker.css +0 -2
  85. package/css/time-range-picker.css +0 -2
  86. package/css/toast.css +3 -3
  87. package/css/toggle-group.css +4 -4
  88. package/css/toggle.css +2 -2
  89. package/css/tool-call.css +5 -5
  90. package/css/toolbar.css +4 -4
  91. package/css/tooltip.css +4 -6
  92. package/css/tour.css +7 -9
  93. package/css/transfer.css +6 -6
  94. package/css/tree-select.css +3 -5
  95. package/css/tree.css +46 -99
  96. package/css/virtualizer.css +1 -1
  97. package/family/collection-item.css +61 -12
  98. package/family/motion.css +1 -1
  99. package/index.css +506 -553
  100. package/index.unlayered.css +506 -553
  101. 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(§7.2 第 5 条) */
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
- /* 复制钮是定尺的独立动作按钮(§9.1):盒型、四态面、0.97 按压与粗指针命中区由家族配方给出,
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
- /* 矩阵各态无影(§8.3 淡底与阴影互斥):solid 也不再悬停抬影,使用者槽仍可自行加 */
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(§6.3) */
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 底 + 无影(§5.3 边界只由描边承担),
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,按下只换面不缩放,§9.2);这里只把使用者槽映射到
205
+ (ghost 形态:白底承载 hover 100 → pressed 200,按下只换面不缩放);这里只把使用者槽映射到
206
206
  桥接槽:圆角归零贴住卡边,内衬沿用代码区的横向内距与折叠条自己的纵向内距,字号与头部条同档。
207
207
  顶边是与头部条同一支的内部分隔线:配方按状态写 border-color 简写,四个状态的边色槽都映射到
208
208
  这支分隔色,再把四边宽归零、只留顶边一条 */
@@ -19,7 +19,7 @@
19
19
  /* 根容器自己不排版,这条只声明尺寸档的私有槽:正文与标题行从 root 继承它们,
20
20
  换档不必给部件各写一条选择器;触发器的三档几何由家族 disclosure-trigger 档给 */
21
21
  [data-scope='collapsible'][data-part='root'] {
22
- /* 作者塞进正文里的图标与皮肤画的兜底字形同一把尺:md 档(§6.5),触发器上另按家族档取值 */
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;按下只换面不缩放,§9.2);
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
- 悬停 / 按下的面与收起态同档(§7.3 open 与家族 hover 同档中性) */
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
- /* 指示器与正文同档转向(§9.4):正文 enter 档展开,箭头也用同一段时长翻过去 */
104
+ /* 指示器与正文同档转向:正文 enter 档展开,箭头也用同一段时长翻过去 */
105
105
  transition: rotate var(--xh-motion-duration-enter) var(--xh-motion-ease-enter-strong);
106
106
  }
107
107
 
@@ -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
- /* 浮层滚动面:滚到头不把页面一起带走(§6.6) */
220
+ /* 浮层滚动面:滚到头不把页面一起带走 */
221
221
  overscroll-behavior: contain;
222
- /* 面域 + 滑杆 + 通道输入的表单型多列面板,走 floating 材质(§8.4)——实体底 + --xh-border-default 描边 +
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
 
@@ -23,7 +23,7 @@
23
23
 
24
24
  display: flex;
25
25
  flex-direction: column;
26
- /* 字段标签贴控件(§6.4 复合单字段) */
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
- /* 禁用不整体压暗(§7.2 第 9 条):标签是文字,换到禁用前景;颜色带与拇指画的是颜色本身,换不得色,
36
+ /* 禁用不整体压暗:标签是文字,换到禁用前景;颜色带与拇指画的是颜色本身,换不得色,
37
37
  压暗只做一次、落在 control 上(track / thumb 各自再叠一层 opacity 会越叠越黑),拇指另收掉抬升 */
38
38
 
39
- /* 字段标签:14 / 500 / fg-default(§6.4),禁用换到 --xh-fg-subtle */
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 面(§8):
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
- /* 标题独占一行,格子从下一行起排。复合单字段的标签(§6.4):14 / 500 / fg-default,不随档;
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(§6.3:嵌在 control 内的小块) */
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
- 选中的那一格保留自己的品牌描边(§9.3 选中身份不被悬停盖掉) */
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
- /* 这一格的底色就是它要展示的那个颜色,换底等于把展示物盖掉(§9.1 的「同时换底」在这里落不下去),
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(§6.3:宽高同槽的盒不得用 pill 冒充圆) */
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 改接到盒的尺(§6.5) */
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
- 盒与盒里的勾是指示符(§6.5):盒按指示符档取尺,并在自己身上把 --xh-icon-size 改接到盒的尺,皮肤画的
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 下发(§6.5) */
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 的边 / 底 / 影,§8.4),
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
- /* 模态面板里的滚动面:到底后不把滚动链穿透给页面(§6.6) */
206
+ /* 模态面板里的滚动面:到底后不把滚动链穿透给页面 */
209
207
  overflow-y: auto;
210
208
  overscroll-behavior: contain;
211
209
  }
@@ -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 下发(§6.5)。菜单自绘的状态字形(标记位的盒、
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
- 浮层滚动面:到底后不把滚动链穿透给页面(§6.6) */
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
- 箭头是指示符(§6.5):与标记位的盒同走 --xh-control-indicator-size,不读 --xh-icon-size——
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
- /* 标记位(勾选符号 / 图标)按作者写入的槽位留在主行,不为没写的条目强制占列。盒是指示符(§6.5):按指示符档
293
+ /* 标记位(勾选符号 / 图标)按作者写入的槽位留在主行,不为没写的条目强制占列。盒是指示符:按指示符档
296
294
  取尺,与 Menu / Cascader 的标记位同走 --xh-control-indicator-size,不读家族按档下发的 --xh-icon-size——
297
295
  按图标档取的 20px 会比同一行 16px 的指示符档大一圈。盒在自己身上把 --xh-icon-size 改接到盒的尺,
298
296
  皮肤画的兜底勾与作者塞进标记位的 XhIcon 读同一把尺、与盒同边长(行尾标记不是勾选格,不取 × 0.75);
@@ -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
 
@@ -15,7 +15,7 @@
15
15
  /* 一个尺寸档只换这几个私有槽,每一格与格内两段都从根上继承它们,
16
16
  换档不必给每个部件各写一条选择器 */
17
17
  --xh-_descriptions-gap: var(--xh-space-3);
18
- /* 标签是每一格的集合标题:叠着排时与取值隔 space-2(§6.4 集合标题与集合的间距) */
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
- * 触发器是页面上的独立文字按钮(§9.1):盒型、md 档几何、outline 四态面、0.97 按压并换底与粗指针命中区
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
- /* 作者塞进面板里的图标按控件档取(§6.5);语气徽记与关闭钮另有各自的尺 */
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 是原生细条滚动面(§6.6):细条由 reset 层统一给,滚到头不把页面一起带走 */
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
- /* 说明文字走说明档(§6.4):13px + fg-muted */
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
- * 关闭钮是面板角落的单图标钮(§9.1):正方盒、sm 档几何、ghost 四态面、0.97 按压并换底与粗指针命中区
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 底 + 无影(§5.3 边界只由描边承担);
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 换档(§6.5) */
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(§7.2) */
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
- 按下只换面不缩放,§9.2);这里只把使用者槽映射到桥接槽:圆角归零贴住格边、纵向内衬归零、
279
+ 按下只换面不缩放);这里只把使用者槽映射到桥接槽:圆角归零贴住格边、纵向内衬归零、
280
280
  高度锚在代码行高上让折叠格与相邻代码行同高,字号跟着正文走 */
281
281
  [data-scope='diff-view'][data-part='gap-trigger'] {
282
282
  --xh-action-radius: 0;
@@ -35,7 +35,7 @@
35
35
  }
36
36
 
37
37
  /*
38
- * 触发器就是这一个原生按钮,是定尺的独立动作按钮(§9.1):盒型、三档几何、四态面、0.97 按压与粗指针
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
- /* 矩阵各态无影(§8.3 淡底与阴影互斥):solid 也不再悬停抬影,使用者槽仍可自行加 */
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(§6.3) */
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
- /* 作者塞进面板里的图标按控件档取(§6.5);触发器与关闭钮另由家族配方按各自的档下发字形尺 */
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
- * 触发器是页面上的独立文字按钮(§9.1):盒型、md 档几何、outline 四态面、0.97 按压并换底与粗指针命中区
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 同档中性(§7.2 第 8 条):
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 三件套(§8.4):任何浮层不得只靠 box-shadow 分层,亮色下面板与页面同色,
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 三段时它是唯一的滚动层:模态面滚到头不把页面一起带走(§6.6) */
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 是原生细条滚动面(§6.6):细条由 reset 层统一给,滚到头不把页面一起带走 */
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
- /* 说明文字走说明档(§6.4):13px + fg-muted */
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
- * 关闭钮是面板角落的单图标钮(§9.1):正方盒、sm 档几何、ghost 四态面、0.97 按压并换底与粗指针命中区
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 一致),缺省仍是透明底与悬停字色;
@@ -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(§6.4);sm 同档只缩图形与留白,lg 升到页面级 heading-3 */
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
- /* 焦点环与家族同一支公共环,不再留逐组件的环色槽(§7.2.5 焦点边与环一律公共) */
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
- /* 组标题是「一组字段的标题」,归集合标题角色(§6.4):fg-muted,与组 --xh-space-2,字号字重同字段标签 */
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));
@@ -14,7 +14,7 @@
14
14
  [data-scope='file-upload'][data-part='root'] {
15
15
  /* 作者放进缩略图槽、删除钮与清空钮里的图标跟着字号走,与皮肤画的兜底叉同一把尺。
16
16
  条目行首自绘的状态标记(传完的勾、失败的警示)不读这支:它们是指示符,与同一行里 icon 档的
17
- 删除钮并排、走 --xh-control-indicator-* 一族(§6.5),尺寸由 --xh-file-upload-item-mark-size 单独控 */
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;
@@ -84,7 +84,7 @@
84
84
  /* —— 形态:给展开列表里原生动作项用的面 ——
85
85
  触发器的面由 Action Control 形态矩阵按 data-xh-action-variant 给(solid / subtle / ghost),
86
86
  原生动作项读不到矩阵,这几块私有槽按矩阵同一张表镜像;ghost 与 outline 的悬停 / 按下走画布承载的
87
- 阶梯(100 → 200,§7.2 第 3 条)。缺省 outline(连接层不传 variant 时显式落)是磨砂面:背景、边缘、
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 档(§4.1):盒型(md = box-lg 48px,圆形)、
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
- /* 矩阵各态无影(§8.3 淡底与阴影互斥);outline 那一档的磨砂投影在下面另桥接 */
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);