@slotted/styles 0.1.0-beta.8 → 0.1.0-beta.9
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 +31 -32
- package/src/action-sheet/action-sheet.css +36 -36
- package/src/alert/alert.css +35 -35
- package/src/app-shell/app-shell.css +280 -299
- package/src/aspect-ratio/aspect-ratio.css +9 -9
- package/src/attachment/attachment.css +91 -99
- package/src/avatar/avatar.css +41 -41
- package/src/avatar-group/avatar-group.css +21 -22
- package/src/badge/badge.css +37 -37
- package/src/breadcrumb/breadcrumb.css +37 -37
- package/src/button/button.css +88 -69
- package/src/button-group/button-group.css +69 -73
- 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 +147 -151
- package/src/chart/chart.css +225 -240
- 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 +99 -101
- package/src/command-palette/command-palette.css +84 -90
- package/src/container/container.css +24 -24
- package/src/context-menu/context-menu.css +8 -8
- package/src/currency-field/currency-field.css +99 -104
- package/src/dashboard-grid/dashboard-grid.css +104 -107
- package/src/data-grid/data-grid.css +458 -456
- package/src/data-grid/data-grid.tokens.json +2 -0
- package/src/data-list/data-list.css +67 -69
- package/src/date-field/date-field.css +50 -50
- 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 +73 -78
- 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 +70 -70
- package/src/dialog/dialog.css +300 -148
- package/src/divider/divider.css +18 -18
- package/src/drawer/drawer.css +186 -209
- package/src/entity-picker/entity-picker.css +220 -239
- 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 +21 -24
- 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 +15 -15
- 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 +28 -28
- package/src/kbd/kbd.css +26 -26
- package/src/link/link.css +15 -15
- package/src/list/list.css +20 -20
- package/src/list-item/list-item.css +66 -66
- 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 +63 -65
- package/src/menubar/menubar.css +13 -13
- package/src/message/message.css +174 -202
- package/src/message-scroller/message-scroller.css +41 -42
- package/src/multi-select/multi-select.css +131 -137
- package/src/navigation-menu/navigation-menu.css +167 -188
- package/src/notification-center/notification-center.css +134 -148
- package/src/number-field/number-field.css +76 -81
- package/src/otp-input/otp-input.css +48 -48
- package/src/page/page.css +23 -23
- package/src/page-header/page-header.css +219 -280
- package/src/pagination/pagination.css +68 -72
- package/src/popover/popover.css +40 -49
- package/src/progress-indicator/progress-indicator.css +85 -90
- package/src/prompt-composer/prompt-composer.css +94 -99
- package/src/prose/prose.css +71 -75
- package/src/radio-group/radio-group.css +98 -103
- package/src/rating/rating.css +132 -132
- package/src/result-state/result-state.css +74 -77
- package/src/saved-views/saved-views.css +41 -47
- package/src/scroll-area/scroll-area.css +32 -35
- package/src/section/section.css +16 -16
- package/src/segmented-control/segmented-control.css +77 -79
- package/src/select/select.css +113 -115
- package/src/side-navigation/side-navigation.css +170 -180
- package/src/skeleton/skeleton.css +47 -48
- package/src/slider/slider.css +86 -88
- package/src/sparkline/sparkline.css +32 -32
- package/src/spinner/spinner.css +4 -4
- package/src/split-button/split-button.css +26 -31
- package/src/splitter/splitter.css +35 -35
- package/src/stack/stack.css +24 -24
- package/src/stat-card/stat-card.css +102 -103
- 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 +189 -198
- package/src/table-of-contents/table-of-contents.css +51 -54
- package/src/tabs/tabs.css +143 -162
- package/src/tag/tag.css +67 -71
- package/src/tags-input/tags-input.css +124 -74
- package/src/tags-input/tags-input.tokens.json +6 -1
- package/src/text-field/text-field.css +108 -126
- package/src/textarea/textarea.css +26 -26
- package/src/time-field/time-field.css +67 -67
- 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 +244 -266
- package/src/toast/toast.css +81 -90
- package/src/toggle/toggle.css +29 -33
- package/src/toggle-group/toggle-group.css +67 -71
- 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 +36 -36
- package/src/upload/upload.css +224 -224
- package/src/visually-hidden/visually-hidden.css +1 -1
- package/src/wizard/wizard.css +185 -197
package/src/drawer/drawer.css
CHANGED
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
* a drawer is the ordinary case, and a descendant rule would paint the inner
|
|
37
37
|
* panel with the outer panel's geometry.
|
|
38
38
|
*/
|
|
39
|
-
[data-ui
|
|
39
|
+
[data-ui-drawer] {
|
|
40
40
|
/**
|
|
41
41
|
* The panel's resting measure, per size step. Five named steps rather than
|
|
42
42
|
* the pixel string Ant and MUI both take: a theme retunes a step and cannot
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
/**
|
|
48
48
|
* What the panel actually measures. `--slotted-drawer-extent` is the one
|
|
49
49
|
* name for it, and it is read from two places: an application setting one
|
|
50
|
-
* measure for every drawer writes it on `[data-ui
|
|
50
|
+
* measure for every drawer writes it on `[data-ui-drawer]`, and the
|
|
51
51
|
* binding writes the length the reader dragged to as an inline custom
|
|
52
52
|
* property on this element. Both are lengths, so the cascade decides
|
|
53
53
|
* between them the way it decides everything else.
|
|
@@ -176,7 +176,7 @@
|
|
|
176
176
|
}
|
|
177
177
|
|
|
178
178
|
/** Leaving is shorter than arriving: a reader who has decided is waiting. */
|
|
179
|
-
[data-ui
|
|
179
|
+
[data-ui-drawer]:not([data-open]) {
|
|
180
180
|
--_slide: var(--slotted-duration-medium) var(--slotted-easing-exit);
|
|
181
181
|
--_move: var(--slotted-duration-medium) var(--slotted-easing-exit);
|
|
182
182
|
}
|
|
@@ -186,27 +186,27 @@
|
|
|
186
186
|
* every pointer position would lag the hand by the whole duration, and a
|
|
187
187
|
* bottom sheet the reader is pulling has to follow it.
|
|
188
188
|
*/
|
|
189
|
-
[data-ui
|
|
189
|
+
[data-ui-drawer][data-dragging] {
|
|
190
190
|
--_move: var(--slotted-duration-instant) var(--slotted-easing-standard);
|
|
191
191
|
}
|
|
192
192
|
|
|
193
|
-
[data-ui
|
|
193
|
+
[data-ui-drawer][data-size='sm'] {
|
|
194
194
|
--_step: var(--slotted-drawer-extent-sm, 18rem);
|
|
195
195
|
--_padding-inline: var(--slotted-space-6, 1rem);
|
|
196
196
|
}
|
|
197
197
|
|
|
198
|
-
[data-ui
|
|
198
|
+
[data-ui-drawer][data-size='lg'] {
|
|
199
199
|
--_step: var(--slotted-drawer-extent-lg, 30rem);
|
|
200
200
|
}
|
|
201
201
|
|
|
202
|
-
[data-ui
|
|
202
|
+
[data-ui-drawer][data-size='xl'] {
|
|
203
203
|
--_step: var(--slotted-drawer-extent-xl, 40rem);
|
|
204
204
|
--_padding-inline: var(--slotted-space-8, 1.5rem);
|
|
205
205
|
--_title-font-size: var(--slotted-font-size-xl, 1.125rem);
|
|
206
206
|
}
|
|
207
207
|
|
|
208
208
|
/** The step a drawer that is a page takes: the whole layer, and no measure. */
|
|
209
|
-
[data-ui
|
|
209
|
+
[data-ui-drawer][data-size='full'] {
|
|
210
210
|
--_step: 100%;
|
|
211
211
|
}
|
|
212
212
|
|
|
@@ -218,7 +218,7 @@
|
|
|
218
218
|
* over a dialog is one step above it on the single stack the library keeps
|
|
219
219
|
* rather than a number this stylesheet guessed.
|
|
220
220
|
*/
|
|
221
|
-
[data-ui
|
|
221
|
+
[data-ui-drawer][data-mode='overlay'] {
|
|
222
222
|
position: fixed;
|
|
223
223
|
inset: 0;
|
|
224
224
|
z-index: calc(var(--slotted-z-index-overlay, 1000) + var(--slotted-layer-depth, 0));
|
|
@@ -235,20 +235,20 @@
|
|
|
235
235
|
* a mode here, because a family writing a margin on an element it does not
|
|
236
236
|
* own is a family deciding someone else's layout.
|
|
237
237
|
*/
|
|
238
|
-
[data-ui
|
|
238
|
+
[data-ui-drawer][data-mode='inline'] {
|
|
239
239
|
overflow: clip;
|
|
240
240
|
}
|
|
241
241
|
|
|
242
|
-
[data-ui
|
|
243
|
-
[data-ui
|
|
242
|
+
[data-ui-drawer][data-mode='inline'][data-side='start'],
|
|
243
|
+
[data-ui-drawer][data-mode='inline'][data-side='end'] {
|
|
244
244
|
inline-size: 0;
|
|
245
245
|
transition:
|
|
246
246
|
inline-size var(--_move),
|
|
247
247
|
var(--_reveal);
|
|
248
248
|
}
|
|
249
249
|
|
|
250
|
-
[data-ui
|
|
251
|
-
[data-ui
|
|
250
|
+
[data-ui-drawer][data-mode='inline'][data-side='top'],
|
|
251
|
+
[data-ui-drawer][data-mode='inline'][data-side='bottom'] {
|
|
252
252
|
block-size: 0;
|
|
253
253
|
transition:
|
|
254
254
|
block-size var(--_move),
|
|
@@ -269,14 +269,14 @@
|
|
|
269
269
|
* to nought, and a cap against a box on its way to nought is what would
|
|
270
270
|
* rewrap the panel on the way out.
|
|
271
271
|
*/
|
|
272
|
-
[data-ui
|
|
273
|
-
[data-ui
|
|
272
|
+
[data-ui-drawer][data-mode='inline'][data-open][data-side='start'],
|
|
273
|
+
[data-ui-drawer][data-mode='inline'][data-open][data-side='end'] {
|
|
274
274
|
inline-size: var(--_extent);
|
|
275
275
|
max-inline-size: 100%;
|
|
276
276
|
}
|
|
277
277
|
|
|
278
|
-
[data-ui
|
|
279
|
-
[data-ui
|
|
278
|
+
[data-ui-drawer][data-mode='inline'][data-open][data-side='top'],
|
|
279
|
+
[data-ui-drawer][data-mode='inline'][data-open][data-side='bottom'] {
|
|
280
280
|
block-size: var(--_extent);
|
|
281
281
|
max-block-size: 100%;
|
|
282
282
|
}
|
|
@@ -290,7 +290,7 @@
|
|
|
290
290
|
* `data-open`: the entering frame has no `data-open` either, and a hidden
|
|
291
291
|
* panel in that frame refuses the focus scope's initial focus.
|
|
292
292
|
*/
|
|
293
|
-
[data-ui
|
|
293
|
+
[data-ui-drawer][inert] {
|
|
294
294
|
content-visibility: hidden;
|
|
295
295
|
pointer-events: none;
|
|
296
296
|
}
|
|
@@ -304,7 +304,7 @@
|
|
|
304
304
|
* is `none` in that mode, and a panel separated only by elevation would sit on
|
|
305
305
|
* an opaque ground with nothing marking where it starts.
|
|
306
306
|
*/
|
|
307
|
-
[data-ui
|
|
307
|
+
[data-ui-drawer] > [data-part-backdrop] {
|
|
308
308
|
grid-area: 1 / 1;
|
|
309
309
|
background: var(--slotted-drawer-scrim, var(--slotted-scrim, Canvas));
|
|
310
310
|
opacity: 0;
|
|
@@ -321,7 +321,7 @@
|
|
|
321
321
|
* close is waiting, and the page behind is back before the panel has finished
|
|
322
322
|
* going.
|
|
323
323
|
*/
|
|
324
|
-
[data-ui
|
|
324
|
+
[data-ui-drawer][data-open] > [data-part-backdrop] {
|
|
325
325
|
opacity: 1;
|
|
326
326
|
transition: opacity var(--slotted-duration-long) var(--slotted-easing-standard);
|
|
327
327
|
}
|
|
@@ -334,7 +334,7 @@
|
|
|
334
334
|
* body is long — the failure Vaul, MUI and Angular Material all leave to each
|
|
335
335
|
* consumer's own CSS, because none of the three ships a layout.
|
|
336
336
|
*/
|
|
337
|
-
[data-ui
|
|
337
|
+
[data-ui-drawer] > [data-part-panel] {
|
|
338
338
|
grid-area: 1 / 1;
|
|
339
339
|
box-sizing: border-box;
|
|
340
340
|
/**
|
|
@@ -403,7 +403,7 @@
|
|
|
403
403
|
* physical axis, and a start-side panel leaves toward the left of a
|
|
404
404
|
* left-to-right document and toward the right of a mirrored one.
|
|
405
405
|
*/
|
|
406
|
-
[data-ui
|
|
406
|
+
[data-ui-drawer][data-mode='overlay'] > [data-part-panel] {
|
|
407
407
|
box-shadow: var(--slotted-shadow-lg);
|
|
408
408
|
translate: 0 0;
|
|
409
409
|
/* The measure is restated here, or this rule would replace the base one:
|
|
@@ -415,7 +415,7 @@
|
|
|
415
415
|
block-size var(--_move);
|
|
416
416
|
}
|
|
417
417
|
|
|
418
|
-
[data-ui
|
|
418
|
+
[data-ui-drawer][data-mode='overlay']:not([data-open]) > [data-part-panel] {
|
|
419
419
|
translate: var(--_shift-x, 0) var(--_shift-y, 0);
|
|
420
420
|
}
|
|
421
421
|
|
|
@@ -435,18 +435,18 @@
|
|
|
435
435
|
* transition here would put the panel behind the hand by the whole duration.
|
|
436
436
|
* The slide stays, because a panel released mid-gesture still has an exit.
|
|
437
437
|
*/
|
|
438
|
-
[data-ui
|
|
438
|
+
[data-ui-drawer][data-dragging] > [data-part-panel] {
|
|
439
439
|
transition: none;
|
|
440
440
|
}
|
|
441
441
|
|
|
442
|
-
[data-ui
|
|
442
|
+
[data-ui-drawer][data-dragging][data-mode='overlay'] > [data-part-panel] {
|
|
443
443
|
transition: translate var(--_slide);
|
|
444
444
|
}
|
|
445
445
|
|
|
446
|
-
[data-ui
|
|
447
|
-
[data-ui
|
|
448
|
-
[data-ui
|
|
449
|
-
[data-ui
|
|
446
|
+
[data-ui-drawer][data-dragging][data-mode='inline'][data-side='start'],
|
|
447
|
+
[data-ui-drawer][data-dragging][data-mode='inline'][data-side='end'],
|
|
448
|
+
[data-ui-drawer][data-dragging][data-mode='inline'][data-side='top'],
|
|
449
|
+
[data-ui-drawer][data-dragging][data-mode='inline'][data-side='bottom'] {
|
|
450
450
|
transition: var(--_reveal);
|
|
451
451
|
}
|
|
452
452
|
|
|
@@ -456,7 +456,7 @@
|
|
|
456
456
|
* closed panel sits at rest because the layer hides it whole, above.
|
|
457
457
|
*/
|
|
458
458
|
@media (prefers-reduced-motion: reduce) {
|
|
459
|
-
[data-ui
|
|
459
|
+
[data-ui-drawer][data-mode='overlay'] > [data-part-panel] {
|
|
460
460
|
translate: 0 0;
|
|
461
461
|
transition:
|
|
462
462
|
inline-size var(--_move),
|
|
@@ -466,20 +466,20 @@
|
|
|
466
466
|
|
|
467
467
|
/* ── Where the panel sits, and where it goes when it leaves ───────────── */
|
|
468
468
|
|
|
469
|
-
[data-ui
|
|
470
|
-
[data-ui
|
|
469
|
+
[data-ui-drawer][data-side='start'] > [data-part-panel],
|
|
470
|
+
[data-ui-drawer][data-side='end'] > [data-part-panel] {
|
|
471
471
|
align-self: stretch;
|
|
472
472
|
inline-size: min(var(--_extent), 100%);
|
|
473
473
|
grid-template-rows: auto minmax(0, 1fr) auto;
|
|
474
474
|
}
|
|
475
475
|
|
|
476
|
-
[data-ui
|
|
477
|
-
[data-ui
|
|
476
|
+
[data-ui-drawer][data-side='top'] > [data-part-panel],
|
|
477
|
+
[data-ui-drawer][data-side='bottom'] > [data-part-panel] {
|
|
478
478
|
justify-self: stretch;
|
|
479
479
|
block-size: min(var(--_extent), 100%);
|
|
480
480
|
}
|
|
481
481
|
|
|
482
|
-
[data-ui
|
|
482
|
+
[data-ui-drawer][data-side='start'] > [data-part-panel] {
|
|
483
483
|
justify-self: start;
|
|
484
484
|
--_shift-x: -100%;
|
|
485
485
|
/* The resizer lies over this edge, so the rows keep clear of it. */
|
|
@@ -487,7 +487,7 @@
|
|
|
487
487
|
border-inline-end-width: var(--_rule-size);
|
|
488
488
|
}
|
|
489
489
|
|
|
490
|
-
[data-ui
|
|
490
|
+
[data-ui-drawer][data-side='end'] > [data-part-panel] {
|
|
491
491
|
justify-self: end;
|
|
492
492
|
--_shift-x: 100%;
|
|
493
493
|
--_row-padding-inline-start: max(var(--_padding-inline), var(--_resizer-thickness));
|
|
@@ -507,7 +507,7 @@
|
|
|
507
507
|
* resizer would otherwise put its body in an `auto` track and lose the one
|
|
508
508
|
* declaration that keeps the footer on screen.
|
|
509
509
|
*/
|
|
510
|
-
[data-ui
|
|
510
|
+
[data-ui-drawer][data-side='top'] > [data-part-panel] {
|
|
511
511
|
align-self: start;
|
|
512
512
|
grid-template-rows: auto minmax(0, 1fr) auto auto;
|
|
513
513
|
--_shift-y: -100%;
|
|
@@ -516,7 +516,7 @@
|
|
|
516
516
|
border-end-end-radius: var(--slotted-drawer-radius, var(--_radius));
|
|
517
517
|
}
|
|
518
518
|
|
|
519
|
-
[data-ui
|
|
519
|
+
[data-ui-drawer][data-side='bottom'] > [data-part-panel] {
|
|
520
520
|
align-self: end;
|
|
521
521
|
grid-template-rows: auto auto minmax(0, 1fr) auto;
|
|
522
522
|
--_shift-y: 100%;
|
|
@@ -530,15 +530,15 @@
|
|
|
530
530
|
* one. `top` needs no such rule: its separator is the fourth row and the
|
|
531
531
|
* three above it are already where the base puts them.
|
|
532
532
|
*/
|
|
533
|
-
[data-ui
|
|
533
|
+
[data-ui-drawer][data-side='bottom'] > [data-part-panel] > [data-part-header] {
|
|
534
534
|
grid-row: 2;
|
|
535
535
|
}
|
|
536
536
|
|
|
537
|
-
[data-ui
|
|
537
|
+
[data-ui-drawer][data-side='bottom'] > [data-part-panel] > [data-part-body] {
|
|
538
538
|
grid-row: 3;
|
|
539
539
|
}
|
|
540
540
|
|
|
541
|
-
[data-ui
|
|
541
|
+
[data-ui-drawer][data-side='bottom'] > [data-part-panel] > [data-part-footer] {
|
|
542
542
|
grid-row: 4;
|
|
543
543
|
}
|
|
544
544
|
|
|
@@ -550,8 +550,8 @@
|
|
|
550
550
|
* edge then shows on three sides, so the panel draws it on three; on a phone
|
|
551
551
|
* the two side edges sit on the screen's own and read as nothing.
|
|
552
552
|
*/
|
|
553
|
-
[data-ui
|
|
554
|
-
[data-ui
|
|
553
|
+
[data-ui-drawer][data-mode='overlay'][data-side='top'] > [data-part-panel],
|
|
554
|
+
[data-ui-drawer][data-mode='overlay'][data-side='bottom'] > [data-part-panel] {
|
|
555
555
|
justify-self: center;
|
|
556
556
|
inline-size: min(
|
|
557
557
|
100%,
|
|
@@ -574,7 +574,7 @@
|
|
|
574
574
|
* arrives while the sheet is open, and a release back onto the content stop. A
|
|
575
575
|
* browser without it jumps, and nothing else changes.
|
|
576
576
|
*/
|
|
577
|
-
[data-ui
|
|
577
|
+
[data-ui-drawer][data-size='content'] {
|
|
578
578
|
--_step: auto;
|
|
579
579
|
--_content-cap: min(
|
|
580
580
|
var(--slotted-drawer-extent, calc(100% - var(--slotted-space-12, 4rem))),
|
|
@@ -583,19 +583,19 @@
|
|
|
583
583
|
interpolate-size: allow-keywords;
|
|
584
584
|
}
|
|
585
585
|
|
|
586
|
-
[data-ui
|
|
587
|
-
[data-ui
|
|
586
|
+
[data-ui-drawer][data-size='content'][data-side='start'],
|
|
587
|
+
[data-ui-drawer][data-size='content'][data-side='end'] {
|
|
588
588
|
--_step: max-content;
|
|
589
589
|
}
|
|
590
590
|
|
|
591
|
-
[data-ui
|
|
592
|
-
[data-ui
|
|
591
|
+
[data-ui-drawer][data-size='content'][data-side='start'] > [data-part-panel],
|
|
592
|
+
[data-ui-drawer][data-size='content'][data-side='end'] > [data-part-panel] {
|
|
593
593
|
inline-size: var(--_extent);
|
|
594
594
|
max-inline-size: var(--_content-cap);
|
|
595
595
|
}
|
|
596
596
|
|
|
597
|
-
[data-ui
|
|
598
|
-
[data-ui
|
|
597
|
+
[data-ui-drawer][data-size='content'][data-side='top'] > [data-part-panel],
|
|
598
|
+
[data-ui-drawer][data-size='content'][data-side='bottom'] > [data-part-panel] {
|
|
599
599
|
block-size: var(--_extent);
|
|
600
600
|
max-block-size: var(--_content-cap);
|
|
601
601
|
}
|
|
@@ -606,7 +606,7 @@
|
|
|
606
606
|
* cell the panel sits in shrinks by it, so a sheet lands above the keys and a
|
|
607
607
|
* side panel's footer does too, and every `100%` cap shrinks with the cell.
|
|
608
608
|
*/
|
|
609
|
-
[data-ui
|
|
609
|
+
[data-ui-drawer][data-mode='overlay'] {
|
|
610
610
|
padding-block-end: var(--slotted-keyboard-inset, 0px);
|
|
611
611
|
}
|
|
612
612
|
|
|
@@ -616,18 +616,18 @@
|
|
|
616
616
|
* press on it reaches it. The opacity keeps the transition the scrim already
|
|
617
617
|
* has, so crossing the stop fades rather than blinks.
|
|
618
618
|
*/
|
|
619
|
-
[data-ui
|
|
619
|
+
[data-ui-drawer][data-undimmed] > [data-part-backdrop] {
|
|
620
620
|
opacity: 0;
|
|
621
621
|
pointer-events: none;
|
|
622
622
|
}
|
|
623
623
|
|
|
624
624
|
/* The layer is fixed over the whole viewport, so the scrim alone letting the
|
|
625
625
|
press through leaves the root to catch it; the panel takes it back. */
|
|
626
|
-
[data-ui
|
|
626
|
+
[data-ui-drawer][data-undimmed] {
|
|
627
627
|
pointer-events: none;
|
|
628
628
|
}
|
|
629
629
|
|
|
630
|
-
[data-ui
|
|
630
|
+
[data-ui-drawer][data-undimmed] > [data-part-panel] {
|
|
631
631
|
pointer-events: auto;
|
|
632
632
|
}
|
|
633
633
|
|
|
@@ -636,16 +636,16 @@
|
|
|
636
636
|
* sits over its end. The inset is padding inside the scrollport, so the last
|
|
637
637
|
* line scrolls clear of the indicator rather than stopping under it.
|
|
638
638
|
*/
|
|
639
|
-
[data-ui
|
|
639
|
+
[data-ui-drawer][data-side='bottom'] > [data-part-panel] > [data-part-body]:last-child {
|
|
640
640
|
padding-block-end: calc(var(--_padding-block) + env(safe-area-inset-bottom, 0px));
|
|
641
641
|
}
|
|
642
642
|
|
|
643
643
|
/** `start` is the left edge in one direction and the right edge in the other. */
|
|
644
|
-
[data-ui
|
|
644
|
+
[data-ui-drawer][data-side='start']:dir(rtl) > [data-part-panel] {
|
|
645
645
|
--_shift-x: 100%;
|
|
646
646
|
}
|
|
647
647
|
|
|
648
|
-
[data-ui
|
|
648
|
+
[data-ui-drawer][data-side='end']:dir(rtl) > [data-part-panel] {
|
|
649
649
|
--_shift-x: -100%;
|
|
650
650
|
}
|
|
651
651
|
|
|
@@ -661,7 +661,7 @@
|
|
|
661
661
|
* step, because a container condition cannot hold a custom property — buy one
|
|
662
662
|
* hairline at the extreme edge of the viewport.
|
|
663
663
|
*/
|
|
664
|
-
[data-ui
|
|
664
|
+
[data-ui-drawer][data-size='full'] > [data-part-panel] {
|
|
665
665
|
border-width: 0;
|
|
666
666
|
border-radius: 0;
|
|
667
667
|
}
|
|
@@ -671,13 +671,13 @@
|
|
|
671
671
|
* from, which is what `overflow: clip` on the root is for. `min(…, 100%)`
|
|
672
672
|
* would resolve against a box that is on its way to nought.
|
|
673
673
|
*/
|
|
674
|
-
[data-ui
|
|
675
|
-
[data-ui
|
|
674
|
+
[data-ui-drawer][data-mode='inline'][data-side='start'] > [data-part-panel],
|
|
675
|
+
[data-ui-drawer][data-mode='inline'][data-side='end'] > [data-part-panel] {
|
|
676
676
|
inline-size: var(--_extent);
|
|
677
677
|
}
|
|
678
678
|
|
|
679
|
-
[data-ui
|
|
680
|
-
[data-ui
|
|
679
|
+
[data-ui-drawer][data-mode='inline'][data-side='top'] > [data-part-panel],
|
|
680
|
+
[data-ui-drawer][data-mode='inline'][data-side='bottom'] > [data-part-panel] {
|
|
681
681
|
block-size: var(--_extent);
|
|
682
682
|
}
|
|
683
683
|
|
|
@@ -688,13 +688,13 @@
|
|
|
688
688
|
* a worse picture than one that wrapped. The cap is on `[data-open]` for the
|
|
689
689
|
* reason the root's is.
|
|
690
690
|
*/
|
|
691
|
-
[data-ui
|
|
692
|
-
[data-ui
|
|
691
|
+
[data-ui-drawer][data-mode='inline'][data-open][data-side='start'] > [data-part-panel],
|
|
692
|
+
[data-ui-drawer][data-mode='inline'][data-open][data-side='end'] > [data-part-panel] {
|
|
693
693
|
max-inline-size: 100%;
|
|
694
694
|
}
|
|
695
695
|
|
|
696
|
-
[data-ui
|
|
697
|
-
[data-ui
|
|
696
|
+
[data-ui-drawer][data-mode='inline'][data-open][data-side='top'] > [data-part-panel],
|
|
697
|
+
[data-ui-drawer][data-mode='inline'][data-open][data-side='bottom'] > [data-part-panel] {
|
|
698
698
|
max-block-size: 100%;
|
|
699
699
|
}
|
|
700
700
|
|
|
@@ -753,7 +753,7 @@
|
|
|
753
753
|
*
|
|
754
754
|
* `touch-action: none` so a drag is not read as a scroll on the way past.
|
|
755
755
|
*/
|
|
756
|
-
[data-ui
|
|
756
|
+
[data-ui-drawer] > [data-part-panel] > [data-part-resizer] {
|
|
757
757
|
display: flex;
|
|
758
758
|
align-items: center;
|
|
759
759
|
justify-content: center;
|
|
@@ -781,16 +781,14 @@
|
|
|
781
781
|
}
|
|
782
782
|
|
|
783
783
|
/* Under the hand the gap closes and the marks read as one. */
|
|
784
|
-
[data-ui
|
|
785
|
-
[data-ui
|
|
786
|
-
|
|
787
|
-
> [data-part='resizer']:not([data-disabled]):focus-visible,
|
|
788
|
-
[data-ui='drawer'][data-dragging] > [data-part='panel'] > [data-part='resizer'] {
|
|
784
|
+
[data-ui-drawer] > [data-part-panel] > [data-part-resizer]:not([data-disabled]):hover,
|
|
785
|
+
[data-ui-drawer] > [data-part-panel] > [data-part-resizer]:not([data-disabled]):focus-visible,
|
|
786
|
+
[data-ui-drawer][data-dragging] > [data-part-panel] > [data-part-resizer] {
|
|
789
787
|
gap: var(--slotted-space-4, 0.5rem);
|
|
790
788
|
}
|
|
791
789
|
|
|
792
|
-
[data-ui
|
|
793
|
-
[data-ui
|
|
790
|
+
[data-ui-drawer][data-side='start'] > [data-part-panel] > [data-part-resizer],
|
|
791
|
+
[data-ui-drawer][data-side='end'] > [data-part-panel] > [data-part-resizer] {
|
|
794
792
|
flex-direction: column;
|
|
795
793
|
}
|
|
796
794
|
|
|
@@ -798,52 +796,52 @@
|
|
|
798
796
|
* The reach. Transparent, centred on the gutter and above the panel's own
|
|
799
797
|
* rows, which is what makes a four-pixel picture a twenty-four-pixel target.
|
|
800
798
|
*/
|
|
801
|
-
[data-ui
|
|
799
|
+
[data-ui-drawer] > [data-part-panel] > [data-part-resizer]::before {
|
|
802
800
|
content: '';
|
|
803
801
|
position: absolute;
|
|
804
802
|
--_reach-overhang: calc((var(--_resizer-reach) - var(--_resizer-thickness)) / -2);
|
|
805
803
|
}
|
|
806
804
|
|
|
807
|
-
[data-ui
|
|
808
|
-
[data-ui
|
|
805
|
+
[data-ui-drawer][data-side='start'] > [data-part-panel] > [data-part-resizer]::before,
|
|
806
|
+
[data-ui-drawer][data-side='end'] > [data-part-panel] > [data-part-resizer]::before {
|
|
809
807
|
inset-block: 0;
|
|
810
808
|
inset-inline: var(--_reach-overhang);
|
|
811
809
|
}
|
|
812
810
|
|
|
813
|
-
[data-ui
|
|
814
|
-
[data-ui
|
|
811
|
+
[data-ui-drawer][data-side='top'] > [data-part-panel] > [data-part-resizer]::before,
|
|
812
|
+
[data-ui-drawer][data-side='bottom'] > [data-part-panel] > [data-part-resizer]::before {
|
|
815
813
|
inset-inline: 0;
|
|
816
814
|
inset-block: var(--_reach-overhang);
|
|
817
815
|
}
|
|
818
816
|
|
|
819
|
-
[data-ui
|
|
820
|
-
[data-ui
|
|
817
|
+
[data-ui-drawer][data-side='start'] > [data-part-panel] > [data-part-resizer],
|
|
818
|
+
[data-ui-drawer][data-side='end'] > [data-part-panel] > [data-part-resizer] {
|
|
821
819
|
position: absolute;
|
|
822
820
|
inset-block: 0;
|
|
823
821
|
inline-size: var(--_resizer-thickness);
|
|
824
822
|
cursor: col-resize;
|
|
825
823
|
}
|
|
826
824
|
|
|
827
|
-
[data-ui
|
|
825
|
+
[data-ui-drawer][data-side='start'] > [data-part-panel] > [data-part-resizer] {
|
|
828
826
|
inset-inline-end: 0;
|
|
829
827
|
}
|
|
830
828
|
|
|
831
|
-
[data-ui
|
|
829
|
+
[data-ui-drawer][data-side='end'] > [data-part-panel] > [data-part-resizer] {
|
|
832
830
|
inset-inline-start: 0;
|
|
833
831
|
}
|
|
834
832
|
|
|
835
|
-
[data-ui
|
|
836
|
-
[data-ui
|
|
833
|
+
[data-ui-drawer][data-side='top'] > [data-part-panel] > [data-part-resizer],
|
|
834
|
+
[data-ui-drawer][data-side='bottom'] > [data-part-panel] > [data-part-resizer] {
|
|
837
835
|
position: relative;
|
|
838
836
|
block-size: var(--_resizer-thickness);
|
|
839
837
|
cursor: row-resize;
|
|
840
838
|
}
|
|
841
839
|
|
|
842
|
-
[data-ui
|
|
840
|
+
[data-ui-drawer][data-side='bottom'] > [data-part-panel] > [data-part-resizer] {
|
|
843
841
|
grid-row: 1;
|
|
844
842
|
}
|
|
845
843
|
|
|
846
|
-
[data-ui
|
|
844
|
+
[data-ui-drawer][data-side='top'] > [data-part-panel] > [data-part-resizer] {
|
|
847
845
|
grid-row: 4;
|
|
848
846
|
}
|
|
849
847
|
|
|
@@ -856,7 +854,7 @@
|
|
|
856
854
|
*
|
|
857
855
|
* A sheet paints none of them — see the grabber below.
|
|
858
856
|
*/
|
|
859
|
-
[data-ui
|
|
857
|
+
[data-ui-drawer] > [data-part-panel] > [data-part-resizer] > [data-part-line] {
|
|
860
858
|
flex: 0 1 min(var(--slotted-space-12, 4rem), 20%);
|
|
861
859
|
min-block-size: 0;
|
|
862
860
|
min-inline-size: 0;
|
|
@@ -869,40 +867,37 @@
|
|
|
869
867
|
var(--slotted-control-transition-easing, var(--slotted-easing-standard));
|
|
870
868
|
}
|
|
871
869
|
|
|
872
|
-
[data-ui
|
|
873
|
-
> [data-part
|
|
874
|
-
> [data-part
|
|
875
|
-
> [data-part
|
|
876
|
-
[data-ui
|
|
877
|
-
> [data-part
|
|
878
|
-
> [data-part
|
|
879
|
-
> [data-part
|
|
870
|
+
[data-ui-drawer][data-side='start']
|
|
871
|
+
> [data-part-panel]
|
|
872
|
+
> [data-part-resizer]
|
|
873
|
+
> [data-part-line]:first-child,
|
|
874
|
+
[data-ui-drawer][data-side='end']
|
|
875
|
+
> [data-part-panel]
|
|
876
|
+
> [data-part-resizer]
|
|
877
|
+
> [data-part-line]:first-child {
|
|
880
878
|
background: linear-gradient(to bottom, transparent, var(--_rest));
|
|
881
879
|
}
|
|
882
880
|
|
|
883
|
-
[data-ui
|
|
884
|
-
> [data-part
|
|
885
|
-
> [data-part
|
|
886
|
-
> [data-part
|
|
887
|
-
[data-ui
|
|
888
|
-
> [data-part
|
|
889
|
-
> [data-part
|
|
890
|
-
> [data-part
|
|
881
|
+
[data-ui-drawer][data-side='start']
|
|
882
|
+
> [data-part-panel]
|
|
883
|
+
> [data-part-resizer]
|
|
884
|
+
> [data-part-line]:last-child,
|
|
885
|
+
[data-ui-drawer][data-side='end']
|
|
886
|
+
> [data-part-panel]
|
|
887
|
+
> [data-part-resizer]
|
|
888
|
+
> [data-part-line]:last-child {
|
|
891
889
|
background: linear-gradient(to top, transparent, var(--_rest));
|
|
892
890
|
}
|
|
893
891
|
|
|
894
|
-
[data-ui
|
|
895
|
-
> [data-part
|
|
896
|
-
> [data-part
|
|
897
|
-
> [data-part
|
|
898
|
-
[data-ui
|
|
899
|
-
> [data-part
|
|
900
|
-
> [data-part
|
|
901
|
-
> [data-part
|
|
902
|
-
[data-ui
|
|
903
|
-
> [data-part='panel']
|
|
904
|
-
> [data-part='resizer']
|
|
905
|
-
> [data-part='line'] {
|
|
892
|
+
[data-ui-drawer]
|
|
893
|
+
> [data-part-panel]
|
|
894
|
+
> [data-part-resizer]:not([data-disabled]):hover
|
|
895
|
+
> [data-part-line],
|
|
896
|
+
[data-ui-drawer]
|
|
897
|
+
> [data-part-panel]
|
|
898
|
+
> [data-part-resizer]:not([data-disabled]):focus-visible
|
|
899
|
+
> [data-part-line],
|
|
900
|
+
[data-ui-drawer][data-dragging] > [data-part-panel] > [data-part-resizer] > [data-part-line] {
|
|
906
901
|
flex-basis: 100%;
|
|
907
902
|
background: var(--_active);
|
|
908
903
|
}
|
|
@@ -918,7 +913,7 @@
|
|
|
918
913
|
* there because a sheet is not held at its corners; it is held in the middle,
|
|
919
914
|
* which is where every mobile sheet in the field puts its mark.
|
|
920
915
|
*/
|
|
921
|
-
[data-ui
|
|
916
|
+
[data-ui-drawer] > [data-part-panel] > [data-part-resizer] > [data-part-grip] {
|
|
922
917
|
flex: none;
|
|
923
918
|
transition:
|
|
924
919
|
background-color var(--slotted-control-transition-duration, var(--slotted-duration-short))
|
|
@@ -927,14 +922,8 @@
|
|
|
927
922
|
var(--slotted-control-transition-easing, var(--slotted-easing-standard));
|
|
928
923
|
}
|
|
929
924
|
|
|
930
|
-
[data-ui
|
|
931
|
-
|
|
932
|
-
> [data-part='resizer']
|
|
933
|
-
> [data-part='grip'],
|
|
934
|
-
[data-ui='drawer'][data-side='end']
|
|
935
|
-
> [data-part='panel']
|
|
936
|
-
> [data-part='resizer']
|
|
937
|
-
> [data-part='grip'] {
|
|
925
|
+
[data-ui-drawer][data-side='start'] > [data-part-panel] > [data-part-resizer] > [data-part-grip],
|
|
926
|
+
[data-ui-drawer][data-side='end'] > [data-part-panel] > [data-part-resizer] > [data-part-grip] {
|
|
938
927
|
color: var(--_rest);
|
|
939
928
|
background-image: radial-gradient(circle at center, currentColor 40%, transparent 42%);
|
|
940
929
|
background-size: var(--slotted-space-2, 0.25rem) var(--slotted-space-2, 0.25rem);
|
|
@@ -943,14 +932,11 @@
|
|
|
943
932
|
}
|
|
944
933
|
|
|
945
934
|
/* The grabber. Four by thirty-six, full radius, centred above the header. */
|
|
946
|
-
[data-ui
|
|
947
|
-
|
|
948
|
-
> [data-part
|
|
949
|
-
> [data-part
|
|
950
|
-
|
|
951
|
-
> [data-part='panel']
|
|
952
|
-
> [data-part='resizer']
|
|
953
|
-
> [data-part='grip'] {
|
|
935
|
+
[data-ui-drawer][data-side='top'] > [data-part-panel] > [data-part-resizer] > [data-part-grip],
|
|
936
|
+
[data-ui-drawer][data-side='bottom']
|
|
937
|
+
> [data-part-panel]
|
|
938
|
+
> [data-part-resizer]
|
|
939
|
+
> [data-part-grip] {
|
|
954
940
|
background-color: var(--_rest);
|
|
955
941
|
border-radius: var(--slotted-radius-full, 9999px);
|
|
956
942
|
block-size: var(--slotted-space-2, 0.25rem);
|
|
@@ -958,14 +944,11 @@
|
|
|
958
944
|
}
|
|
959
945
|
|
|
960
946
|
/* A sheet's lines are not painted: the pill is the whole picture. */
|
|
961
|
-
[data-ui
|
|
962
|
-
|
|
963
|
-
> [data-part
|
|
964
|
-
> [data-part
|
|
965
|
-
|
|
966
|
-
> [data-part='panel']
|
|
967
|
-
> [data-part='resizer']
|
|
968
|
-
> [data-part='line'] {
|
|
947
|
+
[data-ui-drawer][data-side='top'] > [data-part-panel] > [data-part-resizer] > [data-part-line],
|
|
948
|
+
[data-ui-drawer][data-side='bottom']
|
|
949
|
+
> [data-part-panel]
|
|
950
|
+
> [data-part-resizer]
|
|
951
|
+
> [data-part-line] {
|
|
969
952
|
display: none;
|
|
970
953
|
}
|
|
971
954
|
|
|
@@ -976,45 +959,42 @@
|
|
|
976
959
|
* under focus. `splitter`, which draws the same picture, only ever changed
|
|
977
960
|
* `color`. The pill on a block side is a filled box, so it recolours its fill.
|
|
978
961
|
*/
|
|
979
|
-
[data-ui
|
|
980
|
-
> [data-part
|
|
981
|
-
> [data-part
|
|
982
|
-
> [data-part
|
|
983
|
-
[data-ui
|
|
984
|
-
> [data-part
|
|
985
|
-
> [data-part
|
|
986
|
-
> [data-part
|
|
987
|
-
[data-ui
|
|
988
|
-
> [data-part='panel']
|
|
989
|
-
> [data-part='resizer']
|
|
990
|
-
> [data-part='grip'] {
|
|
962
|
+
[data-ui-drawer]
|
|
963
|
+
> [data-part-panel]
|
|
964
|
+
> [data-part-resizer]:not([data-disabled]):hover
|
|
965
|
+
> [data-part-grip],
|
|
966
|
+
[data-ui-drawer]
|
|
967
|
+
> [data-part-panel]
|
|
968
|
+
> [data-part-resizer]:not([data-disabled]):focus-visible
|
|
969
|
+
> [data-part-grip],
|
|
970
|
+
[data-ui-drawer][data-dragging] > [data-part-panel] > [data-part-resizer] > [data-part-grip] {
|
|
991
971
|
color: var(--_active);
|
|
992
972
|
}
|
|
993
973
|
|
|
994
|
-
[data-ui
|
|
995
|
-
> [data-part
|
|
996
|
-
> [data-part
|
|
997
|
-
> [data-part
|
|
998
|
-
[data-ui
|
|
999
|
-
> [data-part
|
|
1000
|
-
> [data-part
|
|
1001
|
-
> [data-part
|
|
1002
|
-
[data-ui
|
|
1003
|
-
> [data-part
|
|
1004
|
-
> [data-part
|
|
1005
|
-
> [data-part
|
|
1006
|
-
[data-ui
|
|
1007
|
-
> [data-part
|
|
1008
|
-
> [data-part
|
|
1009
|
-
> [data-part
|
|
1010
|
-
[data-ui
|
|
1011
|
-
> [data-part
|
|
1012
|
-
> [data-part
|
|
1013
|
-
> [data-part
|
|
1014
|
-
[data-ui
|
|
1015
|
-
> [data-part
|
|
1016
|
-
> [data-part
|
|
1017
|
-
> [data-part
|
|
974
|
+
[data-ui-drawer][data-side='top']
|
|
975
|
+
> [data-part-panel]
|
|
976
|
+
> [data-part-resizer]:not([data-disabled]):hover
|
|
977
|
+
> [data-part-grip],
|
|
978
|
+
[data-ui-drawer][data-side='bottom']
|
|
979
|
+
> [data-part-panel]
|
|
980
|
+
> [data-part-resizer]:not([data-disabled]):hover
|
|
981
|
+
> [data-part-grip],
|
|
982
|
+
[data-ui-drawer][data-side='top']
|
|
983
|
+
> [data-part-panel]
|
|
984
|
+
> [data-part-resizer]:not([data-disabled]):focus-visible
|
|
985
|
+
> [data-part-grip],
|
|
986
|
+
[data-ui-drawer][data-side='bottom']
|
|
987
|
+
> [data-part-panel]
|
|
988
|
+
> [data-part-resizer]:not([data-disabled]):focus-visible
|
|
989
|
+
> [data-part-grip],
|
|
990
|
+
[data-ui-drawer][data-dragging][data-side='top']
|
|
991
|
+
> [data-part-panel]
|
|
992
|
+
> [data-part-resizer]
|
|
993
|
+
> [data-part-grip],
|
|
994
|
+
[data-ui-drawer][data-dragging][data-side='bottom']
|
|
995
|
+
> [data-part-panel]
|
|
996
|
+
> [data-part-resizer]
|
|
997
|
+
> [data-part-grip] {
|
|
1018
998
|
background-color: var(--_active);
|
|
1019
999
|
}
|
|
1020
1000
|
|
|
@@ -1034,7 +1014,7 @@
|
|
|
1034
1014
|
* forbids a system colour inside `::before` or `::after`, and the ring's own
|
|
1035
1015
|
* last resort is `Highlight`.
|
|
1036
1016
|
*/
|
|
1037
|
-
[data-ui
|
|
1017
|
+
[data-ui-drawer] > [data-part-panel] > [data-part-resizer]:focus-visible {
|
|
1038
1018
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
1039
1019
|
outline-offset: calc(-1 * var(--slotted-focus-ring-offset, 2px));
|
|
1040
1020
|
}
|
|
@@ -1046,13 +1026,13 @@
|
|
|
1046
1026
|
* between a resize the engine prepares for and one it discovers each frame.
|
|
1047
1027
|
* It is written on the panel because the panel is what changes size.
|
|
1048
1028
|
*/
|
|
1049
|
-
[data-ui
|
|
1050
|
-
[data-ui
|
|
1029
|
+
[data-ui-drawer][data-dragging][data-side='start'] > [data-part-panel],
|
|
1030
|
+
[data-ui-drawer][data-dragging][data-side='end'] > [data-part-panel] {
|
|
1051
1031
|
will-change: inline-size;
|
|
1052
1032
|
}
|
|
1053
1033
|
|
|
1054
|
-
[data-ui
|
|
1055
|
-
[data-ui
|
|
1034
|
+
[data-ui-drawer][data-dragging][data-side='top'] > [data-part-panel],
|
|
1035
|
+
[data-ui-drawer][data-dragging][data-side='bottom'] > [data-part-panel] {
|
|
1056
1036
|
will-change: block-size;
|
|
1057
1037
|
}
|
|
1058
1038
|
|
|
@@ -1068,7 +1048,7 @@
|
|
|
1068
1048
|
* consumer can write: a header, a body and a footer draw two rules; a header
|
|
1069
1049
|
* and a footer alone draw one; and a panel that is only a body draws none.
|
|
1070
1050
|
*/
|
|
1071
|
-
[data-ui
|
|
1051
|
+
[data-ui-drawer] > [data-part-panel] > [data-part-header] {
|
|
1072
1052
|
grid-row: 1;
|
|
1073
1053
|
display: grid;
|
|
1074
1054
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
@@ -1085,7 +1065,7 @@
|
|
|
1085
1065
|
* panel past its own measure, and a panel pinned to an edge then pushes its
|
|
1086
1066
|
* inner edge across the layer.
|
|
1087
1067
|
*/
|
|
1088
|
-
[data-ui
|
|
1068
|
+
[data-ui-drawer] > [data-part-panel] > [data-part-header] > [data-part-title] {
|
|
1089
1069
|
grid-column: 1;
|
|
1090
1070
|
grid-row: 1;
|
|
1091
1071
|
margin: 0;
|
|
@@ -1104,7 +1084,7 @@
|
|
|
1104
1084
|
color: var(--slotted-drawer-title-color, var(--slotted-text, CanvasText));
|
|
1105
1085
|
}
|
|
1106
1086
|
|
|
1107
|
-
[data-ui
|
|
1087
|
+
[data-ui-drawer] > [data-part-panel] > [data-part-header] > [data-part-description] {
|
|
1108
1088
|
grid-column: 1;
|
|
1109
1089
|
grid-row: 2;
|
|
1110
1090
|
margin: 0;
|
|
@@ -1125,7 +1105,7 @@
|
|
|
1125
1105
|
* an `icon` box, sized here through the icon token so the box and the
|
|
1126
1106
|
* formula above read one length.
|
|
1127
1107
|
*/
|
|
1128
|
-
[data-ui
|
|
1108
|
+
[data-ui-drawer] > [data-part-panel] > [data-part-header] > [data-part-close] {
|
|
1129
1109
|
--slotted-icon-size: var(--_icon-size);
|
|
1130
1110
|
|
|
1131
1111
|
grid-column: 2;
|
|
@@ -1156,21 +1136,21 @@
|
|
|
1156
1136
|
is the one a mouse sees: a transparent `::before` centred on the control
|
|
1157
1137
|
reaches 44 pixels, and the ground and the ring stay square. */
|
|
1158
1138
|
@media (pointer: coarse) {
|
|
1159
|
-
[data-ui
|
|
1139
|
+
[data-ui-drawer] > [data-part-panel] > [data-part-header] > [data-part-close] {
|
|
1160
1140
|
position: relative;
|
|
1161
1141
|
}
|
|
1162
1142
|
|
|
1163
|
-
[data-ui
|
|
1143
|
+
[data-ui-drawer] > [data-part-panel] > [data-part-header] > [data-part-close]::before {
|
|
1164
1144
|
content: '';
|
|
1165
1145
|
inset: min(0px, calc((100% - var(--slotted-target-comfortable, 44px)) / 2));
|
|
1166
1146
|
position: absolute;
|
|
1167
1147
|
}
|
|
1168
1148
|
}
|
|
1169
1149
|
|
|
1170
|
-
[data-ui
|
|
1171
|
-
> [data-part
|
|
1172
|
-
> [data-part
|
|
1173
|
-
> [data-part
|
|
1150
|
+
[data-ui-drawer]
|
|
1151
|
+
> [data-part-panel]
|
|
1152
|
+
> [data-part-header]
|
|
1153
|
+
> [data-part-close]:not(:disabled):hover {
|
|
1174
1154
|
/* The ground moves under the pointer and nothing else does (R2). */
|
|
1175
1155
|
background-color: var(
|
|
1176
1156
|
--slotted-drawer-close-hover-background,
|
|
@@ -1178,20 +1158,17 @@
|
|
|
1178
1158
|
);
|
|
1179
1159
|
}
|
|
1180
1160
|
|
|
1181
|
-
[data-ui
|
|
1182
|
-
> [data-part
|
|
1183
|
-
> [data-part
|
|
1184
|
-
> [data-part
|
|
1161
|
+
[data-ui-drawer]
|
|
1162
|
+
> [data-part-panel]
|
|
1163
|
+
> [data-part-header]
|
|
1164
|
+
> [data-part-close]:not(:disabled):active {
|
|
1185
1165
|
background-color: var(
|
|
1186
1166
|
--slotted-drawer-close-active-background,
|
|
1187
1167
|
var(--slotted-tone-secondary-subtle-active)
|
|
1188
1168
|
);
|
|
1189
1169
|
}
|
|
1190
1170
|
|
|
1191
|
-
[data-ui
|
|
1192
|
-
> [data-part='panel']
|
|
1193
|
-
> [data-part='header']
|
|
1194
|
-
> [data-part='close']:focus-visible {
|
|
1171
|
+
[data-ui-drawer] > [data-part-panel] > [data-part-header] > [data-part-close]:focus-visible {
|
|
1195
1172
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
1196
1173
|
outline-offset: calc(-1 * var(--slotted-focus-ring-offset, 2px));
|
|
1197
1174
|
}
|
|
@@ -1204,7 +1181,7 @@
|
|
|
1204
1181
|
* `dismissable-layer` covers the modal case; this covers the other two, where
|
|
1205
1182
|
* the page behind is not locked at all.
|
|
1206
1183
|
*/
|
|
1207
|
-
[data-ui
|
|
1184
|
+
[data-ui-drawer] > [data-part-panel] > [data-part-body] {
|
|
1208
1185
|
grid-row: 2;
|
|
1209
1186
|
min-block-size: 0;
|
|
1210
1187
|
min-inline-size: 0;
|
|
@@ -1221,11 +1198,11 @@
|
|
|
1221
1198
|
}
|
|
1222
1199
|
|
|
1223
1200
|
/* Content that brings its own inset — a page, a list on the panel's edges. */
|
|
1224
|
-
[data-ui
|
|
1201
|
+
[data-ui-drawer] > [data-part-panel] > [data-part-body][data-inset='none'] {
|
|
1225
1202
|
padding: 0;
|
|
1226
1203
|
}
|
|
1227
1204
|
|
|
1228
|
-
[data-ui
|
|
1205
|
+
[data-ui-drawer] > [data-part-panel] > [data-part-body]:not(:first-child) {
|
|
1229
1206
|
border-block-start: var(--_rule-size) solid
|
|
1230
1207
|
var(--slotted-drawer-rule-color, var(--slotted-border-subtle, ButtonBorder));
|
|
1231
1208
|
}
|
|
@@ -1237,7 +1214,7 @@
|
|
|
1237
1214
|
* instead, and the header, the close button, Escape and the resizer all stay
|
|
1238
1215
|
* operable: a loading drawer a reader cannot leave is the worse failure.
|
|
1239
1216
|
*/
|
|
1240
|
-
[data-ui
|
|
1217
|
+
[data-ui-drawer][data-loading] > [data-part-panel] > [data-part-body] {
|
|
1241
1218
|
min-block-size: var(--slotted-space-12, 4rem);
|
|
1242
1219
|
}
|
|
1243
1220
|
|
|
@@ -1249,7 +1226,7 @@
|
|
|
1249
1226
|
* reason the middle one is bounded — an unbounded panel pushes it past the
|
|
1250
1227
|
* fold, which is the whole failure the three-row grid exists to prevent.
|
|
1251
1228
|
*/
|
|
1252
|
-
[data-ui
|
|
1229
|
+
[data-ui-drawer] > [data-part-panel] > [data-part-footer] {
|
|
1253
1230
|
grid-row: 3;
|
|
1254
1231
|
display: flex;
|
|
1255
1232
|
flex-wrap: wrap;
|
|
@@ -1274,13 +1251,13 @@
|
|
|
1274
1251
|
* above it and the header already clears it; the body scrolls, so an inset on
|
|
1275
1252
|
* it would be padding inside a scrollport rather than under it.
|
|
1276
1253
|
*/
|
|
1277
|
-
[data-ui
|
|
1254
|
+
[data-ui-drawer][data-side='bottom'] > [data-part-panel] > [data-part-footer] {
|
|
1278
1255
|
padding-block-end: calc(
|
|
1279
1256
|
var(--_footer-padding-block, var(--_padding-block)) + env(safe-area-inset-bottom, 0px)
|
|
1280
1257
|
);
|
|
1281
1258
|
}
|
|
1282
1259
|
|
|
1283
|
-
[data-ui
|
|
1260
|
+
[data-ui-drawer] > [data-part-panel] > [data-part-footer]:not(:first-child) {
|
|
1284
1261
|
border-block-start: var(--_rule-size) solid
|
|
1285
1262
|
var(--slotted-drawer-rule-color, var(--slotted-border-subtle, ButtonBorder));
|
|
1286
1263
|
}
|
|
@@ -1295,7 +1272,7 @@
|
|
|
1295
1272
|
* border is read at, and gives the panel the three edges its side does not.
|
|
1296
1273
|
*/
|
|
1297
1274
|
@media (forced-colors: active) {
|
|
1298
|
-
[data-ui
|
|
1275
|
+
[data-ui-drawer] > [data-part-panel] {
|
|
1299
1276
|
border-width: var(--slotted-border-width-thick, 2px);
|
|
1300
1277
|
border-color: CanvasText;
|
|
1301
1278
|
}
|