@xihan-ui/styles 1.0.0-alpha.2 → 1.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.
Files changed (122) hide show
  1. package/CHANGELOG.md +2177 -0
  2. package/README.md +1 -1
  3. package/css/accordion.css +80 -6
  4. package/css/alert.css +43 -14
  5. package/css/anchor.css +8 -8
  6. package/css/avatar-group.css +7 -3
  7. package/css/avatar.css +9 -3
  8. package/css/back-top.css +22 -1
  9. package/css/badge.css +104 -32
  10. package/css/breadcrumb.css +25 -5
  11. package/css/button-group.css +18 -13
  12. package/css/button.css +48 -11
  13. package/css/calendar.css +150 -7
  14. package/css/card.css +20 -11
  15. package/css/carousel.css +36 -5
  16. package/css/cascader.css +211 -124
  17. package/css/checkbox-group.css +72 -22
  18. package/css/checkbox.css +70 -13
  19. package/css/clipboard.css +2 -1
  20. package/css/code-block.css +12 -7
  21. package/css/collapsible.css +49 -3
  22. package/css/color-picker.css +132 -46
  23. package/css/combobox.css +132 -60
  24. package/css/composer.css +5 -3
  25. package/css/context-menu.css +113 -74
  26. package/css/date-field.css +93 -16
  27. package/css/date-picker.css +293 -72
  28. package/css/descriptions.css +11 -5
  29. package/css/dialog.css +47 -14
  30. package/css/download-trigger.css +76 -0
  31. package/css/drawer.css +57 -16
  32. package/css/dynamic-input.css +75 -17
  33. package/css/editable.css +12 -10
  34. package/css/ellipsis.css +7 -1
  35. package/css/empty-state.css +22 -12
  36. package/css/field.css +16 -6
  37. package/css/fieldset.css +69 -0
  38. package/css/file-upload.css +46 -8
  39. package/css/flex.css +13 -7
  40. package/css/float-button.css +23 -1
  41. package/css/floating-panel.css +316 -0
  42. package/css/form.css +4 -4
  43. package/css/grid.css +11 -5
  44. package/css/heatmap.css +411 -0
  45. package/css/highlight.css +2 -2
  46. package/css/hotkeys.css +90 -0
  47. package/css/hover-card.css +43 -45
  48. package/css/image-cropper.css +233 -0
  49. package/css/image-viewer.css +155 -17
  50. package/css/image.css +2 -2
  51. package/css/infinite-scroll.css +1 -1
  52. package/css/json-viewer.css +274 -0
  53. package/css/layout.css +19 -15
  54. package/css/list.css +22 -13
  55. package/css/listbox.css +24 -6
  56. package/css/loading-bar.css +12 -5
  57. package/css/log.css +7 -3
  58. package/css/marquee.css +9 -0
  59. package/css/masonry.css +63 -0
  60. package/css/mention.css +100 -36
  61. package/css/menu.css +127 -50
  62. package/css/menubar.css +155 -61
  63. package/css/navigation-menu.css +56 -31
  64. package/css/notification.css +377 -0
  65. package/css/number-animation.css +3 -3
  66. package/css/number-field.css +182 -19
  67. package/css/overlay-arrow.css +51 -0
  68. package/css/page-header.css +12 -5
  69. package/css/pagination.css +171 -14
  70. package/css/password-input.css +356 -0
  71. package/css/pin-input.css +15 -12
  72. package/css/popconfirm.css +55 -12
  73. package/css/popover.css +73 -45
  74. package/css/popselect.css +207 -57
  75. package/css/progress.css +54 -8
  76. package/css/qr-code.css +1 -1
  77. package/css/radio-group.css +27 -10
  78. package/css/rating.css +4 -4
  79. package/css/reset.css +17 -0
  80. package/css/result.css +21 -11
  81. package/css/scroll-area.css +61 -89
  82. package/css/scrollbar.css +170 -0
  83. package/css/segmented.css +215 -0
  84. package/css/select.css +298 -131
  85. package/css/separator.css +2 -2
  86. package/css/side-nav.css +127 -24
  87. package/css/signature-pad.css +144 -0
  88. package/css/skeleton.css +7 -1
  89. package/css/slider.css +14 -12
  90. package/css/space.css +117 -0
  91. package/css/spinner.css +22 -10
  92. package/css/statistic.css +9 -9
  93. package/css/steps.css +29 -12
  94. package/css/switch.css +57 -8
  95. package/css/table.css +146 -44
  96. package/css/tabs.css +13 -5
  97. package/css/tag.css +179 -0
  98. package/css/tags-input.css +80 -42
  99. package/css/text-field.css +151 -38
  100. package/css/thread.css +11 -3
  101. package/css/time-field.css +99 -18
  102. package/css/time-picker.css +261 -71
  103. package/css/timeline.css +15 -15
  104. package/css/timer.css +119 -0
  105. package/css/toast.css +129 -55
  106. package/css/toggle-group.css +30 -4
  107. package/css/toggle.css +12 -6
  108. package/css/tone.css +57 -22
  109. package/css/toolbar.css +1 -1
  110. package/css/tooltip.css +40 -31
  111. package/css/tour.css +112 -61
  112. package/css/transfer.css +98 -21
  113. package/css/tree-select.css +215 -89
  114. package/css/tree.css +131 -5
  115. package/css/typography.css +5 -5
  116. package/css/undefined.css +12 -1
  117. package/css/virtualizer.css +3 -1
  118. package/css/watermark.css +1 -2
  119. package/index.css +18 -1
  120. package/index.unlayered.css +10356 -3255
  121. package/package.json +20 -4
  122. package/css/toaster.css +0 -74
@@ -1,5 +1,5 @@
1
1
  @layer xihan.motion {
2
- @keyframes xh-color-picker-fade-in {
2
+ @keyframes xh-pop-in {
3
3
  from {
4
4
  opacity: 0;
5
5
  scale: var(--xh-motion-scale-enter);
@@ -10,6 +10,17 @@
10
10
  scale: 1;
11
11
  }
12
12
  }
13
+ @keyframes xh-pop-out {
14
+ from {
15
+ opacity: 1;
16
+ scale: 1;
17
+ }
18
+
19
+ to {
20
+ opacity: 0;
21
+ scale: var(--xh-motion-scale-enter);
22
+ }
23
+ }
13
24
  }
14
25
 
15
26
  @layer xihan.components {
@@ -23,15 +34,42 @@
23
34
  全都由连接层每帧写进内联样式。这份皮肤一个都不碰:内联优先级高于样式表,
24
35
  写了不但是死声明,还会跟连接层抢位置。皮肤只管尺寸、颜色、圆角与状态表现。 */
25
36
 
37
+ /* 标签一行、盒一行的两行堆叠 */
26
38
  [data-scope='color-picker'][data-part='root'] {
39
+ /* 盒的度量与标签字号走私有槽中转,与同族的下拉选择一处对一处 */
40
+ --xh-_color-picker-h: var(--xh-control-h-md);
41
+ --xh-_color-picker-px: var(--xh-control-px-md);
42
+ --xh-_color-picker-gap: var(--xh-control-gap-md);
43
+ --xh-_color-picker-label-font-size: var(--xh-control-font-md);
44
+
45
+ /* 聚焦环恒用固定环色 */
46
+ --xh-_color-picker-ring: var(--xh-ring-focus);
47
+
27
48
  display: inline-flex;
28
49
  flex-direction: column;
29
- gap: var(--xh-color-picker-gap, var(--xh-stack-gap-md));
50
+ gap: var(--xh-color-picker-gap, var(--xh-space-1));
51
+ }
52
+
53
+ /* —— 尺寸 —— */
54
+ /* 缺省档写在上面的基础规则里。浮层那一侧也要挂:positioner 被搬到 portal 落点,
55
+ 继承不到根上的私有槽,所以两个部件一起收 */
56
+ [data-scope='color-picker']:is([data-part='root'], [data-part='positioner'])[data-size='sm'] {
57
+ --xh-_color-picker-h: var(--xh-control-h-sm);
58
+ --xh-_color-picker-px: var(--xh-control-px-sm);
59
+ --xh-_color-picker-gap: var(--xh-control-gap-sm);
60
+ --xh-_color-picker-label-font-size: var(--xh-control-font-sm);
61
+ }
62
+
63
+ [data-scope='color-picker']:is([data-part='root'], [data-part='positioner'])[data-size='lg'] {
64
+ --xh-_color-picker-h: var(--xh-control-h-lg);
65
+ --xh-_color-picker-px: var(--xh-control-px-lg);
66
+ --xh-_color-picker-gap: var(--xh-control-gap-lg);
67
+ --xh-_color-picker-label-font-size: var(--xh-control-font-lg);
30
68
  }
31
69
 
32
70
  [data-scope='color-picker'][data-part='label'] {
33
- color: var(--xh-color-picker-label-fg, var(--xh-fg-muted));
34
- font-size: var(--xh-color-picker-label-font-size, var(--xh-text-label-size));
71
+ color: var(--xh-color-picker-label-fg, var(--xh-fg-default));
72
+ font-size: var(--xh-color-picker-label-font-size, var(--xh-_color-picker-label-font-size));
35
73
  font-weight: var(--xh-color-picker-label-font-weight, var(--xh-text-label-weight));
36
74
  line-height: var(--xh-leading-none);
37
75
  }
@@ -40,44 +78,74 @@
40
78
  color: var(--xh-fg-subtle);
41
79
  }
42
80
 
43
- /* 画成一个框的是 trigger:里面的色块与值文本要看起来是一体的 */
44
- [data-scope='color-picker'][data-part='trigger'] {
81
+ /* 盒:描边、底色、控件高度与行内内衬都落在这一层 */
82
+ [data-scope='color-picker'][data-part='control'] {
45
83
  display: inline-flex;
46
84
  align-items: center;
47
- gap: var(--xh-color-picker-trigger-gap, var(--xh-control-gap-md));
48
- min-inline-size: var(--xh-color-picker-trigger-min-w, 9rem);
49
- block-size: var(--xh-color-picker-trigger-h, var(--xh-control-h-md));
50
- padding-inline: var(--xh-color-picker-trigger-px, var(--xh-control-px-md));
51
- border: var(--xh-stroke-thin) solid var(--xh-color-picker-trigger-border, var(--xh-border-control));
52
- border-radius: var(--xh-color-picker-trigger-radius, var(--xh-shape-control));
53
- background: var(--xh-color-picker-trigger-bg, var(--xh-bg-canvas));
54
- color: var(--xh-color-picker-trigger-fg, var(--xh-fg-default));
55
- font-family: inherit;
56
- font-size: var(--xh-color-picker-trigger-font-size, var(--xh-text-body-size));
57
- line-height: var(--xh-leading-none);
85
+ gap: var(--xh-color-picker-control-gap, var(--xh-_color-picker-gap));
86
+ min-inline-size: var(--xh-color-picker-control-min-w, var(--xh-control-min-w));
87
+ block-size: var(--xh-color-picker-control-h, var(--xh-_color-picker-h));
88
+ padding-inline: var(--xh-color-picker-control-px, var(--xh-_color-picker-px));
89
+ border: var(--xh-stroke-thin) solid var(--xh-color-picker-control-border, var(--xh-border-control));
90
+ border-radius: var(--xh-color-picker-control-radius, var(--xh-shape-control));
91
+ background: var(--xh-color-picker-control-bg, var(--xh-bg-canvas));
92
+ color: var(--xh-color-picker-control-fg, var(--xh-fg-default));
58
93
  cursor: pointer;
59
94
  transition: border-color var(--xh-motion-duration-micro) var(--xh-motion-ease-enter);
60
95
  }
61
96
 
62
- [data-scope='color-picker'][data-part='trigger']:hover:not(:disabled) {
63
- border-color: var(--xh-color-picker-trigger-border-hover, var(--xh-border-control-hover));
97
+ [data-scope='color-picker'][data-part='control'][hidden] {
98
+ display: none;
99
+ }
100
+
101
+ [data-scope='color-picker'][data-part='control']:hover:not([data-disabled]) {
102
+ border-color: var(--xh-color-picker-control-border-hover, var(--xh-border-control-hover));
64
103
  }
65
104
 
66
- [data-scope='color-picker'][data-part='trigger']:focus-visible {
67
- outline: var(--xh-ring-width) solid var(--xh-ring-focus);
105
+ /* Tab 停靠点是盒里的 trigger,环画在盒上 */
106
+ [data-scope='color-picker'][data-part='control']:focus-within:not([data-disabled]) {
107
+ border-color: var(--xh-color-picker-control-border-focus, var(--xh-_tone, var(--xh-border-control-focus)));
108
+ outline: var(--xh-ring-width) solid var(--xh-_color-picker-ring);
68
109
  outline-offset: var(--xh-ring-offset);
69
110
  }
70
111
 
71
- /* 单体控件用原生 disabled(预设色板那些格子也是原生按钮,同一条规矩) */
72
- [data-scope='color-picker'][data-part='trigger']:disabled {
73
- background: var(--xh-color-picker-trigger-bg-disabled, var(--xh-bg-subtle));
112
+ [data-scope='color-picker'][data-part='control'][data-disabled] {
113
+ background: var(--xh-color-picker-control-bg-disabled, var(--xh-bg-subtle));
74
114
  color: var(--xh-fg-disabled);
75
115
  cursor: not-allowed;
76
116
  }
77
117
 
78
118
  /* 只读仍可聚焦、浮层照开,只是改不动:不置灰,只把底色压下去 */
79
- [data-scope='color-picker'][data-part='trigger'][data-readonly] {
80
- background: var(--xh-color-picker-trigger-bg-readonly, var(--xh-bg-subtle));
119
+ [data-scope='color-picker'][data-part='control'][data-readonly] {
120
+ background: var(--xh-color-picker-control-bg-readonly, var(--xh-bg-subtle));
121
+ }
122
+
123
+ /* 盒内那颗可聚焦的按钮:不画描边不铺底也不自带高度,只占满剩余宽度、排布色块与值文本 */
124
+ [data-scope='color-picker'][data-part='trigger'] {
125
+ display: inline-flex;
126
+ flex: 1 1 auto;
127
+ align-items: center;
128
+ gap: var(--xh-color-picker-trigger-gap, var(--xh-_color-picker-gap));
129
+ min-inline-size: 0;
130
+ padding: 0;
131
+ border: 0;
132
+ background: transparent;
133
+ color: var(--xh-color-picker-trigger-fg, var(--xh-fg-default));
134
+ font-family: inherit;
135
+ font-size: var(--xh-color-picker-trigger-font-size, var(--xh-text-body-size));
136
+ line-height: var(--xh-leading-none);
137
+ text-align: start;
138
+ cursor: pointer;
139
+ }
140
+
141
+ [data-scope='color-picker'][data-part='trigger'][hidden] {
142
+ display: none;
143
+ }
144
+
145
+ /* 单体控件用原生 disabled(预设色板那些格子也是原生按钮,同一条规矩) */
146
+ [data-scope='color-picker'][data-part='trigger']:disabled {
147
+ color: var(--xh-fg-disabled);
148
+ cursor: not-allowed;
81
149
  }
82
150
 
83
151
  /* 当前颜色的色块。背景由连接层内联给(含透明度),这里只给形状与描边。
@@ -86,15 +154,17 @@
86
154
  [data-scope='color-picker'][data-part='swatch'] {
87
155
  display: inline-block;
88
156
  flex: none;
89
- inline-size: var(--xh-color-picker-swatch-size, 1.125rem);
90
- block-size: var(--xh-color-picker-swatch-size, 1.125rem);
157
+ inline-size: var(--xh-color-picker-swatch-size, 18px);
158
+ block-size: var(--xh-color-picker-swatch-size, 18px);
91
159
  border: var(--xh-stroke-thin) solid var(--xh-color-picker-swatch-border, var(--xh-border-default));
92
- border-radius: var(--xh-color-picker-swatch-radius, var(--xh-radius-sm));
160
+ border-radius: var(--xh-color-picker-swatch-radius, var(--xh-shape-inset));
93
161
  }
94
162
 
163
+ /* 值串可能很长,必须能截断;框宽由盒定,这里得允许自己被压缩 */
95
164
  [data-scope='color-picker'][data-part='value-text'] {
96
165
  overflow: hidden;
97
- flex: 1;
166
+ flex: 1 1 auto;
167
+ min-inline-size: 0;
98
168
  color: var(--xh-color-picker-value-fg, var(--xh-fg-default));
99
169
  font-size: var(--xh-color-picker-value-font-size, var(--xh-text-body-size));
100
170
  text-align: start;
@@ -104,8 +174,15 @@
104
174
 
105
175
  /* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
106
176
  [data-scope='color-picker'][data-part='positioner'] {
177
+ /* 落定那一侧的可用高度,由定位引擎经内联自定义属性写进来,内容层继承它限高;
178
+ 引擎没算(尚未落位 / 无引擎 / 贴边归零)时不额外限高 */
179
+ --xh-_color-picker-available-h: 100vh;
180
+
181
+ /* 面板的自绘条浮在内容之上:轨道不上底色,实色轨道会在面板右缘糊出一条竖灰带 */
182
+ --xh-scrollbar-track-bg: transparent;
183
+
107
184
  position: fixed;
108
- z-index: var(--xh-layer-popover);
185
+ z-index: var(--xh-color-picker-layer, var(--xh-layer-popover));
109
186
  /* 空壳不吃指针,交互只发生在 content 上 */
110
187
  pointer-events: none;
111
188
  }
@@ -119,18 +196,27 @@
119
196
  display: flex;
120
197
  flex-direction: column;
121
198
  gap: var(--xh-color-picker-content-gap, var(--xh-space-3));
122
- inline-size: var(--xh-color-picker-content-w, 15rem);
123
- padding: var(--xh-color-picker-content-p, var(--xh-space-3));
199
+ inline-size: var(--xh-color-picker-content-w, var(--xh-overlay-min-w));
200
+ padding-block: var(--xh-color-picker-content-py, var(--xh-space-3));
201
+ padding-inline: var(--xh-color-picker-content-px, var(--xh-space-3));
202
+ max-block-size: min(var(--xh-color-picker-max-h, var(--xh-viewport-h-md)), var(--xh-_color-picker-available-h));
203
+ overflow-y: auto;
124
204
  border: var(--xh-stroke-thin) solid var(--xh-color-picker-content-border, var(--xh-border-default));
125
205
  border-radius: var(--xh-color-picker-content-radius, var(--xh-shape-surface));
126
206
  background: var(--xh-color-picker-content-bg, var(--xh-bg-surface));
127
207
  color: var(--xh-color-picker-content-fg, var(--xh-fg-default));
128
- box-shadow: var(--xh-color-picker-content-shadow, var(--xh-elevation-2));
208
+ box-shadow: var(--xh-color-picker-content-shadow, var(--xh-elevation-floating));
129
209
  pointer-events: auto;
130
210
  }
131
211
 
132
212
  [data-scope='color-picker'][data-part='content'][data-state='open'] {
133
- animation: xh-color-picker-fade-in var(--xh-motion-duration-enter) var(--xh-motion-ease-enter);
213
+ animation: xh-pop-in var(--xh-motion-duration-enter) var(--xh-motion-ease-enter);
214
+ }
215
+
216
+ /* 退场:收起那一帧 hidden 由退场闸门押后,这里才播得出来。forwards 把末态钉住,
217
+ 免得动画结束到真收起之间闪一下原样 */
218
+ [data-scope='color-picker'][data-part='content'][data-state='closed'] {
219
+ animation: xh-pop-out var(--xh-motion-duration-exit) var(--xh-motion-ease-exit) forwards;
134
220
  }
135
221
 
136
222
  /* 浮层本身只是个容器(tabindex=-1 是焦点域的兜底落点),落焦时不画环 */
@@ -147,7 +233,7 @@
147
233
  position: relative;
148
234
  display: block;
149
235
  block-size: var(--xh-color-picker-area-h, 9rem);
150
- border-radius: var(--xh-color-picker-area-radius, var(--xh-radius-md));
236
+ border-radius: var(--xh-color-picker-area-radius, var(--xh-shape-control));
151
237
  cursor: crosshair;
152
238
  }
153
239
 
@@ -194,7 +280,7 @@
194
280
  border: var(--xh-stroke-thick) solid var(--xh-color-picker-thumb-border, var(--xh-color-neutral-0));
195
281
  border-radius: var(--xh-color-picker-thumb-radius, var(--xh-shape-pill));
196
282
  background: transparent;
197
- box-shadow: var(--xh-color-picker-thumb-shadow, var(--xh-elevation-1));
283
+ box-shadow: var(--xh-color-picker-thumb-shadow, var(--xh-elevation-raised));
198
284
  cursor: grab;
199
285
  transition: scale var(--xh-motion-duration-micro) var(--xh-motion-ease-enter);
200
286
  }
@@ -220,7 +306,7 @@
220
306
  放大用 scale 而不是改尺寸:变换绕自身中心发生,圆心不动,负外边距的算式不用跟着改 */
221
307
  [data-scope='color-picker'][data-part='area-thumb'][data-dragging],
222
308
  [data-scope='color-picker'][data-part='channel-slider-thumb'][data-dragging] {
223
- scale: var(--xh-color-picker-thumb-scale-dragging, 1.15);
309
+ scale: var(--xh-color-picker-thumb-scale-dragging, var(--xh-motion-scale-drag));
224
310
  cursor: grabbing;
225
311
  }
226
312
 
@@ -312,12 +398,12 @@
312
398
  color: inherit;
313
399
  /* 表单控件不继承页面字体,只给字号会让输入框用 UA 默认字族,与周围文本对不上 */
314
400
  font-family: inherit;
315
- font-size: var(--xh-color-picker-input-font-size, var(--xh-font-size-sm));
401
+ font-size: var(--xh-color-picker-input-font-size, var(--xh-text-secondary-size));
316
402
  text-align: center;
317
403
  }
318
404
 
319
405
  [data-scope='color-picker'][data-part='channel-input']:focus-visible {
320
- border-color: var(--xh-color-picker-input-border-focus, var(--xh-ring-focus));
406
+ border-color: var(--xh-color-picker-input-border-focus, var(--xh-_tone, var(--xh-border-control-focus)));
321
407
  outline: var(--xh-ring-width) solid var(--xh-ring-focus);
322
408
  /* 往内收一道发丝:输入框贴着面板边排,环画在外沿会压到相邻通道 */
323
409
  outline-offset: calc(-1 * var(--xh-stroke-thin));
@@ -325,7 +411,7 @@
325
411
 
326
412
  /* 打到一半的串:框里留着草稿,但值没动——描边提示"这串还没被收下" */
327
413
  [data-scope='color-picker'][data-part='channel-input'][data-invalid] {
328
- border-color: var(--xh-color-picker-input-border-invalid, var(--xh-color-danger-500));
414
+ border-color: var(--xh-color-picker-input-border-invalid, var(--xh-border-invalid));
329
415
  }
330
416
 
331
417
  [data-scope='color-picker'][data-part='channel-input'][data-readonly] {
@@ -343,15 +429,15 @@
343
429
  flex: none;
344
430
  align-items: center;
345
431
  justify-content: center;
346
- inline-size: var(--xh-color-picker-action-size, 1.75rem);
347
- block-size: var(--xh-color-picker-action-size, 1.75rem);
432
+ inline-size: var(--xh-color-picker-action-size, var(--xh-control-action-size));
433
+ block-size: var(--xh-color-picker-action-size, var(--xh-control-action-size));
348
434
  padding: 0;
349
435
  border: var(--xh-stroke-thin) solid var(--xh-color-picker-action-border, var(--xh-border-control));
350
436
  border-radius: var(--xh-color-picker-action-radius, var(--xh-shape-control));
351
437
  background: var(--xh-color-picker-action-bg, transparent);
352
438
  color: var(--xh-color-picker-action-fg, var(--xh-fg-muted));
353
439
  font-family: inherit;
354
- font-size: var(--xh-color-picker-action-font-size, var(--xh-font-size-sm));
440
+ font-size: var(--xh-color-picker-action-font-size, var(--xh-text-secondary-size));
355
441
  line-height: var(--xh-leading-none);
356
442
  cursor: pointer;
357
443
  user-select: none;
@@ -390,8 +476,8 @@
390
476
  inline-size: var(--xh-color-picker-swatch-item-size, 1.25rem);
391
477
  block-size: var(--xh-color-picker-swatch-item-size, 1.25rem);
392
478
  padding: 0;
393
- border: var(--xh-stroke-thin) solid var(--xh-color-picker-swatch-border, var(--xh-border-control));
394
- border-radius: var(--xh-color-picker-swatch-radius, var(--xh-radius-sm));
479
+ border: var(--xh-stroke-thin) solid var(--xh-color-picker-swatch-border, var(--xh-border-default));
480
+ border-radius: var(--xh-color-picker-swatch-radius, var(--xh-shape-inset));
395
481
  cursor: pointer;
396
482
  }
397
483