@slotted/styles 0.1.0-beta.1 → 0.1.0-beta.11
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/package.json +1 -1
- package/src/accordion/accordion.css +10 -10
- package/src/action-bar/action-bar.css +35 -42
- package/src/action-sheet/action-sheet.css +36 -36
- package/src/alert/alert.css +43 -35
- package/src/alert/alert.tokens.json +5 -0
- package/src/app-shell/app-shell.css +356 -301
- package/src/aspect-ratio/aspect-ratio.css +9 -9
- package/src/attachment/attachment.css +91 -99
- package/src/avatar/avatar.css +71 -41
- package/src/avatar/avatar.tokens.json +7 -0
- package/src/avatar-group/avatar-group.css +21 -22
- package/src/badge/badge.css +45 -37
- package/src/badge/badge.tokens.json +5 -0
- package/src/breadcrumb/breadcrumb.css +37 -37
- package/src/button/button.css +149 -68
- package/src/button/button.tokens.json +10 -0
- package/src/button-group/button-group.css +79 -74
- package/src/button-group/button-group.tokens.json +2 -0
- package/src/calendar/calendar.css +93 -103
- package/src/card/card.css +54 -61
- package/src/carousel/carousel.css +150 -161
- package/src/cascader/cascader.css +152 -153
- package/src/cascader/cascader.tokens.json +1 -0
- package/src/chart/chart.css +242 -239
- package/src/chart/chart.tokens.json +1 -0
- package/src/checkbox/checkbox.css +119 -124
- package/src/checkbox-group/checkbox-group.css +7 -7
- package/src/code-block/code-block.css +81 -85
- package/src/collapsible/collapsible.css +69 -76
- package/src/color-picker/color-picker.css +83 -91
- package/src/column-manager/column-manager.css +106 -114
- package/src/combobox/combobox.css +132 -107
- package/src/combobox/combobox.tokens.json +1 -0
- package/src/command-palette/command-palette.css +103 -90
- package/src/command-palette/command-palette.tokens.json +1 -0
- package/src/container/container.css +24 -24
- package/src/context-menu/context-menu.css +8 -8
- package/src/currency-field/currency-field.css +210 -88
- package/src/currency-field/currency-field.tokens.json +13 -0
- package/src/dashboard-grid/dashboard-grid.css +148 -116
- package/src/data-grid/data-grid.css +535 -470
- package/src/data-grid/data-grid.tokens.json +4 -0
- package/src/data-list/data-list.css +81 -70
- package/src/data-list/data-list.tokens.json +2 -1
- package/src/date-field/date-field.css +55 -52
- package/src/date-field/date-field.tokens.json +1 -0
- package/src/date-picker/date-picker.css +40 -42
- package/src/date-range-picker/date-range-picker.css +114 -118
- package/src/datetime-field/datetime-field.css +78 -80
- package/src/datetime-field/datetime-field.tokens.json +1 -0
- package/src/datetime-picker/datetime-picker.css +61 -63
- package/src/datetime-range-picker/datetime-range-picker.css +149 -156
- package/src/description-list/description-list.css +61 -64
- package/src/detail-panel/detail-panel.css +86 -71
- package/src/detail-panel/detail-panel.tokens.json +2 -0
- package/src/dialog/dialog.css +372 -153
- package/src/dialog/dialog.tokens.json +6 -0
- package/src/divider/divider.css +18 -18
- package/src/drawer/drawer.css +205 -210
- package/src/drawer/drawer.tokens.json +1 -0
- package/src/entity-picker/entity-picker.css +238 -241
- package/src/entity-picker/entity-picker.tokens.json +1 -0
- package/src/event-calendar/event-calendar.css +343 -385
- package/src/field/field.css +74 -78
- package/src/field-group/field-group.css +22 -25
- package/src/filter-bar/filter-bar.css +193 -209
- package/src/form/form.css +34 -24
- package/src/form/form.tokens.json +1 -0
- package/src/fullscreen/fullscreen.css +24 -25
- package/src/grid/grid.css +28 -28
- package/src/highlight/highlight.css +6 -6
- package/src/hover-card/hover-card.css +6 -6
- package/src/icon/icon.css +19 -15
- package/src/icon/icon.tokens.json +1 -0
- package/src/image/image.css +39 -39
- package/src/import-export-center/import-export-center.css +135 -156
- package/src/inline/inline.css +27 -27
- package/src/inline-message/inline-message.css +52 -28
- package/src/inline-message/inline-message.tokens.json +4 -0
- package/src/kbd/kbd.css +30 -26
- package/src/link/link.css +15 -15
- package/src/list/list.css +44 -17
- package/src/list/list.tokens.json +4 -0
- package/src/list-item/list-item.css +80 -66
- package/src/list-item/list-item.tokens.json +7 -0
- package/src/listbox/listbox.css +56 -59
- package/src/loading-overlay/loading-overlay.css +75 -92
- package/src/markdown/markdown.css +17 -17
- package/src/menu/menu.css +83 -63
- package/src/menubar/menubar.css +13 -13
- package/src/message/message.css +182 -202
- package/src/message/message.tokens.json +5 -0
- package/src/message-scroller/message-scroller.css +41 -42
- package/src/multi-select/multi-select.css +152 -145
- package/src/multi-select/multi-select.tokens.json +1 -0
- package/src/navigation-menu/navigation-menu.css +167 -188
- package/src/notification-center/notification-center.css +140 -148
- package/src/notification-center/notification-center.tokens.json +3 -0
- package/src/number-field/number-field.css +84 -83
- package/src/number-field/number-field.tokens.json +1 -0
- package/src/otp-input/otp-input.css +67 -57
- package/src/otp-input/otp-input.tokens.json +1 -0
- package/src/page/page.css +39 -23
- package/src/page/page.tokens.json +1 -0
- package/src/page-header/page-header.css +323 -283
- package/src/page-header/page-header.tokens.json +5 -0
- package/src/pagination/pagination.css +68 -72
- package/src/popover/popover.css +40 -49
- package/src/progress-indicator/progress-indicator.css +177 -120
- package/src/progress-indicator/progress-indicator.tokens.json +1 -1
- package/src/prompt-composer/prompt-composer.css +221 -102
- package/src/prompt-composer/prompt-composer.tokens.json +15 -0
- package/src/prose/prose.css +71 -75
- package/src/radio-group/radio-group.css +98 -103
- package/src/rating/rating.css +136 -132
- package/src/rating/rating.tokens.json +1 -0
- package/src/result-state/result-state.css +74 -77
- package/src/runtime-properties.mjs +2 -0
- package/src/saved-views/saved-views.css +41 -47
- package/src/scroll-area/scroll-area.css +39 -32
- package/src/section/section.css +161 -41
- package/src/section/section.tokens.json +7 -2
- package/src/segmented-control/segmented-control.css +254 -97
- package/src/segmented-control/segmented-control.tokens.json +15 -11
- package/src/select/select.css +118 -117
- package/src/select/select.tokens.json +1 -0
- package/src/side-navigation/side-navigation.css +179 -182
- package/src/side-navigation/side-navigation.tokens.json +1 -0
- package/src/skeleton/skeleton.css +47 -48
- package/src/slider/slider.css +86 -88
- package/src/sparkline/sparkline.css +62 -40
- package/src/sparkline/sparkline.tokens.json +2 -0
- package/src/spinner/spinner.css +83 -180
- package/src/spinner/spinner.tokens.json +0 -1
- package/src/split-button/split-button.css +30 -31
- package/src/split-button/split-button.tokens.json +1 -0
- package/src/splitter/splitter.css +35 -35
- package/src/stack/stack.css +24 -24
- package/src/stat-card/stat-card.css +341 -224
- package/src/stat-card/stat-card.tokens.json +3 -0
- package/src/status-indicator/status-indicator.css +28 -28
- package/src/stepper/stepper.css +58 -62
- package/src/switch/switch.css +86 -92
- package/src/table/table.css +310 -165
- package/src/table/table.tokens.json +6 -0
- package/src/table-of-contents/table-of-contents.css +51 -54
- package/src/tabs/tabs.css +337 -302
- package/src/tabs/tabs.tokens.json +8 -5
- package/src/tag/tag.css +79 -71
- package/src/tag/tag.tokens.json +9 -0
- package/src/tags-input/tags-input.css +145 -82
- package/src/tags-input/tags-input.tokens.json +7 -1
- package/src/text-field/text-field.css +132 -136
- package/src/text-field/text-field.tokens.json +1 -0
- package/src/textarea/textarea.css +31 -28
- package/src/textarea/textarea.tokens.json +1 -0
- package/src/time-field/time-field.css +72 -69
- package/src/time-field/time-field.tokens.json +1 -0
- package/src/time-picker/time-picker.css +56 -58
- package/src/time-range-picker/time-range-picker.css +126 -133
- package/src/timeline/timeline.css +254 -266
- package/src/timeline/timeline.tokens.json +5 -0
- package/src/toast/toast.css +108 -90
- package/src/toast/toast.tokens.json +6 -0
- package/src/toggle/toggle.css +62 -25
- package/src/toggle/toggle.tokens.json +8 -0
- package/src/toggle-group/toggle-group.css +106 -60
- package/src/toggle-group/toggle-group.tokens.json +10 -0
- package/src/toolbar/toolbar.css +30 -35
- package/src/tooltip/tooltip.css +26 -26
- package/src/top-navigation/top-navigation.css +243 -259
- package/src/tour/tour.css +51 -60
- package/src/transfer/transfer.css +160 -164
- package/src/tree/tree.css +103 -111
- package/src/typography/typography.css +40 -36
- package/src/typography/typography.tokens.json +1 -0
- package/src/upload/upload.css +224 -224
- package/src/visually-hidden/visually-hidden.css +1 -1
- package/src/wizard/wizard.css +185 -197
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
* scrolling surface are all `select`'s decisions, taken in the same session
|
|
29
29
|
* and written out in `packages/styles/src/select/select.css`. They are
|
|
30
30
|
* repeated here rather than shared because the two families have two public
|
|
31
|
-
* identifiers, and a stylesheet that painted `[data-ui
|
|
31
|
+
* identifiers, and a stylesheet that painted `[data-ui-select]` from a
|
|
32
32
|
* combobox would make one family's selector match the other's DOM. The
|
|
33
33
|
* duplication is the price of that boundary and it is paid on purpose.
|
|
34
34
|
*
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
|
|
55
55
|
/* ── The control ──────────────────────────────────────────────────────── */
|
|
56
56
|
|
|
57
|
-
[data-ui
|
|
57
|
+
[data-ui-combobox][data-part-root] {
|
|
58
58
|
--_font-size: var(--slotted-control-font-size-md, 13px);
|
|
59
59
|
--_height: var(--slotted-control-height-md, 34px);
|
|
60
60
|
--_padding-inline: var(--slotted-control-padding-inline-md, 13px);
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
box-shadow var(--slotted-control-transition-duration) var(--slotted-control-transition-easing);
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
-
[data-ui
|
|
105
|
+
[data-ui-combobox][data-part-root]:not([data-full-width]) {
|
|
106
106
|
inline-size: auto;
|
|
107
107
|
}
|
|
108
108
|
|
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
* `autocomplete="both"` writes as a selected range rather than as text, so
|
|
114
114
|
* the next character typed replaces it.
|
|
115
115
|
*/
|
|
116
|
-
[data-ui
|
|
116
|
+
[data-ui-combobox] > [data-part-input] {
|
|
117
117
|
background-color: transparent;
|
|
118
118
|
/* The frame's border box, not its content box: on a coarse pointer the frame
|
|
119
119
|
is the touch target's height and the control it holds is too. Stretched
|
|
@@ -135,7 +135,7 @@
|
|
|
135
135
|
text-overflow: ellipsis;
|
|
136
136
|
}
|
|
137
137
|
|
|
138
|
-
[data-ui
|
|
138
|
+
[data-ui-combobox] > [data-part-input]::placeholder {
|
|
139
139
|
color: var(--slotted-combobox-placeholder-color, var(--slotted-text-muted, GrayText));
|
|
140
140
|
text-overflow: ellipsis;
|
|
141
141
|
}
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
* the theme's accent tone is what that paint should be, rather than the
|
|
147
147
|
* browser's blue in a form that is not blue.
|
|
148
148
|
*/
|
|
149
|
-
[data-ui
|
|
149
|
+
[data-ui-combobox] > [data-part-input]::selection {
|
|
150
150
|
background-color: var(
|
|
151
151
|
--slotted-combobox-completion-background,
|
|
152
152
|
var(--slotted-tone-accent-surface)
|
|
@@ -155,20 +155,32 @@
|
|
|
155
155
|
}
|
|
156
156
|
|
|
157
157
|
/**
|
|
158
|
-
* Autofill. Chrome paints its own ground over the
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
*
|
|
158
|
+
* Autofill. Chrome paints its own ground over the input, and a hundred-pixel
|
|
159
|
+
* inset shadow is the only way to reach it. The signal is kept rather than
|
|
160
|
+
* erased, in the accent surface the theme owns, and it is the whole
|
|
161
|
+
* control's: the frame takes the tint under its border and inside its
|
|
162
|
+
* corner, and the input repaints the browser's ground in the same colour.
|
|
163
|
+
* Painted on the input alone, the tint left the frame's padding, the slots
|
|
164
|
+
* and the buttons bare, and covered the border the input overlaps by one width.
|
|
162
165
|
*/
|
|
163
|
-
[data-ui
|
|
166
|
+
[data-ui-combobox][data-part-root]:has(> [data-part-input]:autofill) {
|
|
167
|
+
background-color: var(
|
|
168
|
+
--slotted-combobox-autofill-background,
|
|
169
|
+
var(--slotted-tone-accent-surface)
|
|
170
|
+
);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
[data-ui-combobox] > [data-part-input]:autofill {
|
|
164
174
|
box-shadow: inset 0 0 0 100px
|
|
165
175
|
var(--slotted-combobox-autofill-background, var(--slotted-tone-accent-surface));
|
|
176
|
+
/* The input overlaps the frame's border by one width; the tint stops at it. */
|
|
177
|
+
clip-path: inset(var(--slotted-control-border-width, 1px) 0);
|
|
166
178
|
-webkit-text-fill-color: var(--slotted-combobox-color, var(--slotted-text, CanvasText));
|
|
167
179
|
}
|
|
168
180
|
|
|
169
181
|
/* ── The two buttons inside the frame ─────────────────────────────────── */
|
|
170
182
|
|
|
171
|
-
[data-ui
|
|
183
|
+
[data-ui-combobox] > :is([data-part-clear], [data-part-trigger]) {
|
|
172
184
|
align-items: center;
|
|
173
185
|
appearance: none;
|
|
174
186
|
background-color: transparent;
|
|
@@ -199,7 +211,7 @@
|
|
|
199
211
|
* control is 24 pixels tall — the WCAG 2.2 minimum — so nothing drawn inside
|
|
200
212
|
* it can also be 24.
|
|
201
213
|
*/
|
|
202
|
-
[data-ui
|
|
214
|
+
[data-ui-combobox] > :is([data-part-clear], [data-part-trigger])::after {
|
|
203
215
|
content: '';
|
|
204
216
|
inset: min(0px, calc((100% - var(--slotted-target-min, 24px)) / 2));
|
|
205
217
|
position: absolute;
|
|
@@ -210,22 +222,22 @@
|
|
|
210
222
|
the hit area above grows to 44 pixels around them. Side by side, neither
|
|
211
223
|
button reaches across the edge the two share. */
|
|
212
224
|
@media (pointer: coarse) {
|
|
213
|
-
[data-ui
|
|
225
|
+
[data-ui-combobox] > :is([data-part-clear], [data-part-trigger])::after {
|
|
214
226
|
inset: min(0px, calc((100% - var(--slotted-target-comfortable, 44px)) / 2));
|
|
215
227
|
}
|
|
216
228
|
|
|
217
|
-
[data-ui
|
|
229
|
+
[data-ui-combobox] > [data-part-clear]:has(+ [data-part-trigger]:not([hidden]))::after {
|
|
218
230
|
inset-inline-end: 0;
|
|
219
231
|
}
|
|
220
232
|
|
|
221
|
-
[data-ui
|
|
233
|
+
[data-ui-combobox] > [data-part-clear]:not([hidden]) + [data-part-trigger]::after {
|
|
222
234
|
inset-inline-start: 0;
|
|
223
235
|
}
|
|
224
236
|
}
|
|
225
237
|
|
|
226
238
|
/* The cross and the chevron are `Glyph` elements the binding draws, sized
|
|
227
239
|
here to the control's icon step. */
|
|
228
|
-
[data-ui
|
|
240
|
+
[data-ui-combobox] > :is([data-part-clear], [data-part-trigger]) {
|
|
229
241
|
--slotted-icon-size: var(--_icon-size);
|
|
230
242
|
}
|
|
231
243
|
|
|
@@ -234,7 +246,7 @@
|
|
|
234
246
|
* button is what a reader presses and the arrow is what turns over. The
|
|
235
247
|
* library's own `Glyph` in an `icon` box; a character is never an icon.
|
|
236
248
|
*/
|
|
237
|
-
[data-ui
|
|
249
|
+
[data-ui-combobox] [data-part-arrow] {
|
|
238
250
|
align-items: center;
|
|
239
251
|
block-size: var(--_icon-size);
|
|
240
252
|
display: flex;
|
|
@@ -242,12 +254,12 @@
|
|
|
242
254
|
justify-content: center;
|
|
243
255
|
}
|
|
244
256
|
|
|
245
|
-
[data-ui
|
|
257
|
+
[data-ui-combobox] [data-part-arrow] > [data-ui-icon] {
|
|
246
258
|
transition: rotate var(--slotted-control-transition-duration)
|
|
247
259
|
var(--slotted-control-transition-easing);
|
|
248
260
|
}
|
|
249
261
|
|
|
250
|
-
[data-ui
|
|
262
|
+
[data-ui-combobox][data-open] [data-part-arrow] > [data-ui-icon] {
|
|
251
263
|
rotate: 180deg;
|
|
252
264
|
}
|
|
253
265
|
|
|
@@ -258,7 +270,7 @@
|
|
|
258
270
|
* draws for every family that waits, worn as `data-ui='spinner'` beside this
|
|
259
271
|
* family's own part.
|
|
260
272
|
*/
|
|
261
|
-
[data-ui
|
|
273
|
+
[data-ui-combobox] [data-part-busy] {
|
|
262
274
|
--slotted-spinner-size: var(--_icon-size);
|
|
263
275
|
|
|
264
276
|
color: var(--slotted-combobox-arrow-color, var(--slotted-text-muted, GrayText));
|
|
@@ -267,7 +279,7 @@
|
|
|
267
279
|
|
|
268
280
|
/* ── Size ─────────────────────────────────────────────────────────────── */
|
|
269
281
|
|
|
270
|
-
[data-ui
|
|
282
|
+
[data-ui-combobox][data-part-root][data-size='sm'] {
|
|
271
283
|
--_font-size: var(--slotted-control-font-size-sm, 12px);
|
|
272
284
|
--_height: var(--slotted-control-height-sm, 30px);
|
|
273
285
|
--_padding-inline: var(--slotted-control-padding-inline-sm, 10px);
|
|
@@ -276,7 +288,7 @@
|
|
|
276
288
|
--_inner-size: var(--slotted-control-inner-size-sm, 22px);
|
|
277
289
|
}
|
|
278
290
|
|
|
279
|
-
[data-ui
|
|
291
|
+
[data-ui-combobox][data-part-root][data-size='md'] {
|
|
280
292
|
--_font-size: var(--slotted-control-font-size-md, 13px);
|
|
281
293
|
--_height: var(--slotted-control-height-md, 34px);
|
|
282
294
|
--_padding-inline: var(--slotted-control-padding-inline-md, 13px);
|
|
@@ -285,7 +297,7 @@
|
|
|
285
297
|
--_inner-size: var(--slotted-control-inner-size-md, 24px);
|
|
286
298
|
}
|
|
287
299
|
|
|
288
|
-
[data-ui
|
|
300
|
+
[data-ui-combobox][data-part-root][data-size='lg'] {
|
|
289
301
|
--_font-size: var(--slotted-control-font-size-lg, 14px);
|
|
290
302
|
--_height: var(--slotted-control-height-lg, 38px);
|
|
291
303
|
--_padding-inline: var(--slotted-control-padding-inline-lg, 16px);
|
|
@@ -296,7 +308,7 @@
|
|
|
296
308
|
|
|
297
309
|
/* ── Variant ──────────────────────────────────────────────────────────── */
|
|
298
310
|
|
|
299
|
-
[data-ui
|
|
311
|
+
[data-ui-combobox][data-part-root][data-variant='subtle'] {
|
|
300
312
|
background-color: var(
|
|
301
313
|
--slotted-combobox-subtle-background,
|
|
302
314
|
var(--slotted-surface-sunken, Canvas)
|
|
@@ -310,7 +322,7 @@
|
|
|
310
322
|
/* No edge, no lift, no ground and no corner of its own: the cell it sits in
|
|
311
323
|
is the box, the row is the ground, a cell has no corner, and the resting
|
|
312
324
|
shadow would draw the cell where there is none. */
|
|
313
|
-
[data-ui
|
|
325
|
+
[data-ui-combobox][data-part-root][data-variant='plain'] {
|
|
314
326
|
background-color: transparent;
|
|
315
327
|
border-color: transparent;
|
|
316
328
|
border-radius: var(--slotted-radius-none, 0px);
|
|
@@ -318,31 +330,31 @@
|
|
|
318
330
|
}
|
|
319
331
|
|
|
320
332
|
@media (forced-colors: active) {
|
|
321
|
-
[data-ui
|
|
333
|
+
[data-ui-combobox][data-part-root][data-variant='plain'] {
|
|
322
334
|
border-color: ButtonBorder;
|
|
323
335
|
}
|
|
324
336
|
}
|
|
325
337
|
|
|
326
338
|
/* ── States on the control ────────────────────────────────────────────── */
|
|
327
339
|
|
|
328
|
-
[data-ui
|
|
340
|
+
[data-ui-combobox][data-part-root]:hover:not([data-disabled]):not([data-readonly]):not(
|
|
329
341
|
[data-invalid]
|
|
330
342
|
) {
|
|
331
343
|
border-color: var(--slotted-combobox-hover-border-color, var(--slotted-tone-accent-border));
|
|
332
344
|
}
|
|
333
345
|
|
|
334
|
-
[data-ui
|
|
346
|
+
[data-ui-combobox][data-part-root][data-variant='subtle']:hover:not([data-disabled]):not(
|
|
335
347
|
[data-readonly]
|
|
336
|
-
):not([data-invalid]) {
|
|
348
|
+
):not([data-invalid]):not(:has(> [data-part-input]:autofill)) {
|
|
337
349
|
background-color: var(
|
|
338
350
|
--slotted-combobox-subtle-hover-background,
|
|
339
351
|
var(--slotted-tone-secondary-subtle-hover)
|
|
340
352
|
);
|
|
341
353
|
}
|
|
342
354
|
|
|
343
|
-
[data-ui
|
|
355
|
+
[data-ui-combobox][data-part-root][data-variant='plain']:hover:not([data-disabled]):not(
|
|
344
356
|
[data-readonly]
|
|
345
|
-
):not([data-invalid]) {
|
|
357
|
+
):not([data-invalid]):not(:has(> [data-part-input]:autofill)) {
|
|
346
358
|
background-color: var(
|
|
347
359
|
--slotted-combobox-plain-hover-background,
|
|
348
360
|
var(--slotted-tone-secondary-subtle-hover)
|
|
@@ -351,11 +363,11 @@
|
|
|
351
363
|
border-color: transparent;
|
|
352
364
|
}
|
|
353
365
|
|
|
354
|
-
[data-ui
|
|
366
|
+
[data-ui-combobox][data-part-root]:has(> [data-part-input]:focus-visible) {
|
|
355
367
|
box-shadow: var(--slotted-control-shadow-focus-geometry, 0 1px 4px -1px)
|
|
356
368
|
var(--slotted-focus-ring-color, Highlight);
|
|
357
369
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
358
|
-
outline-offset: var(--slotted-focus-ring-offset, 2px);
|
|
370
|
+
outline-offset: var(--slotted-control-focus-ring-offset, var(--slotted-focus-ring-offset, 2px));
|
|
359
371
|
}
|
|
360
372
|
|
|
361
373
|
/**
|
|
@@ -365,18 +377,16 @@
|
|
|
365
377
|
* shadow that appears only under focus is a cell that changes size when it
|
|
366
378
|
* is used.
|
|
367
379
|
*/
|
|
368
|
-
[data-ui
|
|
369
|
-
> [data-part='input']:focus-visible
|
|
370
|
-
) {
|
|
380
|
+
[data-ui-combobox][data-part-root][data-variant='plain']:has(> [data-part-input]:focus-visible) {
|
|
371
381
|
box-shadow: none;
|
|
372
382
|
outline-offset: calc(var(--slotted-focus-ring-offset, 2px) * -1);
|
|
373
383
|
}
|
|
374
384
|
|
|
375
|
-
[data-ui
|
|
385
|
+
[data-ui-combobox][data-part-root][data-open]:not([data-disabled]) {
|
|
376
386
|
border-color: var(--slotted-combobox-open-border-color, var(--slotted-tone-accent-border));
|
|
377
387
|
}
|
|
378
388
|
|
|
379
|
-
[data-ui
|
|
389
|
+
[data-ui-combobox][data-part-root][data-invalid] {
|
|
380
390
|
--slotted-focus-ring-color: var(
|
|
381
391
|
--slotted-combobox-invalid-focus-ring-color,
|
|
382
392
|
var(--slotted-focus-ring-color-invalid, Highlight)
|
|
@@ -401,15 +411,15 @@
|
|
|
401
411
|
box-shadow: var(--_invalid-edge);
|
|
402
412
|
}
|
|
403
413
|
|
|
404
|
-
[data-ui
|
|
414
|
+
[data-ui-combobox][data-part-root][data-invalid]:has(> [data-part-input]:focus-visible) {
|
|
405
415
|
box-shadow:
|
|
406
416
|
var(--_invalid-edge),
|
|
407
417
|
var(--slotted-control-shadow-focus-geometry, 0 1px 4px -1px)
|
|
408
418
|
var(--slotted-focus-ring-color, Highlight);
|
|
409
419
|
}
|
|
410
420
|
|
|
411
|
-
[data-ui
|
|
412
|
-
> [data-part
|
|
421
|
+
[data-ui-combobox][data-part-root][data-variant='plain'][data-invalid]:has(
|
|
422
|
+
> [data-part-input]:focus-visible
|
|
413
423
|
) {
|
|
414
424
|
/* The ring lies inside the box here, over the border and an edge as wide as
|
|
415
425
|
it; the edge reaches past the ring. */
|
|
@@ -427,21 +437,24 @@
|
|
|
427
437
|
* control draws its ring double, which a valid ring is not.
|
|
428
438
|
*/
|
|
429
439
|
@media (forced-colors: active) {
|
|
430
|
-
[data-ui
|
|
440
|
+
[data-ui-combobox][data-part-root][data-invalid] {
|
|
431
441
|
outline: var(--_invalid-edge-width) solid CanvasText;
|
|
432
442
|
outline-offset: calc(
|
|
433
443
|
-1 * (var(--slotted-control-border-width, 1px) + var(--_invalid-edge-width))
|
|
434
444
|
);
|
|
435
445
|
}
|
|
436
446
|
|
|
437
|
-
[data-ui
|
|
447
|
+
[data-ui-combobox][data-part-root][data-invalid]:has(> [data-part-input]:focus-visible) {
|
|
438
448
|
outline: calc(var(--slotted-focus-ring-width, 2px) + var(--_invalid-edge-width)) double
|
|
439
449
|
var(--slotted-focus-ring-color, Highlight);
|
|
440
|
-
outline-offset: var(
|
|
450
|
+
outline-offset: var(
|
|
451
|
+
--slotted-control-focus-ring-offset,
|
|
452
|
+
var(--slotted-focus-ring-offset, 2px)
|
|
453
|
+
);
|
|
441
454
|
}
|
|
442
455
|
|
|
443
|
-
[data-ui
|
|
444
|
-
> [data-part
|
|
456
|
+
[data-ui-combobox][data-part-root][data-variant='plain'][data-invalid]:has(
|
|
457
|
+
> [data-part-input]:focus-visible
|
|
445
458
|
) {
|
|
446
459
|
outline: calc(var(--slotted-focus-ring-width, 2px) + var(--_invalid-edge-width)) double
|
|
447
460
|
var(--slotted-focus-ring-color, Highlight);
|
|
@@ -456,14 +469,14 @@
|
|
|
456
469
|
* popup. The native `readonly` gives the first three; the second is the
|
|
457
470
|
* family's, because the pattern has no readonly for a combobox.
|
|
458
471
|
*/
|
|
459
|
-
[data-ui
|
|
472
|
+
[data-ui-combobox][data-part-root][data-readonly] {
|
|
460
473
|
background-color: var(
|
|
461
474
|
--slotted-combobox-readonly-background,
|
|
462
475
|
var(--slotted-tone-secondary-subtle-hover)
|
|
463
476
|
);
|
|
464
477
|
}
|
|
465
478
|
|
|
466
|
-
[data-ui
|
|
479
|
+
[data-ui-combobox][data-part-root][data-readonly] [data-part-arrow] {
|
|
467
480
|
opacity: 0.5;
|
|
468
481
|
}
|
|
469
482
|
|
|
@@ -472,8 +485,8 @@
|
|
|
472
485
|
* because a disabled `fieldset` disables every control inside it and the
|
|
473
486
|
* control has no way to say so.
|
|
474
487
|
*/
|
|
475
|
-
[data-ui
|
|
476
|
-
[data-ui
|
|
488
|
+
[data-ui-combobox][data-part-root][data-disabled],
|
|
489
|
+
[data-ui-combobox][data-part-root]:has(> [data-part-input]:disabled) {
|
|
477
490
|
background-color: var(
|
|
478
491
|
--slotted-combobox-disabled-background,
|
|
479
492
|
var(--slotted-disabled-background)
|
|
@@ -484,16 +497,16 @@
|
|
|
484
497
|
cursor: not-allowed;
|
|
485
498
|
}
|
|
486
499
|
|
|
487
|
-
[data-ui
|
|
488
|
-
> :is([data-part
|
|
500
|
+
[data-ui-combobox]
|
|
501
|
+
> :is([data-part-clear], [data-part-trigger]):hover:not(:disabled):not([data-disabled]) {
|
|
489
502
|
background-color: var(
|
|
490
503
|
--slotted-combobox-action-hover-background,
|
|
491
504
|
var(--slotted-tone-secondary-subtle-hover)
|
|
492
505
|
);
|
|
493
506
|
}
|
|
494
507
|
|
|
495
|
-
[data-ui
|
|
496
|
-
> :is([data-part
|
|
508
|
+
[data-ui-combobox]
|
|
509
|
+
> :is([data-part-clear], [data-part-trigger]):active:not(:disabled):not([data-disabled]) {
|
|
497
510
|
background-color: var(
|
|
498
511
|
--slotted-combobox-action-active-background,
|
|
499
512
|
var(--slotted-tone-secondary-subtle-active)
|
|
@@ -507,14 +520,14 @@
|
|
|
507
520
|
* it. The trigger is not in the tab sequence and takes the same rule anyway,
|
|
508
521
|
* because a script may focus it.
|
|
509
522
|
*/
|
|
510
|
-
[data-ui
|
|
523
|
+
[data-ui-combobox] > :is([data-part-clear], [data-part-trigger]):focus-visible {
|
|
511
524
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
512
525
|
outline-offset: calc(var(--slotted-focus-ring-offset, 2px) * -1);
|
|
513
526
|
}
|
|
514
527
|
|
|
515
528
|
/* ── The layer ────────────────────────────────────────────────────────── */
|
|
516
529
|
|
|
517
|
-
[data-ui
|
|
530
|
+
[data-ui-combobox][data-part-positioner] {
|
|
518
531
|
--_surface: var(--slotted-combobox-surface, var(--slotted-surface-raised, #ffffff));
|
|
519
532
|
--_text: var(--slotted-combobox-content-text, var(--slotted-text, #0f172a));
|
|
520
533
|
--_muted: var(--slotted-combobox-content-text-muted, var(--slotted-text-muted, #5b6b7f));
|
|
@@ -583,12 +596,12 @@
|
|
|
583
596
|
translate var(--slotted-duration-short) var(--slotted-easing-exit);
|
|
584
597
|
}
|
|
585
598
|
|
|
586
|
-
[data-ui
|
|
599
|
+
[data-ui-combobox][data-part-positioner][data-side='top'] {
|
|
587
600
|
translate: 0 var(--_enter-distance);
|
|
588
601
|
}
|
|
589
602
|
|
|
590
603
|
/* A lateral side has no block direction to arrive from, so it only fades. */
|
|
591
|
-
[data-ui
|
|
604
|
+
[data-ui-combobox][data-part-positioner]:is([data-side='left'], [data-side='right']) {
|
|
592
605
|
translate: 0 0;
|
|
593
606
|
}
|
|
594
607
|
|
|
@@ -601,7 +614,7 @@
|
|
|
601
614
|
* A keyframe states where it starts. The exit stays a transition: it
|
|
602
615
|
* leaves from wherever the layer is, on the closed rule's durations.
|
|
603
616
|
*/
|
|
604
|
-
[data-ui
|
|
617
|
+
[data-ui-combobox][data-part-positioner][data-open] {
|
|
605
618
|
opacity: 1;
|
|
606
619
|
translate: 0 0;
|
|
607
620
|
transition: none;
|
|
@@ -612,16 +625,16 @@
|
|
|
612
625
|
* with the side, and a layer written open in static markup — the harness,
|
|
613
626
|
* a docs snippet — is simply there, and is photographed where it stands.
|
|
614
627
|
*/
|
|
615
|
-
[data-ui
|
|
628
|
+
[data-ui-combobox][data-part-positioner][data-open][data-positioned] {
|
|
616
629
|
animation: slotted-combobox-enter-down var(--slotted-duration-medium)
|
|
617
630
|
var(--slotted-easing-enter);
|
|
618
631
|
}
|
|
619
632
|
|
|
620
|
-
[data-ui
|
|
633
|
+
[data-ui-combobox][data-part-positioner][data-open][data-positioned][data-side='top'] {
|
|
621
634
|
animation-name: slotted-combobox-enter-up;
|
|
622
635
|
}
|
|
623
636
|
|
|
624
|
-
[data-ui
|
|
637
|
+
[data-ui-combobox][data-part-positioner][data-open][data-positioned]:is(
|
|
625
638
|
[data-side='left'],
|
|
626
639
|
[data-side='right']
|
|
627
640
|
) {
|
|
@@ -650,37 +663,37 @@
|
|
|
650
663
|
|
|
651
664
|
/* Stillness keeps the fade and drops the movement (R7). */
|
|
652
665
|
@media (prefers-reduced-motion: reduce) {
|
|
653
|
-
[data-ui
|
|
654
|
-
[data-ui
|
|
655
|
-
[data-ui
|
|
656
|
-
[data-ui
|
|
666
|
+
[data-ui-combobox][data-part-positioner],
|
|
667
|
+
[data-ui-combobox][data-part-positioner][data-side='top'],
|
|
668
|
+
[data-ui-combobox][data-part-positioner][data-side='left'],
|
|
669
|
+
[data-ui-combobox][data-part-positioner][data-side='right'] {
|
|
657
670
|
translate: 0 0;
|
|
658
671
|
transition: opacity var(--slotted-duration-short) var(--slotted-easing-exit);
|
|
659
672
|
}
|
|
660
673
|
|
|
661
|
-
[data-ui
|
|
662
|
-
[data-ui
|
|
663
|
-
[data-ui
|
|
664
|
-
[data-ui
|
|
674
|
+
[data-ui-combobox][data-part-positioner][data-open][data-positioned],
|
|
675
|
+
[data-ui-combobox][data-part-positioner][data-open][data-positioned][data-side='top'],
|
|
676
|
+
[data-ui-combobox][data-part-positioner][data-open][data-positioned][data-side='left'],
|
|
677
|
+
[data-ui-combobox][data-part-positioner][data-open][data-positioned][data-side='right'] {
|
|
665
678
|
animation-name: slotted-combobox-fade;
|
|
666
679
|
}
|
|
667
680
|
}
|
|
668
681
|
|
|
669
|
-
[data-ui
|
|
682
|
+
[data-ui-combobox][data-part-positioner][data-detached] {
|
|
670
683
|
visibility: hidden;
|
|
671
684
|
}
|
|
672
685
|
|
|
673
|
-
[data-ui
|
|
686
|
+
[data-ui-combobox][data-part-positioner][data-width='anchor'] {
|
|
674
687
|
inline-size: var(--slotted-positioner-anchor-width, auto);
|
|
675
688
|
}
|
|
676
689
|
|
|
677
|
-
[data-ui
|
|
690
|
+
[data-ui-combobox][data-part-positioner][data-width='content'] {
|
|
678
691
|
inline-size: max-content;
|
|
679
692
|
max-inline-size: min(var(--_measure), var(--slotted-positioner-available-width, 100vw));
|
|
680
693
|
min-inline-size: var(--slotted-positioner-anchor-width, auto);
|
|
681
694
|
}
|
|
682
695
|
|
|
683
|
-
[data-ui
|
|
696
|
+
[data-ui-combobox][data-part-positioner][data-size='sm'] {
|
|
684
697
|
--_item-inset: var(--slotted-control-padding-inline-sm, 0.625rem);
|
|
685
698
|
--_item-height: var(--slotted-control-height-sm, 30px);
|
|
686
699
|
--_content-font-size: var(--slotted-control-font-size-sm, 12px);
|
|
@@ -689,7 +702,7 @@
|
|
|
689
702
|
--_column-gap: var(--slotted-control-gap-sm, 0.375rem);
|
|
690
703
|
}
|
|
691
704
|
|
|
692
|
-
[data-ui
|
|
705
|
+
[data-ui-combobox][data-part-positioner][data-size='lg'] {
|
|
693
706
|
--_item-inset: var(--slotted-control-padding-inline-lg, 1rem);
|
|
694
707
|
--_item-height: var(--slotted-control-height-lg, 38px);
|
|
695
708
|
--_content-font-size: var(--slotted-control-font-size-lg, 14px);
|
|
@@ -700,7 +713,7 @@
|
|
|
700
713
|
|
|
701
714
|
/* ── The surface ──────────────────────────────────────────────────────── */
|
|
702
715
|
|
|
703
|
-
[data-ui
|
|
716
|
+
[data-ui-combobox] > [data-part-content] {
|
|
704
717
|
background: var(--_surface);
|
|
705
718
|
border: var(--_border-width) solid var(--_border-color);
|
|
706
719
|
border-radius: var(--_radius);
|
|
@@ -722,19 +735,19 @@
|
|
|
722
735
|
pointer-events: auto;
|
|
723
736
|
}
|
|
724
737
|
|
|
725
|
-
[data-ui
|
|
738
|
+
[data-ui-combobox] > [data-part-content]:focus-visible {
|
|
726
739
|
outline: none;
|
|
727
740
|
}
|
|
728
741
|
|
|
729
742
|
/* ── Groups ───────────────────────────────────────────────────────────── */
|
|
730
743
|
|
|
731
|
-
[data-ui
|
|
744
|
+
[data-ui-combobox] [data-part-group] {
|
|
732
745
|
display: grid;
|
|
733
746
|
grid-column: 1 / -1;
|
|
734
747
|
grid-template-columns: subgrid;
|
|
735
748
|
}
|
|
736
749
|
|
|
737
|
-
[data-ui
|
|
750
|
+
[data-ui-combobox] [data-part-group-label] {
|
|
738
751
|
color: var(--_muted);
|
|
739
752
|
font-size: var(--_secondary-font-size);
|
|
740
753
|
font-weight: var(--slotted-font-weight-semibold, 600);
|
|
@@ -746,7 +759,19 @@
|
|
|
746
759
|
|
|
747
760
|
/* ── Options ──────────────────────────────────────────────────────────── */
|
|
748
761
|
|
|
749
|
-
|
|
762
|
+
/**
|
|
763
|
+
* An option the query rejected, and a group whose options all went. Both
|
|
764
|
+
* carry `hidden` — Angular hides each rejected option rather than leaving the
|
|
765
|
+
* list, and both bindings hide an emptied group — and `display: grid` on
|
|
766
|
+
* either beats the user agent's own `[hidden] { display: none }`, because an
|
|
767
|
+
* author rule wins over the user agent sheet.
|
|
768
|
+
*/
|
|
769
|
+
[data-ui-combobox] [data-part-item][hidden],
|
|
770
|
+
[data-ui-combobox] [data-part-group][hidden] {
|
|
771
|
+
display: none;
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
[data-ui-combobox] [data-part-item] {
|
|
750
775
|
align-content: center;
|
|
751
776
|
border-radius: var(--_item-radius);
|
|
752
777
|
box-sizing: border-box;
|
|
@@ -772,7 +797,7 @@
|
|
|
772
797
|
var(--slotted-control-transition-easing, var(--slotted-easing-standard));
|
|
773
798
|
}
|
|
774
799
|
|
|
775
|
-
[data-ui
|
|
800
|
+
[data-ui-combobox] [data-part-item][data-current] {
|
|
776
801
|
background-color: var(--_highlight);
|
|
777
802
|
/**
|
|
778
803
|
* A ring as well as a ground. Nothing on this surface holds focus — DOM
|
|
@@ -786,11 +811,11 @@
|
|
|
786
811
|
var(--slotted-combobox-highlight-ring, var(--slotted-tone-accent-border));
|
|
787
812
|
}
|
|
788
813
|
|
|
789
|
-
[data-ui
|
|
814
|
+
[data-ui-combobox] [data-part-item]:not([data-disabled]):active {
|
|
790
815
|
background-color: var(--_highlight-active);
|
|
791
816
|
}
|
|
792
817
|
|
|
793
|
-
[data-ui
|
|
818
|
+
[data-ui-combobox] [data-part-item][data-selected] {
|
|
794
819
|
color: var(--_selected-color);
|
|
795
820
|
}
|
|
796
821
|
|
|
@@ -803,21 +828,21 @@
|
|
|
803
828
|
* selection begins and ends. `select` and `combobox` draw the same ground
|
|
804
829
|
* and answer the same way; `selection-block.test.mjs` holds the three to it.
|
|
805
830
|
*/
|
|
806
|
-
[data-ui
|
|
831
|
+
[data-ui-combobox] [data-part-item][data-selected] + [data-part-item][data-selected] {
|
|
807
832
|
border-start-end-radius: 0;
|
|
808
833
|
border-start-start-radius: 0;
|
|
809
834
|
}
|
|
810
835
|
|
|
811
|
-
[data-ui
|
|
836
|
+
[data-ui-combobox] [data-part-item][data-selected]:has(+ [data-part-item][data-selected]) {
|
|
812
837
|
border-end-end-radius: 0;
|
|
813
838
|
border-end-start-radius: 0;
|
|
814
839
|
}
|
|
815
840
|
|
|
816
|
-
[data-ui
|
|
841
|
+
[data-ui-combobox] [data-part-item][data-selected] > [data-part-label] {
|
|
817
842
|
font-weight: var(--slotted-font-weight-medium, 500);
|
|
818
843
|
}
|
|
819
844
|
|
|
820
|
-
[data-ui
|
|
845
|
+
[data-ui-combobox] [data-part-item][data-disabled] {
|
|
821
846
|
color: var(--slotted-disabled-foreground, #64748b);
|
|
822
847
|
cursor: not-allowed;
|
|
823
848
|
}
|
|
@@ -843,7 +868,7 @@
|
|
|
843
868
|
* would watch it disappear. A cursor lifts, always. What the row cannot do is
|
|
844
869
|
* said by the ink and by the ring, which both step down to the disabled pair.
|
|
845
870
|
*/
|
|
846
|
-
[data-ui
|
|
871
|
+
[data-ui-combobox] [data-part-item][data-disabled][data-current] {
|
|
847
872
|
box-shadow: inset 0 0 0 var(--slotted-border-width-thin, 1px)
|
|
848
873
|
var(--slotted-disabled-border, #cbd5e1);
|
|
849
874
|
color: var(--slotted-disabled-foreground, #64748b);
|
|
@@ -851,13 +876,13 @@
|
|
|
851
876
|
|
|
852
877
|
/* ── The cells ────────────────────────────────────────────────────────── */
|
|
853
878
|
|
|
854
|
-
[data-ui
|
|
879
|
+
[data-ui-combobox] :is([data-part-indicator], [data-part-icon]) {
|
|
855
880
|
block-size: 1lh;
|
|
856
881
|
}
|
|
857
882
|
|
|
858
883
|
/* Column one holds content and paints none: a `Glyph` in an `Icon` box, or
|
|
859
884
|
artwork of the consumer's own, centred and sized from the column. */
|
|
860
|
-
[data-ui
|
|
885
|
+
[data-ui-combobox] [data-part-icon] {
|
|
861
886
|
--slotted-icon-size: var(--_content-icon-size);
|
|
862
887
|
|
|
863
888
|
align-items: center;
|
|
@@ -870,7 +895,7 @@
|
|
|
870
895
|
margin-inline-end: var(--_column-gap);
|
|
871
896
|
}
|
|
872
897
|
|
|
873
|
-
[data-ui
|
|
898
|
+
[data-ui-combobox] [data-part-label] {
|
|
874
899
|
grid-column: 2;
|
|
875
900
|
grid-row: 1;
|
|
876
901
|
min-inline-size: 0;
|
|
@@ -894,7 +919,7 @@
|
|
|
894
919
|
* run moved on every keystroke as the filter re-marked the label (CB6).
|
|
895
920
|
*/
|
|
896
921
|
|
|
897
|
-
[data-ui
|
|
922
|
+
[data-ui-combobox] [data-part-description] {
|
|
898
923
|
color: var(--_muted);
|
|
899
924
|
font-size: var(--_secondary-font-size);
|
|
900
925
|
grid-column: 2;
|
|
@@ -904,12 +929,12 @@
|
|
|
904
929
|
overflow-wrap: anywhere;
|
|
905
930
|
}
|
|
906
931
|
|
|
907
|
-
[data-ui
|
|
932
|
+
[data-ui-combobox] [data-part-item][data-disabled] > [data-part-description] {
|
|
908
933
|
color: inherit;
|
|
909
934
|
}
|
|
910
935
|
|
|
911
936
|
/* The tick is a `Glyph` the binding draws, at the content's icon step. */
|
|
912
|
-
[data-ui
|
|
937
|
+
[data-ui-combobox] [data-part-indicator] {
|
|
913
938
|
--slotted-icon-size: var(--_content-icon-size);
|
|
914
939
|
|
|
915
940
|
align-items: center;
|
|
@@ -924,13 +949,13 @@
|
|
|
924
949
|
transition: opacity var(--slotted-duration-short) var(--slotted-easing-standard);
|
|
925
950
|
}
|
|
926
951
|
|
|
927
|
-
[data-ui
|
|
952
|
+
[data-ui-combobox] [data-part-item][data-selected] > [data-part-indicator] {
|
|
928
953
|
opacity: 1;
|
|
929
954
|
}
|
|
930
955
|
|
|
931
956
|
/* ── Separator, empty, status ─────────────────────────────────────────── */
|
|
932
957
|
|
|
933
|
-
[data-ui
|
|
958
|
+
[data-ui-combobox] [data-part-separator] {
|
|
934
959
|
background-color: var(--slotted-combobox-separator-color, var(--_border-color));
|
|
935
960
|
block-size: var(--_border-width);
|
|
936
961
|
border: 0;
|
|
@@ -945,7 +970,7 @@
|
|
|
945
970
|
* when the results land — which is the gap none of the surveyed
|
|
946
971
|
* implementations closes.
|
|
947
972
|
*/
|
|
948
|
-
[data-ui
|
|
973
|
+
[data-ui-combobox] :is([data-part-empty], [data-part-status]) {
|
|
949
974
|
color: var(--_muted);
|
|
950
975
|
/**
|
|
951
976
|
* Its own bidi run, ordered by its own content. "3 results" is a European
|
|
@@ -978,7 +1003,7 @@
|
|
|
978
1003
|
* often present with nothing to draw. A row with no text takes no space, and
|
|
979
1004
|
* a row with text takes the same space as the empty message beside it.
|
|
980
1005
|
*/
|
|
981
|
-
[data-ui
|
|
1006
|
+
[data-ui-combobox] [data-part-status]:empty {
|
|
982
1007
|
display: none;
|
|
983
1008
|
}
|
|
984
1009
|
|
|
@@ -991,7 +1016,7 @@
|
|
|
991
1016
|
* about how a placeholder is painted — and they are hidden from assistive
|
|
992
1017
|
* technology, because the `status` row beside them is the live region.
|
|
993
1018
|
*/
|
|
994
|
-
[data-ui
|
|
1019
|
+
[data-ui-combobox] [data-part-placeholder] {
|
|
995
1020
|
display: grid;
|
|
996
1021
|
/* The surface is a grid of option columns; the rows span all of them, as
|
|
997
1022
|
the status and empty rows do. */
|
|
@@ -1000,23 +1025,23 @@
|
|
|
1000
1025
|
padding-inline: var(--_item-inset);
|
|
1001
1026
|
}
|
|
1002
1027
|
|
|
1003
|
-
[data-ui
|
|
1028
|
+
[data-ui-combobox] [data-part-placeholder] > * {
|
|
1004
1029
|
align-items: center;
|
|
1005
1030
|
display: flex;
|
|
1006
1031
|
min-block-size: var(--_item-height);
|
|
1007
1032
|
}
|
|
1008
1033
|
|
|
1009
|
-
[data-ui
|
|
1034
|
+
[data-ui-combobox] [data-part-placeholder] > [data-ui-skeleton] {
|
|
1010
1035
|
align-self: center;
|
|
1011
1036
|
}
|
|
1012
1037
|
|
|
1013
1038
|
/* Three ragged widths: three identical bars read as a table, and a list of
|
|
1014
1039
|
labels is ragged. */
|
|
1015
|
-
[data-ui
|
|
1040
|
+
[data-ui-combobox] [data-part-placeholder] > :nth-child(2) [data-ui-skeleton] {
|
|
1016
1041
|
inline-size: 78%;
|
|
1017
1042
|
}
|
|
1018
1043
|
|
|
1019
|
-
[data-ui
|
|
1044
|
+
[data-ui-combobox] [data-part-placeholder] > :nth-child(3) [data-ui-skeleton] {
|
|
1020
1045
|
inline-size: 56%;
|
|
1021
1046
|
}
|
|
1022
1047
|
|
|
@@ -1027,20 +1052,20 @@
|
|
|
1027
1052
|
* many for one wait (SL6/CB5).
|
|
1028
1053
|
*/
|
|
1029
1054
|
|
|
1030
|
-
[data-ui
|
|
1055
|
+
[data-ui-combobox] > [data-part-content][data-loading] {
|
|
1031
1056
|
cursor: progress;
|
|
1032
1057
|
}
|
|
1033
1058
|
|
|
1034
1059
|
/* ── Forced colours ───────────────────────────────────────────────────── */
|
|
1035
1060
|
|
|
1036
1061
|
@media (forced-colors: active) {
|
|
1037
|
-
[data-ui
|
|
1062
|
+
[data-ui-combobox] [data-part-item][data-current] {
|
|
1038
1063
|
background-color: Highlight;
|
|
1039
1064
|
color: HighlightText;
|
|
1040
1065
|
forced-color-adjust: none;
|
|
1041
1066
|
}
|
|
1042
1067
|
|
|
1043
|
-
[data-ui
|
|
1068
|
+
[data-ui-combobox] [data-part-item][data-disabled][data-current] {
|
|
1044
1069
|
background-color: Highlight;
|
|
1045
1070
|
color: GrayText;
|
|
1046
1071
|
}
|