@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
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
* The layer, the scrim, the motion of arriving and leaving, the focus
|
|
24
24
|
* containment and the Escape that closes are `dialog`'s: the panel stands
|
|
25
25
|
* inside a dialog whose surface is `plain`, and `identity.test.mjs` keeps
|
|
26
|
-
* this sheet off `[data-ui
|
|
26
|
+
* this sheet off `[data-ui-dialog]`. The keys in an item's shortcut and in
|
|
27
27
|
* the footer's hints are `kbd`'s, worn as `data-ui='kbd'` under this family's
|
|
28
28
|
* own `shortcut` and `hint` parts, so every selector on those two parts is a
|
|
29
29
|
* child selector and never reaches the caps inside them. The mark on the
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
* down. Only the panel's own radius and the list's inset come off the space
|
|
58
58
|
* and radius scales.
|
|
59
59
|
*/
|
|
60
|
-
[data-ui
|
|
60
|
+
[data-ui-command-palette] {
|
|
61
61
|
--_surface: var(--slotted-command-palette-surface, var(--slotted-surface-raised, #ffffff));
|
|
62
62
|
--_text: var(--slotted-command-palette-text, var(--slotted-text, #0f172a));
|
|
63
63
|
--_muted: var(--slotted-command-palette-text-muted, var(--slotted-text-muted, #5b6b7f));
|
|
@@ -135,9 +135,28 @@
|
|
|
135
135
|
overflow: clip;
|
|
136
136
|
}
|
|
137
137
|
|
|
138
|
+
/**
|
|
139
|
+
* A theme draws the panel as a material with this filter beside a surface
|
|
140
|
+
* with alpha: `--slotted-command-palette-backdrop-filter`, `none` unless set.
|
|
141
|
+
* The root is the one layer that paints a ground under either presentation.
|
|
142
|
+
* A reader who asked for less transparency gets no filter, and under forced
|
|
143
|
+
* colours the ground is the system's.
|
|
144
|
+
*/
|
|
145
|
+
[data-ui-command-palette] {
|
|
146
|
+
-webkit-backdrop-filter: var(--slotted-command-palette-backdrop-filter, none);
|
|
147
|
+
backdrop-filter: var(--slotted-command-palette-backdrop-filter, none);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
@media (prefers-reduced-transparency: reduce), (forced-colors: active) {
|
|
151
|
+
[data-ui-command-palette] {
|
|
152
|
+
-webkit-backdrop-filter: none;
|
|
153
|
+
backdrop-filter: none;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
138
157
|
/* ── Size ─────────────────────────────────────────────────────────────── */
|
|
139
158
|
|
|
140
|
-
[data-ui
|
|
159
|
+
[data-ui-command-palette][data-size='sm'] {
|
|
141
160
|
--_item-height: var(--slotted-control-height-sm, 30px);
|
|
142
161
|
--_item-inset: var(--slotted-control-padding-inline-sm, 10px);
|
|
143
162
|
--_font-size: var(--slotted-control-font-size-sm, 12px);
|
|
@@ -150,7 +169,7 @@
|
|
|
150
169
|
--_chip-size: var(--slotted-control-inner-size-sm, 22px);
|
|
151
170
|
}
|
|
152
171
|
|
|
153
|
-
[data-ui
|
|
172
|
+
[data-ui-command-palette][data-size='lg'] {
|
|
154
173
|
--_item-height: var(--slotted-control-height-lg, 38px);
|
|
155
174
|
--_item-inset: var(--slotted-control-padding-inline-lg, 16px);
|
|
156
175
|
--_font-size: var(--slotted-control-font-size-lg, 14px);
|
|
@@ -172,7 +191,7 @@
|
|
|
172
191
|
* something else — so it draws no edge and no ground of its own, and the
|
|
173
192
|
* rule under the header is the one line between the field and the list.
|
|
174
193
|
*/
|
|
175
|
-
[data-ui
|
|
194
|
+
[data-ui-command-palette] > [data-part-header] {
|
|
176
195
|
align-items: center;
|
|
177
196
|
border-block-end: var(--_border-width) solid var(--_border-color);
|
|
178
197
|
box-sizing: border-box;
|
|
@@ -194,8 +213,7 @@
|
|
|
194
213
|
* a bottom edge: `state-rail.test.mjs` (R1) refuses a state rail on the
|
|
195
214
|
* start or the top edge, and this is neither.
|
|
196
215
|
*/
|
|
197
|
-
[data-ui
|
|
198
|
-
> [data-part='header']:has(> [data-part='input']:focus-visible)::after {
|
|
216
|
+
[data-ui-command-palette] > [data-part-header]:has(> [data-part-input]:focus-visible)::after {
|
|
199
217
|
background-color: var(--slotted-focus-ring-color, currentColor);
|
|
200
218
|
block-size: var(--slotted-focus-ring-width, 2px);
|
|
201
219
|
content: '';
|
|
@@ -205,7 +223,7 @@
|
|
|
205
223
|
position: absolute;
|
|
206
224
|
}
|
|
207
225
|
|
|
208
|
-
[data-ui
|
|
226
|
+
[data-ui-command-palette] :is([data-part-search], [data-part-busy]) {
|
|
209
227
|
color: var(--_muted);
|
|
210
228
|
flex: none;
|
|
211
229
|
}
|
|
@@ -215,7 +233,7 @@
|
|
|
215
233
|
* icon box at the header's icon size so it sits on the field's line; a
|
|
216
234
|
* character is never an icon.
|
|
217
235
|
*/
|
|
218
|
-
[data-ui
|
|
236
|
+
[data-ui-command-palette] [data-part-search] {
|
|
219
237
|
--slotted-icon-size: var(--_header-icon-size);
|
|
220
238
|
|
|
221
239
|
display: flex;
|
|
@@ -226,7 +244,7 @@
|
|
|
226
244
|
* `spinner/spinner.css`'s, worn as `data-ui='spinner'` beside this family's
|
|
227
245
|
* part, and this family only says where it stands and how big it is.
|
|
228
246
|
*/
|
|
229
|
-
[data-ui
|
|
247
|
+
[data-ui-command-palette] [data-part-busy] {
|
|
230
248
|
--slotted-spinner-size: var(--_header-icon-size);
|
|
231
249
|
}
|
|
232
250
|
|
|
@@ -237,7 +255,7 @@
|
|
|
237
255
|
* Each is a control that returns to its page; the last one is where the
|
|
238
256
|
* reader is and reads as the field's own prefix.
|
|
239
257
|
*/
|
|
240
|
-
[data-ui
|
|
258
|
+
[data-ui-command-palette] [data-part-pages] {
|
|
241
259
|
align-items: center;
|
|
242
260
|
display: flex;
|
|
243
261
|
flex: none;
|
|
@@ -249,11 +267,11 @@
|
|
|
249
267
|
padding: 0;
|
|
250
268
|
}
|
|
251
269
|
|
|
252
|
-
[data-ui
|
|
270
|
+
[data-ui-command-palette] [data-part-pages] > li {
|
|
253
271
|
display: contents;
|
|
254
272
|
}
|
|
255
273
|
|
|
256
|
-
[data-ui
|
|
274
|
+
[data-ui-command-palette] [data-part-page] {
|
|
257
275
|
align-items: center;
|
|
258
276
|
appearance: none;
|
|
259
277
|
background-color: var(--slotted-command-palette-page-surface, var(--_hover));
|
|
@@ -284,32 +302,32 @@
|
|
|
284
302
|
white-space: nowrap;
|
|
285
303
|
}
|
|
286
304
|
|
|
287
|
-
[data-ui
|
|
305
|
+
[data-ui-command-palette] [data-part-page] > span {
|
|
288
306
|
overflow: hidden;
|
|
289
307
|
text-overflow: ellipsis;
|
|
290
308
|
}
|
|
291
309
|
|
|
292
310
|
/* A chip inside the header is shorter than the target minimum at every
|
|
293
311
|
density; the hit area is recovered outside its paint. */
|
|
294
|
-
[data-ui
|
|
312
|
+
[data-ui-command-palette] [data-part-page]::after {
|
|
295
313
|
content: '';
|
|
296
314
|
inset: min(0px, calc((100% - var(--slotted-target-min, 24px)) / 2));
|
|
297
315
|
position: absolute;
|
|
298
316
|
}
|
|
299
317
|
|
|
300
|
-
[data-ui
|
|
318
|
+
[data-ui-command-palette] [data-part-page]:not(:disabled):hover {
|
|
301
319
|
background-color: var(--_active);
|
|
302
320
|
color: var(--_text);
|
|
303
321
|
}
|
|
304
322
|
|
|
305
|
-
[data-ui
|
|
323
|
+
[data-ui-command-palette] [data-part-page]:not(:disabled):active {
|
|
306
324
|
background-color: var(--_active);
|
|
307
325
|
}
|
|
308
326
|
|
|
309
327
|
/* Drawn one width inside the chip, as a chip in a scrolling row draws it:
|
|
310
328
|
the header clips at its padding edge and a ring at the theme's offset
|
|
311
329
|
would lose its outer half. */
|
|
312
|
-
[data-ui
|
|
330
|
+
[data-ui-command-palette] [data-part-page]:focus-visible {
|
|
313
331
|
outline: var(--slotted-focus-ring-width, 2px) solid
|
|
314
332
|
var(--slotted-focus-ring-color, currentColor);
|
|
315
333
|
outline-offset: calc(-1 * var(--slotted-focus-ring-width, 2px));
|
|
@@ -321,7 +339,7 @@
|
|
|
321
339
|
* right-to-left document so the trail reads in the direction the reader
|
|
322
340
|
* reads.
|
|
323
341
|
*/
|
|
324
|
-
[data-ui
|
|
342
|
+
[data-ui-command-palette] [data-part-pages] > li > [data-ui-icon] {
|
|
325
343
|
--slotted-icon-size: var(--_icon-size);
|
|
326
344
|
|
|
327
345
|
color: var(--_muted);
|
|
@@ -330,7 +348,7 @@
|
|
|
330
348
|
|
|
331
349
|
/* ── The field ────────────────────────────────────────────────────────── */
|
|
332
350
|
|
|
333
|
-
[data-ui
|
|
351
|
+
[data-ui-command-palette] [data-part-input] {
|
|
334
352
|
appearance: none;
|
|
335
353
|
background: transparent;
|
|
336
354
|
block-size: 100%;
|
|
@@ -349,7 +367,7 @@
|
|
|
349
367
|
padding: 0;
|
|
350
368
|
}
|
|
351
369
|
|
|
352
|
-
[data-ui
|
|
370
|
+
[data-ui-command-palette] [data-part-input]::placeholder {
|
|
353
371
|
color: var(--_muted);
|
|
354
372
|
opacity: 1;
|
|
355
373
|
}
|
|
@@ -362,7 +380,7 @@
|
|
|
362
380
|
* or not — measured on the Nexora palette at 390 pixels. Only while the
|
|
363
381
|
* placeholder shows: what the reader types is never faded under the caret.
|
|
364
382
|
*/
|
|
365
|
-
[data-ui
|
|
383
|
+
[data-ui-command-palette] [data-part-input]:placeholder-shown {
|
|
366
384
|
mask-image: linear-gradient(
|
|
367
385
|
to right,
|
|
368
386
|
#000 calc(100% - var(--slotted-command-palette-placeholder-fade, 2em)),
|
|
@@ -372,8 +390,8 @@
|
|
|
372
390
|
|
|
373
391
|
/* The browser's own clear and its search decoration, which the family
|
|
374
392
|
draws itself so the two schemes and the three densities agree. */
|
|
375
|
-
[data-ui
|
|
376
|
-
[data-ui
|
|
393
|
+
[data-ui-command-palette] [data-part-input]::-webkit-search-cancel-button,
|
|
394
|
+
[data-ui-command-palette] [data-part-input]::-webkit-search-decoration {
|
|
377
395
|
appearance: none;
|
|
378
396
|
}
|
|
379
397
|
|
|
@@ -384,7 +402,7 @@
|
|
|
384
402
|
* because Escape already clears and a second stop before the list is a
|
|
385
403
|
* stop nobody asked for.
|
|
386
404
|
*/
|
|
387
|
-
[data-ui
|
|
405
|
+
[data-ui-command-palette] > [data-part-header] > [data-part-clear] {
|
|
388
406
|
--_clear-size: min(
|
|
389
407
|
calc(var(--_icon-size) + 2 * var(--slotted-space-2, 0.25rem)),
|
|
390
408
|
var(--slotted-control-inner-size-md, 24px)
|
|
@@ -412,7 +430,7 @@
|
|
|
412
430
|
var(--slotted-control-transition-easing, var(--slotted-easing-standard));
|
|
413
431
|
}
|
|
414
432
|
|
|
415
|
-
[data-ui
|
|
433
|
+
[data-ui-command-palette] > [data-part-header] > [data-part-clear]::after {
|
|
416
434
|
content: '';
|
|
417
435
|
inset: min(0px, calc((100% - var(--slotted-target-min, 24px)) / 2));
|
|
418
436
|
position: absolute;
|
|
@@ -423,27 +441,27 @@
|
|
|
423
441
|
the hit area above grows to 44 pixels around them. It does not reach
|
|
424
442
|
across the close control after it. */
|
|
425
443
|
@media (pointer: coarse) {
|
|
426
|
-
[data-ui
|
|
444
|
+
[data-ui-command-palette] > [data-part-header] > [data-part-clear]::after {
|
|
427
445
|
inset: min(0px, calc((100% - var(--slotted-target-comfortable, 44px)) / 2));
|
|
428
446
|
}
|
|
429
447
|
|
|
430
|
-
[data-ui
|
|
431
|
-
> [data-part
|
|
432
|
-
> [data-part
|
|
448
|
+
[data-ui-command-palette]
|
|
449
|
+
> [data-part-header]
|
|
450
|
+
> [data-part-clear]:has(+ [data-part-close])::after {
|
|
433
451
|
inset-inline-end: 0;
|
|
434
452
|
}
|
|
435
453
|
}
|
|
436
454
|
|
|
437
|
-
[data-ui
|
|
455
|
+
[data-ui-command-palette] > [data-part-header] > [data-part-clear]:not(:disabled):hover {
|
|
438
456
|
background-color: var(--_hover);
|
|
439
457
|
color: var(--_text);
|
|
440
458
|
}
|
|
441
459
|
|
|
442
|
-
[data-ui
|
|
460
|
+
[data-ui-command-palette] > [data-part-header] > [data-part-clear]:not(:disabled):active {
|
|
443
461
|
background-color: var(--_active);
|
|
444
462
|
}
|
|
445
463
|
|
|
446
|
-
[data-ui
|
|
464
|
+
[data-ui-command-palette] > [data-part-header] > [data-part-clear]:focus-visible {
|
|
447
465
|
outline: var(--slotted-focus-ring-width, 2px) solid
|
|
448
466
|
var(--slotted-focus-ring-color, currentColor);
|
|
449
467
|
outline-offset: calc(-1 * var(--slotted-focus-ring-width, 2px));
|
|
@@ -451,7 +469,7 @@
|
|
|
451
469
|
|
|
452
470
|
/* Present in the DOM whenever the family renders it, drawn only with a
|
|
453
471
|
query: a clear beside an empty field is a control with nothing to do. */
|
|
454
|
-
[data-ui
|
|
472
|
+
[data-ui-command-palette]:not([data-query]) > [data-part-header] > [data-part-clear] {
|
|
455
473
|
display: none;
|
|
456
474
|
}
|
|
457
475
|
|
|
@@ -463,7 +481,7 @@
|
|
|
463
481
|
* beside a search field reads as clear, which is what `clear` already is.
|
|
464
482
|
* Drawn only under the dialog's own full-screen query, below.
|
|
465
483
|
*/
|
|
466
|
-
[data-ui
|
|
484
|
+
[data-ui-command-palette] > [data-part-header] > [data-part-close] {
|
|
467
485
|
align-items: center;
|
|
468
486
|
appearance: none;
|
|
469
487
|
background-color: transparent;
|
|
@@ -483,15 +501,15 @@
|
|
|
483
501
|
white-space: nowrap;
|
|
484
502
|
}
|
|
485
503
|
|
|
486
|
-
[data-ui
|
|
504
|
+
[data-ui-command-palette] > [data-part-header] > [data-part-close]:not(:disabled):hover {
|
|
487
505
|
background-color: var(--_hover);
|
|
488
506
|
}
|
|
489
507
|
|
|
490
|
-
[data-ui
|
|
508
|
+
[data-ui-command-palette] > [data-part-header] > [data-part-close]:not(:disabled):active {
|
|
491
509
|
background-color: var(--_active);
|
|
492
510
|
}
|
|
493
511
|
|
|
494
|
-
[data-ui
|
|
512
|
+
[data-ui-command-palette] > [data-part-header] > [data-part-close]:focus-visible {
|
|
495
513
|
outline: var(--slotted-focus-ring-width, 2px) solid
|
|
496
514
|
var(--slotted-focus-ring-color, currentColor);
|
|
497
515
|
outline-offset: calc(-1 * var(--slotted-focus-ring-width, 2px));
|
|
@@ -503,7 +521,7 @@
|
|
|
503
521
|
* Five columns, bounded, scrolling. `overscroll-behavior` keeps the page —
|
|
504
522
|
* or the popover — still once the list has scrolled to its end.
|
|
505
523
|
*/
|
|
506
|
-
[data-ui
|
|
524
|
+
[data-ui-command-palette] > [data-part-list] {
|
|
507
525
|
box-sizing: border-box;
|
|
508
526
|
display: grid;
|
|
509
527
|
grid-template-columns: auto minmax(0, 1fr) auto auto auto;
|
|
@@ -517,19 +535,19 @@
|
|
|
517
535
|
scroll-padding-block: var(--_list-inset);
|
|
518
536
|
}
|
|
519
537
|
|
|
520
|
-
[data-ui
|
|
538
|
+
[data-ui-command-palette] > [data-part-list][data-loading] {
|
|
521
539
|
cursor: progress;
|
|
522
540
|
}
|
|
523
541
|
|
|
524
542
|
/* ── Groups ───────────────────────────────────────────────────────────── */
|
|
525
543
|
|
|
526
|
-
[data-ui
|
|
544
|
+
[data-ui-command-palette] [data-part-group] {
|
|
527
545
|
display: grid;
|
|
528
546
|
grid-column: 1 / -1;
|
|
529
547
|
grid-template-columns: subgrid;
|
|
530
548
|
}
|
|
531
549
|
|
|
532
|
-
[data-ui
|
|
550
|
+
[data-ui-command-palette] [data-part-group-label] {
|
|
533
551
|
color: var(--_muted);
|
|
534
552
|
font-size: var(--_secondary-font-size);
|
|
535
553
|
font-weight: var(--slotted-font-weight-semibold, 600);
|
|
@@ -548,7 +566,7 @@
|
|
|
548
566
|
* `min-block-size` rather than a height, because an item with a description
|
|
549
567
|
* is two lines tall and still has to clear the target minimum.
|
|
550
568
|
*/
|
|
551
|
-
[data-ui
|
|
569
|
+
[data-ui-command-palette] [data-part-item] {
|
|
552
570
|
align-content: center;
|
|
553
571
|
border-radius: var(--_item-radius);
|
|
554
572
|
box-sizing: border-box;
|
|
@@ -582,11 +600,11 @@
|
|
|
582
600
|
* moves; the two are told apart so a reader who arrowed to one row while the
|
|
583
601
|
* pointer rests on another reads exactly one cursor.
|
|
584
602
|
*/
|
|
585
|
-
[data-ui
|
|
603
|
+
[data-ui-command-palette] [data-part-item]:not([data-disabled]):not([data-current]):hover {
|
|
586
604
|
background-color: var(--_hover);
|
|
587
605
|
}
|
|
588
606
|
|
|
589
|
-
[data-ui
|
|
607
|
+
[data-ui-command-palette] [data-part-item]:not([data-disabled]):not([data-current]):active {
|
|
590
608
|
background-color: var(--_active);
|
|
591
609
|
}
|
|
592
610
|
|
|
@@ -597,13 +615,13 @@
|
|
|
597
615
|
* of row is a reading, not a movement, and a transition lags behind a reader
|
|
598
616
|
* holding ArrowDown.
|
|
599
617
|
*/
|
|
600
|
-
[data-ui
|
|
618
|
+
[data-ui-command-palette] [data-part-item][data-current] {
|
|
601
619
|
background-color: var(--_highlight);
|
|
602
620
|
box-shadow: inset 0 0 0 var(--slotted-border-width-thin, 1px) var(--_highlight-ring);
|
|
603
621
|
transition: none;
|
|
604
622
|
}
|
|
605
623
|
|
|
606
|
-
[data-ui
|
|
624
|
+
[data-ui-command-palette] [data-part-item][data-current]:not([data-disabled]):active {
|
|
607
625
|
background-color: var(--_active);
|
|
608
626
|
}
|
|
609
627
|
|
|
@@ -612,7 +630,7 @@
|
|
|
612
630
|
* current — `moveIndex` skips it and the pointer does not highlight it. The
|
|
613
631
|
* hand goes, because there is nothing to press.
|
|
614
632
|
*/
|
|
615
|
-
[data-ui
|
|
633
|
+
[data-ui-command-palette] [data-part-item][data-disabled] {
|
|
616
634
|
color: var(--slotted-disabled-foreground, #64748b);
|
|
617
635
|
cursor: not-allowed;
|
|
618
636
|
}
|
|
@@ -620,11 +638,11 @@
|
|
|
620
638
|
/* A handler that has not answered yet: the cursor says so, and the ring
|
|
621
639
|
`spinner` draws stands in the last column, where the arrow of a page
|
|
622
640
|
item stands, sized to the row's own glyph. */
|
|
623
|
-
[data-ui
|
|
641
|
+
[data-ui-command-palette] [data-part-item][data-loading] {
|
|
624
642
|
cursor: progress;
|
|
625
643
|
}
|
|
626
644
|
|
|
627
|
-
[data-ui
|
|
645
|
+
[data-ui-command-palette] [data-part-item] > [data-part-busy] {
|
|
628
646
|
--slotted-spinner-size: var(--_icon-size);
|
|
629
647
|
|
|
630
648
|
color: var(--_muted);
|
|
@@ -648,7 +666,7 @@
|
|
|
648
666
|
* the child and not on the box, because the box's `1lh` reads the item's
|
|
649
667
|
* line box.
|
|
650
668
|
*/
|
|
651
|
-
[data-ui
|
|
669
|
+
[data-ui-command-palette] [data-part-icon] {
|
|
652
670
|
--slotted-icon-size: var(--_icon-size);
|
|
653
671
|
|
|
654
672
|
align-items: center;
|
|
@@ -665,7 +683,7 @@
|
|
|
665
683
|
margin-inline-end: calc(var(--_column-gap) + var(--slotted-space-2, 0.25rem));
|
|
666
684
|
}
|
|
667
685
|
|
|
668
|
-
[data-ui
|
|
686
|
+
[data-ui-command-palette] [data-part-icon]:not(:empty) > * {
|
|
669
687
|
block-size: var(--_icon-size);
|
|
670
688
|
font-size: var(--_icon-size);
|
|
671
689
|
inline-size: var(--_icon-size);
|
|
@@ -677,7 +695,7 @@
|
|
|
677
695
|
* is three rows pretending to be one. The whole text is on the item's
|
|
678
696
|
* `title` and reachable by the reader, so nothing leaves the DOM.
|
|
679
697
|
*/
|
|
680
|
-
[data-ui
|
|
698
|
+
[data-ui-command-palette] [data-part-label] {
|
|
681
699
|
grid-column: 2;
|
|
682
700
|
grid-row: 1;
|
|
683
701
|
min-inline-size: 0;
|
|
@@ -686,7 +704,7 @@
|
|
|
686
704
|
white-space: nowrap;
|
|
687
705
|
}
|
|
688
706
|
|
|
689
|
-
[data-ui
|
|
707
|
+
[data-ui-command-palette] [data-part-description] {
|
|
690
708
|
color: var(--_muted);
|
|
691
709
|
font-size: var(--_secondary-font-size);
|
|
692
710
|
grid-column: 2;
|
|
@@ -698,7 +716,7 @@
|
|
|
698
716
|
white-space: nowrap;
|
|
699
717
|
}
|
|
700
718
|
|
|
701
|
-
[data-ui
|
|
719
|
+
[data-ui-command-palette] [data-part-item][data-disabled] > [data-part-description] {
|
|
702
720
|
color: inherit;
|
|
703
721
|
}
|
|
704
722
|
|
|
@@ -709,14 +727,14 @@
|
|
|
709
727
|
* label's line box stretched that row, and the description under it dropped
|
|
710
728
|
* by the difference — a gap that opened only on rows with a binding.
|
|
711
729
|
*/
|
|
712
|
-
[data-ui
|
|
713
|
-
[data-part
|
|
714
|
-
> :is([data-part
|
|
730
|
+
[data-ui-command-palette]
|
|
731
|
+
[data-part-item]
|
|
732
|
+
> :is([data-part-meta], [data-part-shortcut], [data-part-arrow], [data-part-busy]) {
|
|
715
733
|
align-self: center;
|
|
716
734
|
grid-row: 1 / -1;
|
|
717
735
|
}
|
|
718
736
|
|
|
719
|
-
[data-ui
|
|
737
|
+
[data-ui-command-palette] [data-part-meta] {
|
|
720
738
|
color: var(--_muted);
|
|
721
739
|
font-size: var(--_secondary-font-size);
|
|
722
740
|
grid-column: 3;
|
|
@@ -728,9 +746,7 @@
|
|
|
728
746
|
/* A word on a row with no binding takes the binding's column too, so it
|
|
729
747
|
ends where the bindings on the rows around it end rather than a column
|
|
730
748
|
short of them. */
|
|
731
|
-
[data-ui
|
|
732
|
-
[data-part='item']:not(:has(> [data-part='shortcut']))
|
|
733
|
-
> [data-part='meta'] {
|
|
749
|
+
[data-ui-command-palette] [data-part-item]:not(:has(> [data-part-shortcut])) > [data-part-meta] {
|
|
734
750
|
grid-column: 3 / 5;
|
|
735
751
|
}
|
|
736
752
|
|
|
@@ -739,7 +755,7 @@
|
|
|
739
755
|
* rule places the column and states its ink; every selector stops at the
|
|
740
756
|
* part and never reaches the caps.
|
|
741
757
|
*/
|
|
742
|
-
[data-ui
|
|
758
|
+
[data-ui-command-palette] [data-part-item] > [data-part-shortcut] {
|
|
743
759
|
align-items: center;
|
|
744
760
|
color: var(--_muted);
|
|
745
761
|
display: inline-flex;
|
|
@@ -757,9 +773,9 @@
|
|
|
757
773
|
white-space: nowrap;
|
|
758
774
|
}
|
|
759
775
|
|
|
760
|
-
[data-ui
|
|
761
|
-
[data-part
|
|
762
|
-
> :is([data-part
|
|
776
|
+
[data-ui-command-palette]
|
|
777
|
+
[data-part-item][data-disabled]
|
|
778
|
+
> :is([data-part-meta], [data-part-shortcut]) {
|
|
763
779
|
color: inherit;
|
|
764
780
|
}
|
|
765
781
|
|
|
@@ -769,7 +785,7 @@
|
|
|
769
785
|
* glyph in a `directional` icon box, which mirrors in a right-to-left
|
|
770
786
|
* document; the column is one line box tall and centres it.
|
|
771
787
|
*/
|
|
772
|
-
[data-ui
|
|
788
|
+
[data-ui-command-palette] [data-part-arrow] {
|
|
773
789
|
--slotted-icon-size: var(--_icon-size);
|
|
774
790
|
|
|
775
791
|
align-items: center;
|
|
@@ -790,7 +806,7 @@
|
|
|
790
806
|
* painted them as one-pixel rules — the bar over the word, and the word
|
|
791
807
|
* itself pushed out of a box one pixel tall.
|
|
792
808
|
*/
|
|
793
|
-
[data-ui
|
|
809
|
+
[data-ui-command-palette] > [data-part-list] [data-part-separator]:not([data-separator]) {
|
|
794
810
|
background-color: var(--slotted-command-palette-separator-color, var(--_border-color));
|
|
795
811
|
block-size: var(--_border-width);
|
|
796
812
|
border: 0;
|
|
@@ -799,7 +815,7 @@
|
|
|
799
815
|
margin-inline: 0;
|
|
800
816
|
}
|
|
801
817
|
|
|
802
|
-
[data-ui
|
|
818
|
+
[data-ui-command-palette] [data-part-empty] {
|
|
803
819
|
color: var(--_muted);
|
|
804
820
|
grid-column: 1 / -1;
|
|
805
821
|
padding-block: var(--slotted-space-8, 1.5rem);
|
|
@@ -814,7 +830,7 @@
|
|
|
814
830
|
* what the reader is looking at. The clip is the visually-hidden idiom, kept
|
|
815
831
|
* in the DOM so `role="status"` has something to announce from.
|
|
816
832
|
*/
|
|
817
|
-
[data-ui
|
|
833
|
+
[data-ui-command-palette] > [data-part-status] {
|
|
818
834
|
block-size: 1px;
|
|
819
835
|
clip-path: inset(50%);
|
|
820
836
|
inline-size: 1px;
|
|
@@ -829,24 +845,24 @@
|
|
|
829
845
|
* of an item, `combobox`'s decision for `combobox`'s reasons. The bars are
|
|
830
846
|
* `skeleton/skeleton.css`'s; this family places them.
|
|
831
847
|
*/
|
|
832
|
-
[data-ui
|
|
848
|
+
[data-ui-command-palette] [data-part-placeholder] {
|
|
833
849
|
display: grid;
|
|
834
850
|
grid-column: 1 / -1;
|
|
835
851
|
padding-block: var(--slotted-space-2, 0.25rem);
|
|
836
852
|
padding-inline: var(--_item-inset);
|
|
837
853
|
}
|
|
838
854
|
|
|
839
|
-
[data-ui
|
|
855
|
+
[data-ui-command-palette] [data-part-placeholder] > * {
|
|
840
856
|
align-items: center;
|
|
841
857
|
display: flex;
|
|
842
858
|
min-block-size: var(--_item-height);
|
|
843
859
|
}
|
|
844
860
|
|
|
845
|
-
[data-ui
|
|
861
|
+
[data-ui-command-palette] [data-part-placeholder] > :nth-child(2) [data-ui-skeleton] {
|
|
846
862
|
inline-size: 78%;
|
|
847
863
|
}
|
|
848
864
|
|
|
849
|
-
[data-ui
|
|
865
|
+
[data-ui-command-palette] [data-part-placeholder] > :nth-child(3) [data-ui-skeleton] {
|
|
850
866
|
inline-size: 56%;
|
|
851
867
|
}
|
|
852
868
|
|
|
@@ -857,7 +873,7 @@
|
|
|
857
873
|
* `kbd`'s in its `plain` variant at the small step; the words beside them
|
|
858
874
|
* are this family's, one step quieter than the list.
|
|
859
875
|
*/
|
|
860
|
-
[data-ui
|
|
876
|
+
[data-ui-command-palette] > [data-part-footer] {
|
|
861
877
|
align-items: center;
|
|
862
878
|
background: var(
|
|
863
879
|
--slotted-command-palette-footer-surface,
|
|
@@ -876,7 +892,7 @@
|
|
|
876
892
|
padding-inline: var(--_header-inset);
|
|
877
893
|
}
|
|
878
894
|
|
|
879
|
-
[data-ui
|
|
895
|
+
[data-ui-command-palette] > [data-part-footer] > [data-part-hint] {
|
|
880
896
|
align-items: center;
|
|
881
897
|
display: inline-flex;
|
|
882
898
|
/* The caps read the footer's own size through `kbd` at `inherit`, a tenth
|
|
@@ -892,7 +908,7 @@
|
|
|
892
908
|
* because a line box of 1.4 is centred on its leading and not on its
|
|
893
909
|
* letters. `line-height: 1` centres the em box, which is where the word is.
|
|
894
910
|
*/
|
|
895
|
-
[data-ui
|
|
911
|
+
[data-ui-command-palette] > [data-part-footer] > [data-part-hint] > span:not([data-ui]) {
|
|
896
912
|
font-size: var(--slotted-font-size-xs, 0.75rem);
|
|
897
913
|
line-height: 1;
|
|
898
914
|
}
|
|
@@ -905,15 +921,15 @@
|
|
|
905
921
|
* third of the header so the field is never squeezed to nothing.
|
|
906
922
|
*/
|
|
907
923
|
@container command-palette (max-width: 360px) {
|
|
908
|
-
[data-ui
|
|
924
|
+
[data-ui-command-palette] :is([data-part-description], [data-part-meta]) {
|
|
909
925
|
display: none;
|
|
910
926
|
}
|
|
911
927
|
|
|
912
|
-
[data-ui
|
|
928
|
+
[data-ui-command-palette] [data-part-pages] {
|
|
913
929
|
max-inline-size: 33%;
|
|
914
930
|
}
|
|
915
931
|
|
|
916
|
-
[data-ui
|
|
932
|
+
[data-ui-command-palette] > [data-part-footer] {
|
|
917
933
|
gap: var(--slotted-space-4, 0.5rem);
|
|
918
934
|
}
|
|
919
935
|
}
|
|
@@ -925,13 +941,13 @@
|
|
|
925
941
|
* edge is this panel's. The panel is asked the same question the dialog
|
|
926
942
|
* asked, of the dialog's own named container, so the two answer together:
|
|
927
943
|
* the corner, the side edges and the lift go, and the list takes the rest
|
|
928
|
-
* of the screen. Written here rather than on `[data-ui
|
|
944
|
+
* of the screen. Written here rather than on `[data-ui-dialog]` because
|
|
929
945
|
* `identity.test.mjs` keeps this sheet off another family's identifier;
|
|
930
946
|
* the container name and the breakpoint are the dialog's, recorded in
|
|
931
947
|
* `dialog.css` beside its own query.
|
|
932
948
|
*/
|
|
933
949
|
@container slotted-dialog (max-inline-size: 30rem) {
|
|
934
|
-
[data-ui
|
|
950
|
+
[data-ui-command-palette][data-presentation='dialog'] {
|
|
935
951
|
--_list-max: none;
|
|
936
952
|
|
|
937
953
|
border-inline: 0;
|
|
@@ -948,9 +964,7 @@
|
|
|
948
964
|
}
|
|
949
965
|
|
|
950
966
|
/* No scrim to press: the word that closes stands at the end of the field. */
|
|
951
|
-
[data-ui
|
|
952
|
-
> [data-part='header']
|
|
953
|
-
> [data-part='close'] {
|
|
967
|
+
[data-ui-command-palette][data-presentation='dialog'] > [data-part-header] > [data-part-close] {
|
|
954
968
|
display: inline-flex;
|
|
955
969
|
}
|
|
956
970
|
}
|
|
@@ -961,7 +975,7 @@
|
|
|
961
975
|
* the reader can press; the list is scrolled and the rows are tapped.
|
|
962
976
|
*/
|
|
963
977
|
@media (hover: none) and (pointer: coarse) {
|
|
964
|
-
[data-ui
|
|
978
|
+
[data-ui-command-palette] > [data-part-footer] {
|
|
965
979
|
display: none;
|
|
966
980
|
}
|
|
967
981
|
}
|
|
@@ -974,13 +988,13 @@
|
|
|
974
988
|
* not decoration — would disappear.
|
|
975
989
|
*/
|
|
976
990
|
@media (forced-colors: active) {
|
|
977
|
-
[data-ui
|
|
991
|
+
[data-ui-command-palette] [data-part-item][data-current] {
|
|
978
992
|
background-color: Highlight;
|
|
979
993
|
color: HighlightText;
|
|
980
994
|
forced-color-adjust: none;
|
|
981
995
|
}
|
|
982
996
|
|
|
983
|
-
[data-ui
|
|
997
|
+
[data-ui-command-palette] [data-part-item][data-disabled][data-current] {
|
|
984
998
|
background-color: Highlight;
|
|
985
999
|
color: GrayText;
|
|
986
1000
|
}
|
|
@@ -992,8 +1006,7 @@
|
|
|
992
1006
|
* the host's ink the system has already forced. The glyphs are `Glyph`
|
|
993
1007
|
* elements drawn in `currentColor` and need nothing here.
|
|
994
1008
|
*/
|
|
995
|
-
[data-ui
|
|
996
|
-
> [data-part='header']:has(> [data-part='input']:focus-visible)::after {
|
|
1009
|
+
[data-ui-command-palette] > [data-part-header]:has(> [data-part-input]:focus-visible)::after {
|
|
997
1010
|
forced-color-adjust: none;
|
|
998
1011
|
}
|
|
999
1012
|
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
"--slotted-border-subtle",
|
|
3
3
|
"--slotted-border-width-thin",
|
|
4
4
|
"--slotted-command-palette-active",
|
|
5
|
+
"--slotted-command-palette-backdrop-filter",
|
|
5
6
|
"--slotted-command-palette-border-color",
|
|
6
7
|
"--slotted-command-palette-footer-surface",
|
|
7
8
|
"--slotted-command-palette-highlight",
|