@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/clipboard.css
CHANGED
|
@@ -72,8 +72,11 @@
|
|
|
72
72
|
display: none;
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
+
/* 带输入框的用法是一件单行字段,标签与其余字段同一副字段标签排版:次要文字色、标签字号字重。
|
|
76
|
+
竖排时标签与控件之间的距离:根的 gap 之上补一段差值,--xh-clipboard-label-gap 给多少最终就是多少 */
|
|
75
77
|
.xh-scope-clipboard[data-part='label'] {
|
|
76
|
-
|
|
78
|
+
margin-block-end: calc(var(--xh-clipboard-label-gap, var(--xh-space-2)) - var(--xh-clipboard-gap, var(--xh-space-1)));
|
|
79
|
+
color: var(--xh-clipboard-label-fg, var(--xh-fg-muted));
|
|
77
80
|
font-size: var(--xh-clipboard-label-font-size, var(--xh-text-label-size));
|
|
78
81
|
font-weight: var(--xh-clipboard-label-font-weight, var(--xh-text-label-weight));
|
|
79
82
|
line-height: var(--xh-leading-none);
|
|
@@ -121,9 +124,14 @@
|
|
|
121
124
|
border-end-end-radius: 0;
|
|
122
125
|
}
|
|
123
126
|
|
|
124
|
-
/*
|
|
125
|
-
.xh-scope-clipboard[data-part='input']:focus-
|
|
127
|
+
/* 照只读字段外壳标出焦点:换承载面底 + 品牌描边(不随 tone),不画环;点进去选字也算聚焦 */
|
|
128
|
+
.xh-scope-clipboard[data-part='input']:focus-within {
|
|
126
129
|
border-color: var(--xh-clipboard-input-border-focus, var(--xh-border-control-focus));
|
|
130
|
+
background: var(--xh-clipboard-input-bg-focus, var(--xh-bg-surface));
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.xh-scope-clipboard[data-part='input']:focus-visible {
|
|
134
|
+
outline: none;
|
|
127
135
|
}
|
|
128
136
|
|
|
129
137
|
/* 自动填充:引擎给填过的框强加一套系统色(多数是黄底黑字),盖得过 background 与 color,
|
|
@@ -203,7 +211,7 @@
|
|
|
203
211
|
);
|
|
204
212
|
}
|
|
205
213
|
|
|
206
|
-
.xh-scope-clipboard[data-part='control'] > .xh-scope-clipboard[data-part='input']:focus-
|
|
214
|
+
.xh-scope-clipboard[data-part='control'] > .xh-scope-clipboard[data-part='input']:focus-within,
|
|
207
215
|
.xh-scope-clipboard[data-part='control'] > .xh-scope-clipboard[data-part='copy-trigger']:focus-visible,
|
|
208
216
|
.xh-scope-clipboard[data-part='control'] > .xh-scope-clipboard[data-part='copy-trigger']:hover {
|
|
209
217
|
position: relative;
|
|
@@ -312,4 +320,12 @@
|
|
|
312
320
|
clip-path: inset(50%);
|
|
313
321
|
white-space: nowrap;
|
|
314
322
|
}
|
|
323
|
+
|
|
324
|
+
/* 只读框聚焦不画环、描边又被换成系统色,补一圈 Highlight 环 */
|
|
325
|
+
@media (forced-colors: active) {
|
|
326
|
+
.xh-scope-clipboard[data-part='input']:focus {
|
|
327
|
+
outline: var(--xh-ring-width) solid Highlight;
|
|
328
|
+
outline-offset: var(--xh-ring-offset);
|
|
329
|
+
}
|
|
330
|
+
}
|
|
315
331
|
}
|
package/dist/css/collapsible.css
CHANGED
|
@@ -22,9 +22,14 @@
|
|
|
22
22
|
/* 作者塞进正文里的图标与皮肤画的兜底字形同一把尺:md 档,触发器上另按家族档取值 */
|
|
23
23
|
--xh-icon-size: var(--xh-collapsible-icon-size, var(--xh-glyph-size-md));
|
|
24
24
|
|
|
25
|
+
/* 触发器比家族 disclosure-trigger 档收一截:md 上下 10px + 一行正文行高 21px = 41px 高,横向 12px;
|
|
26
|
+
正文与触发器同一条起点,上下各留 8px */
|
|
25
27
|
--xh-_collapsible-trigger-gap: var(--xh-control-gap-md);
|
|
26
|
-
--xh-_collapsible-
|
|
27
|
-
--xh-_collapsible-
|
|
28
|
+
--xh-_collapsible-trigger-py: var(--xh-space-2_5);
|
|
29
|
+
--xh-_collapsible-trigger-px: var(--xh-space-3);
|
|
30
|
+
--xh-_collapsible-content-px: var(--xh-space-3);
|
|
31
|
+
--xh-_collapsible-content-pt: var(--xh-space-2);
|
|
32
|
+
--xh-_collapsible-content-pb: var(--xh-space-2);
|
|
28
33
|
|
|
29
34
|
/* 语气落在展开着的触发器上,指示器写在触发器里、跟着继承这个色,不另立规则。
|
|
30
35
|
没写 data-tone 时 --xh-_tone-fg 没被声明,退回原来的前景色。
|
|
@@ -48,14 +53,20 @@
|
|
|
48
53
|
/* 缺省档写在上面那条里 */
|
|
49
54
|
.xh-scope-collapsible[data-part='root'][data-size='sm'] {
|
|
50
55
|
--xh-_collapsible-trigger-gap: var(--xh-control-gap-sm);
|
|
51
|
-
--xh-_collapsible-
|
|
52
|
-
--xh-_collapsible-
|
|
56
|
+
--xh-_collapsible-trigger-py: var(--xh-space-1_5);
|
|
57
|
+
--xh-_collapsible-trigger-px: var(--xh-space-2_5);
|
|
58
|
+
--xh-_collapsible-content-px: var(--xh-space-2_5);
|
|
59
|
+
--xh-_collapsible-content-pt: var(--xh-space-1_5);
|
|
60
|
+
--xh-_collapsible-content-pb: var(--xh-space-1_5);
|
|
53
61
|
}
|
|
54
62
|
|
|
55
63
|
.xh-scope-collapsible[data-part='root'][data-size='lg'] {
|
|
56
64
|
--xh-_collapsible-trigger-gap: var(--xh-control-gap-lg);
|
|
57
|
-
--xh-_collapsible-
|
|
58
|
-
--xh-_collapsible-
|
|
65
|
+
--xh-_collapsible-trigger-py: var(--xh-space-3);
|
|
66
|
+
--xh-_collapsible-trigger-px: var(--xh-space-4);
|
|
67
|
+
--xh-_collapsible-content-px: var(--xh-space-4);
|
|
68
|
+
--xh-_collapsible-content-pt: var(--xh-space-3);
|
|
69
|
+
--xh-_collapsible-content-pb: var(--xh-space-3);
|
|
59
70
|
}
|
|
60
71
|
|
|
61
72
|
/* 触发器铺满一行,盒型、三档几何、悬停 / 按下 / 禁用面由 Action Control 的 disclosure-trigger 档给
|
|
@@ -65,8 +76,8 @@
|
|
|
65
76
|
.xh-scope-collapsible[data-part='trigger'] {
|
|
66
77
|
--xh-action-gap: var(--xh-collapsible-trigger-gap, var(--xh-_action-profile-gap));
|
|
67
78
|
--xh-action-visual-size: var(--xh-collapsible-trigger-h, var(--xh-_action-profile-visual-size));
|
|
68
|
-
--xh-action-padding-block: var(--xh-collapsible-trigger-py, var(--xh-
|
|
69
|
-
--xh-action-padding-inline: var(--xh-collapsible-trigger-px, var(--xh-
|
|
79
|
+
--xh-action-padding-block: var(--xh-collapsible-trigger-py, var(--xh-_collapsible-trigger-py));
|
|
80
|
+
--xh-action-padding-inline: var(--xh-collapsible-trigger-px, var(--xh-_collapsible-trigger-px));
|
|
70
81
|
--xh-action-radius: var(--xh-collapsible-trigger-radius, var(--xh-_action-profile-radius));
|
|
71
82
|
--xh-action-bg-rest: var(--xh-collapsible-trigger-bg, var(--xh-_action-variant-bg-rest));
|
|
72
83
|
--xh-action-bg-hover: var(--xh-collapsible-trigger-bg-hover, var(--xh-_action-variant-bg-hover));
|
|
@@ -74,10 +85,11 @@
|
|
|
74
85
|
--xh-action-fg-hover: var(--xh-collapsible-trigger-fg, var(--xh-_action-variant-fg-hover));
|
|
75
86
|
--xh-action-fg-pressed: var(--xh-collapsible-trigger-fg, var(--xh-_action-variant-fg-pressed));
|
|
76
87
|
--xh-action-font-size: var(--xh-collapsible-trigger-font-size, var(--xh-_action-profile-font-size));
|
|
77
|
-
--xh-icon-size: var(--xh-collapsible-icon-size, var(--xh-
|
|
88
|
+
--xh-icon-size: var(--xh-collapsible-icon-size, var(--xh-glyph-size-sm));
|
|
78
89
|
|
|
79
90
|
border-width: 0;
|
|
80
91
|
font-weight: var(--xh-collapsible-trigger-font-weight, var(--xh-text-label-weight));
|
|
92
|
+
line-height: var(--xh-leading-normal);
|
|
81
93
|
}
|
|
82
94
|
|
|
83
95
|
/* 展开着的那一档单开一个槽:与常态共用一个的话,作者一改常态字色就把展开态也改掉了。
|
|
@@ -86,6 +98,8 @@
|
|
|
86
98
|
--xh-action-fg-rest: var(--xh-collapsible-trigger-fg-open, var(--xh-_collapsible-open-fg));
|
|
87
99
|
--xh-action-fg-hover: var(--xh-collapsible-trigger-fg-open, var(--xh-_collapsible-open-fg));
|
|
88
100
|
--xh-action-fg-pressed: var(--xh-collapsible-trigger-fg-open, var(--xh-_collapsible-open-fg));
|
|
101
|
+
|
|
102
|
+
font-weight: var(--xh-collapsible-trigger-font-weight-open, var(--xh-font-weight-medium));
|
|
89
103
|
}
|
|
90
104
|
|
|
91
105
|
/* 禁用前景换成禁用色,不靠 opacity 压暗(家族按 data-disabled 给禁用面与指针,字色槽在这里保留优先) */
|
|
@@ -99,7 +113,7 @@
|
|
|
99
113
|
flex: none;
|
|
100
114
|
align-items: center;
|
|
101
115
|
justify-content: center;
|
|
102
|
-
color: var(--xh-collapsible-indicator-fg, var(--xh-fg-
|
|
116
|
+
color: var(--xh-collapsible-indicator-fg, var(--xh-fg-subtle));
|
|
103
117
|
line-height: var(--xh-leading-none);
|
|
104
118
|
}
|
|
105
119
|
|
|
@@ -132,17 +146,18 @@
|
|
|
132
146
|
/* 这里刻意没有 [data-part='content'][hidden] { display: none }:补了动画一帧都播不出来。
|
|
133
147
|
收起由适配器在退场结束后写内联 display 落成,退场窗口内靠 connect 发的 inert 挡住焦点 */
|
|
134
148
|
.xh-scope-collapsible[data-part='content'] {
|
|
135
|
-
/*
|
|
149
|
+
/* 行高与内缩同帧动的共享关键帧读这两条槽,两端内缩一起收放 */
|
|
150
|
+
--xh-_disclosure-pt: var(--xh-collapsible-content-pt, var(--xh-_collapsible-content-pt));
|
|
136
151
|
--xh-_disclosure-pb: var(--xh-collapsible-content-pb, var(--xh-_collapsible-content-pb));
|
|
137
152
|
|
|
138
153
|
display: grid;
|
|
139
154
|
grid-template-rows: 1fr;
|
|
140
155
|
overflow: clip;
|
|
141
|
-
padding-block-start:
|
|
156
|
+
padding-block-start: var(--xh-collapsible-content-pt, var(--xh-_collapsible-content-pt));
|
|
142
157
|
padding-block-end: var(--xh-collapsible-content-pb, var(--xh-_collapsible-content-pb));
|
|
143
158
|
padding-inline: var(--xh-collapsible-content-px, var(--xh-_collapsible-content-px));
|
|
144
|
-
color: var(--xh-collapsible-content-fg, var(--xh-fg-
|
|
145
|
-
font-size: var(--xh-collapsible-content-font-size, var(--xh-text-
|
|
159
|
+
color: var(--xh-collapsible-content-fg, var(--xh-fg-default));
|
|
160
|
+
font-size: var(--xh-collapsible-content-font-size, var(--xh-text-body-size));
|
|
146
161
|
line-height: var(--xh-leading-normal);
|
|
147
162
|
}
|
|
148
163
|
|
package/dist/css/color-field.css
CHANGED
|
@@ -57,13 +57,15 @@
|
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
.xh-scope-color-field[data-part='label'] {
|
|
60
|
-
|
|
60
|
+
/* 竖排时标签与控件之间的距离:根的 gap 之上补一段差值,--xh-color-field-label-gap 给多少最终就是多少 */
|
|
61
|
+
margin-block-end: calc(var(--xh-color-field-label-gap, var(--xh-space-2)) - var(--xh-color-field-gap, var(--xh-space-1)));
|
|
62
|
+
color: var(--xh-color-field-label-fg, var(--xh-fg-muted));
|
|
61
63
|
font-size: var(--xh-color-field-label-font-size, var(--xh-text-label-size));
|
|
62
64
|
font-weight: var(--xh-color-field-label-font-weight, var(--xh-text-label-weight));
|
|
63
65
|
}
|
|
64
66
|
|
|
65
67
|
.xh-scope-color-field[data-part='label'][data-disabled] {
|
|
66
|
-
color: var(--xh-color-field-label-fg-disabled, var(--xh-fg-
|
|
68
|
+
color: var(--xh-color-field-label-fg-disabled, var(--xh-fg-muted));
|
|
67
69
|
}
|
|
68
70
|
|
|
69
71
|
.xh-scope-color-field[data-part='control'] {
|
|
@@ -81,8 +83,6 @@
|
|
|
81
83
|
--xh-field-border-hover: var(--xh-color-field-control-border-hover, var(--xh-_field-variant-border-hover));
|
|
82
84
|
--xh-field-border-focus: var(--xh-color-field-control-border-focus, var(--xh-_field-variant-border-focus));
|
|
83
85
|
--xh-field-border-invalid: var(--xh-color-field-control-border-invalid, var(--xh-_field-variant-border-invalid));
|
|
84
|
-
--xh-field-ring-focus: var(--xh-ring-focus);
|
|
85
|
-
--xh-field-ring-invalid: var(--xh-ring-invalid);
|
|
86
86
|
--xh-field-shadow-rest: var(--xh-color-field-control-shadow, none);
|
|
87
87
|
/* 家族 chrome 会重写 --xh-icon-size,使用者图标槽必须经桥接槽下发才能在盒内生效 */
|
|
88
88
|
--xh-field-glyph-size: var(--xh-color-field-icon-size, var(--xh-_field-size-glyph-size));
|
|
@@ -30,8 +30,6 @@
|
|
|
30
30
|
--xh-_color-picker-px: var(--xh-control-px-md);
|
|
31
31
|
--xh-_color-picker-gap: var(--xh-control-gap-md);
|
|
32
32
|
|
|
33
|
-
/* 聚焦环恒用固定环色 */
|
|
34
|
-
--xh-_color-picker-ring: var(--xh-ring-focus);
|
|
35
33
|
|
|
36
34
|
display: inline-flex;
|
|
37
35
|
flex-direction: column;
|
|
@@ -60,7 +58,9 @@
|
|
|
60
58
|
}
|
|
61
59
|
|
|
62
60
|
.xh-scope-color-picker[data-part='label'] {
|
|
63
|
-
|
|
61
|
+
/* 竖排时标签与控件之间的距离:根的 gap 之上补一段差值,--xh-color-picker-label-gap 给多少最终就是多少 */
|
|
62
|
+
margin-block-end: calc(var(--xh-color-picker-label-gap, var(--xh-space-2)) - var(--xh-color-picker-gap, var(--xh-space-1)));
|
|
63
|
+
color: var(--xh-color-picker-label-fg, var(--xh-fg-muted));
|
|
64
64
|
/* 字段标签不随档:与同族字段同一档标签字号 */
|
|
65
65
|
font-size: var(--xh-color-picker-label-font-size, var(--xh-text-label-size));
|
|
66
66
|
font-weight: var(--xh-color-picker-label-font-weight, var(--xh-text-label-weight));
|
|
@@ -83,7 +83,6 @@
|
|
|
83
83
|
--xh-field-border-rest: var(--xh-color-picker-control-border, var(--xh-_field-variant-border-rest));
|
|
84
84
|
--xh-field-border-hover: var(--xh-color-picker-control-border-hover, var(--xh-_field-variant-border-hover));
|
|
85
85
|
--xh-field-border-focus: var(--xh-color-picker-control-border-focus, var(--xh-_field-variant-border-focus));
|
|
86
|
-
--xh-field-ring-focus: var(--xh-_color-picker-ring);
|
|
87
86
|
--xh-field-shadow-rest: var(--xh-color-picker-control-shadow, none);
|
|
88
87
|
--xh-field-cursor-rest: pointer;
|
|
89
88
|
}
|
|
@@ -224,16 +223,20 @@
|
|
|
224
223
|
}
|
|
225
224
|
|
|
226
225
|
.xh-scope-color-picker[data-part='content'] {
|
|
226
|
+
/* 内衬落进私有槽:贴顶通栏的取色区与色板区的通栏分隔按同一份内衬往外撑 */
|
|
227
|
+
--xh-_color-picker-content-py: var(--xh-color-picker-content-py, var(--xh-space-3));
|
|
228
|
+
--xh-_color-picker-content-px: var(--xh-color-picker-content-px, var(--xh-space-3));
|
|
229
|
+
|
|
227
230
|
position: relative;
|
|
228
231
|
display: flex;
|
|
229
232
|
flex-direction: column;
|
|
230
233
|
gap: var(--xh-color-picker-content-gap, var(--xh-space-3));
|
|
231
|
-
inline-size: var(--xh-color-picker-content-w, var(--xh-overlay-
|
|
234
|
+
inline-size: var(--xh-color-picker-content-w, var(--xh-overlay-max-w-sm));
|
|
232
235
|
/* 定宽的面板也要夹一道:窄视口下伸出去,右半边的取色区就点不到了 */
|
|
233
236
|
max-inline-size: var(--xh-_color-picker-available-w);
|
|
234
|
-
padding-block: var(--xh-
|
|
235
|
-
padding-inline: var(--xh-
|
|
236
|
-
max-block-size: min(var(--xh-color-picker-max-h, var(--xh-viewport-h-
|
|
237
|
+
padding-block: var(--xh-_color-picker-content-py);
|
|
238
|
+
padding-inline: var(--xh-_color-picker-content-px);
|
|
239
|
+
max-block-size: min(var(--xh-color-picker-max-h, var(--xh-viewport-h-lg)), var(--xh-_color-picker-available-h));
|
|
237
240
|
overflow-y: auto;
|
|
238
241
|
/* 浮层滚动面:滚到头不把页面一起带走 */
|
|
239
242
|
overscroll-behavior: contain;
|
|
@@ -287,11 +290,20 @@
|
|
|
287
290
|
.xh-scope-color-picker[data-part='saturation-area'] {
|
|
288
291
|
position: relative;
|
|
289
292
|
display: block;
|
|
290
|
-
|
|
293
|
+
flex: none;
|
|
294
|
+
block-size: var(--xh-color-picker-saturation-area-h, var(--xh-overlay-color-area-h));
|
|
291
295
|
border-radius: var(--xh-color-picker-saturation-area-radius, var(--xh-shape-control));
|
|
292
296
|
cursor: crosshair;
|
|
293
297
|
}
|
|
294
298
|
|
|
299
|
+
/* 取色区排在面板最前时贴着面板顶边通栏:往外撑掉顶边与两侧的内衬、不取圆角,
|
|
300
|
+
四角由面板(滚动面)自己的圆角裁出;后面的内容照常留内衬 */
|
|
301
|
+
.xh-scope-color-picker[data-part='content'] > [data-part='saturation-area']:first-child:where(.xh-scope-color-picker) {
|
|
302
|
+
margin-block-start: calc(-1 * var(--xh-_color-picker-content-py));
|
|
303
|
+
margin-inline: calc(-1 * var(--xh-_color-picker-content-px));
|
|
304
|
+
border-radius: var(--xh-color-picker-saturation-area-radius, 0);
|
|
305
|
+
}
|
|
306
|
+
|
|
295
307
|
/* white / black 是 HSV 色彩空间自带的两个端点,不是主题色,因此不走令牌 */
|
|
296
308
|
.xh-scope-color-picker[data-part='saturation-area']::before {
|
|
297
309
|
position: absolute;
|
|
@@ -328,9 +340,9 @@
|
|
|
328
340
|
.xh-scope-color-picker[data-part='area-thumb'] {
|
|
329
341
|
position: absolute;
|
|
330
342
|
box-sizing: border-box;
|
|
331
|
-
inline-size: var(--xh-color-picker-thumb-size,
|
|
332
|
-
block-size: var(--xh-color-picker-thumb-size,
|
|
333
|
-
margin-inline-start: calc(var(--xh-color-picker-thumb-size,
|
|
343
|
+
inline-size: var(--xh-color-picker-thumb-size, var(--xh-control-indicator-md));
|
|
344
|
+
block-size: var(--xh-color-picker-thumb-size, var(--xh-control-indicator-md));
|
|
345
|
+
margin-inline-start: calc(var(--xh-color-picker-thumb-size, var(--xh-control-indicator-md)) / -2);
|
|
334
346
|
border: var(--xh-stroke-thick) solid var(--xh-color-picker-thumb-border, var(--xh-color-neutral-0));
|
|
335
347
|
border-radius: var(--xh-color-picker-thumb-radius, var(--xh-shape-circle));
|
|
336
348
|
background: transparent;
|
|
@@ -341,7 +353,7 @@
|
|
|
341
353
|
|
|
342
354
|
/* 取色区的纵轴也由连接层给(inset-block-start),回拉同样按 block-start 那侧 */
|
|
343
355
|
.xh-scope-color-picker[data-part='area-thumb'] {
|
|
344
|
-
margin-block-start: calc(var(--xh-color-picker-thumb-size,
|
|
356
|
+
margin-block-start: calc(var(--xh-color-picker-thumb-size, var(--xh-control-indicator-md)) / -2);
|
|
345
357
|
}
|
|
346
358
|
|
|
347
359
|
/* 只有手真正拖着时带 data-dragging:放大与光标不会几处一起变。
|
|
@@ -361,13 +373,23 @@
|
|
|
361
373
|
滑块内部的皮仍归 color-slider 那一份。尺寸档跟着浮层上的 data-size 走,不必再各写一遍 */
|
|
362
374
|
.xh-scope-color-picker[data-part='hue-slider'],
|
|
363
375
|
.xh-scope-color-picker[data-part='alpha-slider'] {
|
|
364
|
-
--xh-_thumb-size: var(--xh-color-picker-slider-thumb-size, var(--xh-
|
|
376
|
+
--xh-_thumb-size: var(--xh-color-picker-slider-thumb-size, var(--xh-control-indicator-md));
|
|
365
377
|
--xh-_track-thickness: var(--xh-color-picker-slider-track-thickness, var(--xh-space-3));
|
|
366
378
|
|
|
367
379
|
display: flex;
|
|
368
380
|
flex-direction: column;
|
|
369
381
|
}
|
|
370
382
|
|
|
383
|
+
/* 面板里两条滑块的拇指:一枚承载面色的白盘 + 1px 描边,正中一颗 8px 的当前色点。
|
|
384
|
+
颜色带本身就是一排颜色,拇指整颗填当前色会融进色带里,留白盘才分得出拇指在哪;
|
|
385
|
+
当前色点读滑块自己按拇指写的那支色 */
|
|
386
|
+
.xh-scope-color-picker:is([data-part='hue-slider'], [data-part='alpha-slider']) .xh-scope-color-slider[data-part='thumb'] {
|
|
387
|
+
border-width: var(--xh-stroke-thin);
|
|
388
|
+
background:
|
|
389
|
+
radial-gradient(circle, var(--xh-_color-slider-thumb-color) 0 var(--xh-space-1), transparent var(--xh-space-1)),
|
|
390
|
+
var(--xh-color-picker-slider-thumb-bg, var(--xh-bg-surface-raised));
|
|
391
|
+
}
|
|
392
|
+
|
|
371
393
|
/* 标题与轨道之间的间隙 */
|
|
372
394
|
.xh-scope-color-picker[data-part='hue-slider'] {
|
|
373
395
|
gap: var(--xh-color-picker-hue-slider-gap, var(--xh-stack-gap-md));
|
|
@@ -383,26 +405,35 @@
|
|
|
383
405
|
opacity: var(--xh-state-disabled-opacity);
|
|
384
406
|
}
|
|
385
407
|
|
|
408
|
+
/* 通道输入照字段外壳:字段淡底 + 控件描边、24px 小号盒、说明档字号;悬停描边升一档,
|
|
409
|
+
聚焦换承载面底 + 品牌描边、不画环(焦点由描边换色与底色差标出,强制色档补一圈 Highlight 环) */
|
|
386
410
|
.xh-scope-color-picker[data-part='channel-input'] {
|
|
387
411
|
inline-size: 100%;
|
|
388
412
|
min-inline-size: 0;
|
|
389
|
-
block-size: var(--xh-color-picker-input-h, var(--xh-control-
|
|
413
|
+
block-size: var(--xh-color-picker-input-h, var(--xh-control-action-size));
|
|
390
414
|
padding-inline: var(--xh-color-picker-input-px, var(--xh-control-px-sm));
|
|
391
415
|
border: var(--xh-stroke-thin) solid var(--xh-color-picker-input-border, var(--xh-border-control));
|
|
392
416
|
border-radius: var(--xh-color-picker-input-radius, var(--xh-shape-control));
|
|
393
|
-
background: var(--xh-color-picker-input-bg,
|
|
417
|
+
background: var(--xh-color-picker-input-bg, var(--xh-bg-field));
|
|
394
418
|
color: inherit;
|
|
395
419
|
/* 表单控件不继承页面字体,只给字号会让输入框用 UA 默认字族,与周围文本对不上 */
|
|
396
420
|
font-family: inherit;
|
|
397
|
-
font-size: var(--xh-color-picker-input-font-size, var(--xh-text-
|
|
421
|
+
font-size: var(--xh-color-picker-input-font-size, var(--xh-text-caption-size));
|
|
398
422
|
text-align: center;
|
|
399
423
|
}
|
|
400
424
|
|
|
401
|
-
.xh-scope-color-picker[data-part='channel-input']:focus-
|
|
425
|
+
.xh-scope-color-picker[data-part='channel-input']:hover:not(:disabled, :focus, [data-readonly], [data-invalid]) {
|
|
426
|
+
border-color: var(--xh-color-picker-input-border-hover, var(--xh-border-strong));
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
.xh-scope-color-picker[data-part='channel-input']:focus {
|
|
402
430
|
/* 焦点边一律 --xh-border-control-focus,不随语气 */
|
|
403
431
|
border-color: var(--xh-color-picker-input-border-focus, var(--xh-border-control-focus));
|
|
404
|
-
|
|
405
|
-
|
|
432
|
+
background: var(--xh-color-picker-input-bg-focus, var(--xh-bg-surface));
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
.xh-scope-color-picker[data-part='channel-input']:focus-visible {
|
|
436
|
+
outline: none;
|
|
406
437
|
}
|
|
407
438
|
|
|
408
439
|
/* 打到一半的串:框里留着草稿,但值没动——描边提示"这串还没被收下" */
|
|
@@ -478,7 +509,7 @@
|
|
|
478
509
|
/* 「添加」是面板里唯一的主要动作:品牌实心、悬停 / 按下与 0.97 按压、焦点环全由 Action Control 的
|
|
479
510
|
text solid 档给;槽名统一按部件取 --xh-color-picker-confirm-trigger-*,只映射到家族桥接槽 */
|
|
480
511
|
.xh-scope-color-picker[data-part='confirm-trigger'] {
|
|
481
|
-
--xh-action-visual-size: var(--xh-color-picker-confirm-trigger-h, var(--xh-
|
|
512
|
+
--xh-action-visual-size: var(--xh-color-picker-confirm-trigger-h, var(--xh-control-action-size));
|
|
482
513
|
--xh-action-padding-inline: var(--xh-color-picker-confirm-trigger-px, var(--xh-_action-profile-padding-inline));
|
|
483
514
|
--xh-action-radius: var(--xh-color-picker-confirm-trigger-radius, var(--xh-shape-control));
|
|
484
515
|
--xh-action-bg-rest: var(--xh-color-picker-confirm-trigger-bg, var(--xh-_action-variant-bg-rest));
|
|
@@ -508,8 +539,8 @@
|
|
|
508
539
|
浮层里的色板走小号格子:与滑块的拇指、数值框一个量级,整块面板才不会被色板撑开。
|
|
509
540
|
最近使用色是同一台色块选择器,挂载点同一套 */
|
|
510
541
|
.xh-scope-color-picker:is([data-part='swatch-picker'], [data-part='recent-swatch-picker']) {
|
|
511
|
-
--xh-_color-swatch-picker-cell: var(--xh-color-picker-swatch-cell, var(--xh-
|
|
512
|
-
--xh-_color-swatch-picker-gap: var(--xh-color-picker-swatch-gap, var(--xh-
|
|
542
|
+
--xh-_color-swatch-picker-cell: var(--xh-color-picker-swatch-cell, var(--xh-glyph-size-sm));
|
|
543
|
+
--xh-_color-swatch-picker-gap: var(--xh-color-picker-swatch-gap, var(--xh-space-2));
|
|
513
544
|
--xh-_color-swatch-picker-indicator: var(--xh-control-indicator-sm);
|
|
514
545
|
--xh-_color-swatch-picker-mark: calc(var(--xh-_color-swatch-picker-indicator) - var(--xh-space-1));
|
|
515
546
|
--xh-_color-swatch-picker-accent: var(--xh-_tone, var(--xh-bg-brand));
|
|
@@ -525,6 +556,23 @@
|
|
|
525
556
|
cursor: not-allowed;
|
|
526
557
|
}
|
|
527
558
|
|
|
559
|
+
/* 粗指针:16px 的格子手指压不准,格子回到小号控件高 */
|
|
560
|
+
@media (pointer: coarse) {
|
|
561
|
+
.xh-scope-color-picker:is([data-part='swatch-picker'], [data-part='recent-swatch-picker']) {
|
|
562
|
+
--xh-_color-swatch-picker-cell: var(--xh-color-picker-swatch-cell, var(--xh-control-h-sm));
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
/* 色板区与上面的取色控件之间一条通栏分隔:撑掉两侧内衬铺满面板宽,线取面板材质的描边档;
|
|
567
|
+
两块色板挨着时只在头一块上画 */
|
|
568
|
+
.xh-scope-color-picker[data-part='content']
|
|
569
|
+
> :is([data-part='swatch-picker'], [data-part='recent-swatch-picker']):where(.xh-scope-color-picker):not(:is([data-part='swatch-picker'], [data-part='recent-swatch-picker']) + *) {
|
|
570
|
+
margin-inline: calc(-1 * var(--xh-_color-picker-content-px));
|
|
571
|
+
padding-block-start: var(--xh-_color-picker-content-py);
|
|
572
|
+
padding-inline: var(--xh-_color-picker-content-px);
|
|
573
|
+
border-block-start: var(--xh-stroke-thin) solid var(--xh-color-picker-separator, var(--xh-material-solid-border));
|
|
574
|
+
}
|
|
575
|
+
|
|
528
576
|
/* 任何 display 都会盖掉 UA 的 [hidden]{display:none}:
|
|
529
577
|
凡是被赋了 display 的角色节点都要显式让位,漏一处收起态就失效。
|
|
530
578
|
content 的收起交给 presence:退场结束后由适配器写内联 display:none,避免截断动画。 */
|
|
@@ -586,6 +634,12 @@
|
|
|
586
634
|
outline-offset: calc(-1 * var(--xh-stroke-thin));
|
|
587
635
|
}
|
|
588
636
|
|
|
637
|
+
/* 通道输入聚焦不画环,靠描边换色;这一档描边被换成系统色,补一圈 Highlight 环 */
|
|
638
|
+
.xh-scope-color-picker[data-part='channel-input']:focus {
|
|
639
|
+
outline: var(--xh-ring-width) solid Highlight;
|
|
640
|
+
outline-offset: var(--xh-ring-offset);
|
|
641
|
+
}
|
|
642
|
+
|
|
589
643
|
/* 标签前的色点画的也是颜色本身:同样退出强制着色,用系统文字色描一圈 */
|
|
590
644
|
.xh-scope-color-picker[data-part='tag-list'] > .xh-scope-tag[data-part='root'][data-value]::before {
|
|
591
645
|
forced-color-adjust: none;
|
|
@@ -36,15 +36,17 @@
|
|
|
36
36
|
/* 禁用不整体压暗:标签是文字,换到禁用前景;颜色带与拇指画的是颜色本身,换不得色,
|
|
37
37
|
压暗只做一次、落在 control 上(track / thumb 各自再叠一层 opacity 会越叠越黑),拇指另收掉抬升 */
|
|
38
38
|
|
|
39
|
-
/* 字段标签:14 /
|
|
39
|
+
/* 字段标签:14 / 400 / fg-muted,与控件隔 space-2,禁用不另变色 */
|
|
40
40
|
.xh-scope-color-slider[data-part='label'] {
|
|
41
|
-
|
|
41
|
+
/* 竖排时标签与控件之间的距离:根的 gap 之上补一段差值,--xh-color-slider-label-gap 给多少最终就是多少 */
|
|
42
|
+
margin-block-end: calc(var(--xh-color-slider-label-gap, var(--xh-space-2)) - var(--xh-color-slider-gap, var(--xh-space-1)));
|
|
43
|
+
color: var(--xh-color-slider-label-fg, var(--xh-fg-muted));
|
|
42
44
|
font-size: var(--xh-color-slider-label-font-size, var(--xh-text-label-size));
|
|
43
45
|
font-weight: var(--xh-color-slider-label-font-weight, var(--xh-text-label-weight));
|
|
44
46
|
}
|
|
45
47
|
|
|
46
48
|
.xh-scope-color-slider[data-part='label'][data-disabled] {
|
|
47
|
-
color: var(--xh-color-slider-label-fg-disabled, var(--xh-fg-
|
|
49
|
+
color: var(--xh-color-slider-label-fg-disabled, var(--xh-fg-muted));
|
|
48
50
|
}
|
|
49
51
|
|
|
50
52
|
/* 拇指以它为定位上下文(拇指常常浮出轨道,挂在 track 上会被轨道的盒子束住)。
|
|
@@ -84,7 +86,7 @@
|
|
|
84
86
|
.xh-scope-color-slider[data-part='track'] {
|
|
85
87
|
position: relative;
|
|
86
88
|
border-radius: var(--xh-color-slider-track-radius, var(--xh-shape-pill));
|
|
87
|
-
box-shadow: inset 0 0 0 var(--xh-stroke-thin) var(--xh-color-slider-track-border, var(--xh-border-
|
|
89
|
+
box-shadow: inset 0 0 0 var(--xh-stroke-thin) var(--xh-color-slider-track-border, var(--xh-border-default));
|
|
88
90
|
}
|
|
89
91
|
|
|
90
92
|
.xh-scope-color-slider[data-part='track'][data-orientation='horizontal'] {
|
|
@@ -108,10 +110,10 @@
|
|
|
108
110
|
border-radius: inherit;
|
|
109
111
|
background-color: var(--xh-color-slider-checker-base, var(--xh-bg-surface));
|
|
110
112
|
background-image:
|
|
111
|
-
linear-gradient(45deg, var(--xh-color-slider-checker, var(--xh-
|
|
112
|
-
linear-gradient(-45deg, var(--xh-color-slider-checker, var(--xh-
|
|
113
|
-
linear-gradient(45deg, transparent 75%, var(--xh-color-slider-checker, var(--xh-
|
|
114
|
-
linear-gradient(-45deg, transparent 75%, var(--xh-color-slider-checker, var(--xh-
|
|
113
|
+
linear-gradient(45deg, var(--xh-color-slider-checker, var(--xh-bg-subtle)) 25%, transparent 25%),
|
|
114
|
+
linear-gradient(-45deg, var(--xh-color-slider-checker, var(--xh-bg-subtle)) 25%, transparent 25%),
|
|
115
|
+
linear-gradient(45deg, transparent 75%, var(--xh-color-slider-checker, var(--xh-bg-subtle)) 75%),
|
|
116
|
+
linear-gradient(-45deg, transparent 75%, var(--xh-color-slider-checker, var(--xh-bg-subtle)) 75%);
|
|
115
117
|
background-position: 0 0, 0 4px, 4px -4px, -4px 0;
|
|
116
118
|
background-size: 8px 8px;
|
|
117
119
|
}
|
|
@@ -51,21 +51,21 @@
|
|
|
51
51
|
--xh-_color-swatch-picker-indicator: var(--xh-control-indicator-lg);
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
/* 标题独占一行,格子从下一行起排。复合单字段的标签:14 /
|
|
55
|
-
|
|
54
|
+
/* 标题独占一行,格子从下一行起排。复合单字段的标签:14 / 400 / fg-muted,不随档;
|
|
55
|
+
与格子隔 space-2——容器的 gap 归格子之间,标签在它之上补一段差值把距离收成目标值 */
|
|
56
56
|
.xh-scope-color-swatch-picker[data-part='label'] {
|
|
57
57
|
flex-basis: 100%;
|
|
58
58
|
margin-block-end: calc(
|
|
59
|
-
var(--xh-color-swatch-picker-label-gap, var(--xh-space-
|
|
59
|
+
var(--xh-color-swatch-picker-label-gap, var(--xh-space-2))
|
|
60
60
|
- var(--xh-color-swatch-picker-gap, var(--xh-_color-swatch-picker-gap))
|
|
61
61
|
);
|
|
62
|
-
color: var(--xh-color-swatch-picker-label-fg, var(--xh-fg-
|
|
62
|
+
color: var(--xh-color-swatch-picker-label-fg, var(--xh-fg-muted));
|
|
63
63
|
font-size: var(--xh-color-swatch-picker-label-font-size, var(--xh-text-label-size));
|
|
64
64
|
font-weight: var(--xh-color-swatch-picker-label-font-weight, var(--xh-text-label-weight));
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
.xh-scope-color-swatch-picker[data-part='label'][data-disabled] {
|
|
68
|
-
color: var(--xh-color-swatch-picker-label-fg-disabled, var(--xh-fg-
|
|
68
|
+
color: var(--xh-color-swatch-picker-label-fg-disabled, var(--xh-fg-muted));
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
/* 一格:正方形命中区,里面铺满色块面。
|
package/dist/css/combobox.css
CHANGED
|
@@ -82,6 +82,7 @@
|
|
|
82
82
|
--xh-_combobox-h: var(--xh-control-h-md);
|
|
83
83
|
--xh-_combobox-px: var(--xh-control-px-md);
|
|
84
84
|
--xh-_combobox-item-py: var(--xh-list-option-py-md);
|
|
85
|
+
--xh-_combobox-item-h: var(--xh-list-option-h-md);
|
|
85
86
|
--xh-_combobox-item-px: var(--xh-control-px-md);
|
|
86
87
|
--xh-_combobox-gap: var(--xh-control-gap-md);
|
|
87
88
|
--xh-_combobox-font-size: var(--xh-control-font-md);
|
|
@@ -118,6 +119,7 @@
|
|
|
118
119
|
--xh-_combobox-h: var(--xh-control-h-sm);
|
|
119
120
|
--xh-_combobox-px: var(--xh-control-px-sm);
|
|
120
121
|
--xh-_combobox-item-py: var(--xh-list-option-py-sm);
|
|
122
|
+
--xh-_combobox-item-h: var(--xh-list-option-h-sm);
|
|
121
123
|
--xh-_combobox-item-px: var(--xh-control-px-sm);
|
|
122
124
|
--xh-_combobox-gap: var(--xh-control-gap-sm);
|
|
123
125
|
--xh-_combobox-font-size: var(--xh-control-font-sm);
|
|
@@ -129,6 +131,7 @@
|
|
|
129
131
|
--xh-_combobox-h: var(--xh-control-h-lg);
|
|
130
132
|
--xh-_combobox-px: var(--xh-control-px-lg);
|
|
131
133
|
--xh-_combobox-item-py: var(--xh-list-option-py-lg);
|
|
134
|
+
--xh-_combobox-item-h: var(--xh-list-option-h-lg);
|
|
132
135
|
--xh-_combobox-item-px: var(--xh-control-px-lg);
|
|
133
136
|
--xh-_combobox-gap: var(--xh-control-gap-lg);
|
|
134
137
|
--xh-_combobox-font-size: var(--xh-control-font-lg);
|
|
@@ -137,14 +140,16 @@
|
|
|
137
140
|
}
|
|
138
141
|
|
|
139
142
|
.xh-scope-combobox[data-part='label'] {
|
|
140
|
-
|
|
143
|
+
/* 竖排时标签与控件之间的距离:根的 gap 之上补一段差值,--xh-combobox-label-gap 给多少最终就是多少 */
|
|
144
|
+
margin-block-end: calc(var(--xh-combobox-label-gap, var(--xh-space-2)) - var(--xh-combobox-gap, var(--xh-space-1)));
|
|
145
|
+
color: var(--xh-combobox-label-fg, var(--xh-fg-muted));
|
|
141
146
|
font-size: var(--xh-combobox-label-font-size, var(--xh-text-label-size));
|
|
142
147
|
font-weight: var(--xh-combobox-label-font-weight, var(--xh-text-label-weight));
|
|
143
148
|
line-height: var(--xh-leading-none);
|
|
144
149
|
}
|
|
145
150
|
|
|
146
151
|
.xh-scope-combobox[data-part='label'][data-disabled] {
|
|
147
|
-
color: var(--xh-combobox-label-fg-disabled, var(--xh-fg-
|
|
152
|
+
color: var(--xh-combobox-label-fg-disabled, var(--xh-fg-muted));
|
|
148
153
|
}
|
|
149
154
|
|
|
150
155
|
/* 画成一个框的是 control 而不是 input:输入框、展开按钮、清空按钮三者要看起来是一体的,
|
|
@@ -166,8 +171,6 @@
|
|
|
166
171
|
--xh-field-border-hover: var(--xh-combobox-control-border-hover, var(--xh-_field-variant-border-hover));
|
|
167
172
|
--xh-field-border-focus: var(--xh-combobox-control-border-focus, var(--xh-_field-variant-border-focus));
|
|
168
173
|
--xh-field-border-invalid: var(--xh-combobox-control-border-invalid, var(--xh-_field-variant-border-invalid));
|
|
169
|
-
--xh-field-ring-focus: var(--xh-ring-focus);
|
|
170
|
-
--xh-field-ring-invalid: var(--xh-ring-invalid);
|
|
171
174
|
--xh-field-shadow-rest: var(--xh-combobox-control-shadow, none);
|
|
172
175
|
/* 家族 chrome 会重写 --xh-icon-size,使用者图标槽必须经桥接槽下发才能在盒内生效 */
|
|
173
176
|
--xh-field-glyph-size: var(--xh-combobox-icon-size, var(--xh-_field-size-glyph-size));
|
|
@@ -311,7 +314,7 @@
|
|
|
311
314
|
min-block-size: var(--xh-combobox-content-min-h, var(--xh-_combobox-h));
|
|
312
315
|
max-block-size: min(var(--xh-combobox-content-max-h, var(--xh-overlay-menu-max-h)), var(--xh-_combobox-available-h));
|
|
313
316
|
padding-block: var(--xh-combobox-content-py, var(--xh-space-1));
|
|
314
|
-
padding-inline: var(--xh-combobox-content-px,
|
|
317
|
+
padding-inline: var(--xh-combobox-content-px, 0);
|
|
315
318
|
border-radius: var(--xh-combobox-content-radius, var(--xh-shape-overlay));
|
|
316
319
|
overflow-y: auto;
|
|
317
320
|
/* 浮层滚动面:滚到头不把页面一起带走 */
|
|
@@ -384,10 +387,11 @@
|
|
|
384
387
|
语境给(选中 = 透明底 + 行尾对号,正文保持 rest 色与常规字重),公开 Combobox 槽只映射到家族合同 */
|
|
385
388
|
.xh-scope-combobox[data-part='item'] {
|
|
386
389
|
--xh-collection-block-padding: var(--xh-combobox-item-py, var(--xh-_combobox-item-py));
|
|
390
|
+
--xh-collection-row-h: var(--xh-combobox-item-h, var(--xh-_combobox-item-h));
|
|
387
391
|
--xh-collection-inline-padding: var(--xh-combobox-item-px, var(--xh-_combobox-item-px));
|
|
388
392
|
--xh-collection-gap: var(--xh-combobox-item-gap, var(--xh-_combobox-gap));
|
|
389
393
|
--xh-collection-font-size: var(--xh-combobox-item-font-size, var(--xh-_combobox-font-size));
|
|
390
|
-
--xh-collection-radius: var(--xh-combobox-item-radius,
|
|
394
|
+
--xh-collection-radius: var(--xh-combobox-item-radius, 0);
|
|
391
395
|
--xh-collection-fg-rest: var(--xh-combobox-item-fg, var(--xh-material-frosted-fg));
|
|
392
396
|
--xh-collection-fg-hover: var(--xh-combobox-item-fg, var(--xh-material-frosted-fg));
|
|
393
397
|
--xh-collection-fg-keyboard-highlight: var(--xh-combobox-item-fg, var(--xh-material-frosted-fg));
|
|
@@ -396,10 +400,10 @@
|
|
|
396
400
|
--xh-collection-fg-selected-hover: var(--xh-combobox-item-fg-selected, var(--xh-combobox-item-fg, var(--xh-material-frosted-fg)));
|
|
397
401
|
--xh-collection-fg-selected-pressed: var(--xh-combobox-item-fg-selected, var(--xh-combobox-item-fg, var(--xh-material-frosted-fg)));
|
|
398
402
|
--xh-collection-fg-pressed: var(--xh-combobox-item-fg, var(--xh-material-frosted-fg));
|
|
399
|
-
--xh-collection-font-weight-selected: var(--xh-combobox-item-font-weight-selected, var(--xh-font-weight-
|
|
400
|
-
--xh-collection-font-weight-selected-highlight: var(--xh-combobox-item-font-weight-selected, var(--xh-font-weight-
|
|
401
|
-
--xh-collection-font-weight-selected-hover: var(--xh-combobox-item-font-weight-selected, var(--xh-font-weight-
|
|
402
|
-
--xh-collection-font-weight-selected-pressed: var(--xh-combobox-item-font-weight-selected, var(--xh-font-weight-
|
|
403
|
+
--xh-collection-font-weight-selected: var(--xh-combobox-item-font-weight-selected, var(--xh-font-weight-medium));
|
|
404
|
+
--xh-collection-font-weight-selected-highlight: var(--xh-combobox-item-font-weight-selected, var(--xh-font-weight-medium));
|
|
405
|
+
--xh-collection-font-weight-selected-hover: var(--xh-combobox-item-font-weight-selected, var(--xh-font-weight-medium));
|
|
406
|
+
--xh-collection-font-weight-selected-pressed: var(--xh-combobox-item-font-weight-selected, var(--xh-font-weight-medium));
|
|
403
407
|
--xh-collection-bg-hover: var(--xh-combobox-item-bg-hover, var(--xh-bg-subtle));
|
|
404
408
|
--xh-collection-bg-keyboard-highlight: var(--xh-combobox-item-bg-hover, var(--xh-bg-subtle));
|
|
405
409
|
--xh-collection-bg-selected-highlight: var(--xh-combobox-item-bg-hover, var(--xh-bg-subtle));
|