@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
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* The outer frame of a route: the regions that do not change when the
|
|
4
4
|
* content does.
|
|
5
5
|
*
|
|
6
|
-
* div[data-ui
|
|
6
|
+
* div[data-ui-app-shell]
|
|
7
7
|
* ├─ skip ▸ a · a · a
|
|
8
8
|
* ├─ banner ▸ brand ▸ nav-toggle · … | centre ▸ … | actions ▸ …
|
|
9
9
|
* ├─ nav ▸ nav-header · nav-body · nav-footer
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
* focus and the scroll position where the reader left them; Carbon remounts
|
|
68
68
|
* its side nav between the two and loses both.
|
|
69
69
|
*/
|
|
70
|
-
[data-ui
|
|
70
|
+
[data-ui-app-shell] {
|
|
71
71
|
/**
|
|
72
72
|
* The air around anything the frame holds. Composed from the control gap
|
|
73
73
|
* rather than stated on the space scale, so it answers density: a dense
|
|
@@ -281,16 +281,16 @@
|
|
|
281
281
|
position: relative;
|
|
282
282
|
}
|
|
283
283
|
|
|
284
|
-
[data-ui
|
|
284
|
+
[data-ui-app-shell][data-nav-size='sm'] {
|
|
285
285
|
--_nav-size: var(--slotted-app-shell-nav-size-sm, 13rem);
|
|
286
286
|
}
|
|
287
|
-
[data-ui
|
|
287
|
+
[data-ui-app-shell][data-nav-size='lg'] {
|
|
288
288
|
--_nav-size: var(--slotted-app-shell-nav-size-lg, 18rem);
|
|
289
289
|
}
|
|
290
|
-
[data-ui
|
|
290
|
+
[data-ui-app-shell][data-aside-size='sm'] {
|
|
291
291
|
--_aside-size: var(--slotted-app-shell-aside-size-sm, 16rem);
|
|
292
292
|
}
|
|
293
|
-
[data-ui
|
|
293
|
+
[data-ui-app-shell][data-aside-size='lg'] {
|
|
294
294
|
--_aside-size: var(--slotted-app-shell-aside-size-lg, 26rem);
|
|
295
295
|
}
|
|
296
296
|
|
|
@@ -302,7 +302,7 @@
|
|
|
302
302
|
* toolbar makes `100vh` taller than the space there is, and `100dvh` is the
|
|
303
303
|
* space there is.
|
|
304
304
|
*/
|
|
305
|
-
[data-ui
|
|
305
|
+
[data-ui-app-shell][data-scroll='content'] {
|
|
306
306
|
block-size: 100%;
|
|
307
307
|
/**
|
|
308
308
|
* Both axes, under `content` alone: the shell's height is the space it was
|
|
@@ -321,14 +321,14 @@
|
|
|
321
321
|
* focused: the reader who does not need it never meets it, and the reader
|
|
322
322
|
* who does finds it before the chrome.
|
|
323
323
|
*/
|
|
324
|
-
[data-ui
|
|
324
|
+
[data-ui-app-shell] > [data-part-skip] {
|
|
325
325
|
inset-block-start: 0;
|
|
326
326
|
inset-inline-start: 0;
|
|
327
327
|
position: absolute;
|
|
328
328
|
z-index: var(--slotted-z-index-popover, 1100);
|
|
329
329
|
}
|
|
330
330
|
|
|
331
|
-
[data-ui
|
|
331
|
+
[data-ui-app-shell] > [data-part-skip] > a {
|
|
332
332
|
background-color: var(--_canvas);
|
|
333
333
|
border: var(--_rule-width) solid var(--_rule);
|
|
334
334
|
border-radius: var(--slotted-control-radius, 4px);
|
|
@@ -348,7 +348,7 @@
|
|
|
348
348
|
white-space: nowrap;
|
|
349
349
|
}
|
|
350
350
|
|
|
351
|
-
[data-ui
|
|
351
|
+
[data-ui-app-shell] > [data-part-skip] > a:focus-visible {
|
|
352
352
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
353
353
|
outline-offset: var(--slotted-focus-ring-offset, 2px);
|
|
354
354
|
translate: 0 0;
|
|
@@ -369,7 +369,7 @@
|
|
|
369
369
|
* in the family reads the query — the bar carries an application's own search
|
|
370
370
|
* and its own account, and those are the things that shed a label first.
|
|
371
371
|
*/
|
|
372
|
-
[data-ui
|
|
372
|
+
[data-ui-app-shell] > [data-part-banner] {
|
|
373
373
|
align-items: center;
|
|
374
374
|
background-color: var(--slotted-app-shell-banner-surface, transparent);
|
|
375
375
|
color: var(
|
|
@@ -386,7 +386,7 @@
|
|
|
386
386
|
padding-inline: var(--_edge);
|
|
387
387
|
}
|
|
388
388
|
|
|
389
|
-
[data-ui
|
|
389
|
+
[data-ui-app-shell] [data-part-brand] {
|
|
390
390
|
align-items: center;
|
|
391
391
|
display: flex;
|
|
392
392
|
flex: 0 1 auto;
|
|
@@ -405,13 +405,13 @@
|
|
|
405
405
|
* shortens instead; the control is exempt, because a control that shrinks
|
|
406
406
|
* below its target is a defect of a different kind.
|
|
407
407
|
*/
|
|
408
|
-
[data-ui
|
|
408
|
+
[data-ui-app-shell] [data-part-brand] > *:not([data-part-nav-toggle]) {
|
|
409
409
|
min-inline-size: 0;
|
|
410
410
|
overflow: var(--slotted-app-shell-brand-overflow, hidden);
|
|
411
411
|
text-overflow: ellipsis;
|
|
412
412
|
white-space: var(--slotted-app-shell-brand-wrap, nowrap);
|
|
413
413
|
}
|
|
414
|
-
[data-ui
|
|
414
|
+
[data-ui-app-shell] > [data-part-banner] > [data-part-actions] {
|
|
415
415
|
align-items: center;
|
|
416
416
|
display: flex;
|
|
417
417
|
flex: 0 1 auto;
|
|
@@ -426,7 +426,7 @@
|
|
|
426
426
|
* defect of a different kind from a bar that has run out of room. What runs
|
|
427
427
|
* out of room is the middle, which is what `centre` is for.
|
|
428
428
|
*/
|
|
429
|
-
[data-ui
|
|
429
|
+
[data-ui-app-shell] > [data-part-banner] > [data-part-actions] > * {
|
|
430
430
|
flex-shrink: 0;
|
|
431
431
|
}
|
|
432
432
|
|
|
@@ -438,7 +438,7 @@
|
|
|
438
438
|
* is the consumer's; that it may be narrower than what it holds is the
|
|
439
439
|
* shell's, for the reason `actions` carries `min-inline-size: 0`.
|
|
440
440
|
*/
|
|
441
|
-
[data-ui
|
|
441
|
+
[data-ui-app-shell] > [data-part-banner] > [data-part-centre] {
|
|
442
442
|
align-items: center;
|
|
443
443
|
display: flex;
|
|
444
444
|
flex: 1 1 auto;
|
|
@@ -452,7 +452,7 @@
|
|
|
452
452
|
* destination shows at that width — a mark alone, a mark and a word — is
|
|
453
453
|
* `side-navigation`'s decision to take against the room it has.
|
|
454
454
|
*/
|
|
455
|
-
[data-ui
|
|
455
|
+
[data-ui-app-shell] > [data-part-nav] {
|
|
456
456
|
background-color: var(--slotted-app-shell-nav-surface, transparent);
|
|
457
457
|
box-sizing: border-box;
|
|
458
458
|
color: var(
|
|
@@ -497,8 +497,8 @@
|
|
|
497
497
|
* two-line block its own air; without it both were crushed against the group
|
|
498
498
|
* heading below and the frame's footer beneath.
|
|
499
499
|
*/
|
|
500
|
-
[data-ui
|
|
501
|
-
[data-ui
|
|
500
|
+
[data-ui-app-shell] > [data-part-nav] > [data-part-nav-header],
|
|
501
|
+
[data-ui-app-shell] > [data-part-nav] > [data-part-nav-footer] {
|
|
502
502
|
align-items: center;
|
|
503
503
|
display: flex;
|
|
504
504
|
flex: 0 0 auto;
|
|
@@ -524,9 +524,9 @@
|
|
|
524
524
|
* one of them — the rule over the foot — still runs the column's full width,
|
|
525
525
|
* and a strip of the rail's own beside the column needs none.
|
|
526
526
|
*/
|
|
527
|
-
[data-ui
|
|
528
|
-
> [data-part
|
|
529
|
-
> :is([data-part
|
|
527
|
+
[data-ui-app-shell]
|
|
528
|
+
> [data-part-nav]
|
|
529
|
+
> :is([data-part-nav-header], [data-part-nav-body], [data-part-nav-footer]) {
|
|
530
530
|
/**
|
|
531
531
|
* Published where it pads, beside the row geometry the root publishes:
|
|
532
532
|
* `side-navigation` reads it to keep its rows' box on the edge it had,
|
|
@@ -550,7 +550,7 @@
|
|
|
550
550
|
* between open and rail, the rows stand wider than the body, and an `auto`
|
|
551
551
|
* inline axis drew a horizontal bar for the length of the transition.
|
|
552
552
|
*/
|
|
553
|
-
[data-ui
|
|
553
|
+
[data-ui-app-shell] > [data-part-nav] > [data-part-nav-body] {
|
|
554
554
|
align-items: stretch;
|
|
555
555
|
display: flex;
|
|
556
556
|
flex: 1 1 auto;
|
|
@@ -568,7 +568,7 @@
|
|
|
568
568
|
scrollbar-width: thin;
|
|
569
569
|
}
|
|
570
570
|
|
|
571
|
-
[data-ui
|
|
571
|
+
[data-ui-app-shell] > [data-part-main] {
|
|
572
572
|
background-color: var(
|
|
573
573
|
--slotted-app-shell-main-surface,
|
|
574
574
|
var(--slotted-app-shell-canvas, var(--slotted-surface, Canvas))
|
|
@@ -588,7 +588,7 @@
|
|
|
588
588
|
min-block-size: 0;
|
|
589
589
|
min-inline-size: 0;
|
|
590
590
|
}
|
|
591
|
-
[data-ui
|
|
591
|
+
[data-ui-app-shell][data-scroll='content'] > [data-part-main] {
|
|
592
592
|
overflow: auto;
|
|
593
593
|
}
|
|
594
594
|
|
|
@@ -605,7 +605,7 @@
|
|
|
605
605
|
* Strict containment keeps the travelling bar's per-frame layout inside
|
|
606
606
|
* this box, and its paint inside the corners.
|
|
607
607
|
*/
|
|
608
|
-
[data-ui
|
|
608
|
+
[data-ui-app-shell] > [data-part-progress] {
|
|
609
609
|
contain: strict;
|
|
610
610
|
grid-area: 2 / 2 / 3 / 3;
|
|
611
611
|
inset-block-start: calc(-1 * var(--_progress-lift, 0px));
|
|
@@ -621,15 +621,15 @@
|
|
|
621
621
|
* with it; the bar holds the top of the viewport once the banner, which is
|
|
622
622
|
* not sticky there, has gone.
|
|
623
623
|
*/
|
|
624
|
-
[data-ui
|
|
624
|
+
[data-ui-app-shell][data-scroll='document'] > [data-part-progress] {
|
|
625
625
|
--slotted-progress-indicator-position: sticky;
|
|
626
626
|
}
|
|
627
627
|
|
|
628
628
|
/** A skip link's destination takes focus; it draws no ring for a pointer. */
|
|
629
|
-
[data-ui
|
|
629
|
+
[data-ui-app-shell] > [data-part-main]:focus {
|
|
630
630
|
outline: none;
|
|
631
631
|
}
|
|
632
|
-
[data-ui
|
|
632
|
+
[data-ui-app-shell] > [data-part-main]:focus-visible {
|
|
633
633
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
634
634
|
outline-offset: calc(var(--slotted-focus-ring-offset, 2px) * -1);
|
|
635
635
|
}
|
|
@@ -644,7 +644,7 @@
|
|
|
644
644
|
* the thing it shows or nothing — and a region at nought pixels that still
|
|
645
645
|
* lays its children out puts content outside the box that owns it.
|
|
646
646
|
*/
|
|
647
|
-
[data-ui
|
|
647
|
+
[data-ui-app-shell] > [data-part-aside] {
|
|
648
648
|
background-color: var(
|
|
649
649
|
--slotted-app-shell-aside-surface,
|
|
650
650
|
var(--slotted-app-shell-canvas, var(--slotted-surface, Canvas))
|
|
@@ -660,10 +660,10 @@
|
|
|
660
660
|
min-block-size: 0;
|
|
661
661
|
min-inline-size: 0;
|
|
662
662
|
}
|
|
663
|
-
[data-ui
|
|
663
|
+
[data-ui-app-shell][data-scroll='content'] > [data-part-aside] {
|
|
664
664
|
overflow: auto;
|
|
665
665
|
}
|
|
666
|
-
[data-ui
|
|
666
|
+
[data-ui-app-shell]:not([data-aside-mode='overlay']) > [data-part-aside]:not([data-open]) {
|
|
667
667
|
display: none;
|
|
668
668
|
}
|
|
669
669
|
|
|
@@ -674,8 +674,8 @@
|
|
|
674
674
|
* foot holds the actions that close its task. Both stand on the row inset
|
|
675
675
|
* plus the edge, so the title's left edge is the content card's.
|
|
676
676
|
*/
|
|
677
|
-
[data-ui
|
|
678
|
-
[data-ui
|
|
677
|
+
[data-ui-app-shell] > [data-part-aside] > [data-part-aside-header],
|
|
678
|
+
[data-ui-app-shell] > [data-part-aside] > [data-part-aside-footer] {
|
|
679
679
|
align-items: center;
|
|
680
680
|
display: flex;
|
|
681
681
|
flex: 0 0 auto;
|
|
@@ -685,18 +685,18 @@
|
|
|
685
685
|
padding-block: var(--_row-inset);
|
|
686
686
|
padding-inline: calc(var(--_row-inset) + var(--_row-gap));
|
|
687
687
|
}
|
|
688
|
-
[data-ui
|
|
688
|
+
[data-ui-app-shell] > [data-part-aside] > [data-part-aside-header] {
|
|
689
689
|
font-weight: var(--slotted-font-weight-semibold, 600);
|
|
690
690
|
}
|
|
691
691
|
/** The title takes the room and the control keeps its own. */
|
|
692
|
-
[data-ui
|
|
692
|
+
[data-ui-app-shell] > [data-part-aside] > [data-part-aside-header] > :not([data-part]) {
|
|
693
693
|
flex: 1 1 auto;
|
|
694
694
|
min-inline-size: 0;
|
|
695
695
|
overflow: hidden;
|
|
696
696
|
text-overflow: ellipsis;
|
|
697
697
|
white-space: nowrap;
|
|
698
698
|
}
|
|
699
|
-
[data-ui
|
|
699
|
+
[data-ui-app-shell] > [data-part-aside] > [data-part-aside-footer] {
|
|
700
700
|
justify-content: flex-end;
|
|
701
701
|
}
|
|
702
702
|
/**
|
|
@@ -704,7 +704,7 @@
|
|
|
704
704
|
* stands on the inset the head and the foot stand on, so what it holds lines
|
|
705
705
|
* up with the pane's title and no consumer pads it by hand.
|
|
706
706
|
*/
|
|
707
|
-
[data-ui
|
|
707
|
+
[data-ui-app-shell] > [data-part-aside] > [data-part-aside-body] {
|
|
708
708
|
flex: 1 1 auto;
|
|
709
709
|
min-block-size: 0;
|
|
710
710
|
min-inline-size: 0;
|
|
@@ -720,7 +720,7 @@
|
|
|
720
720
|
scrollbar-width: thin;
|
|
721
721
|
}
|
|
722
722
|
/* Content that brings its own inset — a page, a detail panel, a list to the edges. */
|
|
723
|
-
[data-ui
|
|
723
|
+
[data-ui-app-shell] > [data-part-aside] > [data-part-aside-body][data-inset='none'] {
|
|
724
724
|
padding: 0;
|
|
725
725
|
}
|
|
726
726
|
|
|
@@ -738,7 +738,7 @@
|
|
|
738
738
|
* At rest it draws nothing; under the hand, the drag and the keyboard its
|
|
739
739
|
* outer border becomes the line, and the keyboard alone adds the ring.
|
|
740
740
|
*/
|
|
741
|
-
[data-ui
|
|
741
|
+
[data-ui-app-shell] > [data-part-aside] > [data-part-aside-resizer] {
|
|
742
742
|
--_resizer-thickness: var(--slotted-space-6, 1rem);
|
|
743
743
|
--_resizer-reach: var(--slotted-target-min, 24px);
|
|
744
744
|
background: transparent;
|
|
@@ -755,29 +755,27 @@
|
|
|
755
755
|
transition: border-color var(--_duration) var(--_easing);
|
|
756
756
|
z-index: 1;
|
|
757
757
|
}
|
|
758
|
-
[data-ui
|
|
758
|
+
[data-ui-app-shell][data-nav-side='end'] > [data-part-aside] > [data-part-aside-resizer] {
|
|
759
759
|
border-inline-end-width: var(--slotted-border-width-thick, 2px);
|
|
760
760
|
border-inline-start-width: 0;
|
|
761
761
|
inset-inline-end: 0;
|
|
762
762
|
inset-inline-start: auto;
|
|
763
763
|
}
|
|
764
|
-
[data-ui
|
|
764
|
+
[data-ui-app-shell] > [data-part-aside] > [data-part-aside-resizer]::before {
|
|
765
765
|
content: '';
|
|
766
766
|
inset-block: 0;
|
|
767
767
|
inset-inline: calc((var(--_resizer-reach) - var(--_resizer-thickness)) / -2);
|
|
768
768
|
position: absolute;
|
|
769
769
|
}
|
|
770
|
-
[data-ui
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
[data-ui='app-shell'] > [data-part='aside'] > [data-part='aside-resizer']:focus-visible,
|
|
774
|
-
[data-ui='app-shell'][data-dragging] > [data-part='aside'] > [data-part='aside-resizer'] {
|
|
770
|
+
[data-ui-app-shell] > [data-part-aside] > [data-part-aside-resizer]:not([data-disabled]):hover,
|
|
771
|
+
[data-ui-app-shell] > [data-part-aside] > [data-part-aside-resizer]:focus-visible,
|
|
772
|
+
[data-ui-app-shell][data-dragging] > [data-part-aside] > [data-part-aside-resizer] {
|
|
775
773
|
border-color: var(
|
|
776
774
|
--slotted-app-shell-resizer-color,
|
|
777
775
|
var(--slotted-border-strong, ButtonBorder)
|
|
778
776
|
);
|
|
779
777
|
}
|
|
780
|
-
[data-ui
|
|
778
|
+
[data-ui-app-shell] > [data-part-aside] > [data-part-aside-resizer]:focus-visible {
|
|
781
779
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
782
780
|
outline-offset: calc(-1 * var(--slotted-focus-ring-offset, 2px));
|
|
783
781
|
}
|
|
@@ -789,7 +787,7 @@
|
|
|
789
787
|
* where a product does have one — a licence, a status, an environment — and
|
|
790
788
|
* it takes only the height of its own line.
|
|
791
789
|
*/
|
|
792
|
-
[data-ui
|
|
790
|
+
[data-ui-app-shell] > [data-part-footer] {
|
|
793
791
|
align-items: center;
|
|
794
792
|
background-color: var(--slotted-app-shell-footer-surface, transparent);
|
|
795
793
|
color: var(
|
|
@@ -811,7 +809,7 @@
|
|
|
811
809
|
* it. What it is a containing block for is the shell rather than the
|
|
812
810
|
* viewport, because `container-type` contains layout.
|
|
813
811
|
*/
|
|
814
|
-
[data-ui
|
|
812
|
+
[data-ui-app-shell] > [data-part-layer] {
|
|
815
813
|
display: contents;
|
|
816
814
|
}
|
|
817
815
|
|
|
@@ -825,7 +823,7 @@
|
|
|
825
823
|
* finding — the closed strip had twelve pixels to its right, where the
|
|
826
824
|
* content card begins, and nothing to its left.
|
|
827
825
|
*/
|
|
828
|
-
[data-ui
|
|
826
|
+
[data-ui-app-shell][data-canvas='inset'] > [data-part-nav] {
|
|
829
827
|
/* The navigation stands on the sunken frame, which the secondary tone's
|
|
830
828
|
hover is 0.011 lighter than in the light scheme: a row's hover was the
|
|
831
829
|
frame itself. Both steps are recomputed from the ground it stands on. */
|
|
@@ -846,23 +844,23 @@
|
|
|
846
844
|
margin-block: var(--_gutter);
|
|
847
845
|
margin-inline-start: var(--_gutter);
|
|
848
846
|
}
|
|
849
|
-
[data-ui
|
|
850
|
-
[data-ui
|
|
851
|
-
[data-ui
|
|
852
|
-
[data-ui
|
|
847
|
+
[data-ui-app-shell][data-canvas='floating'] > [data-part-main],
|
|
848
|
+
[data-ui-app-shell][data-canvas='floating'] > [data-part-aside],
|
|
849
|
+
[data-ui-app-shell][data-canvas='inset'] > [data-part-main],
|
|
850
|
+
[data-ui-app-shell][data-canvas='inset'] > [data-part-aside] {
|
|
853
851
|
border: var(--_rule-width) solid var(--_rule);
|
|
854
852
|
border-radius: var(--_radius);
|
|
855
853
|
box-shadow: var(--_elevation);
|
|
856
854
|
margin-block: var(--_gutter);
|
|
857
855
|
margin-inline: var(--_gutter);
|
|
858
856
|
}
|
|
859
|
-
[data-ui
|
|
860
|
-
[data-ui
|
|
857
|
+
[data-ui-app-shell][data-canvas='floating'] > [data-part-aside],
|
|
858
|
+
[data-ui-app-shell][data-canvas='inset'] > [data-part-aside] {
|
|
861
859
|
margin-inline-start: 0;
|
|
862
860
|
}
|
|
863
|
-
[data-ui
|
|
864
|
-
[data-ui
|
|
865
|
-
[data-ui
|
|
861
|
+
[data-ui-app-shell][data-canvas='floating'] > [data-part-footer],
|
|
862
|
+
[data-ui-app-shell][data-canvas='panel'] > [data-part-footer],
|
|
863
|
+
[data-ui-app-shell][data-canvas='inset'] > [data-part-footer] {
|
|
866
864
|
padding-block-start: 0;
|
|
867
865
|
}
|
|
868
866
|
/**
|
|
@@ -873,8 +871,8 @@
|
|
|
873
871
|
* for the seam the gutter used to draw. Keyed on the mode, as every layer
|
|
874
872
|
* rule is; the width answers only for a shell not yet measured, below.
|
|
875
873
|
*/
|
|
876
|
-
[data-ui
|
|
877
|
-
[data-ui
|
|
874
|
+
[data-ui-app-shell][data-canvas='floating'][data-nav-mode='overlay'] > [data-part-main],
|
|
875
|
+
[data-ui-app-shell][data-canvas='inset'][data-nav-mode='overlay'] > [data-part-main] {
|
|
878
876
|
border-block-end: 0;
|
|
879
877
|
border-inline: 0;
|
|
880
878
|
border-radius: 0;
|
|
@@ -889,33 +887,33 @@
|
|
|
889
887
|
* carries the ground. Stated as the same six properties, so a product that
|
|
890
888
|
* repaints one region keeps its choice under either plane.
|
|
891
889
|
*/
|
|
892
|
-
[data-ui
|
|
890
|
+
[data-ui-app-shell][data-canvas='flush'] {
|
|
893
891
|
--_edge: var(--_row-inset);
|
|
894
892
|
--_nav-edges: var(--_seam-width);
|
|
895
893
|
--_nav-inset: var(--_row-inset);
|
|
896
894
|
}
|
|
897
|
-
[data-ui
|
|
895
|
+
[data-ui-app-shell][data-canvas='flush'] > [data-part-banner] {
|
|
898
896
|
background-color: var(
|
|
899
897
|
--slotted-app-shell-banner-surface,
|
|
900
898
|
var(--slotted-app-shell-canvas, var(--slotted-surface, Canvas))
|
|
901
899
|
);
|
|
902
900
|
}
|
|
903
|
-
[data-ui
|
|
901
|
+
[data-ui-app-shell][data-canvas='flush'] > [data-part-nav] {
|
|
904
902
|
background-color: var(
|
|
905
903
|
--slotted-app-shell-nav-surface,
|
|
906
904
|
var(--slotted-app-shell-canvas, var(--slotted-surface, Canvas))
|
|
907
905
|
);
|
|
908
906
|
}
|
|
909
|
-
[data-ui
|
|
907
|
+
[data-ui-app-shell][data-canvas='flush'] > [data-part-main] {
|
|
910
908
|
background-color: var(--slotted-app-shell-main-surface, transparent);
|
|
911
909
|
}
|
|
912
|
-
[data-ui
|
|
910
|
+
[data-ui-app-shell][data-canvas='flush'] > [data-part-aside] {
|
|
913
911
|
background-color: var(
|
|
914
912
|
--slotted-app-shell-aside-surface,
|
|
915
913
|
var(--slotted-app-shell-canvas, var(--slotted-surface, Canvas))
|
|
916
914
|
);
|
|
917
915
|
}
|
|
918
|
-
[data-ui
|
|
916
|
+
[data-ui-app-shell][data-canvas='flush'] > [data-part-footer] {
|
|
919
917
|
background-color: var(
|
|
920
918
|
--slotted-app-shell-footer-surface,
|
|
921
919
|
var(--slotted-app-shell-canvas, var(--slotted-surface, Canvas))
|
|
@@ -927,33 +925,33 @@
|
|
|
927
925
|
* off-centre on this plane once; none at all put every row's ground against
|
|
928
926
|
* the screen's edge and against the seam.
|
|
929
927
|
*/
|
|
930
|
-
[data-ui
|
|
928
|
+
[data-ui-app-shell][data-canvas='flush'] > [data-part-nav] {
|
|
931
929
|
padding-block: var(--_gutter);
|
|
932
930
|
}
|
|
933
|
-
[data-ui
|
|
931
|
+
[data-ui-app-shell][data-canvas='flush'] > [data-part-banner] {
|
|
934
932
|
border-block-end: var(--_seam);
|
|
935
933
|
}
|
|
936
|
-
[data-ui
|
|
934
|
+
[data-ui-app-shell][data-canvas='flush'] > [data-part-footer] {
|
|
937
935
|
border-block-start: var(--_seam);
|
|
938
936
|
}
|
|
939
|
-
[data-ui
|
|
937
|
+
[data-ui-app-shell][data-canvas='flush'] > [data-part-aside] {
|
|
940
938
|
border-block-start: var(--_seam);
|
|
941
939
|
}
|
|
942
940
|
/* The seams inside a region: wherever regions touch without a gutter, which
|
|
943
941
|
is every seam of `flush` and every seam inside the `panel` card. */
|
|
944
|
-
[data-ui
|
|
945
|
-
> [data-part
|
|
946
|
-
> [data-part
|
|
942
|
+
[data-ui-app-shell]:is([data-canvas='flush'], [data-canvas='panel'])
|
|
943
|
+
> [data-part-nav]
|
|
944
|
+
> [data-part-nav-footer] {
|
|
947
945
|
border-block-start: var(--_seam);
|
|
948
946
|
}
|
|
949
|
-
[data-ui
|
|
950
|
-
> [data-part
|
|
951
|
-
> [data-part
|
|
947
|
+
[data-ui-app-shell]:is([data-canvas='flush'], [data-canvas='panel'])
|
|
948
|
+
> [data-part-aside]
|
|
949
|
+
> [data-part-aside-header] {
|
|
952
950
|
border-block-end: var(--_seam);
|
|
953
951
|
}
|
|
954
|
-
[data-ui
|
|
955
|
-
> [data-part
|
|
956
|
-
> [data-part
|
|
952
|
+
[data-ui-app-shell]:is([data-canvas='flush'], [data-canvas='panel'])
|
|
953
|
+
> [data-part-aside]
|
|
954
|
+
> [data-part-aside-footer] {
|
|
957
955
|
border-block-start: var(--_seam);
|
|
958
956
|
}
|
|
959
957
|
|
|
@@ -967,7 +965,7 @@
|
|
|
967
965
|
* mark column and a row's inset each side, and the card's edge is added to
|
|
968
966
|
* it rather than taken from the marks.
|
|
969
967
|
*/
|
|
970
|
-
[data-ui
|
|
968
|
+
[data-ui-app-shell][data-canvas='floating'] > [data-part-nav] {
|
|
971
969
|
background-color: var(
|
|
972
970
|
--slotted-app-shell-nav-surface,
|
|
973
971
|
var(--slotted-app-shell-canvas, var(--slotted-surface, Canvas))
|
|
@@ -980,12 +978,12 @@
|
|
|
980
978
|
}
|
|
981
979
|
/* A card has an edge the column never had: the rows stand one inset in, as
|
|
982
980
|
they do on the overlay card, and the bar's rows stand over them. */
|
|
983
|
-
[data-ui
|
|
981
|
+
[data-ui-app-shell][data-canvas='floating'] {
|
|
984
982
|
--_edge: calc(var(--_gutter) + var(--_rule-width) + var(--_row-inset));
|
|
985
983
|
--_nav-edges: calc(2 * var(--_rule-width));
|
|
986
984
|
--_nav-inset: var(--_row-inset);
|
|
987
985
|
}
|
|
988
|
-
[data-ui
|
|
986
|
+
[data-ui-app-shell][data-canvas='floating'][data-nav-side='end'] > [data-part-nav] {
|
|
989
987
|
margin-inline: 0 var(--_gutter);
|
|
990
988
|
}
|
|
991
989
|
|
|
@@ -1004,11 +1002,11 @@
|
|
|
1004
1002
|
* A layer is a phone's arrangement, and a phone has no room for a frame: the
|
|
1005
1003
|
* card goes wherever the navigation is a layer, as the inset card does.
|
|
1006
1004
|
*/
|
|
1007
|
-
[data-ui
|
|
1005
|
+
[data-ui-app-shell]:is(
|
|
1008
1006
|
[data-canvas='floating'],
|
|
1009
1007
|
[data-canvas='inset']
|
|
1010
1008
|
)[data-primary='main']::before,
|
|
1011
|
-
[data-ui
|
|
1009
|
+
[data-ui-app-shell][data-canvas='panel']::before {
|
|
1012
1010
|
background-color: var(
|
|
1013
1011
|
--slotted-app-shell-main-surface,
|
|
1014
1012
|
var(--slotted-app-shell-canvas, var(--slotted-surface))
|
|
@@ -1021,17 +1019,14 @@
|
|
|
1021
1019
|
margin: var(--_gutter);
|
|
1022
1020
|
min-inline-size: 0;
|
|
1023
1021
|
}
|
|
1024
|
-
[data-ui
|
|
1022
|
+
[data-ui-app-shell][data-canvas='panel']::before {
|
|
1025
1023
|
grid-area: 2 / 1 / 3 / -1;
|
|
1026
1024
|
margin: 0;
|
|
1027
1025
|
}
|
|
1028
|
-
[data-ui
|
|
1029
|
-
[data-primary='nav'],
|
|
1030
|
-
[data-primary='main']
|
|
1031
|
-
)::before {
|
|
1026
|
+
[data-ui-app-shell][data-canvas='panel']:is([data-primary='nav'], [data-primary='main'])::before {
|
|
1032
1027
|
grid-area: 1 / 1 / 3 / -1;
|
|
1033
1028
|
}
|
|
1034
|
-
[data-ui
|
|
1029
|
+
[data-ui-app-shell][data-nav-mode='overlay'][data-canvas]::before {
|
|
1035
1030
|
content: none;
|
|
1036
1031
|
}
|
|
1037
1032
|
|
|
@@ -1043,37 +1038,37 @@
|
|
|
1043
1038
|
* and keeps its ground with the card's lower corners. Between them is a
|
|
1044
1039
|
* seam, and `separation` decides it.
|
|
1045
1040
|
*/
|
|
1046
|
-
[data-ui
|
|
1047
|
-
> [data-part
|
|
1041
|
+
[data-ui-app-shell]:is([data-canvas='floating'], [data-canvas='inset'])[data-primary='main']
|
|
1042
|
+
> [data-part-banner] {
|
|
1048
1043
|
margin-block-start: calc(var(--_gutter) + var(--_rule-width));
|
|
1049
1044
|
margin-inline: calc(var(--_gutter) + var(--_rule-width));
|
|
1050
1045
|
padding-inline: 0;
|
|
1051
1046
|
}
|
|
1052
|
-
[data-ui
|
|
1053
|
-
> [data-part
|
|
1047
|
+
[data-ui-app-shell]:is([data-canvas='floating'], [data-canvas='inset'])[data-primary='main']
|
|
1048
|
+
> [data-part-main] {
|
|
1054
1049
|
border: none;
|
|
1055
1050
|
border-radius: 0 0 var(--_inner-radius) var(--_inner-radius);
|
|
1056
1051
|
box-shadow: none;
|
|
1057
1052
|
margin-block: 0 calc(var(--_gutter) + var(--_rule-width));
|
|
1058
1053
|
margin-inline: calc(var(--_gutter) + var(--_rule-width));
|
|
1059
1054
|
}
|
|
1060
|
-
[data-ui
|
|
1061
|
-
[data-ui
|
|
1062
|
-
[data-ui
|
|
1063
|
-
[data-ui
|
|
1064
|
-
> [data-part
|
|
1055
|
+
[data-ui-app-shell][data-primary='main'] > [data-part-banner],
|
|
1056
|
+
[data-ui-app-shell][data-primary='main'][data-nav-side='end'] > [data-part-banner],
|
|
1057
|
+
[data-ui-app-shell][data-canvas='panel'][data-primary='nav'] > [data-part-banner],
|
|
1058
|
+
[data-ui-app-shell][data-canvas='panel'][data-primary='nav'][data-nav-side='end']
|
|
1059
|
+
> [data-part-banner] {
|
|
1065
1060
|
border-block-end: var(--_seam);
|
|
1066
1061
|
grid-column: 2 / 3;
|
|
1067
1062
|
}
|
|
1068
|
-
[data-ui
|
|
1063
|
+
[data-ui-app-shell][data-primary='main'][data-nav-mode='overlay'] > [data-part-banner] {
|
|
1069
1064
|
margin: 0;
|
|
1070
1065
|
padding-inline: var(--_edge);
|
|
1071
1066
|
}
|
|
1072
|
-
[data-ui
|
|
1067
|
+
[data-ui-app-shell]:is(
|
|
1073
1068
|
[data-canvas='floating'],
|
|
1074
1069
|
[data-canvas='inset']
|
|
1075
1070
|
)[data-primary='main'][data-nav-mode='overlay']
|
|
1076
|
-
> [data-part
|
|
1071
|
+
> [data-part-main] {
|
|
1077
1072
|
border-radius: 0;
|
|
1078
1073
|
margin: 0;
|
|
1079
1074
|
}
|
|
@@ -1092,80 +1087,80 @@
|
|
|
1092
1087
|
* measured below the compact width keeps it for one frame: the root cannot
|
|
1093
1088
|
* query its own width, and that frame is the cost.
|
|
1094
1089
|
*/
|
|
1095
|
-
[data-ui
|
|
1090
|
+
[data-ui-app-shell][data-canvas='panel'] {
|
|
1096
1091
|
--_edge: calc(var(--_rule-width) + var(--_row-inset));
|
|
1097
1092
|
--_nav-edges: var(--_seam-width);
|
|
1098
1093
|
--_nav-inset: var(--_row-inset);
|
|
1099
1094
|
}
|
|
1100
1095
|
/* Once the navigation is a layer the card beside the bar is gone, and the
|
|
1101
1096
|
bar's rows stand where the inset plane's do. */
|
|
1102
|
-
[data-ui
|
|
1103
|
-
[data-ui
|
|
1097
|
+
[data-ui-app-shell][data-canvas='floating'][data-nav-mode='overlay'],
|
|
1098
|
+
[data-ui-app-shell][data-canvas='panel'][data-nav-mode='overlay'] {
|
|
1104
1099
|
--_edge: var(--_gutter);
|
|
1105
1100
|
}
|
|
1106
|
-
[data-ui
|
|
1101
|
+
[data-ui-app-shell][data-canvas='panel']:not([data-nav-mode='overlay']) {
|
|
1107
1102
|
box-sizing: border-box;
|
|
1108
1103
|
padding-block-end: var(--_gutter);
|
|
1109
1104
|
padding-inline: var(--_gutter);
|
|
1110
1105
|
}
|
|
1111
|
-
[data-ui
|
|
1106
|
+
[data-ui-app-shell][data-canvas='panel']:not([data-nav-mode='overlay']):is(
|
|
1112
1107
|
[data-primary='nav'],
|
|
1113
1108
|
[data-primary='main']
|
|
1114
1109
|
) {
|
|
1115
1110
|
padding-block-start: var(--_gutter);
|
|
1116
1111
|
}
|
|
1117
|
-
[data-ui
|
|
1112
|
+
[data-ui-app-shell][data-canvas='panel']:not([data-nav-mode='overlay']) > [data-part-nav] {
|
|
1118
1113
|
border-end-start-radius: var(--_inner-radius);
|
|
1119
1114
|
border-start-start-radius: var(--_inner-radius);
|
|
1120
1115
|
margin: var(--_rule-width) 0 var(--_rule-width) var(--_rule-width);
|
|
1121
1116
|
}
|
|
1122
|
-
[data-ui
|
|
1123
|
-
> [data-part
|
|
1117
|
+
[data-ui-app-shell][data-canvas='panel']:not([data-nav-mode='overlay'])[data-nav-side='end']
|
|
1118
|
+
> [data-part-nav] {
|
|
1124
1119
|
border-radius: 0 var(--_inner-radius) var(--_inner-radius) 0;
|
|
1125
1120
|
margin: var(--_rule-width) var(--_rule-width) var(--_rule-width) 0;
|
|
1126
1121
|
}
|
|
1127
|
-
[data-ui
|
|
1122
|
+
[data-ui-app-shell][data-canvas='panel']:not([data-nav-mode='overlay']) > [data-part-main] {
|
|
1128
1123
|
border-end-end-radius: var(--_inner-radius);
|
|
1129
1124
|
margin-block-end: var(--_rule-width);
|
|
1130
1125
|
margin-inline-end: var(--_rule-width);
|
|
1131
1126
|
}
|
|
1132
|
-
[data-ui
|
|
1133
|
-
> [data-part
|
|
1127
|
+
[data-ui-app-shell][data-canvas='panel'][data-primary='banner']:not([data-nav-mode='overlay'])
|
|
1128
|
+
> [data-part-main] {
|
|
1134
1129
|
border-start-end-radius: var(--_inner-radius);
|
|
1135
1130
|
margin-block-start: var(--_rule-width);
|
|
1136
1131
|
}
|
|
1137
|
-
[data-ui
|
|
1132
|
+
[data-ui-app-shell][data-canvas='panel']:not([data-nav-mode='overlay']):not(
|
|
1138
1133
|
[data-primary='banner']
|
|
1139
1134
|
)
|
|
1140
|
-
> [data-part
|
|
1135
|
+
> [data-part-banner] {
|
|
1141
1136
|
margin-block-start: var(--_rule-width);
|
|
1142
1137
|
margin-inline-end: var(--_rule-width);
|
|
1143
1138
|
}
|
|
1144
1139
|
/* The corner the content shares with the card is the pane's once the pane
|
|
1145
1140
|
stands beside it. */
|
|
1146
|
-
[data-ui
|
|
1147
|
-
> [data-part
|
|
1141
|
+
[data-ui-app-shell][data-canvas='panel']:not([data-nav-mode='overlay']):has(
|
|
1142
|
+
> [data-part-aside][data-open]
|
|
1148
1143
|
)
|
|
1149
|
-
> [data-part
|
|
1144
|
+
> [data-part-main] {
|
|
1150
1145
|
border-end-end-radius: 0;
|
|
1151
1146
|
border-start-end-radius: 0;
|
|
1152
1147
|
margin-inline-end: 0;
|
|
1153
1148
|
}
|
|
1154
|
-
[data-ui
|
|
1155
|
-
> [data-part
|
|
1149
|
+
[data-ui-app-shell][data-canvas='panel']:not([data-nav-mode='overlay']):has(
|
|
1150
|
+
> [data-part-aside][data-open]
|
|
1156
1151
|
)
|
|
1157
|
-
> [data-part
|
|
1152
|
+
> [data-part-banner] {
|
|
1158
1153
|
margin-inline-end: 0;
|
|
1159
1154
|
}
|
|
1160
|
-
[data-ui
|
|
1155
|
+
[data-ui-app-shell][data-canvas='panel']:not([data-nav-mode='overlay']):not(
|
|
1161
1156
|
[data-aside-mode='overlay']
|
|
1162
1157
|
)
|
|
1163
|
-
> [data-part
|
|
1158
|
+
> [data-part-aside] {
|
|
1164
1159
|
border-end-end-radius: var(--_inner-radius);
|
|
1165
1160
|
border-start-end-radius: var(--_inner-radius);
|
|
1166
1161
|
margin: var(--_rule-width) var(--_rule-width) var(--_rule-width) 0;
|
|
1167
1162
|
}
|
|
1168
|
-
[data-ui
|
|
1163
|
+
[data-ui-app-shell][data-canvas='panel'][data-nav-mode='overlay'] > [data-part-main] {
|
|
1169
1164
|
border-block-start: var(--_rule-width) solid var(--_rule);
|
|
1170
1165
|
}
|
|
1171
1166
|
|
|
@@ -1183,14 +1178,14 @@
|
|
|
1183
1178
|
* gives it once the navigation is a layer — the frame is the box of `main`
|
|
1184
1179
|
* and covers that edge already.
|
|
1185
1180
|
*/
|
|
1186
|
-
[data-ui
|
|
1187
|
-
[data-ui
|
|
1181
|
+
[data-ui-app-shell]:is([data-canvas='flush'], [data-primary='main']),
|
|
1182
|
+
[data-ui-app-shell][data-canvas='panel'][data-primary='nav'] {
|
|
1188
1183
|
--_progress-lift: var(--_seam-width);
|
|
1189
1184
|
}
|
|
1190
|
-
[data-ui
|
|
1185
|
+
[data-ui-app-shell][data-canvas='panel'][data-primary='banner'] {
|
|
1191
1186
|
--_progress-lift: var(--_rule-width);
|
|
1192
1187
|
}
|
|
1193
|
-
[data-ui
|
|
1188
|
+
[data-ui-app-shell][data-canvas='panel'][data-nav-mode='overlay'] {
|
|
1194
1189
|
--_progress-lift: 0px;
|
|
1195
1190
|
}
|
|
1196
1191
|
|
|
@@ -1205,46 +1200,45 @@
|
|
|
1205
1200
|
* their originals in the narrow query below. `app-shell.styles.test.mjs`
|
|
1206
1201
|
* holds every rule that gives `main` a margin or a radius to its twin.
|
|
1207
1202
|
*/
|
|
1208
|
-
[data-ui
|
|
1209
|
-
[data-ui
|
|
1203
|
+
[data-ui-app-shell][data-canvas='floating'] > [data-part-progress],
|
|
1204
|
+
[data-ui-app-shell][data-canvas='inset'] > [data-part-progress] {
|
|
1210
1205
|
border-radius: var(--_radius);
|
|
1211
1206
|
margin-block: var(--_gutter);
|
|
1212
1207
|
margin-inline: var(--_gutter);
|
|
1213
1208
|
}
|
|
1214
|
-
[data-ui
|
|
1215
|
-
[data-ui
|
|
1209
|
+
[data-ui-app-shell][data-canvas='floating'][data-nav-mode='overlay'] > [data-part-progress],
|
|
1210
|
+
[data-ui-app-shell][data-canvas='inset'][data-nav-mode='overlay'] > [data-part-progress] {
|
|
1216
1211
|
border-radius: 0;
|
|
1217
1212
|
margin: 0;
|
|
1218
1213
|
}
|
|
1219
|
-
[data-ui
|
|
1220
|
-
> [data-part
|
|
1214
|
+
[data-ui-app-shell]:is([data-canvas='floating'], [data-canvas='inset'])[data-primary='main']
|
|
1215
|
+
> [data-part-progress] {
|
|
1221
1216
|
border-radius: 0 0 var(--_inner-radius) var(--_inner-radius);
|
|
1222
1217
|
margin-block: 0 calc(var(--_gutter) + var(--_rule-width));
|
|
1223
1218
|
margin-inline: calc(var(--_gutter) + var(--_rule-width));
|
|
1224
1219
|
}
|
|
1225
|
-
[data-ui
|
|
1220
|
+
[data-ui-app-shell]:is(
|
|
1226
1221
|
[data-canvas='floating'],
|
|
1227
1222
|
[data-canvas='inset']
|
|
1228
1223
|
)[data-primary='main'][data-nav-mode='overlay']
|
|
1229
|
-
> [data-part
|
|
1224
|
+
> [data-part-progress] {
|
|
1230
1225
|
border-radius: 0;
|
|
1231
1226
|
margin: 0;
|
|
1232
1227
|
}
|
|
1233
|
-
[data-ui
|
|
1234
|
-
> [data-part='progress'] {
|
|
1228
|
+
[data-ui-app-shell][data-canvas='panel']:not([data-nav-mode='overlay']) > [data-part-progress] {
|
|
1235
1229
|
border-end-end-radius: var(--_inner-radius);
|
|
1236
1230
|
margin-block-end: var(--_rule-width);
|
|
1237
1231
|
margin-inline-end: var(--_rule-width);
|
|
1238
1232
|
}
|
|
1239
|
-
[data-ui
|
|
1240
|
-
> [data-part
|
|
1233
|
+
[data-ui-app-shell][data-canvas='panel'][data-primary='banner']:not([data-nav-mode='overlay'])
|
|
1234
|
+
> [data-part-progress] {
|
|
1241
1235
|
border-start-end-radius: var(--_inner-radius);
|
|
1242
1236
|
margin-block-start: var(--_rule-width);
|
|
1243
1237
|
}
|
|
1244
|
-
[data-ui
|
|
1245
|
-
> [data-part
|
|
1238
|
+
[data-ui-app-shell][data-canvas='panel']:not([data-nav-mode='overlay']):has(
|
|
1239
|
+
> [data-part-aside][data-open]
|
|
1246
1240
|
)
|
|
1247
|
-
> [data-part
|
|
1241
|
+
> [data-part-progress] {
|
|
1248
1242
|
border-end-end-radius: 0;
|
|
1249
1243
|
border-start-end-radius: 0;
|
|
1250
1244
|
margin-inline-end: 0;
|
|
@@ -1258,7 +1252,7 @@
|
|
|
1258
1252
|
* seams the region and its parts draw, and `transparent` removes them. The
|
|
1259
1253
|
* tone rules below state the same two declarations at a higher specificity.
|
|
1260
1254
|
*/
|
|
1261
|
-
[data-ui
|
|
1255
|
+
[data-ui-app-shell] > [data-part] {
|
|
1262
1256
|
--_rule: var(--slotted-app-shell-border-color, var(--slotted-border-subtle, ButtonBorder));
|
|
1263
1257
|
--_seam: var(--_rule-width) solid var(--_rule);
|
|
1264
1258
|
}
|
|
@@ -1279,12 +1273,12 @@
|
|
|
1279
1273
|
* where it is declared, and a region carrying a scheme of its own must mix
|
|
1280
1274
|
* its own ink.
|
|
1281
1275
|
*/
|
|
1282
|
-
[data-ui
|
|
1283
|
-
[data-ui
|
|
1276
|
+
[data-ui-app-shell][data-separation='tone'],
|
|
1277
|
+
[data-ui-app-shell][data-separation='tone'] > [data-part] {
|
|
1284
1278
|
--_seam: none;
|
|
1285
1279
|
--_seam-width: 0px;
|
|
1286
1280
|
}
|
|
1287
|
-
[data-ui
|
|
1281
|
+
[data-ui-app-shell][data-canvas='flush'][data-separation='tone'] > [data-part-footer] {
|
|
1288
1282
|
--_ground: var(
|
|
1289
1283
|
--slotted-app-shell-footer-surface,
|
|
1290
1284
|
var(
|
|
@@ -1293,8 +1287,8 @@
|
|
|
1293
1287
|
)
|
|
1294
1288
|
);
|
|
1295
1289
|
}
|
|
1296
|
-
[data-ui
|
|
1297
|
-
> [data-part
|
|
1290
|
+
[data-ui-app-shell][data-canvas='flush'][data-separation='tone']:not([data-primary='main'])
|
|
1291
|
+
> [data-part-banner] {
|
|
1298
1292
|
--_ground: var(
|
|
1299
1293
|
--slotted-app-shell-banner-surface,
|
|
1300
1294
|
var(
|
|
@@ -1303,8 +1297,8 @@
|
|
|
1303
1297
|
)
|
|
1304
1298
|
);
|
|
1305
1299
|
}
|
|
1306
|
-
[data-ui
|
|
1307
|
-
> [data-part
|
|
1300
|
+
[data-ui-app-shell]:is([data-canvas='flush'], [data-canvas='panel'])[data-separation='tone']
|
|
1301
|
+
> [data-part-nav] {
|
|
1308
1302
|
--_ground: var(
|
|
1309
1303
|
--slotted-app-shell-nav-surface,
|
|
1310
1304
|
var(
|
|
@@ -1313,8 +1307,8 @@
|
|
|
1313
1307
|
)
|
|
1314
1308
|
);
|
|
1315
1309
|
}
|
|
1316
|
-
[data-ui
|
|
1317
|
-
> [data-part
|
|
1310
|
+
[data-ui-app-shell]:is([data-canvas='flush'], [data-canvas='panel'])[data-separation='tone']
|
|
1311
|
+
> [data-part-aside] {
|
|
1318
1312
|
--_ground: var(
|
|
1319
1313
|
--slotted-app-shell-aside-surface,
|
|
1320
1314
|
var(
|
|
@@ -1323,18 +1317,18 @@
|
|
|
1323
1317
|
)
|
|
1324
1318
|
);
|
|
1325
1319
|
}
|
|
1326
|
-
[data-ui
|
|
1320
|
+
[data-ui-app-shell][data-separation='tone'] > [data-part-nav] > [data-part-nav-rail] {
|
|
1327
1321
|
--_ground: var(
|
|
1328
1322
|
--slotted-app-shell-tone-surface,
|
|
1329
1323
|
color-mix(in oklab, var(--slotted-surface), var(--slotted-text) 4.5%)
|
|
1330
1324
|
);
|
|
1331
1325
|
}
|
|
1332
|
-
[data-ui
|
|
1333
|
-
> [data-part
|
|
1334
|
-
[data-ui
|
|
1335
|
-
[data-ui
|
|
1336
|
-
> :is([data-part
|
|
1337
|
-
[data-ui
|
|
1326
|
+
[data-ui-app-shell][data-canvas='flush'][data-separation='tone']:not([data-primary='main'])
|
|
1327
|
+
> [data-part-banner],
|
|
1328
|
+
[data-ui-app-shell][data-canvas='flush'][data-separation='tone'] > [data-part-footer],
|
|
1329
|
+
[data-ui-app-shell]:is([data-canvas='flush'], [data-canvas='panel'])[data-separation='tone']
|
|
1330
|
+
> :is([data-part-nav], [data-part-aside]),
|
|
1331
|
+
[data-ui-app-shell][data-separation='tone'] > [data-part-nav] > [data-part-nav-rail] {
|
|
1338
1332
|
--slotted-tone-secondary-subtle-hover: color-mix(
|
|
1339
1333
|
in oklab,
|
|
1340
1334
|
var(--_ground),
|
|
@@ -1350,7 +1344,7 @@
|
|
|
1350
1344
|
}
|
|
1351
1345
|
/* The content keeps the surface under a toned frame: on the flush plane it
|
|
1352
1346
|
carried the sunken ground, which is 0.014 from the tone. */
|
|
1353
|
-
[data-ui
|
|
1347
|
+
[data-ui-app-shell][data-canvas='flush'][data-separation='tone'] > [data-part-main] {
|
|
1354
1348
|
background-color: var(
|
|
1355
1349
|
--slotted-app-shell-main-surface,
|
|
1356
1350
|
var(--slotted-app-shell-canvas, var(--slotted-surface, Canvas))
|
|
@@ -1370,12 +1364,12 @@
|
|
|
1370
1364
|
* on the way in. `:has()` recognises the part, so no script writes an
|
|
1371
1365
|
* attribute and a server render has the grid on its first paint.
|
|
1372
1366
|
*/
|
|
1373
|
-
[data-ui
|
|
1367
|
+
[data-ui-app-shell] > [data-part-nav]:has(> [data-part-nav-rail]) {
|
|
1374
1368
|
display: grid;
|
|
1375
1369
|
grid-template-columns: var(--_rail-size) minmax(var(--_nav-size), 1fr);
|
|
1376
1370
|
grid-template-rows: auto minmax(0, 1fr) auto;
|
|
1377
1371
|
}
|
|
1378
|
-
[data-ui
|
|
1372
|
+
[data-ui-app-shell] > [data-part-nav] > [data-part-nav-rail] {
|
|
1379
1373
|
align-items: center;
|
|
1380
1374
|
border-inline-end: var(--_seam);
|
|
1381
1375
|
box-sizing: border-box;
|
|
@@ -1389,47 +1383,43 @@
|
|
|
1389
1383
|
padding-block: var(--_row-inset);
|
|
1390
1384
|
scrollbar-width: none;
|
|
1391
1385
|
}
|
|
1392
|
-
[data-ui
|
|
1393
|
-
> [data-part='nav']:has(> [data-part='nav-rail'])
|
|
1394
|
-
> [data-part='nav-header'] {
|
|
1386
|
+
[data-ui-app-shell] > [data-part-nav]:has(> [data-part-nav-rail]) > [data-part-nav-header] {
|
|
1395
1387
|
grid-area: 1 / 2 / 2 / 3;
|
|
1396
1388
|
}
|
|
1397
|
-
[data-ui
|
|
1389
|
+
[data-ui-app-shell] > [data-part-nav]:has(> [data-part-nav-rail]) > [data-part-nav-body] {
|
|
1398
1390
|
grid-area: 2 / 2 / 3 / 3;
|
|
1399
1391
|
}
|
|
1400
|
-
[data-ui
|
|
1401
|
-
> [data-part='nav']:has(> [data-part='nav-rail'])
|
|
1402
|
-
> [data-part='nav-footer'] {
|
|
1392
|
+
[data-ui-app-shell] > [data-part-nav]:has(> [data-part-nav-rail]) > [data-part-nav-footer] {
|
|
1403
1393
|
grid-area: 3 / 2 / 4 / 3;
|
|
1404
1394
|
}
|
|
1405
1395
|
/* The strip's rule is an edge, and a row whose ground meets it reads as a
|
|
1406
1396
|
column with no padding. */
|
|
1407
|
-
[data-ui
|
|
1408
|
-
> [data-part
|
|
1409
|
-
> :is([data-part
|
|
1397
|
+
[data-ui-app-shell]
|
|
1398
|
+
> [data-part-nav]:has(> [data-part-nav-rail])
|
|
1399
|
+
> :is([data-part-nav-header], [data-part-nav-body], [data-part-nav-footer]) {
|
|
1410
1400
|
padding-inline-start: calc(var(--_row-inset) + var(--_row-ring-inset));
|
|
1411
1401
|
transition: visibility var(--_duration) step-start;
|
|
1412
1402
|
}
|
|
1413
|
-
[data-ui
|
|
1414
|
-
> [data-part
|
|
1403
|
+
[data-ui-app-shell][data-nav-mode='inline'][data-open]
|
|
1404
|
+
> [data-part-nav]:has(> [data-part-nav-rail]) {
|
|
1415
1405
|
inline-size: calc(var(--_rail-size) + var(--_nav-size) + var(--_nav-edges));
|
|
1416
1406
|
}
|
|
1417
1407
|
/* Closed, the region is the strip and its edges: the strip holds a row's
|
|
1418
1408
|
inset on each side of its marks already. */
|
|
1419
|
-
[data-ui
|
|
1420
|
-
> [data-part
|
|
1409
|
+
[data-ui-app-shell][data-nav-mode='inline']:not([data-open])
|
|
1410
|
+
> [data-part-nav]:has(> [data-part-nav-rail]) {
|
|
1421
1411
|
inline-size: calc(var(--_rail-size) + var(--_nav-edges));
|
|
1422
1412
|
}
|
|
1423
|
-
[data-ui
|
|
1424
|
-
> [data-part
|
|
1425
|
-
> :is([data-part
|
|
1413
|
+
[data-ui-app-shell][data-nav-mode='inline']:not([data-open])
|
|
1414
|
+
> [data-part-nav]:has(> [data-part-nav-rail])
|
|
1415
|
+
> :is([data-part-nav-header], [data-part-nav-body], [data-part-nav-footer]) {
|
|
1426
1416
|
transition: visibility var(--_duration) step-end;
|
|
1427
1417
|
visibility: hidden;
|
|
1428
1418
|
}
|
|
1429
1419
|
/* A closed strip is the region's edge, and the edge is the plane's to draw. */
|
|
1430
|
-
[data-ui
|
|
1431
|
-
> [data-part
|
|
1432
|
-
> [data-part
|
|
1420
|
+
[data-ui-app-shell][data-nav-mode='inline']:not([data-open])
|
|
1421
|
+
> [data-part-nav]
|
|
1422
|
+
> [data-part-nav-rail] {
|
|
1433
1423
|
border-inline-end: none;
|
|
1434
1424
|
}
|
|
1435
1425
|
|
|
@@ -1442,8 +1432,8 @@
|
|
|
1442
1432
|
* a forced-colours rule of its own for.
|
|
1443
1433
|
*/
|
|
1444
1434
|
@media (forced-colors: active) {
|
|
1445
|
-
[data-ui
|
|
1446
|
-
[data-ui
|
|
1435
|
+
[data-ui-app-shell][data-separation='tone'],
|
|
1436
|
+
[data-ui-app-shell][data-separation='tone'] > [data-part] {
|
|
1447
1437
|
--_seam: var(--_rule-width) solid CanvasText;
|
|
1448
1438
|
--_seam-width: var(--_rule-width);
|
|
1449
1439
|
}
|
|
@@ -1464,8 +1454,8 @@
|
|
|
1464
1454
|
* The pane's control is the same control: the same box, the same ink, the
|
|
1465
1455
|
* same pair of marks. What differs is which way the artwork faces, below.
|
|
1466
1456
|
*/
|
|
1467
|
-
[data-ui
|
|
1468
|
-
[data-ui
|
|
1457
|
+
[data-ui-app-shell] [data-part-nav-toggle],
|
|
1458
|
+
[data-ui-app-shell] [data-part-aside-toggle] {
|
|
1469
1459
|
--slotted-icon-size: var(--slotted-control-icon-size-md, 16px);
|
|
1470
1460
|
|
|
1471
1461
|
background-color: transparent;
|
|
@@ -1502,37 +1492,31 @@
|
|
|
1502
1492
|
* navigation's turns. The box is not `directional`: which side the region
|
|
1503
1493
|
* stands on is this family's fact, not the reading direction's alone.
|
|
1504
1494
|
*/
|
|
1505
|
-
[data-ui
|
|
1506
|
-
[dir='rtl'] [data-ui
|
|
1507
|
-
[data-ui
|
|
1508
|
-
[dir='rtl']
|
|
1509
|
-
[data-ui='app-shell'][data-nav-side='end']
|
|
1510
|
-
[data-part='aside-toggle']
|
|
1511
|
-
> [data-ui='icon'] {
|
|
1495
|
+
[data-ui-app-shell][data-nav-side='end'] [data-part-nav-toggle] > [data-ui-icon],
|
|
1496
|
+
[dir='rtl'] [data-ui-app-shell] [data-part-nav-toggle] > [data-ui-icon],
|
|
1497
|
+
[data-ui-app-shell]:not([data-nav-side='end']) [data-part-aside-toggle] > [data-ui-icon],
|
|
1498
|
+
[dir='rtl'] [data-ui-app-shell][data-nav-side='end'] [data-part-aside-toggle] > [data-ui-icon] {
|
|
1512
1499
|
scale: -1 1;
|
|
1513
1500
|
}
|
|
1501
|
+
[dir='rtl'] [data-ui-app-shell][data-nav-side='end'] [data-part-nav-toggle] > [data-ui-icon],
|
|
1514
1502
|
[dir='rtl']
|
|
1515
|
-
[data-ui
|
|
1516
|
-
[data-part
|
|
1517
|
-
> [data-ui
|
|
1518
|
-
[dir='rtl']
|
|
1519
|
-
[data-ui='app-shell']:not([data-nav-side='end'])
|
|
1520
|
-
[data-part='aside-toggle']
|
|
1521
|
-
> [data-ui='icon'] {
|
|
1503
|
+
[data-ui-app-shell]:not([data-nav-side='end'])
|
|
1504
|
+
[data-part-aside-toggle]
|
|
1505
|
+
> [data-ui-icon] {
|
|
1522
1506
|
scale: 1 1;
|
|
1523
1507
|
}
|
|
1524
1508
|
|
|
1525
|
-
[data-ui
|
|
1526
|
-
[data-ui
|
|
1509
|
+
[data-ui-app-shell] [data-part-nav-toggle]:enabled:hover,
|
|
1510
|
+
[data-ui-app-shell] [data-part-aside-toggle]:enabled:hover {
|
|
1527
1511
|
background-color: var(--slotted-tone-secondary-subtle-hover, ButtonFace);
|
|
1528
1512
|
color: currentcolor;
|
|
1529
1513
|
}
|
|
1530
|
-
[data-ui
|
|
1531
|
-
[data-ui
|
|
1514
|
+
[data-ui-app-shell] [data-part-nav-toggle]:enabled:active,
|
|
1515
|
+
[data-ui-app-shell] [data-part-aside-toggle]:enabled:active {
|
|
1532
1516
|
background-color: var(--slotted-tone-secondary-subtle-active, ButtonFace);
|
|
1533
1517
|
}
|
|
1534
|
-
[data-ui
|
|
1535
|
-
[data-ui
|
|
1518
|
+
[data-ui-app-shell] [data-part-nav-toggle]:focus-visible,
|
|
1519
|
+
[data-ui-app-shell] [data-part-aside-toggle]:focus-visible {
|
|
1536
1520
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
1537
1521
|
outline-offset: var(--slotted-focus-ring-offset, 2px);
|
|
1538
1522
|
}
|
|
@@ -1546,33 +1530,33 @@
|
|
|
1546
1530
|
*/
|
|
1547
1531
|
/* The rail holds the parts' ring inset on each side as well, so a control
|
|
1548
1532
|
at the mark's size keeps its focus ring inside the body beside the gutter. */
|
|
1549
|
-
[data-ui
|
|
1533
|
+
[data-ui-app-shell][data-nav-mode='inline'] > [data-part-nav] {
|
|
1550
1534
|
inline-size: calc(
|
|
1551
1535
|
var(--_rail-size) + 2 * (var(--_nav-inset) + var(--_row-ring-inset)) + var(--_nav-edges)
|
|
1552
1536
|
);
|
|
1553
1537
|
}
|
|
1554
|
-
[data-ui
|
|
1538
|
+
[data-ui-app-shell][data-nav-mode='inline'][data-open] > [data-part-nav] {
|
|
1555
1539
|
inline-size: var(--_nav-size);
|
|
1556
1540
|
}
|
|
1557
1541
|
/**
|
|
1558
1542
|
* The rail centres its marks, all three rows together: a head centred over a
|
|
1559
1543
|
* body that is not reads as two columns in one strip.
|
|
1560
1544
|
*/
|
|
1561
|
-
[data-ui
|
|
1562
|
-
> [data-part
|
|
1563
|
-
> [data-part
|
|
1564
|
-
[data-ui
|
|
1565
|
-
> [data-part
|
|
1566
|
-
> [data-part
|
|
1545
|
+
[data-ui-app-shell][data-nav-mode='inline']:not([data-open])
|
|
1546
|
+
> [data-part-nav]
|
|
1547
|
+
> [data-part-nav-header],
|
|
1548
|
+
[data-ui-app-shell][data-nav-mode='inline']:not([data-open])
|
|
1549
|
+
> [data-part-nav]
|
|
1550
|
+
> [data-part-nav-footer] {
|
|
1567
1551
|
/* Two marks in one end of a rail — the control and the account — stand
|
|
1568
1552
|
one over the other: the rail is one mark column wide, so a row of two
|
|
1569
1553
|
is a row that overflows it. */
|
|
1570
1554
|
flex-wrap: wrap;
|
|
1571
1555
|
justify-content: center;
|
|
1572
1556
|
}
|
|
1573
|
-
[data-ui
|
|
1574
|
-
> [data-part
|
|
1575
|
-
> [data-part
|
|
1557
|
+
[data-ui-app-shell][data-nav-mode='inline']:not([data-open])
|
|
1558
|
+
> [data-part-nav]
|
|
1559
|
+
> [data-part-nav-body] {
|
|
1576
1560
|
align-items: center;
|
|
1577
1561
|
}
|
|
1578
1562
|
/**
|
|
@@ -1585,35 +1569,35 @@
|
|
|
1585
1569
|
* `hidden` does not animate, because it is a removal rather than a change of
|
|
1586
1570
|
* width.
|
|
1587
1571
|
*/
|
|
1588
|
-
[data-ui
|
|
1589
|
-
> [data-part
|
|
1572
|
+
[data-ui-app-shell][data-nav-mode='inline'][data-collapsed-to='hidden']:not([data-open])
|
|
1573
|
+
> [data-part-nav] {
|
|
1590
1574
|
display: none;
|
|
1591
1575
|
}
|
|
1592
1576
|
|
|
1593
|
-
[data-ui
|
|
1577
|
+
[data-ui-app-shell][data-nav-side='end'] > [data-part-nav] {
|
|
1594
1578
|
grid-area: 2 / 3 / 3 / 4;
|
|
1595
1579
|
}
|
|
1596
|
-
[data-ui
|
|
1580
|
+
[data-ui-app-shell][data-canvas='inset'][data-nav-side='end'] > [data-part-nav] {
|
|
1597
1581
|
margin-inline: 0 var(--_gutter);
|
|
1598
1582
|
}
|
|
1599
|
-
[data-ui
|
|
1583
|
+
[data-ui-app-shell][data-canvas='flush'][data-nav-side='end'] > [data-part-nav] {
|
|
1600
1584
|
padding-inline: 0 var(--_gutter);
|
|
1601
1585
|
}
|
|
1602
|
-
[data-ui
|
|
1586
|
+
[data-ui-app-shell]:is([data-canvas='flush'], [data-canvas='panel']) > [data-part-nav] {
|
|
1603
1587
|
border-inline-end: var(--_seam);
|
|
1604
1588
|
}
|
|
1605
|
-
[data-ui
|
|
1606
|
-
> [data-part
|
|
1589
|
+
[data-ui-app-shell]:is([data-canvas='flush'], [data-canvas='panel'])[data-nav-side='end']
|
|
1590
|
+
> [data-part-nav] {
|
|
1607
1591
|
border-inline-end: none;
|
|
1608
1592
|
border-inline-start: var(--_seam);
|
|
1609
1593
|
}
|
|
1610
1594
|
|
|
1611
1595
|
/** Reaching the corner: the navigation spans every row instead. */
|
|
1612
|
-
[data-ui
|
|
1596
|
+
[data-ui-app-shell]:is([data-primary='nav'], [data-primary='main']) > [data-part-nav] {
|
|
1613
1597
|
grid-area: 1 / 1 / -1 / 2;
|
|
1614
1598
|
}
|
|
1615
|
-
[data-ui
|
|
1616
|
-
> [data-part
|
|
1599
|
+
[data-ui-app-shell]:is([data-primary='nav'], [data-primary='main'])[data-nav-side='end']
|
|
1600
|
+
> [data-part-nav] {
|
|
1617
1601
|
grid-area: 1 / 3 / -1 / 4;
|
|
1618
1602
|
}
|
|
1619
1603
|
/**
|
|
@@ -1621,22 +1605,22 @@
|
|
|
1621
1605
|
* and whatever the bar carries sit on one line rather than being two headers
|
|
1622
1606
|
* of different sizes in the same row of the screen.
|
|
1623
1607
|
*/
|
|
1624
|
-
[data-ui
|
|
1625
|
-
> [data-part
|
|
1626
|
-
> [data-part
|
|
1608
|
+
[data-ui-app-shell]:is([data-primary='nav'], [data-primary='main'])
|
|
1609
|
+
> [data-part-nav]
|
|
1610
|
+
> [data-part-nav-header] {
|
|
1627
1611
|
/* The head's own padding is inside the banner's height, or the mark stands
|
|
1628
1612
|
its padding lower than the bar beside it. */
|
|
1629
1613
|
box-sizing: border-box;
|
|
1630
1614
|
min-block-size: var(--_banner-size);
|
|
1631
1615
|
}
|
|
1632
|
-
[data-ui
|
|
1633
|
-
[data-ui
|
|
1616
|
+
[data-ui-app-shell]:is([data-primary='nav'], [data-primary='main']) > [data-part-banner],
|
|
1617
|
+
[data-ui-app-shell]:is([data-primary='nav'], [data-primary='main']) > [data-part-footer] {
|
|
1634
1618
|
grid-column: 2 / -1;
|
|
1635
1619
|
}
|
|
1636
|
-
[data-ui
|
|
1637
|
-
> [data-part
|
|
1638
|
-
[data-ui
|
|
1639
|
-
> [data-part
|
|
1620
|
+
[data-ui-app-shell]:is([data-primary='nav'], [data-primary='main'])[data-nav-side='end']
|
|
1621
|
+
> [data-part-banner],
|
|
1622
|
+
[data-ui-app-shell]:is([data-primary='nav'], [data-primary='main'])[data-nav-side='end']
|
|
1623
|
+
> [data-part-footer] {
|
|
1640
1624
|
grid-column: 1 / -2;
|
|
1641
1625
|
}
|
|
1642
1626
|
/**
|
|
@@ -1645,8 +1629,8 @@
|
|
|
1645
1629
|
* `panel` the banner is inside the card whether the column or the content
|
|
1646
1630
|
* is primary, so `nav` draws what `main` draws there.
|
|
1647
1631
|
*/
|
|
1648
|
-
[data-ui
|
|
1649
|
-
[data-ui
|
|
1632
|
+
[data-ui-app-shell][data-primary='main'] > [data-part-banner],
|
|
1633
|
+
[data-ui-app-shell][data-canvas='panel'][data-primary='nav'] > [data-part-banner] {
|
|
1650
1634
|
grid-column: 2 / 3;
|
|
1651
1635
|
}
|
|
1652
1636
|
|
|
@@ -1667,7 +1651,7 @@
|
|
|
1667
1651
|
* puts the veil over the bar as well: the reader then has no fixed point on
|
|
1668
1652
|
* the screen at all.
|
|
1669
1653
|
*/
|
|
1670
|
-
[data-ui
|
|
1654
|
+
[data-ui-app-shell][data-nav-mode='overlay'] > [data-part-nav] {
|
|
1671
1655
|
/* A layer has an edge on every plane, so its rows stand one inset in. The
|
|
1672
1656
|
inset is read by the parts, which take it from here. */
|
|
1673
1657
|
--_nav-inset: var(--_row-inset);
|
|
@@ -1696,14 +1680,14 @@
|
|
|
1696
1680
|
visibility: hidden;
|
|
1697
1681
|
z-index: var(--slotted-z-index-overlay, 1000);
|
|
1698
1682
|
}
|
|
1699
|
-
[data-ui
|
|
1683
|
+
[data-ui-app-shell][data-nav-mode='overlay'][data-open] > [data-part-nav] {
|
|
1700
1684
|
transition:
|
|
1701
1685
|
translate var(--_duration) var(--slotted-easing-enter, cubic-bezier(0.05, 0.7, 0.1, 1)),
|
|
1702
1686
|
visibility var(--_duration) step-start;
|
|
1703
1687
|
translate: 0 0;
|
|
1704
1688
|
visibility: visible;
|
|
1705
1689
|
}
|
|
1706
|
-
[data-ui
|
|
1690
|
+
[data-ui-app-shell][data-nav-mode='overlay'][data-nav-side='end'] > [data-part-nav] {
|
|
1707
1691
|
inset-inline-end: 0;
|
|
1708
1692
|
inset-inline-start: auto;
|
|
1709
1693
|
translate: 100% 0;
|
|
@@ -1721,9 +1705,9 @@
|
|
|
1721
1705
|
* three parts: the marks keep one column, and a consumer's header row that
|
|
1722
1706
|
* writes the same inset stays over them.
|
|
1723
1707
|
*/
|
|
1724
|
-
[data-ui
|
|
1725
|
-
[data-ui
|
|
1726
|
-
[data-ui
|
|
1708
|
+
[data-ui-app-shell][data-canvas='floating'][data-nav-mode='overlay'] > [data-part-nav],
|
|
1709
|
+
[data-ui-app-shell][data-canvas='panel'][data-nav-mode='overlay'] > [data-part-nav],
|
|
1710
|
+
[data-ui-app-shell][data-canvas='inset'][data-nav-mode='overlay'] > [data-part-nav] {
|
|
1727
1711
|
border: var(--_rule-width) solid var(--_rule);
|
|
1728
1712
|
border-radius: var(--_radius);
|
|
1729
1713
|
box-shadow: var(--slotted-shadow-lg);
|
|
@@ -1731,14 +1715,14 @@
|
|
|
1731
1715
|
margin-inline-start: var(--_gutter);
|
|
1732
1716
|
translate: calc(-100% - var(--_gutter)) 0;
|
|
1733
1717
|
}
|
|
1734
|
-
[data-ui
|
|
1735
|
-
> [data-part
|
|
1718
|
+
[data-ui-app-shell]:not([data-canvas='flush'])[data-nav-mode='overlay'][data-nav-side='end']
|
|
1719
|
+
> [data-part-nav] {
|
|
1736
1720
|
margin-inline-end: var(--_gutter);
|
|
1737
1721
|
margin-inline-start: 0;
|
|
1738
1722
|
translate: calc(100% + var(--_gutter)) 0;
|
|
1739
1723
|
}
|
|
1740
|
-
[data-ui
|
|
1741
|
-
> [data-part
|
|
1724
|
+
[data-ui-app-shell]:not([data-canvas='flush'])[data-nav-mode='overlay'][data-open]
|
|
1725
|
+
> [data-part-nav] {
|
|
1742
1726
|
translate: 0 0;
|
|
1743
1727
|
}
|
|
1744
1728
|
|
|
@@ -1750,7 +1734,7 @@
|
|
|
1750
1734
|
* every inline distance. It slides in from the end the navigation is not on,
|
|
1751
1735
|
* which is the end the pane stands at as a column.
|
|
1752
1736
|
*/
|
|
1753
|
-
[data-ui
|
|
1737
|
+
[data-ui-app-shell][data-aside-mode='overlay'] > [data-part-aside] {
|
|
1754
1738
|
background-color: var(
|
|
1755
1739
|
--slotted-app-shell-aside-surface,
|
|
1756
1740
|
var(--slotted-app-shell-canvas, var(--slotted-surface, Canvas))
|
|
@@ -1773,21 +1757,21 @@
|
|
|
1773
1757
|
visibility: hidden;
|
|
1774
1758
|
z-index: var(--slotted-z-index-overlay, 1000);
|
|
1775
1759
|
}
|
|
1776
|
-
[data-ui
|
|
1760
|
+
[data-ui-app-shell][data-aside-mode='overlay'] > [data-part-aside][data-open] {
|
|
1777
1761
|
transition:
|
|
1778
1762
|
translate var(--_duration) var(--slotted-easing-enter, cubic-bezier(0.05, 0.7, 0.1, 1)),
|
|
1779
1763
|
visibility var(--_duration) step-start;
|
|
1780
1764
|
translate: 0 0;
|
|
1781
1765
|
visibility: visible;
|
|
1782
1766
|
}
|
|
1783
|
-
[data-ui
|
|
1767
|
+
[data-ui-app-shell][data-aside-mode='overlay'][data-nav-side='end'] > [data-part-aside] {
|
|
1784
1768
|
inset-inline-end: auto;
|
|
1785
1769
|
inset-inline-start: 0;
|
|
1786
1770
|
translate: -100% 0;
|
|
1787
1771
|
}
|
|
1788
|
-
[data-ui
|
|
1789
|
-
[data-ui
|
|
1790
|
-
[data-ui
|
|
1772
|
+
[data-ui-app-shell][data-canvas='floating'][data-aside-mode='overlay'] > [data-part-aside],
|
|
1773
|
+
[data-ui-app-shell][data-canvas='panel'][data-aside-mode='overlay'] > [data-part-aside],
|
|
1774
|
+
[data-ui-app-shell][data-canvas='inset'][data-aside-mode='overlay'] > [data-part-aside] {
|
|
1791
1775
|
border: var(--_rule-width) solid var(--_rule);
|
|
1792
1776
|
border-radius: var(--_radius);
|
|
1793
1777
|
box-shadow: var(--slotted-shadow-lg);
|
|
@@ -1795,14 +1779,14 @@
|
|
|
1795
1779
|
margin-inline-end: var(--_gutter);
|
|
1796
1780
|
translate: calc(100% + var(--_gutter)) 0;
|
|
1797
1781
|
}
|
|
1798
|
-
[data-ui
|
|
1799
|
-
> [data-part
|
|
1782
|
+
[data-ui-app-shell]:not([data-canvas='flush'])[data-aside-mode='overlay'][data-nav-side='end']
|
|
1783
|
+
> [data-part-aside] {
|
|
1800
1784
|
margin-inline-end: 0;
|
|
1801
1785
|
margin-inline-start: var(--_gutter);
|
|
1802
1786
|
translate: calc(-100% - var(--_gutter)) 0;
|
|
1803
1787
|
}
|
|
1804
|
-
[data-ui
|
|
1805
|
-
> [data-part
|
|
1788
|
+
[data-ui-app-shell]:not([data-canvas='flush'])[data-aside-mode='overlay']
|
|
1789
|
+
> [data-part-aside][data-open] {
|
|
1806
1790
|
translate: 0 0;
|
|
1807
1791
|
}
|
|
1808
1792
|
|
|
@@ -1825,12 +1809,12 @@
|
|
|
1825
1809
|
* rather than of mode, so the width answers it and the width alone.
|
|
1826
1810
|
*/
|
|
1827
1811
|
@container slotted-app-shell (inline-size >= 600px) {
|
|
1828
|
-
[data-ui
|
|
1812
|
+
[data-ui-app-shell]:not([data-nav-mode]) > [data-part-nav] {
|
|
1829
1813
|
inline-size: calc(
|
|
1830
1814
|
var(--_rail-size) + 2 * (var(--_nav-inset) + var(--_row-ring-inset)) + var(--_nav-edges)
|
|
1831
1815
|
);
|
|
1832
1816
|
}
|
|
1833
|
-
[data-ui
|
|
1817
|
+
[data-ui-app-shell]:not([data-nav-mode])[data-open] > [data-part-nav] {
|
|
1834
1818
|
inline-size: var(--_nav-size);
|
|
1835
1819
|
}
|
|
1836
1820
|
|
|
@@ -1842,63 +1826,60 @@
|
|
|
1842
1826
|
the unit resolves against the shell's own inline size from inside this
|
|
1843
1827
|
`auto` track, where a percentage would resolve against the track the
|
|
1844
1828
|
pane itself sizes. */
|
|
1845
|
-
[data-ui
|
|
1829
|
+
[data-ui-app-shell]:not([data-aside-mode='overlay']) > [data-part-aside] {
|
|
1846
1830
|
grid-area: 2 / 3 / 3 / 4;
|
|
1847
1831
|
inline-size: var(--slotted-app-shell-aside-extent, var(--_aside-size));
|
|
1848
1832
|
position: relative;
|
|
1849
1833
|
}
|
|
1850
|
-
[data-ui
|
|
1851
|
-
> [data-part
|
|
1852
|
-
> [data-part
|
|
1834
|
+
[data-ui-app-shell]:not([data-aside-mode='overlay'])
|
|
1835
|
+
> [data-part-aside]
|
|
1836
|
+
> [data-part-aside-resizer]:not([hidden]) {
|
|
1853
1837
|
display: block;
|
|
1854
1838
|
}
|
|
1855
|
-
[data-ui
|
|
1856
|
-
> [data-part='aside'] {
|
|
1839
|
+
[data-ui-app-shell]:not([data-aside-mode='overlay'])[data-nav-side='end'] > [data-part-aside] {
|
|
1857
1840
|
grid-area: 2 / 1 / 3 / 2;
|
|
1858
1841
|
}
|
|
1859
1842
|
/* Under `primary="main"` the pane, as a column, stands beside the card
|
|
1860
1843
|
that holds the banner and the content, so it spans the banner's row. */
|
|
1861
|
-
[data-ui
|
|
1862
|
-
|
|
1863
|
-
|
|
1864
|
-
> [data-part='aside'] {
|
|
1844
|
+
[data-ui-app-shell]:not([data-aside-mode='overlay'])[data-primary='main'] > [data-part-aside],
|
|
1845
|
+
[data-ui-app-shell]:not([data-aside-mode='overlay'])[data-canvas='panel'][data-primary='nav']
|
|
1846
|
+
> [data-part-aside] {
|
|
1865
1847
|
grid-row: 1 / 3;
|
|
1866
1848
|
}
|
|
1867
|
-
[data-ui
|
|
1849
|
+
[data-ui-app-shell]:not([data-aside-mode='overlay']):is(
|
|
1868
1850
|
[data-canvas='floating'],
|
|
1869
1851
|
[data-canvas='inset']
|
|
1870
1852
|
)[data-nav-side='end']
|
|
1871
|
-
> [data-part
|
|
1853
|
+
> [data-part-aside] {
|
|
1872
1854
|
margin-inline: var(--_gutter) 0;
|
|
1873
1855
|
}
|
|
1874
|
-
[data-ui
|
|
1875
|
-
> [data-part='aside'] {
|
|
1856
|
+
[data-ui-app-shell]:not([data-aside-mode='overlay'])[data-canvas='flush'] > [data-part-aside] {
|
|
1876
1857
|
border-block-start: none;
|
|
1877
1858
|
}
|
|
1878
|
-
[data-ui
|
|
1859
|
+
[data-ui-app-shell]:not([data-aside-mode='overlay']):is(
|
|
1879
1860
|
[data-canvas='flush'],
|
|
1880
1861
|
[data-canvas='panel']
|
|
1881
1862
|
)
|
|
1882
|
-
> [data-part
|
|
1863
|
+
> [data-part-aside] {
|
|
1883
1864
|
border-inline-start: var(--_seam);
|
|
1884
1865
|
}
|
|
1885
|
-
[data-ui
|
|
1866
|
+
[data-ui-app-shell]:not([data-aside-mode='overlay']):is(
|
|
1886
1867
|
[data-canvas='flush'],
|
|
1887
1868
|
[data-canvas='panel']
|
|
1888
1869
|
)[data-nav-side='end']
|
|
1889
|
-
> [data-part
|
|
1870
|
+
> [data-part-aside] {
|
|
1890
1871
|
border-inline-end: var(--_seam);
|
|
1891
1872
|
border-inline-start: none;
|
|
1892
1873
|
}
|
|
1893
1874
|
}
|
|
1894
1875
|
|
|
1895
1876
|
@container slotted-app-shell (inline-size < 600px) {
|
|
1896
|
-
[data-ui
|
|
1877
|
+
[data-ui-app-shell]:not([data-nav-mode]) > [data-part-nav] {
|
|
1897
1878
|
display: none;
|
|
1898
1879
|
}
|
|
1899
1880
|
/* The content flush to the frame, as it is once the mode says overlay. */
|
|
1900
|
-
[data-ui
|
|
1901
|
-
[data-ui
|
|
1881
|
+
[data-ui-app-shell]:not([data-nav-mode])[data-canvas='floating'] > [data-part-main],
|
|
1882
|
+
[data-ui-app-shell]:not([data-nav-mode])[data-canvas='inset'] > [data-part-main] {
|
|
1902
1883
|
border-block-end: 0;
|
|
1903
1884
|
border-inline: 0;
|
|
1904
1885
|
border-radius: 0;
|
|
@@ -1908,33 +1889,33 @@
|
|
|
1908
1889
|
/* The card of `primary="main"` goes with the gutter. The root cannot
|
|
1909
1890
|
query its own width, but its pseudo-element is a child of the query
|
|
1910
1891
|
container and reads it. */
|
|
1911
|
-
[data-ui
|
|
1892
|
+
[data-ui-app-shell]:not([data-nav-mode]):is(
|
|
1912
1893
|
[data-canvas='floating'],
|
|
1913
1894
|
[data-canvas='inset']
|
|
1914
1895
|
)[data-primary='main']::before {
|
|
1915
1896
|
content: none;
|
|
1916
1897
|
}
|
|
1917
|
-
[data-ui
|
|
1898
|
+
[data-ui-app-shell]:not([data-nav-mode])[data-primary='main'] > [data-part-banner] {
|
|
1918
1899
|
margin: 0;
|
|
1919
1900
|
padding-inline: var(--_edge);
|
|
1920
1901
|
}
|
|
1921
|
-
[data-ui
|
|
1902
|
+
[data-ui-app-shell]:not([data-nav-mode])[data-canvas='panel'] > [data-part-main] {
|
|
1922
1903
|
border-block-start: var(--_rule-width) solid var(--_rule);
|
|
1923
1904
|
border-radius: 0;
|
|
1924
1905
|
}
|
|
1925
|
-
[data-ui
|
|
1926
|
-
[data-ui
|
|
1906
|
+
[data-ui-app-shell]:not([data-nav-mode])[data-canvas='floating'] > [data-part-progress],
|
|
1907
|
+
[data-ui-app-shell]:not([data-nav-mode])[data-canvas='inset'] > [data-part-progress] {
|
|
1927
1908
|
border-radius: 0;
|
|
1928
1909
|
margin: 0;
|
|
1929
1910
|
}
|
|
1930
|
-
[data-ui
|
|
1911
|
+
[data-ui-app-shell]:not([data-nav-mode])[data-canvas='panel'] > [data-part-progress] {
|
|
1931
1912
|
border-radius: 0;
|
|
1932
1913
|
}
|
|
1933
|
-
[data-ui
|
|
1914
|
+
[data-ui-app-shell]:not([data-aside-mode='overlay']):is(
|
|
1934
1915
|
[data-canvas='floating'],
|
|
1935
1916
|
[data-canvas='inset']
|
|
1936
1917
|
)
|
|
1937
|
-
> [data-part
|
|
1918
|
+
> [data-part-aside] {
|
|
1938
1919
|
margin-inline: var(--_gutter);
|
|
1939
1920
|
}
|
|
1940
1921
|
/* A row under the content takes at most half the shell, so the content
|
|
@@ -1942,14 +1923,14 @@
|
|
|
1942
1923
|
left the content a line high, with the pane scrolling and the content
|
|
1943
1924
|
gone. Only where the shell owns its height; under `document` the page
|
|
1944
1925
|
scrolls and the row takes its content's height. */
|
|
1945
|
-
[data-ui
|
|
1946
|
-
> [data-part
|
|
1926
|
+
[data-ui-app-shell][data-scroll='content']:not([data-aside-mode='overlay'])
|
|
1927
|
+
> [data-part-aside] {
|
|
1947
1928
|
max-block-size: 50cqb;
|
|
1948
1929
|
}
|
|
1949
1930
|
/* The pane as a row under the content, in the inline mode alone: a pane
|
|
1950
1931
|
whose mode is not yet decided draws nothing at a narrow width, the safe
|
|
1951
1932
|
half of the answer, for the reason the navigation draws nothing. */
|
|
1952
|
-
[data-ui
|
|
1933
|
+
[data-ui-app-shell]:not([data-aside-mode]) > [data-part-aside] {
|
|
1953
1934
|
display: none;
|
|
1954
1935
|
}
|
|
1955
1936
|
}
|
|
@@ -1957,7 +1938,7 @@
|
|
|
1957
1938
|
/* ── The veil ────────────────────────────────────────────────────────── */
|
|
1958
1939
|
|
|
1959
1940
|
/** It stops where the panel stops, so the bar above stays a fixed point. */
|
|
1960
|
-
[data-ui
|
|
1941
|
+
[data-ui-app-shell] > [data-part-scrim] {
|
|
1961
1942
|
background-color: var(--_scrim);
|
|
1962
1943
|
grid-area: 2 / 1 / -1 / -1;
|
|
1963
1944
|
inset: 0;
|
|
@@ -1966,8 +1947,8 @@
|
|
|
1966
1947
|
transition: opacity var(--_duration) var(--_easing);
|
|
1967
1948
|
z-index: calc(var(--slotted-z-index-overlay, 1000) - 1);
|
|
1968
1949
|
}
|
|
1969
|
-
[data-ui
|
|
1970
|
-
[data-ui
|
|
1950
|
+
[data-ui-app-shell] > [data-part-scrim][data-status='entering'],
|
|
1951
|
+
[data-ui-app-shell] > [data-part-scrim][data-status='exiting'] {
|
|
1971
1952
|
opacity: 0;
|
|
1972
1953
|
}
|
|
1973
1954
|
}
|