@slotted/styles 0.1.0-beta.1 → 0.1.0-beta.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/accordion/accordion.css +10 -10
- package/src/action-bar/action-bar.css +35 -42
- package/src/action-sheet/action-sheet.css +36 -36
- package/src/alert/alert.css +43 -35
- package/src/alert/alert.tokens.json +5 -0
- package/src/app-shell/app-shell.css +356 -301
- package/src/aspect-ratio/aspect-ratio.css +9 -9
- package/src/attachment/attachment.css +91 -99
- package/src/avatar/avatar.css +71 -41
- package/src/avatar/avatar.tokens.json +7 -0
- package/src/avatar-group/avatar-group.css +21 -22
- package/src/badge/badge.css +45 -37
- package/src/badge/badge.tokens.json +5 -0
- package/src/breadcrumb/breadcrumb.css +37 -37
- package/src/button/button.css +149 -68
- package/src/button/button.tokens.json +10 -0
- package/src/button-group/button-group.css +79 -74
- package/src/button-group/button-group.tokens.json +2 -0
- package/src/calendar/calendar.css +93 -103
- package/src/card/card.css +54 -61
- package/src/carousel/carousel.css +150 -161
- package/src/cascader/cascader.css +152 -153
- package/src/cascader/cascader.tokens.json +1 -0
- package/src/chart/chart.css +242 -239
- package/src/chart/chart.tokens.json +1 -0
- package/src/checkbox/checkbox.css +119 -124
- package/src/checkbox-group/checkbox-group.css +7 -7
- package/src/code-block/code-block.css +81 -85
- package/src/collapsible/collapsible.css +69 -76
- package/src/color-picker/color-picker.css +83 -91
- package/src/column-manager/column-manager.css +106 -114
- package/src/combobox/combobox.css +132 -107
- package/src/combobox/combobox.tokens.json +1 -0
- package/src/command-palette/command-palette.css +103 -90
- package/src/command-palette/command-palette.tokens.json +1 -0
- package/src/container/container.css +24 -24
- package/src/context-menu/context-menu.css +8 -8
- package/src/currency-field/currency-field.css +210 -88
- package/src/currency-field/currency-field.tokens.json +13 -0
- package/src/dashboard-grid/dashboard-grid.css +148 -116
- package/src/data-grid/data-grid.css +535 -470
- package/src/data-grid/data-grid.tokens.json +4 -0
- package/src/data-list/data-list.css +81 -70
- package/src/data-list/data-list.tokens.json +2 -1
- package/src/date-field/date-field.css +55 -52
- package/src/date-field/date-field.tokens.json +1 -0
- package/src/date-picker/date-picker.css +40 -42
- package/src/date-range-picker/date-range-picker.css +114 -118
- package/src/datetime-field/datetime-field.css +78 -80
- package/src/datetime-field/datetime-field.tokens.json +1 -0
- package/src/datetime-picker/datetime-picker.css +61 -63
- package/src/datetime-range-picker/datetime-range-picker.css +149 -156
- package/src/description-list/description-list.css +61 -64
- package/src/detail-panel/detail-panel.css +86 -71
- package/src/detail-panel/detail-panel.tokens.json +2 -0
- package/src/dialog/dialog.css +372 -153
- package/src/dialog/dialog.tokens.json +6 -0
- package/src/divider/divider.css +18 -18
- package/src/drawer/drawer.css +205 -210
- package/src/drawer/drawer.tokens.json +1 -0
- package/src/entity-picker/entity-picker.css +238 -241
- package/src/entity-picker/entity-picker.tokens.json +1 -0
- package/src/event-calendar/event-calendar.css +343 -385
- package/src/field/field.css +74 -78
- package/src/field-group/field-group.css +22 -25
- package/src/filter-bar/filter-bar.css +193 -209
- package/src/form/form.css +34 -24
- package/src/form/form.tokens.json +1 -0
- package/src/fullscreen/fullscreen.css +24 -25
- package/src/grid/grid.css +28 -28
- package/src/highlight/highlight.css +6 -6
- package/src/hover-card/hover-card.css +6 -6
- package/src/icon/icon.css +19 -15
- package/src/icon/icon.tokens.json +1 -0
- package/src/image/image.css +39 -39
- package/src/import-export-center/import-export-center.css +135 -156
- package/src/inline/inline.css +27 -27
- package/src/inline-message/inline-message.css +52 -28
- package/src/inline-message/inline-message.tokens.json +4 -0
- package/src/kbd/kbd.css +30 -26
- package/src/link/link.css +15 -15
- package/src/list/list.css +44 -17
- package/src/list/list.tokens.json +4 -0
- package/src/list-item/list-item.css +80 -66
- package/src/list-item/list-item.tokens.json +7 -0
- package/src/listbox/listbox.css +56 -59
- package/src/loading-overlay/loading-overlay.css +75 -92
- package/src/markdown/markdown.css +17 -17
- package/src/menu/menu.css +83 -63
- package/src/menubar/menubar.css +13 -13
- package/src/message/message.css +182 -202
- package/src/message/message.tokens.json +5 -0
- package/src/message-scroller/message-scroller.css +41 -42
- package/src/multi-select/multi-select.css +152 -145
- package/src/multi-select/multi-select.tokens.json +1 -0
- package/src/navigation-menu/navigation-menu.css +167 -188
- package/src/notification-center/notification-center.css +140 -148
- package/src/notification-center/notification-center.tokens.json +3 -0
- package/src/number-field/number-field.css +84 -83
- package/src/number-field/number-field.tokens.json +1 -0
- package/src/otp-input/otp-input.css +67 -57
- package/src/otp-input/otp-input.tokens.json +1 -0
- package/src/page/page.css +39 -23
- package/src/page/page.tokens.json +1 -0
- package/src/page-header/page-header.css +323 -283
- package/src/page-header/page-header.tokens.json +5 -0
- package/src/pagination/pagination.css +68 -72
- package/src/popover/popover.css +40 -49
- package/src/progress-indicator/progress-indicator.css +177 -120
- package/src/progress-indicator/progress-indicator.tokens.json +1 -1
- package/src/prompt-composer/prompt-composer.css +221 -102
- package/src/prompt-composer/prompt-composer.tokens.json +15 -0
- package/src/prose/prose.css +71 -75
- package/src/radio-group/radio-group.css +98 -103
- package/src/rating/rating.css +136 -132
- package/src/rating/rating.tokens.json +1 -0
- package/src/result-state/result-state.css +74 -77
- package/src/runtime-properties.mjs +2 -0
- package/src/saved-views/saved-views.css +41 -47
- package/src/scroll-area/scroll-area.css +39 -32
- package/src/section/section.css +161 -41
- package/src/section/section.tokens.json +7 -2
- package/src/segmented-control/segmented-control.css +254 -97
- package/src/segmented-control/segmented-control.tokens.json +15 -11
- package/src/select/select.css +118 -117
- package/src/select/select.tokens.json +1 -0
- package/src/side-navigation/side-navigation.css +179 -182
- package/src/side-navigation/side-navigation.tokens.json +1 -0
- package/src/skeleton/skeleton.css +47 -48
- package/src/slider/slider.css +86 -88
- package/src/sparkline/sparkline.css +62 -40
- package/src/sparkline/sparkline.tokens.json +2 -0
- package/src/spinner/spinner.css +83 -180
- package/src/spinner/spinner.tokens.json +0 -1
- package/src/split-button/split-button.css +30 -31
- package/src/split-button/split-button.tokens.json +1 -0
- package/src/splitter/splitter.css +35 -35
- package/src/stack/stack.css +24 -24
- package/src/stat-card/stat-card.css +341 -224
- package/src/stat-card/stat-card.tokens.json +3 -0
- package/src/status-indicator/status-indicator.css +28 -28
- package/src/stepper/stepper.css +58 -62
- package/src/switch/switch.css +86 -92
- package/src/table/table.css +310 -165
- package/src/table/table.tokens.json +6 -0
- package/src/table-of-contents/table-of-contents.css +51 -54
- package/src/tabs/tabs.css +337 -302
- package/src/tabs/tabs.tokens.json +8 -5
- package/src/tag/tag.css +79 -71
- package/src/tag/tag.tokens.json +9 -0
- package/src/tags-input/tags-input.css +145 -82
- package/src/tags-input/tags-input.tokens.json +7 -1
- package/src/text-field/text-field.css +132 -136
- package/src/text-field/text-field.tokens.json +1 -0
- package/src/textarea/textarea.css +31 -28
- package/src/textarea/textarea.tokens.json +1 -0
- package/src/time-field/time-field.css +72 -69
- package/src/time-field/time-field.tokens.json +1 -0
- package/src/time-picker/time-picker.css +56 -58
- package/src/time-range-picker/time-range-picker.css +126 -133
- package/src/timeline/timeline.css +254 -266
- package/src/timeline/timeline.tokens.json +5 -0
- package/src/toast/toast.css +108 -90
- package/src/toast/toast.tokens.json +6 -0
- package/src/toggle/toggle.css +62 -25
- package/src/toggle/toggle.tokens.json +8 -0
- package/src/toggle-group/toggle-group.css +106 -60
- package/src/toggle-group/toggle-group.tokens.json +10 -0
- package/src/toolbar/toolbar.css +30 -35
- package/src/tooltip/tooltip.css +26 -26
- package/src/top-navigation/top-navigation.css +243 -259
- package/src/tour/tour.css +51 -60
- package/src/transfer/transfer.css +160 -164
- package/src/tree/tree.css +103 -111
- package/src/typography/typography.css +40 -36
- package/src/typography/typography.tokens.json +1 -0
- package/src/upload/upload.css +224 -224
- package/src/visually-hidden/visually-hidden.css +1 -1
- package/src/wizard/wizard.css +185 -197
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
* the result-state inside are theirs, reached with child combinators so a
|
|
27
27
|
* `title`, an `actions` or a `description` of theirs is never restyled.
|
|
28
28
|
*/
|
|
29
|
-
[data-ui
|
|
29
|
+
[data-ui-notification-center] {
|
|
30
30
|
--_text: var(--slotted-text, CanvasText);
|
|
31
31
|
--_muted: var(--slotted-text-muted, GrayText);
|
|
32
32
|
--_rule: var(--slotted-notification-center-border, var(--slotted-border-subtle, ButtonBorder));
|
|
@@ -128,7 +128,7 @@
|
|
|
128
128
|
* would collapse to nothing; `sm` states a floor, capped by the viewport
|
|
129
129
|
* for a phone, and `100%` keeps it filling a host that has a width.
|
|
130
130
|
*/
|
|
131
|
-
[data-ui
|
|
131
|
+
[data-ui-notification-center][data-size='sm'] {
|
|
132
132
|
min-inline-size: var(
|
|
133
133
|
--slotted-notification-center-min-inline-size-sm,
|
|
134
134
|
min(22rem, calc(100vw - var(--slotted-space-8, 2rem)))
|
|
@@ -165,7 +165,7 @@
|
|
|
165
165
|
* The title pushes the rest to the end; a control that wraps lands at the
|
|
166
166
|
* end of its own line, under the one before it, not at the start.
|
|
167
167
|
*/
|
|
168
|
-
[data-ui
|
|
168
|
+
[data-ui-notification-center] > [data-part-header] {
|
|
169
169
|
align-items: center;
|
|
170
170
|
border-block-end: var(--_rule-size) solid var(--_rule);
|
|
171
171
|
display: flex;
|
|
@@ -177,7 +177,7 @@
|
|
|
177
177
|
padding-inline: var(--_inset-inline);
|
|
178
178
|
}
|
|
179
179
|
|
|
180
|
-
[data-ui
|
|
180
|
+
[data-ui-notification-center] > [data-part-header] > [data-part-title] {
|
|
181
181
|
align-items: center;
|
|
182
182
|
color: var(--_text);
|
|
183
183
|
display: inline-flex;
|
|
@@ -203,7 +203,7 @@
|
|
|
203
203
|
* is what waits.
|
|
204
204
|
*/
|
|
205
205
|
/** One measure for both dimensions: a single digit is a circle, two digits a pill. */
|
|
206
|
-
[data-ui
|
|
206
|
+
[data-ui-notification-center] [data-part-count] {
|
|
207
207
|
align-items: center;
|
|
208
208
|
background-color: var(--slotted-surface-sunken, Canvas);
|
|
209
209
|
block-size: var(--_count-box);
|
|
@@ -223,21 +223,18 @@
|
|
|
223
223
|
padding-inline: var(--slotted-space-2, 0.25rem);
|
|
224
224
|
}
|
|
225
225
|
|
|
226
|
-
[data-ui
|
|
227
|
-
> [data-part='header']
|
|
228
|
-
> [data-part='title']
|
|
229
|
-
> [data-part='count'] {
|
|
226
|
+
[data-ui-notification-center] > [data-part-header] > [data-part-title] > [data-part-count] {
|
|
230
227
|
background-color: var(--slotted-tone-accent-surface, Canvas);
|
|
231
228
|
color: var(--slotted-tone-accent-text, Highlight);
|
|
232
229
|
}
|
|
233
230
|
|
|
234
231
|
/** The slot a Button sits in, pushed to the end of the row; the consumer's actions after it. */
|
|
235
|
-
[data-ui
|
|
232
|
+
[data-ui-notification-center] > [data-part-header] > [data-part-mark-all] {
|
|
236
233
|
display: inline-flex;
|
|
237
234
|
}
|
|
238
235
|
|
|
239
236
|
/** The consumer's controls read at the row's meta size: a link beside a small button, not beside the title. */
|
|
240
|
-
[data-ui
|
|
237
|
+
[data-ui-notification-center] > [data-part-header] > [data-part-actions] {
|
|
241
238
|
align-items: center;
|
|
242
239
|
display: inline-flex;
|
|
243
240
|
font-size: var(--_meta-size);
|
|
@@ -251,7 +248,7 @@
|
|
|
251
248
|
* The strip sits on the header's rule, so the tabs family's own track is
|
|
252
249
|
* off (`track="none"`) and the marker lands on the line the header drew.
|
|
253
250
|
*/
|
|
254
|
-
[data-ui
|
|
251
|
+
[data-ui-notification-center] > [data-part-views] {
|
|
255
252
|
border-block-end: var(--_rule-size) solid var(--_rule);
|
|
256
253
|
min-inline-size: 0;
|
|
257
254
|
padding-inline: var(--_inset-inline);
|
|
@@ -265,8 +262,8 @@
|
|
|
265
262
|
* the idiom `timeline` set for the same two controls; `fresh` in the accent
|
|
266
263
|
* pair so it reads as something new, `more` in the secondary.
|
|
267
264
|
*/
|
|
268
|
-
[data-ui
|
|
269
|
-
[data-ui
|
|
265
|
+
[data-ui-notification-center] > [data-part-fresh],
|
|
266
|
+
[data-ui-notification-center] > button[data-part-more] {
|
|
270
267
|
align-items: center;
|
|
271
268
|
appearance: none;
|
|
272
269
|
background-color: var(--_ground);
|
|
@@ -292,35 +289,35 @@
|
|
|
292
289
|
color var(--_duration) var(--_easing);
|
|
293
290
|
}
|
|
294
291
|
|
|
295
|
-
[data-ui
|
|
292
|
+
[data-ui-notification-center] > [data-part-fresh] {
|
|
296
293
|
background-color: var(--slotted-tone-accent-surface, Canvas);
|
|
297
294
|
border-color: var(--slotted-tone-accent-border, Highlight);
|
|
298
295
|
color: var(--slotted-tone-accent-text, Highlight);
|
|
299
296
|
}
|
|
300
297
|
|
|
301
|
-
[data-ui
|
|
298
|
+
[data-ui-notification-center] > [data-part-fresh]:enabled:hover {
|
|
302
299
|
background-color: var(--slotted-tone-accent-subtle-hover, Canvas);
|
|
303
300
|
}
|
|
304
301
|
|
|
305
|
-
[data-ui
|
|
302
|
+
[data-ui-notification-center] > [data-part-fresh]:enabled:active {
|
|
306
303
|
background-color: var(--slotted-tone-accent-subtle-active, Canvas);
|
|
307
304
|
}
|
|
308
305
|
|
|
309
|
-
[data-ui
|
|
306
|
+
[data-ui-notification-center] > button[data-part-more]:enabled:hover {
|
|
310
307
|
background-color: var(--_hover);
|
|
311
308
|
}
|
|
312
309
|
|
|
313
|
-
[data-ui
|
|
310
|
+
[data-ui-notification-center] > button[data-part-more]:enabled:active {
|
|
314
311
|
background-color: var(--_active);
|
|
315
312
|
}
|
|
316
313
|
|
|
317
|
-
[data-ui
|
|
314
|
+
[data-ui-notification-center] > button[data-part-more]:disabled {
|
|
318
315
|
color: var(--slotted-disabled-foreground, GrayText);
|
|
319
316
|
cursor: default;
|
|
320
317
|
}
|
|
321
318
|
|
|
322
319
|
/** Under growing=scroll the sentinel is a box the observer watches, and it says it is waiting. */
|
|
323
|
-
[data-ui
|
|
320
|
+
[data-ui-notification-center] > div[data-part-more] {
|
|
324
321
|
color: var(--_muted);
|
|
325
322
|
font-size: var(--_meta-size);
|
|
326
323
|
line-height: var(--_meta-line-height);
|
|
@@ -330,8 +327,8 @@
|
|
|
330
327
|
text-align: center;
|
|
331
328
|
}
|
|
332
329
|
|
|
333
|
-
[data-ui
|
|
334
|
-
[data-ui
|
|
330
|
+
[data-ui-notification-center] > [data-part-fresh]:focus-visible,
|
|
331
|
+
[data-ui-notification-center] > button[data-part-more]:focus-visible {
|
|
335
332
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
336
333
|
outline-offset: var(--slotted-focus-ring-offset, 2px);
|
|
337
334
|
}
|
|
@@ -347,7 +344,7 @@
|
|
|
347
344
|
* is `scroll-area`'s: a reserved gutter so the rows do not move when the
|
|
348
345
|
* feed grows past the panel, the thin platform bar, the family's ink on it.
|
|
349
346
|
*/
|
|
350
|
-
[data-ui
|
|
347
|
+
[data-ui-notification-center] > [data-part-feed] {
|
|
351
348
|
display: flex;
|
|
352
349
|
flex: 1 1 auto;
|
|
353
350
|
flex-direction: column;
|
|
@@ -361,17 +358,17 @@
|
|
|
361
358
|
}
|
|
362
359
|
|
|
363
360
|
/** The footer draws its own rule above, so the last row gives up the one below it: one seam, not two. */
|
|
364
|
-
[data-ui
|
|
365
|
-
> [data-part
|
|
366
|
-
> [data-part
|
|
367
|
-
[data-ui
|
|
368
|
-
> [data-part
|
|
369
|
-
> [data-part
|
|
370
|
-
> [data-part
|
|
361
|
+
[data-ui-notification-center]
|
|
362
|
+
> [data-part-feed]:has(+ [data-part-footer])
|
|
363
|
+
> [data-part-item]:last-child,
|
|
364
|
+
[data-ui-notification-center]
|
|
365
|
+
> [data-part-feed]:has(+ [data-part-footer])
|
|
366
|
+
> [data-part-group]:last-child
|
|
367
|
+
> [data-part-item]:last-child {
|
|
371
368
|
border-block-end: 0;
|
|
372
369
|
}
|
|
373
370
|
|
|
374
|
-
[data-ui
|
|
371
|
+
[data-ui-notification-center] > [data-part-feed] > [data-part-group] {
|
|
375
372
|
display: flex;
|
|
376
373
|
flex-direction: column;
|
|
377
374
|
min-inline-size: 0;
|
|
@@ -381,10 +378,7 @@
|
|
|
381
378
|
* A group's heading: an overline in the muted text, on the feed's inset, so
|
|
382
379
|
* the groups read as one list with dates between rather than as boxes.
|
|
383
380
|
*/
|
|
384
|
-
[data-ui
|
|
385
|
-
> [data-part='feed']
|
|
386
|
-
> [data-part='group']
|
|
387
|
-
> [data-part='group-label'] {
|
|
381
|
+
[data-ui-notification-center] > [data-part-feed] > [data-part-group] > [data-part-group-label] {
|
|
388
382
|
color: var(--_muted);
|
|
389
383
|
font-size: var(--slotted-font-size-xs, 0.75rem);
|
|
390
384
|
font-weight: var(--slotted-font-weight-semibold, 600);
|
|
@@ -403,7 +397,7 @@
|
|
|
403
397
|
* rows and not as a column of cards. The visual, the title's first line
|
|
404
398
|
* and the controls are centred on one axis.
|
|
405
399
|
*/
|
|
406
|
-
[data-ui
|
|
400
|
+
[data-ui-notification-center] > [data-part-feed] [data-part-item] {
|
|
407
401
|
align-items: flex-start;
|
|
408
402
|
border-block-end: var(--_rule-size) solid var(--_rule);
|
|
409
403
|
display: grid;
|
|
@@ -416,29 +410,35 @@
|
|
|
416
410
|
transition: background-color var(--_duration) var(--_easing);
|
|
417
411
|
}
|
|
418
412
|
|
|
419
|
-
[data-ui
|
|
413
|
+
[data-ui-notification-center] > [data-part-feed] [data-part-item][data-tone='secondary'] {
|
|
420
414
|
--_tone-solid: var(--slotted-tone-secondary-solid, ButtonText);
|
|
421
415
|
--_tone-text: var(--slotted-tone-secondary-text, ButtonText);
|
|
422
416
|
--_tone-surface: var(--slotted-tone-secondary-surface, Canvas);
|
|
423
417
|
}
|
|
424
|
-
[data-ui
|
|
418
|
+
[data-ui-notification-center] > [data-part-feed] [data-part-item][data-tone='success'] {
|
|
425
419
|
--_tone-solid: var(--slotted-tone-success-solid, ButtonText);
|
|
426
420
|
--_tone-text: var(--slotted-tone-success-text, ButtonText);
|
|
427
421
|
--_tone-surface: var(--slotted-tone-success-surface, Canvas);
|
|
428
422
|
}
|
|
429
|
-
|
|
423
|
+
|
|
424
|
+
[data-ui-notification-center] > [data-part-feed] [data-part-item][data-tone='info'] {
|
|
425
|
+
--_tone-solid: var(--slotted-tone-info-solid, ButtonText);
|
|
426
|
+
--_tone-text: var(--slotted-tone-info-text, ButtonText);
|
|
427
|
+
--_tone-surface: var(--slotted-tone-info-surface, Canvas);
|
|
428
|
+
}
|
|
429
|
+
[data-ui-notification-center] > [data-part-feed] [data-part-item][data-tone='warning'] {
|
|
430
430
|
--_tone-solid: var(--slotted-tone-warning-solid, ButtonText);
|
|
431
431
|
--_tone-text: var(--slotted-tone-warning-text, ButtonText);
|
|
432
432
|
--_tone-surface: var(--slotted-tone-warning-surface, Canvas);
|
|
433
433
|
}
|
|
434
|
-
[data-ui
|
|
434
|
+
[data-ui-notification-center] > [data-part-feed] [data-part-item][data-tone='danger'] {
|
|
435
435
|
--_tone-solid: var(--slotted-tone-danger-solid, ButtonText);
|
|
436
436
|
--_tone-text: var(--slotted-tone-danger-text, ButtonText);
|
|
437
437
|
--_tone-surface: var(--slotted-tone-danger-surface, Canvas);
|
|
438
438
|
}
|
|
439
439
|
|
|
440
440
|
/** Unread stands on the wash; read stands on the surface. The dot says the same thing a second way. */
|
|
441
|
-
[data-ui
|
|
441
|
+
[data-ui-notification-center] > [data-part-feed] [data-part-item]:not([data-read]) {
|
|
442
442
|
background-color: var(--_unread-ground);
|
|
443
443
|
}
|
|
444
444
|
|
|
@@ -447,9 +447,7 @@
|
|
|
447
447
|
* vocabulary's: an item is never disabled, and the rule says so where the
|
|
448
448
|
* states test looks.
|
|
449
449
|
*/
|
|
450
|
-
[data-ui
|
|
451
|
-
> [data-part='feed']
|
|
452
|
-
[data-part='item']:not([data-disabled]):hover {
|
|
450
|
+
[data-ui-notification-center] > [data-part-feed] [data-part-item]:not([data-disabled]):hover {
|
|
453
451
|
background-color: var(--_hover);
|
|
454
452
|
}
|
|
455
453
|
|
|
@@ -458,12 +456,12 @@
|
|
|
458
456
|
* ring is drawn inward, because the rows touch and an outward ring would be
|
|
459
457
|
* cut by the neighbours.
|
|
460
458
|
*/
|
|
461
|
-
[data-ui
|
|
459
|
+
[data-ui-notification-center] > [data-part-feed] [data-part-item]:focus-visible {
|
|
462
460
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
463
461
|
outline-offset: calc(var(--slotted-focus-ring-offset, 2px) * -1);
|
|
464
462
|
}
|
|
465
463
|
|
|
466
|
-
[data-ui
|
|
464
|
+
[data-ui-notification-center] > [data-part-feed] [data-part-item] > [data-part-visual] {
|
|
467
465
|
align-items: center;
|
|
468
466
|
display: flex;
|
|
469
467
|
grid-column: 1;
|
|
@@ -472,10 +470,10 @@
|
|
|
472
470
|
}
|
|
473
471
|
|
|
474
472
|
/** Without a visual the words take the column. */
|
|
475
|
-
[data-ui
|
|
476
|
-
> [data-part
|
|
477
|
-
[data-part
|
|
478
|
-
> [data-part
|
|
473
|
+
[data-ui-notification-center]
|
|
474
|
+
> [data-part-feed]
|
|
475
|
+
[data-part-item]:not(:has(> [data-part-visual]))
|
|
476
|
+
> [data-part-content] {
|
|
479
477
|
grid-column: 1 / 3;
|
|
480
478
|
}
|
|
481
479
|
|
|
@@ -504,10 +502,10 @@
|
|
|
504
502
|
* the consumer put there. The disc is the wrapper's own background, centred
|
|
505
503
|
* on the box the glyph is centred in, so the two stay concentric.
|
|
506
504
|
*/
|
|
507
|
-
[data-ui
|
|
508
|
-
> [data-part
|
|
509
|
-
[data-part
|
|
510
|
-
> [data-part
|
|
505
|
+
[data-ui-notification-center]
|
|
506
|
+
> [data-part-feed]
|
|
507
|
+
[data-part-item]
|
|
508
|
+
> [data-part-visual]:empty:not([data-tone]) {
|
|
511
509
|
display: none;
|
|
512
510
|
}
|
|
513
511
|
|
|
@@ -517,10 +515,10 @@
|
|
|
517
515
|
* rather than percentages of the ray (Chrome paints a `calc(100% - …)`
|
|
518
516
|
* stop as a ramp several pixels wide).
|
|
519
517
|
*/
|
|
520
|
-
[data-ui
|
|
521
|
-
> [data-part
|
|
522
|
-
[data-part
|
|
523
|
-
> [data-part
|
|
518
|
+
[data-ui-notification-center]
|
|
519
|
+
> [data-part-feed]
|
|
520
|
+
[data-part-item]
|
|
521
|
+
> [data-part-visual][data-tone]:has(> [data-tone-glyph]) {
|
|
524
522
|
--slotted-icon-size: var(--_visual-glyph);
|
|
525
523
|
|
|
526
524
|
align-items: center;
|
|
@@ -541,7 +539,7 @@
|
|
|
541
539
|
* line and the offset centres that line on the visual — a visual taller
|
|
542
540
|
* than the line pushes the words down, never the other way.
|
|
543
541
|
*/
|
|
544
|
-
[data-ui
|
|
542
|
+
[data-ui-notification-center] > [data-part-feed] [data-part-item] > [data-part-content] {
|
|
545
543
|
display: flex;
|
|
546
544
|
flex-direction: column;
|
|
547
545
|
font-size: var(--_item-title-size);
|
|
@@ -552,11 +550,11 @@
|
|
|
552
550
|
min-inline-size: 0;
|
|
553
551
|
}
|
|
554
552
|
|
|
555
|
-
[data-ui
|
|
556
|
-
> [data-part
|
|
557
|
-
[data-part
|
|
558
|
-
> [data-part
|
|
559
|
-
> [data-part
|
|
553
|
+
[data-ui-notification-center]
|
|
554
|
+
> [data-part-feed]
|
|
555
|
+
[data-part-item]
|
|
556
|
+
> [data-part-content]
|
|
557
|
+
> [data-part-title] {
|
|
560
558
|
-webkit-box-orient: vertical;
|
|
561
559
|
-webkit-line-clamp: var(--slotted-notification-center-title-clamp, 2);
|
|
562
560
|
color: var(--_text);
|
|
@@ -571,11 +569,11 @@
|
|
|
571
569
|
}
|
|
572
570
|
|
|
573
571
|
/** Unread says so with weight as well as with the dot and the wash. */
|
|
574
|
-
[data-ui
|
|
575
|
-
> [data-part
|
|
576
|
-
[data-part
|
|
577
|
-
> [data-part
|
|
578
|
-
> [data-part
|
|
572
|
+
[data-ui-notification-center]
|
|
573
|
+
> [data-part-feed]
|
|
574
|
+
[data-part-item]:not([data-read])
|
|
575
|
+
> [data-part-content]
|
|
576
|
+
> [data-part-title] {
|
|
579
577
|
font-weight: var(--slotted-font-weight-semibold, 600);
|
|
580
578
|
}
|
|
581
579
|
|
|
@@ -584,38 +582,38 @@
|
|
|
584
582
|
* opens the thing, and the controls stand above it so they take their own
|
|
585
583
|
* press. The ring stays on the article, which is what has focus.
|
|
586
584
|
*/
|
|
587
|
-
[data-ui
|
|
588
|
-
> [data-part
|
|
589
|
-
[data-part
|
|
590
|
-
> [data-part
|
|
591
|
-
> a[data-part
|
|
585
|
+
[data-ui-notification-center]
|
|
586
|
+
> [data-part-feed]
|
|
587
|
+
[data-part-item]
|
|
588
|
+
> [data-part-content]
|
|
589
|
+
> a[data-part-title]::after {
|
|
592
590
|
content: '';
|
|
593
591
|
inset: 0;
|
|
594
592
|
position: absolute;
|
|
595
593
|
}
|
|
596
594
|
|
|
597
|
-
[data-ui
|
|
598
|
-
> [data-part
|
|
599
|
-
[data-part
|
|
600
|
-
> [data-part
|
|
601
|
-
> a[data-part
|
|
595
|
+
[data-ui-notification-center]
|
|
596
|
+
> [data-part-feed]
|
|
597
|
+
[data-part-item]
|
|
598
|
+
> [data-part-content]
|
|
599
|
+
> a[data-part-title]:not([data-disabled]):hover {
|
|
602
600
|
text-decoration: underline;
|
|
603
601
|
text-underline-offset: 0.15em;
|
|
604
602
|
}
|
|
605
603
|
|
|
606
|
-
[data-ui
|
|
607
|
-
> [data-part
|
|
608
|
-
[data-part
|
|
609
|
-
> [data-part
|
|
610
|
-
> a[data-part
|
|
604
|
+
[data-ui-notification-center]
|
|
605
|
+
> [data-part-feed]
|
|
606
|
+
[data-part-item]
|
|
607
|
+
> [data-part-content]
|
|
608
|
+
> a[data-part-title]:focus-visible {
|
|
611
609
|
outline: none;
|
|
612
610
|
}
|
|
613
611
|
|
|
614
|
-
[data-ui
|
|
615
|
-
> [data-part
|
|
616
|
-
[data-part
|
|
617
|
-
> [data-part
|
|
618
|
-
> [data-part
|
|
612
|
+
[data-ui-notification-center]
|
|
613
|
+
> [data-part-feed]
|
|
614
|
+
[data-part-item]
|
|
615
|
+
> [data-part-content]
|
|
616
|
+
> [data-part-description] {
|
|
619
617
|
-webkit-box-orient: vertical;
|
|
620
618
|
-webkit-line-clamp: var(--slotted-notification-center-description-clamp, 3);
|
|
621
619
|
color: var(--_muted);
|
|
@@ -627,11 +625,11 @@
|
|
|
627
625
|
overflow-wrap: anywhere;
|
|
628
626
|
}
|
|
629
627
|
|
|
630
|
-
[data-ui
|
|
631
|
-
> [data-part
|
|
632
|
-
[data-part
|
|
633
|
-
> [data-part
|
|
634
|
-
> [data-part
|
|
628
|
+
[data-ui-notification-center]
|
|
629
|
+
> [data-part-feed]
|
|
630
|
+
[data-part-item]
|
|
631
|
+
> [data-part-content]
|
|
632
|
+
> [data-part-time] {
|
|
635
633
|
color: var(--_muted);
|
|
636
634
|
font-size: var(--_meta-size);
|
|
637
635
|
font-variant-numeric: tabular-nums;
|
|
@@ -639,11 +637,11 @@
|
|
|
639
637
|
}
|
|
640
638
|
|
|
641
639
|
/** The consumer's controls for the item, above the covering link. */
|
|
642
|
-
[data-ui
|
|
643
|
-
> [data-part
|
|
644
|
-
[data-part
|
|
645
|
-
> [data-part
|
|
646
|
-
> [data-part
|
|
640
|
+
[data-ui-notification-center]
|
|
641
|
+
> [data-part-feed]
|
|
642
|
+
[data-part-item]
|
|
643
|
+
> [data-part-content]
|
|
644
|
+
> [data-part-actions] {
|
|
647
645
|
align-items: center;
|
|
648
646
|
display: flex;
|
|
649
647
|
flex-wrap: wrap;
|
|
@@ -655,7 +653,7 @@
|
|
|
655
653
|
|
|
656
654
|
/* ── The family's controls ───────────────────────────────────────────── */
|
|
657
655
|
|
|
658
|
-
[data-ui
|
|
656
|
+
[data-ui-notification-center] > [data-part-feed] [data-part-item] > [data-part-controls] {
|
|
659
657
|
display: flex;
|
|
660
658
|
gap: var(--slotted-space-1, 0.125rem);
|
|
661
659
|
grid-column: 3;
|
|
@@ -674,10 +672,10 @@
|
|
|
674
672
|
* unread, `dot` while read (the control offers to mark it unread), and `x`
|
|
675
673
|
* to dismiss; the control hands its icon box the glyph size.
|
|
676
674
|
*/
|
|
677
|
-
[data-ui
|
|
678
|
-
> [data-part
|
|
679
|
-
[data-part
|
|
680
|
-
> [data-part
|
|
675
|
+
[data-ui-notification-center]
|
|
676
|
+
> [data-part-feed]
|
|
677
|
+
[data-part-item]
|
|
678
|
+
> [data-part-controls]
|
|
681
679
|
> button {
|
|
682
680
|
--slotted-icon-size: var(--_glyph);
|
|
683
681
|
|
|
@@ -700,10 +698,10 @@
|
|
|
700
698
|
background-color var(--_duration) var(--_easing);
|
|
701
699
|
}
|
|
702
700
|
|
|
703
|
-
[data-ui
|
|
704
|
-
> [data-part
|
|
705
|
-
[data-part
|
|
706
|
-
> [data-part
|
|
701
|
+
[data-ui-notification-center]
|
|
702
|
+
> [data-part-feed]
|
|
703
|
+
[data-part-item]
|
|
704
|
+
> [data-part-controls]
|
|
707
705
|
> button::before {
|
|
708
706
|
/* The halo: the target minimum, centred on the box, taking the press and drawing nothing. */
|
|
709
707
|
block-size: max(var(--_control), var(--slotted-target-min, 24px));
|
|
@@ -715,58 +713,58 @@
|
|
|
715
713
|
translate: -50% -50%;
|
|
716
714
|
}
|
|
717
715
|
|
|
718
|
-
[data-ui
|
|
719
|
-
> [data-part
|
|
720
|
-
[data-part
|
|
721
|
-
> [data-part
|
|
716
|
+
[data-ui-notification-center]
|
|
717
|
+
> [data-part-feed]
|
|
718
|
+
[data-part-item]
|
|
719
|
+
> [data-part-controls]
|
|
722
720
|
> button:enabled:hover {
|
|
723
721
|
background-color: var(--_hover);
|
|
724
722
|
color: var(--_text);
|
|
725
723
|
}
|
|
726
724
|
|
|
727
|
-
[data-ui
|
|
728
|
-
> [data-part
|
|
729
|
-
[data-part
|
|
730
|
-
> [data-part
|
|
725
|
+
[data-ui-notification-center]
|
|
726
|
+
> [data-part-feed]
|
|
727
|
+
[data-part-item]
|
|
728
|
+
> [data-part-controls]
|
|
731
729
|
> button:enabled:active {
|
|
732
730
|
background-color: var(--_active);
|
|
733
731
|
}
|
|
734
732
|
|
|
735
|
-
[data-ui
|
|
736
|
-
> [data-part
|
|
737
|
-
[data-part
|
|
738
|
-
> [data-part
|
|
733
|
+
[data-ui-notification-center]
|
|
734
|
+
> [data-part-feed]
|
|
735
|
+
[data-part-item]
|
|
736
|
+
> [data-part-controls]
|
|
739
737
|
> button:focus-visible {
|
|
740
738
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
741
739
|
outline-offset: var(--slotted-focus-ring-offset, 2px);
|
|
742
740
|
}
|
|
743
741
|
|
|
744
742
|
/** The `controls` axis: a product with its own triage keeps one of the two, or neither. */
|
|
745
|
-
[data-ui
|
|
746
|
-
> [data-part
|
|
747
|
-
[data-part
|
|
748
|
-
> [data-part
|
|
749
|
-
> [data-part
|
|
750
|
-
[data-ui
|
|
751
|
-
> [data-part
|
|
752
|
-
[data-part
|
|
753
|
-
> [data-part
|
|
754
|
-
> [data-part
|
|
755
|
-
[data-ui
|
|
756
|
-
> [data-part
|
|
757
|
-
[data-part
|
|
758
|
-
> [data-part
|
|
743
|
+
[data-ui-notification-center][data-controls='read']
|
|
744
|
+
> [data-part-feed]
|
|
745
|
+
[data-part-item]
|
|
746
|
+
> [data-part-controls]
|
|
747
|
+
> [data-part-dismiss],
|
|
748
|
+
[data-ui-notification-center][data-controls='dismiss']
|
|
749
|
+
> [data-part-feed]
|
|
750
|
+
[data-part-item]
|
|
751
|
+
> [data-part-controls]
|
|
752
|
+
> [data-part-read-toggle],
|
|
753
|
+
[data-ui-notification-center][data-controls='none']
|
|
754
|
+
> [data-part-feed]
|
|
755
|
+
[data-part-item]
|
|
756
|
+
> [data-part-controls] {
|
|
759
757
|
display: none;
|
|
760
758
|
}
|
|
761
759
|
|
|
762
760
|
/* ── Loading, empty and the footer ───────────────────────────────────── */
|
|
763
761
|
|
|
764
762
|
/** The waiting rows are skeleton's; the family gives them the item's inset and rule, and no wash. */
|
|
765
|
-
[data-ui
|
|
763
|
+
[data-ui-notification-center] > [data-part-feed] > [data-part-item][aria-hidden] {
|
|
766
764
|
background-color: transparent;
|
|
767
765
|
}
|
|
768
766
|
|
|
769
|
-
[data-ui
|
|
767
|
+
[data-ui-notification-center] > [data-part-empty] {
|
|
770
768
|
color: var(--_muted);
|
|
771
769
|
display: grid;
|
|
772
770
|
font-size: var(--_meta-size);
|
|
@@ -778,7 +776,7 @@
|
|
|
778
776
|
text-align: center;
|
|
779
777
|
}
|
|
780
778
|
|
|
781
|
-
[data-ui
|
|
779
|
+
[data-ui-notification-center] > [data-part-footer] {
|
|
782
780
|
align-items: center;
|
|
783
781
|
border-block-start: var(--_rule-size) solid var(--_rule);
|
|
784
782
|
display: flex;
|
|
@@ -799,14 +797,11 @@
|
|
|
799
797
|
* the title.
|
|
800
798
|
*/
|
|
801
799
|
@container notification-center (max-width: 319px) {
|
|
802
|
-
[data-ui
|
|
800
|
+
[data-ui-notification-center] > [data-part-feed] [data-part-item] {
|
|
803
801
|
grid-template-columns: auto minmax(0, 1fr);
|
|
804
802
|
}
|
|
805
803
|
|
|
806
|
-
[data-ui
|
|
807
|
-
> [data-part='feed']
|
|
808
|
-
[data-part='item']
|
|
809
|
-
> [data-part='controls'] {
|
|
804
|
+
[data-ui-notification-center] > [data-part-feed] [data-part-item] > [data-part-controls] {
|
|
810
805
|
grid-column: 2;
|
|
811
806
|
justify-content: flex-end;
|
|
812
807
|
margin-block-start: var(--slotted-space-2, 0.25rem);
|
|
@@ -827,10 +822,7 @@
|
|
|
827
822
|
* the halo already reached there.
|
|
828
823
|
*/
|
|
829
824
|
@media (pointer: coarse) {
|
|
830
|
-
[data-ui
|
|
831
|
-
> [data-part='feed']
|
|
832
|
-
[data-part='item']
|
|
833
|
-
> [data-part='controls'] {
|
|
825
|
+
[data-ui-notification-center] > [data-part-feed] [data-part-item] > [data-part-controls] {
|
|
834
826
|
--_control: var(--slotted-target-comfortable, 44px);
|
|
835
827
|
|
|
836
828
|
margin-block-start: calc((var(--_visual) - var(--_control)) / 2);
|
|
@@ -846,7 +838,7 @@
|
|
|
846
838
|
* carries unread.
|
|
847
839
|
*/
|
|
848
840
|
@media (forced-colors: active) {
|
|
849
|
-
[data-ui
|
|
841
|
+
[data-ui-notification-center] [data-part-count] {
|
|
850
842
|
background-color: Highlight;
|
|
851
843
|
border-color: Highlight;
|
|
852
844
|
color: HighlightText;
|
|
@@ -70,6 +70,9 @@
|
|
|
70
70
|
"--slotted-tone-danger-solid",
|
|
71
71
|
"--slotted-tone-danger-surface",
|
|
72
72
|
"--slotted-tone-danger-text",
|
|
73
|
+
"--slotted-tone-info-solid",
|
|
74
|
+
"--slotted-tone-info-surface",
|
|
75
|
+
"--slotted-tone-info-text",
|
|
73
76
|
"--slotted-tone-secondary-solid",
|
|
74
77
|
"--slotted-tone-secondary-subtle-active",
|
|
75
78
|
"--slotted-tone-secondary-subtle-hover",
|