@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/toast/toast.css
CHANGED
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
* The stylesheet's part in it is that no rule assumes a role: the same
|
|
40
40
|
* picture is drawn whether a reader hears the words or reads them.
|
|
41
41
|
*/
|
|
42
|
-
[data-ui
|
|
42
|
+
[data-ui-toast][data-part-root] {
|
|
43
43
|
/**
|
|
44
44
|
* The distance from the edge of the screen, and the greatest width a
|
|
45
45
|
* message is allowed. The width is the smaller of the two, so at 320
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
* demonstrable on a documentation page: everything else about it is the
|
|
94
94
|
* same, including the placement, which now names the edges of the panel.
|
|
95
95
|
*/
|
|
96
|
-
[data-ui
|
|
96
|
+
[data-ui-toast][data-part-root][data-attach='inline'] {
|
|
97
97
|
position: absolute;
|
|
98
98
|
}
|
|
99
99
|
|
|
@@ -104,19 +104,19 @@
|
|
|
104
104
|
* an Arabic one. Sonner's `bottom-right` is `bottom-right` in both.
|
|
105
105
|
*/
|
|
106
106
|
|
|
107
|
-
[data-ui
|
|
107
|
+
[data-ui-toast][data-part-root][data-placement^='top'] {
|
|
108
108
|
inset-block-start: var(--_offset);
|
|
109
109
|
}
|
|
110
110
|
|
|
111
|
-
[data-ui
|
|
111
|
+
[data-ui-toast][data-part-root][data-placement^='bottom'] {
|
|
112
112
|
inset-block-end: var(--_offset);
|
|
113
113
|
}
|
|
114
114
|
|
|
115
|
-
[data-ui
|
|
115
|
+
[data-ui-toast][data-part-root][data-placement$='-start'] {
|
|
116
116
|
inset-inline-start: var(--_offset);
|
|
117
117
|
}
|
|
118
118
|
|
|
119
|
-
[data-ui
|
|
119
|
+
[data-ui-toast][data-part-root][data-placement$='-end'] {
|
|
120
120
|
inset-inline-end: var(--_offset);
|
|
121
121
|
}
|
|
122
122
|
|
|
@@ -125,8 +125,8 @@
|
|
|
125
125
|
* divide what is left. It is the one centring that needs no transform, so
|
|
126
126
|
* the transform stays free for the enter, the exit and the swipe.
|
|
127
127
|
*/
|
|
128
|
-
[data-ui
|
|
129
|
-
[data-ui
|
|
128
|
+
[data-ui-toast][data-part-root][data-placement='top'],
|
|
129
|
+
[data-ui-toast][data-part-root][data-placement='bottom'] {
|
|
130
130
|
inset-inline: var(--_offset);
|
|
131
131
|
margin-inline: auto;
|
|
132
132
|
}
|
|
@@ -139,7 +139,7 @@
|
|
|
139
139
|
* order, which puts the newest nearest the edge of the screen — where the
|
|
140
140
|
* reader's eye already is — without moving it in the accessibility tree.
|
|
141
141
|
*/
|
|
142
|
-
[data-ui
|
|
142
|
+
[data-ui-toast] > [data-part-list] {
|
|
143
143
|
display: flex;
|
|
144
144
|
flex-direction: column;
|
|
145
145
|
gap: var(--_gap);
|
|
@@ -149,7 +149,7 @@
|
|
|
149
149
|
pointer-events: none;
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
-
[data-ui
|
|
152
|
+
[data-ui-toast][data-placement^='bottom'] > [data-part-list] {
|
|
153
153
|
flex-direction: column-reverse;
|
|
154
154
|
}
|
|
155
155
|
|
|
@@ -162,7 +162,7 @@
|
|
|
162
162
|
* focus already inside a message can cause, so no press meant for the page
|
|
163
163
|
* lands on an empty region.
|
|
164
164
|
*/
|
|
165
|
-
[data-ui
|
|
165
|
+
[data-ui-toast][data-expanded] > [data-part-list] {
|
|
166
166
|
pointer-events: auto;
|
|
167
167
|
}
|
|
168
168
|
|
|
@@ -172,7 +172,7 @@
|
|
|
172
172
|
* the message away, with the actions under the words rather than beside
|
|
173
173
|
* them so a second row exists only when there are actions to put in it.
|
|
174
174
|
*/
|
|
175
|
-
[data-ui
|
|
175
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] {
|
|
176
176
|
/* The tone's five roles, defaulted to `accent`, restated by each tone
|
|
177
177
|
below. Every one of them is a role the theme's contrast test measures. */
|
|
178
178
|
--_solid: var(--slotted-tone-accent-solid);
|
|
@@ -302,11 +302,11 @@
|
|
|
302
302
|
* shift is the same distance in the other direction rather than a second
|
|
303
303
|
* number, so the two placements are one motion seen twice.
|
|
304
304
|
*/
|
|
305
|
-
[data-ui
|
|
305
|
+
[data-ui-toast][data-placement^='top'] > [data-part-list] > [data-part-item] {
|
|
306
306
|
translate: 0 calc(-1 * var(--_enter-shift));
|
|
307
307
|
}
|
|
308
308
|
|
|
309
|
-
[data-ui
|
|
309
|
+
[data-ui-toast] > [data-part-list] > [data-part-item][data-open] {
|
|
310
310
|
opacity: 1;
|
|
311
311
|
translate: 0;
|
|
312
312
|
transition:
|
|
@@ -325,7 +325,7 @@
|
|
|
325
325
|
* is left, which is WCAG 2.2 SC 1.4.1 as well as a preference.
|
|
326
326
|
*/
|
|
327
327
|
|
|
328
|
-
[data-ui
|
|
328
|
+
[data-ui-toast] > [data-part-list] > [data-part-item][data-tone='accent'] {
|
|
329
329
|
--_solid: var(--slotted-tone-accent-solid);
|
|
330
330
|
--_on-solid: var(--slotted-tone-accent-on-solid);
|
|
331
331
|
--_tone-surface: var(--slotted-tone-accent-surface);
|
|
@@ -333,7 +333,7 @@
|
|
|
333
333
|
--_tone-text: var(--slotted-tone-accent-text);
|
|
334
334
|
}
|
|
335
335
|
|
|
336
|
-
[data-ui
|
|
336
|
+
[data-ui-toast] > [data-part-list] > [data-part-item][data-tone='secondary'] {
|
|
337
337
|
--_solid: var(--slotted-tone-secondary-solid);
|
|
338
338
|
--_on-solid: var(--slotted-tone-secondary-on-solid);
|
|
339
339
|
--_tone-surface: var(--slotted-tone-secondary-surface);
|
|
@@ -341,7 +341,7 @@
|
|
|
341
341
|
--_tone-text: var(--slotted-tone-secondary-text);
|
|
342
342
|
}
|
|
343
343
|
|
|
344
|
-
[data-ui
|
|
344
|
+
[data-ui-toast] > [data-part-list] > [data-part-item][data-tone='success'] {
|
|
345
345
|
--_solid: var(--slotted-tone-success-solid);
|
|
346
346
|
--_on-solid: var(--slotted-tone-success-on-solid);
|
|
347
347
|
--_tone-surface: var(--slotted-tone-success-surface);
|
|
@@ -349,7 +349,7 @@
|
|
|
349
349
|
--_tone-text: var(--slotted-tone-success-text);
|
|
350
350
|
}
|
|
351
351
|
|
|
352
|
-
[data-ui
|
|
352
|
+
[data-ui-toast] > [data-part-list] > [data-part-item][data-tone='warning'] {
|
|
353
353
|
--_solid: var(--slotted-tone-warning-solid);
|
|
354
354
|
--_on-solid: var(--slotted-tone-warning-on-solid);
|
|
355
355
|
--_tone-surface: var(--slotted-tone-warning-surface);
|
|
@@ -357,7 +357,7 @@
|
|
|
357
357
|
--_tone-text: var(--slotted-tone-warning-text);
|
|
358
358
|
}
|
|
359
359
|
|
|
360
|
-
[data-ui
|
|
360
|
+
[data-ui-toast] > [data-part-list] > [data-part-item][data-tone='danger'] {
|
|
361
361
|
--_solid: var(--slotted-tone-danger-solid);
|
|
362
362
|
--_on-solid: var(--slotted-tone-danger-on-solid);
|
|
363
363
|
--_tone-surface: var(--slotted-tone-danger-surface);
|
|
@@ -373,7 +373,7 @@
|
|
|
373
373
|
* tone is in the mark and in nothing else, which is enough — it is the
|
|
374
374
|
* silhouette that survives forced colours anyway.
|
|
375
375
|
*/
|
|
376
|
-
[data-ui
|
|
376
|
+
[data-ui-toast] > [data-part-list] > [data-part-item][data-variant='soft'] {
|
|
377
377
|
--_ground: var(--_tone-surface);
|
|
378
378
|
--_edge: var(--_tone-border);
|
|
379
379
|
/* The tone's own text on the tone's own surface is the pair the theme
|
|
@@ -383,7 +383,7 @@
|
|
|
383
383
|
--_ink-muted: var(--_tone-text);
|
|
384
384
|
}
|
|
385
385
|
|
|
386
|
-
[data-ui
|
|
386
|
+
[data-ui-toast] > [data-part-list] > [data-part-item][data-variant='solid'] {
|
|
387
387
|
--_ground: var(--_solid);
|
|
388
388
|
--_edge: var(--_solid);
|
|
389
389
|
--_ink: var(--_on-solid);
|
|
@@ -426,7 +426,7 @@
|
|
|
426
426
|
* message waiting on a promise with no mark of its own draws none, and the
|
|
427
427
|
* box stays, so the layout does not jump when the spinner becomes a tick.
|
|
428
428
|
*/
|
|
429
|
-
[data-ui
|
|
429
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-icon] {
|
|
430
430
|
--slotted-icon-size: calc(var(--_mark-size) * 12 / 11);
|
|
431
431
|
/**
|
|
432
432
|
* The loading mark is `progress-indicator`'s contained loader, and these
|
|
@@ -466,7 +466,7 @@
|
|
|
466
466
|
* to be clamped too, or an unbreakable word in the title sizes the track to
|
|
467
467
|
* itself and the words run past the box that holds them.
|
|
468
468
|
*/
|
|
469
|
-
[data-ui
|
|
469
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-content] {
|
|
470
470
|
/* The other half of the mark's baseline group: see the mark above. */
|
|
471
471
|
align-self: baseline;
|
|
472
472
|
display: grid;
|
|
@@ -489,11 +489,7 @@
|
|
|
489
489
|
* `Zwischenspeicherung` set the track to 183 pixels inside a box of 155, and
|
|
490
490
|
* the words stood outside the message in every scheme.
|
|
491
491
|
*/
|
|
492
|
-
[data-ui
|
|
493
|
-
> [data-part='list']
|
|
494
|
-
> [data-part='item']
|
|
495
|
-
> [data-part='content']
|
|
496
|
-
> [data-part='title'] {
|
|
492
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-content] > [data-part-title] {
|
|
497
493
|
font-family: var(
|
|
498
494
|
--slotted-toast-title-font-family,
|
|
499
495
|
var(
|
|
@@ -507,11 +503,11 @@
|
|
|
507
503
|
overflow-wrap: anywhere;
|
|
508
504
|
}
|
|
509
505
|
|
|
510
|
-
[data-ui
|
|
511
|
-
> [data-part
|
|
512
|
-
> [data-part
|
|
513
|
-
> [data-part
|
|
514
|
-
> [data-part
|
|
506
|
+
[data-ui-toast]
|
|
507
|
+
> [data-part-list]
|
|
508
|
+
> [data-part-item]
|
|
509
|
+
> [data-part-content]
|
|
510
|
+
> [data-part-description] {
|
|
515
511
|
color: var(--_ink-muted);
|
|
516
512
|
margin: 0;
|
|
517
513
|
min-inline-size: 0;
|
|
@@ -525,7 +521,7 @@
|
|
|
525
521
|
* the consumer's own buttons: `button` already owns what a button is, and
|
|
526
522
|
* naming one of two controls `cancel` would privilege one arrangement.
|
|
527
523
|
*/
|
|
528
|
-
[data-ui
|
|
524
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-actions] {
|
|
529
525
|
align-items: center;
|
|
530
526
|
display: flex;
|
|
531
527
|
flex-wrap: wrap;
|
|
@@ -543,7 +539,7 @@
|
|
|
543
539
|
* margin box is exactly one line and the inset above the message equals the
|
|
544
540
|
* inset below.
|
|
545
541
|
*/
|
|
546
|
-
[data-ui
|
|
542
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-close] {
|
|
547
543
|
/* The cross is the binding's `Glyph` in an `icon` box at the glyph size
|
|
548
544
|
the formula for this box reads. */
|
|
549
545
|
--slotted-icon-size: var(--_glyph-size);
|
|
@@ -579,11 +575,11 @@
|
|
|
579
575
|
|
|
580
576
|
/* `:enabled` is the guard the shared state test requires, and the reason it
|
|
581
577
|
exists: a control the browser has already refused answers no pointer. */
|
|
582
|
-
[data-ui
|
|
578
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-close]:enabled:hover {
|
|
583
579
|
background-color: var(--_state-hover);
|
|
584
580
|
}
|
|
585
581
|
|
|
586
|
-
[data-ui
|
|
582
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-close]:enabled:active {
|
|
587
583
|
background-color: var(--_state-active);
|
|
588
584
|
}
|
|
589
585
|
|
|
@@ -592,11 +588,11 @@
|
|
|
592
588
|
44 pixels, and the ground and the ring stay square. The message clips its
|
|
593
589
|
overflow, so the target ends at the message's padding edge. */
|
|
594
590
|
@media (pointer: coarse) {
|
|
595
|
-
[data-ui
|
|
591
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-close] {
|
|
596
592
|
position: relative;
|
|
597
593
|
}
|
|
598
594
|
|
|
599
|
-
[data-ui
|
|
595
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-close]::after {
|
|
600
596
|
content: '';
|
|
601
597
|
inset: min(0px, calc((100% - var(--slotted-target-comfortable, 44px)) / 2));
|
|
602
598
|
position: absolute;
|
|
@@ -611,8 +607,8 @@
|
|
|
611
607
|
* it exists because `F6` sends the keyboard here — a message the reader
|
|
612
608
|
* cannot see they have arrived at is a message they cannot act on.
|
|
613
609
|
*/
|
|
614
|
-
[data-ui
|
|
615
|
-
[data-ui
|
|
610
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-close]:focus-visible,
|
|
611
|
+
[data-ui-toast] > [data-part-list] > [data-part-item]:focus-visible {
|
|
616
612
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
617
613
|
}
|
|
618
614
|
|
|
@@ -621,7 +617,7 @@
|
|
|
621
617
|
* the remaining-time bar has to stop at the rounded corner — and a ring
|
|
622
618
|
* outside a control at that corner would be cut in half by it.
|
|
623
619
|
*/
|
|
624
|
-
[data-ui
|
|
620
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-close]:focus-visible {
|
|
625
621
|
outline-offset: calc(-1 * var(--slotted-focus-ring-width, 2px));
|
|
626
622
|
}
|
|
627
623
|
|
|
@@ -630,7 +626,7 @@
|
|
|
630
626
|
* of the screen, and read on the box itself the ring was a thick blue border
|
|
631
627
|
* rather than a ring around a card.
|
|
632
628
|
*/
|
|
633
|
-
[data-ui
|
|
629
|
+
[data-ui-toast] > [data-part-list] > [data-part-item]:focus-visible {
|
|
634
630
|
outline-offset: var(--slotted-focus-ring-offset, 2px);
|
|
635
631
|
}
|
|
636
632
|
|
|
@@ -643,10 +639,10 @@
|
|
|
643
639
|
* fill, so a solid message adds a halo one ring-width wide just inside it,
|
|
644
640
|
* in the ink its own words are in, for the ring to be read against.
|
|
645
641
|
*/
|
|
646
|
-
[data-ui
|
|
647
|
-
> [data-part
|
|
648
|
-
> [data-part
|
|
649
|
-
> [data-part
|
|
642
|
+
[data-ui-toast]
|
|
643
|
+
> [data-part-list]
|
|
644
|
+
> [data-part-item][data-variant='solid']
|
|
645
|
+
> [data-part-close]:focus-visible {
|
|
650
646
|
box-shadow: inset 0 0 0 calc(2 * var(--slotted-focus-ring-width, 2px)) var(--_on-solid);
|
|
651
647
|
}
|
|
652
648
|
|
|
@@ -664,7 +660,7 @@
|
|
|
664
660
|
* from the inline start in every writing direction with no origin to mirror.
|
|
665
661
|
* The box is positioned, so nothing it does moves a word.
|
|
666
662
|
*/
|
|
667
|
-
[data-ui
|
|
663
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-progress] {
|
|
668
664
|
animation-duration: var(--slotted-toast-duration, var(--slotted-duration-long));
|
|
669
665
|
animation-fill-mode: forwards;
|
|
670
666
|
animation-name: slotted-toast-countdown;
|
|
@@ -688,10 +684,10 @@
|
|
|
688
684
|
* the one ink the contrast test holds against it, held back so it reads as a
|
|
689
685
|
* measure rather than as a second border.
|
|
690
686
|
*/
|
|
691
|
-
[data-ui
|
|
692
|
-
> [data-part
|
|
693
|
-
> [data-part
|
|
694
|
-
> [data-part
|
|
687
|
+
[data-ui-toast]
|
|
688
|
+
> [data-part-list]
|
|
689
|
+
> [data-part-item][data-variant='solid']
|
|
690
|
+
> [data-part-progress] {
|
|
695
691
|
background-color: var(--_on-solid);
|
|
696
692
|
opacity: 0.7;
|
|
697
693
|
}
|
|
@@ -730,12 +726,12 @@
|
|
|
730
726
|
* back in opacity, and the front one, which is the one being read, is at
|
|
731
727
|
* full strength.
|
|
732
728
|
*/
|
|
733
|
-
[data-ui
|
|
729
|
+
[data-ui-toast][data-stacking='stack'] > [data-part-list] {
|
|
734
730
|
display: block;
|
|
735
731
|
position: relative;
|
|
736
732
|
}
|
|
737
733
|
|
|
738
|
-
[data-ui
|
|
734
|
+
[data-ui-toast][data-stacking='stack'] > [data-part-list] > [data-part-item] {
|
|
739
735
|
block-size: var(--slotted-toast-front-height, auto);
|
|
740
736
|
inset-inline: 0;
|
|
741
737
|
position: absolute;
|
|
@@ -756,20 +752,20 @@
|
|
|
756
752
|
* everything behind it share one strength: below that the pile is a stack of
|
|
757
753
|
* ghosts, and only the front two edges are showing anyway.
|
|
758
754
|
*/
|
|
759
|
-
[data-ui
|
|
755
|
+
[data-ui-toast][data-stacking='stack'] > [data-part-list] > [data-part-item][data-open] {
|
|
760
756
|
opacity: calc(1 - min(var(--slotted-toast-index, 0), 2) * var(--_stack-fade));
|
|
761
757
|
}
|
|
762
758
|
|
|
763
|
-
[data-ui
|
|
764
|
-
> [data-part
|
|
765
|
-
> [data-part
|
|
759
|
+
[data-ui-toast][data-stacking='stack'][data-placement^='bottom']
|
|
760
|
+
> [data-part-list]
|
|
761
|
+
> [data-part-item] {
|
|
766
762
|
inset-block-end: 0;
|
|
767
763
|
translate: 0 calc(-1 * var(--slotted-toast-index, 0) * var(--_stack-step));
|
|
768
764
|
}
|
|
769
765
|
|
|
770
|
-
[data-ui
|
|
771
|
-
> [data-part
|
|
772
|
-
> [data-part
|
|
766
|
+
[data-ui-toast][data-stacking='stack'][data-placement^='top']
|
|
767
|
+
> [data-part-list]
|
|
768
|
+
> [data-part-item] {
|
|
773
769
|
inset-block-start: 0;
|
|
774
770
|
translate: 0 calc(var(--slotted-toast-index, 0) * var(--_stack-step));
|
|
775
771
|
}
|
|
@@ -779,9 +775,7 @@
|
|
|
779
775
|
* column, and the gap between two of them is the region's own gap — the
|
|
780
776
|
* offset script writes already carries it.
|
|
781
777
|
*/
|
|
782
|
-
[data-ui
|
|
783
|
-
> [data-part='list']
|
|
784
|
-
> [data-part='item'] {
|
|
778
|
+
[data-ui-toast][data-stacking='stack'][data-expanded] > [data-part-list] > [data-part-item] {
|
|
785
779
|
block-size: var(--slotted-toast-height, auto);
|
|
786
780
|
}
|
|
787
781
|
|
|
@@ -793,25 +787,25 @@
|
|
|
793
787
|
* messages hang from the list's edge at `placement`, so the list grows away
|
|
794
788
|
* from that edge and nothing it holds moves.
|
|
795
789
|
*/
|
|
796
|
-
[data-ui
|
|
790
|
+
[data-ui-toast][data-stacking='stack'][data-expanded] > [data-part-list] {
|
|
797
791
|
block-size: var(--slotted-toast-stack-height, auto);
|
|
798
792
|
}
|
|
799
793
|
|
|
800
|
-
[data-ui
|
|
801
|
-
> [data-part
|
|
802
|
-
> [data-part
|
|
794
|
+
[data-ui-toast][data-stacking='stack'][data-expanded]
|
|
795
|
+
> [data-part-list]
|
|
796
|
+
> [data-part-item][data-open] {
|
|
803
797
|
opacity: 1;
|
|
804
798
|
}
|
|
805
799
|
|
|
806
|
-
[data-ui
|
|
807
|
-
> [data-part
|
|
808
|
-
> [data-part
|
|
800
|
+
[data-ui-toast][data-stacking='stack'][data-expanded][data-placement^='bottom']
|
|
801
|
+
> [data-part-list]
|
|
802
|
+
> [data-part-item] {
|
|
809
803
|
translate: 0 calc(-1 * var(--slotted-toast-stack-offset, 0px));
|
|
810
804
|
}
|
|
811
805
|
|
|
812
|
-
[data-ui
|
|
813
|
-
> [data-part
|
|
814
|
-
> [data-part
|
|
806
|
+
[data-ui-toast][data-stacking='stack'][data-expanded][data-placement^='top']
|
|
807
|
+
> [data-part-list]
|
|
808
|
+
> [data-part-item] {
|
|
815
809
|
translate: 0 var(--slotted-toast-stack-offset, 0px);
|
|
816
810
|
}
|
|
817
811
|
|
|
@@ -821,11 +815,11 @@
|
|
|
821
815
|
* `min()` is what turns an index into that rule without a rule per depth —
|
|
822
816
|
* the front message resolves to one and every other to zero.
|
|
823
817
|
*/
|
|
824
|
-
[data-ui
|
|
818
|
+
[data-ui-toast][data-stacking='stack'] > [data-part-list] > [data-part-item] > * {
|
|
825
819
|
transition: opacity var(--slotted-duration-medium) var(--slotted-easing-standard);
|
|
826
820
|
}
|
|
827
821
|
|
|
828
|
-
[data-ui
|
|
822
|
+
[data-ui-toast][data-stacking='stack']:not([data-expanded]) [data-part-item] > * {
|
|
829
823
|
opacity: calc(1 - min(1, var(--slotted-toast-index, 0)));
|
|
830
824
|
}
|
|
831
825
|
|
|
@@ -837,7 +831,7 @@
|
|
|
837
831
|
* message follows it exactly, with no transition in the way: a drag that
|
|
838
832
|
* lags the finger reads as a stuck interface.
|
|
839
833
|
*/
|
|
840
|
-
[data-ui
|
|
834
|
+
[data-ui-toast] > [data-part-list] > [data-part-item][data-dragging] {
|
|
841
835
|
cursor: grabbing;
|
|
842
836
|
transition: none;
|
|
843
837
|
translate: var(--slotted-toast-swipe-x, 0px) var(--slotted-toast-swipe-y, 0px);
|
|
@@ -846,7 +840,7 @@
|
|
|
846
840
|
user-select: none;
|
|
847
841
|
}
|
|
848
842
|
|
|
849
|
-
[data-ui
|
|
843
|
+
[data-ui-toast][data-swipe='true'] > [data-part-list] > [data-part-item] {
|
|
850
844
|
touch-action: none;
|
|
851
845
|
}
|
|
852
846
|
|
|
@@ -859,7 +853,7 @@
|
|
|
859
853
|
* container condition.
|
|
860
854
|
*/
|
|
861
855
|
@container slotted-toast (max-width: 20rem) {
|
|
862
|
-
[data-ui
|
|
856
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] {
|
|
863
857
|
--_inset-block: var(--slotted-toast-padding-block, var(--slotted-space-4, 0.5rem));
|
|
864
858
|
--_inset-inline: var(--slotted-toast-padding-inline, var(--slotted-space-5, 0.75rem));
|
|
865
859
|
}
|
|
@@ -870,7 +864,7 @@
|
|
|
870
864
|
* the control, and `button` already ships `fullWidth` for a consumer who
|
|
871
865
|
* wants otherwise.
|
|
872
866
|
*/
|
|
873
|
-
[data-ui
|
|
867
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-actions] {
|
|
874
868
|
align-items: flex-start;
|
|
875
869
|
flex-direction: column;
|
|
876
870
|
}
|
|
@@ -885,11 +879,11 @@
|
|
|
885
879
|
* own fill and a transparent border is not a colour the system remaps.
|
|
886
880
|
*/
|
|
887
881
|
@media (forced-colors: active) {
|
|
888
|
-
[data-ui
|
|
882
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] {
|
|
889
883
|
border-color: CanvasText;
|
|
890
884
|
}
|
|
891
885
|
|
|
892
|
-
[data-ui
|
|
886
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-icon] {
|
|
893
887
|
color: CanvasText;
|
|
894
888
|
}
|
|
895
889
|
|
|
@@ -897,15 +891,12 @@
|
|
|
897
891
|
* The control's glyph is stroked in `currentcolor`, so giving the control
|
|
898
892
|
* a system colour repaints it, and the mark's slot the same.
|
|
899
893
|
*/
|
|
900
|
-
[data-ui
|
|
894
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-close] {
|
|
901
895
|
color: CanvasText;
|
|
902
896
|
}
|
|
903
897
|
|
|
904
|
-
[data-ui
|
|
905
|
-
[data-ui
|
|
906
|
-
> [data-part='list']
|
|
907
|
-
> [data-part='item']
|
|
908
|
-
> [data-part='close']:enabled:active {
|
|
898
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-close]:enabled:hover,
|
|
899
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-close]:enabled:active {
|
|
909
900
|
background-color: Highlight;
|
|
910
901
|
color: HighlightText;
|
|
911
902
|
}
|
|
@@ -914,7 +905,7 @@
|
|
|
914
905
|
* A bar of system ink under every message, shortening, is a moving line
|
|
915
906
|
* with no colour to say what it belongs to. The message still expires.
|
|
916
907
|
*/
|
|
917
|
-
[data-ui
|
|
908
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-progress] {
|
|
918
909
|
background-color: CanvasText;
|
|
919
910
|
opacity: 1;
|
|
920
911
|
}
|
|
@@ -935,7 +926,7 @@
|
|
|
935
926
|
* reached over the declared one, and the `timing` scene froze at 80 per cent.
|
|
936
927
|
*/
|
|
937
928
|
@media (prefers-reduced-motion: reduce) {
|
|
938
|
-
[data-ui
|
|
929
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-progress] {
|
|
939
930
|
animation-name: none;
|
|
940
931
|
inline-size: 100%;
|
|
941
932
|
}
|