@slotted/styles 0.1.0-beta.0 → 0.1.0-beta.10
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 +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 +139 -64
- package/src/button/button.tokens.json +10 -0
- package/src/button-group/button-group.css +76 -72
- 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 +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 +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 +504 -469
- package/src/data-grid/data-grid.tokens.json +2 -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 +70 -70
- package/src/dialog/dialog.css +334 -153
- package/src/dialog/dialog.tokens.json +5 -0
- package/src/divider/divider.css +18 -18
- package/src/drawer/drawer.css +186 -209
- 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 +23 -23
- package/src/page-header/page-header.css +268 -281
- package/src/page-header/page-header.tokens.json +1 -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 +39 -182
- package/src/spinner/spinner.tokens.json +0 -2
- 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 +330 -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 +89 -90
- package/src/toast/toast.tokens.json +5 -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
|
@@ -76,6 +76,11 @@
|
|
|
76
76
|
"--slotted-tone-danger-solid",
|
|
77
77
|
"--slotted-tone-danger-surface",
|
|
78
78
|
"--slotted-tone-danger-text",
|
|
79
|
+
"--slotted-tone-info-border",
|
|
80
|
+
"--slotted-tone-info-on-solid",
|
|
81
|
+
"--slotted-tone-info-solid",
|
|
82
|
+
"--slotted-tone-info-surface",
|
|
83
|
+
"--slotted-tone-info-text",
|
|
79
84
|
"--slotted-tone-secondary-border",
|
|
80
85
|
"--slotted-tone-secondary-on-solid",
|
|
81
86
|
"--slotted-tone-secondary-solid",
|
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,15 @@
|
|
|
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='info'] {
|
|
353
|
+
--_solid: var(--slotted-tone-info-solid);
|
|
354
|
+
--_on-solid: var(--slotted-tone-info-on-solid);
|
|
355
|
+
--_tone-surface: var(--slotted-tone-info-surface);
|
|
356
|
+
--_tone-border: var(--slotted-tone-info-border);
|
|
357
|
+
--_tone-text: var(--slotted-tone-info-text);
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
[data-ui-toast] > [data-part-list] > [data-part-item][data-tone='warning'] {
|
|
353
361
|
--_solid: var(--slotted-tone-warning-solid);
|
|
354
362
|
--_on-solid: var(--slotted-tone-warning-on-solid);
|
|
355
363
|
--_tone-surface: var(--slotted-tone-warning-surface);
|
|
@@ -357,7 +365,7 @@
|
|
|
357
365
|
--_tone-text: var(--slotted-tone-warning-text);
|
|
358
366
|
}
|
|
359
367
|
|
|
360
|
-
[data-ui
|
|
368
|
+
[data-ui-toast] > [data-part-list] > [data-part-item][data-tone='danger'] {
|
|
361
369
|
--_solid: var(--slotted-tone-danger-solid);
|
|
362
370
|
--_on-solid: var(--slotted-tone-danger-on-solid);
|
|
363
371
|
--_tone-surface: var(--slotted-tone-danger-surface);
|
|
@@ -373,7 +381,7 @@
|
|
|
373
381
|
* tone is in the mark and in nothing else, which is enough — it is the
|
|
374
382
|
* silhouette that survives forced colours anyway.
|
|
375
383
|
*/
|
|
376
|
-
[data-ui
|
|
384
|
+
[data-ui-toast] > [data-part-list] > [data-part-item][data-variant='soft'] {
|
|
377
385
|
--_ground: var(--_tone-surface);
|
|
378
386
|
--_edge: var(--_tone-border);
|
|
379
387
|
/* The tone's own text on the tone's own surface is the pair the theme
|
|
@@ -383,7 +391,7 @@
|
|
|
383
391
|
--_ink-muted: var(--_tone-text);
|
|
384
392
|
}
|
|
385
393
|
|
|
386
|
-
[data-ui
|
|
394
|
+
[data-ui-toast] > [data-part-list] > [data-part-item][data-variant='solid'] {
|
|
387
395
|
--_ground: var(--_solid);
|
|
388
396
|
--_edge: var(--_solid);
|
|
389
397
|
--_ink: var(--_on-solid);
|
|
@@ -426,7 +434,7 @@
|
|
|
426
434
|
* message waiting on a promise with no mark of its own draws none, and the
|
|
427
435
|
* box stays, so the layout does not jump when the spinner becomes a tick.
|
|
428
436
|
*/
|
|
429
|
-
[data-ui
|
|
437
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-icon] {
|
|
430
438
|
--slotted-icon-size: calc(var(--_mark-size) * 12 / 11);
|
|
431
439
|
/**
|
|
432
440
|
* The loading mark is `progress-indicator`'s contained loader, and these
|
|
@@ -466,7 +474,7 @@
|
|
|
466
474
|
* to be clamped too, or an unbreakable word in the title sizes the track to
|
|
467
475
|
* itself and the words run past the box that holds them.
|
|
468
476
|
*/
|
|
469
|
-
[data-ui
|
|
477
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-content] {
|
|
470
478
|
/* The other half of the mark's baseline group: see the mark above. */
|
|
471
479
|
align-self: baseline;
|
|
472
480
|
display: grid;
|
|
@@ -489,11 +497,7 @@
|
|
|
489
497
|
* `Zwischenspeicherung` set the track to 183 pixels inside a box of 155, and
|
|
490
498
|
* the words stood outside the message in every scheme.
|
|
491
499
|
*/
|
|
492
|
-
[data-ui
|
|
493
|
-
> [data-part='list']
|
|
494
|
-
> [data-part='item']
|
|
495
|
-
> [data-part='content']
|
|
496
|
-
> [data-part='title'] {
|
|
500
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-content] > [data-part-title] {
|
|
497
501
|
font-family: var(
|
|
498
502
|
--slotted-toast-title-font-family,
|
|
499
503
|
var(
|
|
@@ -507,11 +511,11 @@
|
|
|
507
511
|
overflow-wrap: anywhere;
|
|
508
512
|
}
|
|
509
513
|
|
|
510
|
-
[data-ui
|
|
511
|
-
> [data-part
|
|
512
|
-
> [data-part
|
|
513
|
-
> [data-part
|
|
514
|
-
> [data-part
|
|
514
|
+
[data-ui-toast]
|
|
515
|
+
> [data-part-list]
|
|
516
|
+
> [data-part-item]
|
|
517
|
+
> [data-part-content]
|
|
518
|
+
> [data-part-description] {
|
|
515
519
|
color: var(--_ink-muted);
|
|
516
520
|
margin: 0;
|
|
517
521
|
min-inline-size: 0;
|
|
@@ -525,7 +529,7 @@
|
|
|
525
529
|
* the consumer's own buttons: `button` already owns what a button is, and
|
|
526
530
|
* naming one of two controls `cancel` would privilege one arrangement.
|
|
527
531
|
*/
|
|
528
|
-
[data-ui
|
|
532
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-actions] {
|
|
529
533
|
align-items: center;
|
|
530
534
|
display: flex;
|
|
531
535
|
flex-wrap: wrap;
|
|
@@ -543,7 +547,7 @@
|
|
|
543
547
|
* margin box is exactly one line and the inset above the message equals the
|
|
544
548
|
* inset below.
|
|
545
549
|
*/
|
|
546
|
-
[data-ui
|
|
550
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-close] {
|
|
547
551
|
/* The cross is the binding's `Glyph` in an `icon` box at the glyph size
|
|
548
552
|
the formula for this box reads. */
|
|
549
553
|
--slotted-icon-size: var(--_glyph-size);
|
|
@@ -579,11 +583,11 @@
|
|
|
579
583
|
|
|
580
584
|
/* `:enabled` is the guard the shared state test requires, and the reason it
|
|
581
585
|
exists: a control the browser has already refused answers no pointer. */
|
|
582
|
-
[data-ui
|
|
586
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-close]:enabled:hover {
|
|
583
587
|
background-color: var(--_state-hover);
|
|
584
588
|
}
|
|
585
589
|
|
|
586
|
-
[data-ui
|
|
590
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-close]:enabled:active {
|
|
587
591
|
background-color: var(--_state-active);
|
|
588
592
|
}
|
|
589
593
|
|
|
@@ -592,11 +596,11 @@
|
|
|
592
596
|
44 pixels, and the ground and the ring stay square. The message clips its
|
|
593
597
|
overflow, so the target ends at the message's padding edge. */
|
|
594
598
|
@media (pointer: coarse) {
|
|
595
|
-
[data-ui
|
|
599
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-close] {
|
|
596
600
|
position: relative;
|
|
597
601
|
}
|
|
598
602
|
|
|
599
|
-
[data-ui
|
|
603
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-close]::after {
|
|
600
604
|
content: '';
|
|
601
605
|
inset: min(0px, calc((100% - var(--slotted-target-comfortable, 44px)) / 2));
|
|
602
606
|
position: absolute;
|
|
@@ -611,8 +615,8 @@
|
|
|
611
615
|
* it exists because `F6` sends the keyboard here — a message the reader
|
|
612
616
|
* cannot see they have arrived at is a message they cannot act on.
|
|
613
617
|
*/
|
|
614
|
-
[data-ui
|
|
615
|
-
[data-ui
|
|
618
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-close]:focus-visible,
|
|
619
|
+
[data-ui-toast] > [data-part-list] > [data-part-item]:focus-visible {
|
|
616
620
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
617
621
|
}
|
|
618
622
|
|
|
@@ -621,7 +625,7 @@
|
|
|
621
625
|
* the remaining-time bar has to stop at the rounded corner — and a ring
|
|
622
626
|
* outside a control at that corner would be cut in half by it.
|
|
623
627
|
*/
|
|
624
|
-
[data-ui
|
|
628
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-close]:focus-visible {
|
|
625
629
|
outline-offset: calc(-1 * var(--slotted-focus-ring-width, 2px));
|
|
626
630
|
}
|
|
627
631
|
|
|
@@ -630,7 +634,7 @@
|
|
|
630
634
|
* of the screen, and read on the box itself the ring was a thick blue border
|
|
631
635
|
* rather than a ring around a card.
|
|
632
636
|
*/
|
|
633
|
-
[data-ui
|
|
637
|
+
[data-ui-toast] > [data-part-list] > [data-part-item]:focus-visible {
|
|
634
638
|
outline-offset: var(--slotted-focus-ring-offset, 2px);
|
|
635
639
|
}
|
|
636
640
|
|
|
@@ -643,10 +647,10 @@
|
|
|
643
647
|
* fill, so a solid message adds a halo one ring-width wide just inside it,
|
|
644
648
|
* in the ink its own words are in, for the ring to be read against.
|
|
645
649
|
*/
|
|
646
|
-
[data-ui
|
|
647
|
-
> [data-part
|
|
648
|
-
> [data-part
|
|
649
|
-
> [data-part
|
|
650
|
+
[data-ui-toast]
|
|
651
|
+
> [data-part-list]
|
|
652
|
+
> [data-part-item][data-variant='solid']
|
|
653
|
+
> [data-part-close]:focus-visible {
|
|
650
654
|
box-shadow: inset 0 0 0 calc(2 * var(--slotted-focus-ring-width, 2px)) var(--_on-solid);
|
|
651
655
|
}
|
|
652
656
|
|
|
@@ -664,7 +668,7 @@
|
|
|
664
668
|
* from the inline start in every writing direction with no origin to mirror.
|
|
665
669
|
* The box is positioned, so nothing it does moves a word.
|
|
666
670
|
*/
|
|
667
|
-
[data-ui
|
|
671
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-progress] {
|
|
668
672
|
animation-duration: var(--slotted-toast-duration, var(--slotted-duration-long));
|
|
669
673
|
animation-fill-mode: forwards;
|
|
670
674
|
animation-name: slotted-toast-countdown;
|
|
@@ -688,10 +692,10 @@
|
|
|
688
692
|
* the one ink the contrast test holds against it, held back so it reads as a
|
|
689
693
|
* measure rather than as a second border.
|
|
690
694
|
*/
|
|
691
|
-
[data-ui
|
|
692
|
-
> [data-part
|
|
693
|
-
> [data-part
|
|
694
|
-
> [data-part
|
|
695
|
+
[data-ui-toast]
|
|
696
|
+
> [data-part-list]
|
|
697
|
+
> [data-part-item][data-variant='solid']
|
|
698
|
+
> [data-part-progress] {
|
|
695
699
|
background-color: var(--_on-solid);
|
|
696
700
|
opacity: 0.7;
|
|
697
701
|
}
|
|
@@ -730,12 +734,12 @@
|
|
|
730
734
|
* back in opacity, and the front one, which is the one being read, is at
|
|
731
735
|
* full strength.
|
|
732
736
|
*/
|
|
733
|
-
[data-ui
|
|
737
|
+
[data-ui-toast][data-stacking='stack'] > [data-part-list] {
|
|
734
738
|
display: block;
|
|
735
739
|
position: relative;
|
|
736
740
|
}
|
|
737
741
|
|
|
738
|
-
[data-ui
|
|
742
|
+
[data-ui-toast][data-stacking='stack'] > [data-part-list] > [data-part-item] {
|
|
739
743
|
block-size: var(--slotted-toast-front-height, auto);
|
|
740
744
|
inset-inline: 0;
|
|
741
745
|
position: absolute;
|
|
@@ -756,20 +760,20 @@
|
|
|
756
760
|
* everything behind it share one strength: below that the pile is a stack of
|
|
757
761
|
* ghosts, and only the front two edges are showing anyway.
|
|
758
762
|
*/
|
|
759
|
-
[data-ui
|
|
763
|
+
[data-ui-toast][data-stacking='stack'] > [data-part-list] > [data-part-item][data-open] {
|
|
760
764
|
opacity: calc(1 - min(var(--slotted-toast-index, 0), 2) * var(--_stack-fade));
|
|
761
765
|
}
|
|
762
766
|
|
|
763
|
-
[data-ui
|
|
764
|
-
> [data-part
|
|
765
|
-
> [data-part
|
|
767
|
+
[data-ui-toast][data-stacking='stack'][data-placement^='bottom']
|
|
768
|
+
> [data-part-list]
|
|
769
|
+
> [data-part-item] {
|
|
766
770
|
inset-block-end: 0;
|
|
767
771
|
translate: 0 calc(-1 * var(--slotted-toast-index, 0) * var(--_stack-step));
|
|
768
772
|
}
|
|
769
773
|
|
|
770
|
-
[data-ui
|
|
771
|
-
> [data-part
|
|
772
|
-
> [data-part
|
|
774
|
+
[data-ui-toast][data-stacking='stack'][data-placement^='top']
|
|
775
|
+
> [data-part-list]
|
|
776
|
+
> [data-part-item] {
|
|
773
777
|
inset-block-start: 0;
|
|
774
778
|
translate: 0 calc(var(--slotted-toast-index, 0) * var(--_stack-step));
|
|
775
779
|
}
|
|
@@ -779,9 +783,7 @@
|
|
|
779
783
|
* column, and the gap between two of them is the region's own gap — the
|
|
780
784
|
* offset script writes already carries it.
|
|
781
785
|
*/
|
|
782
|
-
[data-ui
|
|
783
|
-
> [data-part='list']
|
|
784
|
-
> [data-part='item'] {
|
|
786
|
+
[data-ui-toast][data-stacking='stack'][data-expanded] > [data-part-list] > [data-part-item] {
|
|
785
787
|
block-size: var(--slotted-toast-height, auto);
|
|
786
788
|
}
|
|
787
789
|
|
|
@@ -793,25 +795,25 @@
|
|
|
793
795
|
* messages hang from the list's edge at `placement`, so the list grows away
|
|
794
796
|
* from that edge and nothing it holds moves.
|
|
795
797
|
*/
|
|
796
|
-
[data-ui
|
|
798
|
+
[data-ui-toast][data-stacking='stack'][data-expanded] > [data-part-list] {
|
|
797
799
|
block-size: var(--slotted-toast-stack-height, auto);
|
|
798
800
|
}
|
|
799
801
|
|
|
800
|
-
[data-ui
|
|
801
|
-
> [data-part
|
|
802
|
-
> [data-part
|
|
802
|
+
[data-ui-toast][data-stacking='stack'][data-expanded]
|
|
803
|
+
> [data-part-list]
|
|
804
|
+
> [data-part-item][data-open] {
|
|
803
805
|
opacity: 1;
|
|
804
806
|
}
|
|
805
807
|
|
|
806
|
-
[data-ui
|
|
807
|
-
> [data-part
|
|
808
|
-
> [data-part
|
|
808
|
+
[data-ui-toast][data-stacking='stack'][data-expanded][data-placement^='bottom']
|
|
809
|
+
> [data-part-list]
|
|
810
|
+
> [data-part-item] {
|
|
809
811
|
translate: 0 calc(-1 * var(--slotted-toast-stack-offset, 0px));
|
|
810
812
|
}
|
|
811
813
|
|
|
812
|
-
[data-ui
|
|
813
|
-
> [data-part
|
|
814
|
-
> [data-part
|
|
814
|
+
[data-ui-toast][data-stacking='stack'][data-expanded][data-placement^='top']
|
|
815
|
+
> [data-part-list]
|
|
816
|
+
> [data-part-item] {
|
|
815
817
|
translate: 0 var(--slotted-toast-stack-offset, 0px);
|
|
816
818
|
}
|
|
817
819
|
|
|
@@ -821,11 +823,11 @@
|
|
|
821
823
|
* `min()` is what turns an index into that rule without a rule per depth —
|
|
822
824
|
* the front message resolves to one and every other to zero.
|
|
823
825
|
*/
|
|
824
|
-
[data-ui
|
|
826
|
+
[data-ui-toast][data-stacking='stack'] > [data-part-list] > [data-part-item] > * {
|
|
825
827
|
transition: opacity var(--slotted-duration-medium) var(--slotted-easing-standard);
|
|
826
828
|
}
|
|
827
829
|
|
|
828
|
-
[data-ui
|
|
830
|
+
[data-ui-toast][data-stacking='stack']:not([data-expanded]) [data-part-item] > * {
|
|
829
831
|
opacity: calc(1 - min(1, var(--slotted-toast-index, 0)));
|
|
830
832
|
}
|
|
831
833
|
|
|
@@ -837,7 +839,7 @@
|
|
|
837
839
|
* message follows it exactly, with no transition in the way: a drag that
|
|
838
840
|
* lags the finger reads as a stuck interface.
|
|
839
841
|
*/
|
|
840
|
-
[data-ui
|
|
842
|
+
[data-ui-toast] > [data-part-list] > [data-part-item][data-dragging] {
|
|
841
843
|
cursor: grabbing;
|
|
842
844
|
transition: none;
|
|
843
845
|
translate: var(--slotted-toast-swipe-x, 0px) var(--slotted-toast-swipe-y, 0px);
|
|
@@ -846,7 +848,7 @@
|
|
|
846
848
|
user-select: none;
|
|
847
849
|
}
|
|
848
850
|
|
|
849
|
-
[data-ui
|
|
851
|
+
[data-ui-toast][data-swipe='true'] > [data-part-list] > [data-part-item] {
|
|
850
852
|
touch-action: none;
|
|
851
853
|
}
|
|
852
854
|
|
|
@@ -859,7 +861,7 @@
|
|
|
859
861
|
* container condition.
|
|
860
862
|
*/
|
|
861
863
|
@container slotted-toast (max-width: 20rem) {
|
|
862
|
-
[data-ui
|
|
864
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] {
|
|
863
865
|
--_inset-block: var(--slotted-toast-padding-block, var(--slotted-space-4, 0.5rem));
|
|
864
866
|
--_inset-inline: var(--slotted-toast-padding-inline, var(--slotted-space-5, 0.75rem));
|
|
865
867
|
}
|
|
@@ -870,7 +872,7 @@
|
|
|
870
872
|
* the control, and `button` already ships `fullWidth` for a consumer who
|
|
871
873
|
* wants otherwise.
|
|
872
874
|
*/
|
|
873
|
-
[data-ui
|
|
875
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-actions] {
|
|
874
876
|
align-items: flex-start;
|
|
875
877
|
flex-direction: column;
|
|
876
878
|
}
|
|
@@ -885,11 +887,11 @@
|
|
|
885
887
|
* own fill and a transparent border is not a colour the system remaps.
|
|
886
888
|
*/
|
|
887
889
|
@media (forced-colors: active) {
|
|
888
|
-
[data-ui
|
|
890
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] {
|
|
889
891
|
border-color: CanvasText;
|
|
890
892
|
}
|
|
891
893
|
|
|
892
|
-
[data-ui
|
|
894
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-icon] {
|
|
893
895
|
color: CanvasText;
|
|
894
896
|
}
|
|
895
897
|
|
|
@@ -897,15 +899,12 @@
|
|
|
897
899
|
* The control's glyph is stroked in `currentcolor`, so giving the control
|
|
898
900
|
* a system colour repaints it, and the mark's slot the same.
|
|
899
901
|
*/
|
|
900
|
-
[data-ui
|
|
902
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-close] {
|
|
901
903
|
color: CanvasText;
|
|
902
904
|
}
|
|
903
905
|
|
|
904
|
-
[data-ui
|
|
905
|
-
[data-ui
|
|
906
|
-
> [data-part='list']
|
|
907
|
-
> [data-part='item']
|
|
908
|
-
> [data-part='close']:enabled:active {
|
|
906
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-close]:enabled:hover,
|
|
907
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-close]:enabled:active {
|
|
909
908
|
background-color: Highlight;
|
|
910
909
|
color: HighlightText;
|
|
911
910
|
}
|
|
@@ -914,7 +913,7 @@
|
|
|
914
913
|
* A bar of system ink under every message, shortening, is a moving line
|
|
915
914
|
* with no colour to say what it belongs to. The message still expires.
|
|
916
915
|
*/
|
|
917
|
-
[data-ui
|
|
916
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-progress] {
|
|
918
917
|
background-color: CanvasText;
|
|
919
918
|
opacity: 1;
|
|
920
919
|
}
|
|
@@ -935,7 +934,7 @@
|
|
|
935
934
|
* reached over the declared one, and the `timing` scene froze at 80 per cent.
|
|
936
935
|
*/
|
|
937
936
|
@media (prefers-reduced-motion: reduce) {
|
|
938
|
-
[data-ui
|
|
937
|
+
[data-ui-toast] > [data-part-list] > [data-part-item] > [data-part-progress] {
|
|
939
938
|
animation-name: none;
|
|
940
939
|
inline-size: 100%;
|
|
941
940
|
}
|
|
@@ -71,6 +71,11 @@
|
|
|
71
71
|
"--slotted-tone-danger-solid",
|
|
72
72
|
"--slotted-tone-danger-surface",
|
|
73
73
|
"--slotted-tone-danger-text",
|
|
74
|
+
"--slotted-tone-info-border",
|
|
75
|
+
"--slotted-tone-info-on-solid",
|
|
76
|
+
"--slotted-tone-info-solid",
|
|
77
|
+
"--slotted-tone-info-surface",
|
|
78
|
+
"--slotted-tone-info-text",
|
|
74
79
|
"--slotted-tone-secondary-border",
|
|
75
80
|
"--slotted-tone-secondary-on-solid",
|
|
76
81
|
"--slotted-tone-secondary-solid",
|