@slotted/styles 0.1.0-beta.0 → 0.1.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/accordion/accordion.css +10 -10
- package/src/action-bar/action-bar.css +31 -32
- package/src/action-sheet/action-sheet.css +36 -36
- package/src/alert/alert.css +43 -35
- package/src/alert/alert.tokens.json +5 -0
- package/src/app-shell/app-shell.css +356 -301
- package/src/aspect-ratio/aspect-ratio.css +9 -9
- package/src/attachment/attachment.css +91 -99
- package/src/avatar/avatar.css +71 -41
- package/src/avatar/avatar.tokens.json +7 -0
- package/src/avatar-group/avatar-group.css +21 -22
- package/src/badge/badge.css +45 -37
- package/src/badge/badge.tokens.json +5 -0
- package/src/breadcrumb/breadcrumb.css +37 -37
- package/src/button/button.css +139 -64
- package/src/button/button.tokens.json +10 -0
- package/src/button-group/button-group.css +76 -72
- package/src/button-group/button-group.tokens.json +2 -0
- package/src/calendar/calendar.css +93 -103
- package/src/card/card.css +54 -61
- package/src/carousel/carousel.css +150 -161
- package/src/cascader/cascader.css +152 -153
- package/src/cascader/cascader.tokens.json +1 -0
- package/src/chart/chart.css +242 -239
- package/src/chart/chart.tokens.json +1 -0
- package/src/checkbox/checkbox.css +119 -124
- package/src/checkbox-group/checkbox-group.css +7 -7
- package/src/code-block/code-block.css +81 -85
- package/src/collapsible/collapsible.css +69 -76
- package/src/color-picker/color-picker.css +83 -91
- package/src/column-manager/column-manager.css +106 -114
- package/src/combobox/combobox.css +132 -107
- package/src/combobox/combobox.tokens.json +1 -0
- package/src/command-palette/command-palette.css +84 -90
- package/src/container/container.css +24 -24
- package/src/context-menu/context-menu.css +8 -8
- package/src/currency-field/currency-field.css +210 -88
- package/src/currency-field/currency-field.tokens.json +13 -0
- package/src/dashboard-grid/dashboard-grid.css +148 -116
- package/src/data-grid/data-grid.css +504 -469
- package/src/data-grid/data-grid.tokens.json +2 -0
- package/src/data-list/data-list.css +81 -70
- package/src/data-list/data-list.tokens.json +2 -1
- package/src/date-field/date-field.css +55 -52
- package/src/date-field/date-field.tokens.json +1 -0
- package/src/date-picker/date-picker.css +40 -42
- package/src/date-range-picker/date-range-picker.css +114 -118
- package/src/datetime-field/datetime-field.css +78 -80
- package/src/datetime-field/datetime-field.tokens.json +1 -0
- package/src/datetime-picker/datetime-picker.css +61 -63
- package/src/datetime-range-picker/datetime-range-picker.css +149 -156
- package/src/description-list/description-list.css +61 -64
- package/src/detail-panel/detail-panel.css +70 -70
- package/src/dialog/dialog.css +334 -153
- package/src/dialog/dialog.tokens.json +5 -0
- package/src/divider/divider.css +18 -18
- package/src/drawer/drawer.css +186 -209
- package/src/entity-picker/entity-picker.css +238 -241
- package/src/entity-picker/entity-picker.tokens.json +1 -0
- package/src/event-calendar/event-calendar.css +343 -385
- package/src/field/field.css +74 -78
- package/src/field-group/field-group.css +22 -25
- package/src/filter-bar/filter-bar.css +193 -209
- package/src/form/form.css +34 -24
- package/src/form/form.tokens.json +1 -0
- package/src/fullscreen/fullscreen.css +24 -25
- package/src/grid/grid.css +28 -28
- package/src/highlight/highlight.css +6 -6
- package/src/hover-card/hover-card.css +6 -6
- package/src/icon/icon.css +19 -15
- package/src/icon/icon.tokens.json +1 -0
- package/src/image/image.css +39 -39
- package/src/import-export-center/import-export-center.css +135 -156
- package/src/inline/inline.css +27 -27
- package/src/inline-message/inline-message.css +52 -28
- package/src/inline-message/inline-message.tokens.json +4 -0
- package/src/kbd/kbd.css +30 -26
- package/src/link/link.css +15 -15
- package/src/list/list.css +44 -17
- package/src/list/list.tokens.json +4 -0
- package/src/list-item/list-item.css +80 -66
- package/src/list-item/list-item.tokens.json +7 -0
- package/src/listbox/listbox.css +56 -59
- package/src/loading-overlay/loading-overlay.css +75 -92
- package/src/markdown/markdown.css +17 -17
- package/src/menu/menu.css +83 -63
- package/src/menubar/menubar.css +13 -13
- package/src/message/message.css +182 -202
- package/src/message/message.tokens.json +5 -0
- package/src/message-scroller/message-scroller.css +41 -42
- package/src/multi-select/multi-select.css +152 -145
- package/src/multi-select/multi-select.tokens.json +1 -0
- package/src/navigation-menu/navigation-menu.css +167 -188
- package/src/notification-center/notification-center.css +140 -148
- package/src/notification-center/notification-center.tokens.json +3 -0
- package/src/number-field/number-field.css +84 -83
- package/src/number-field/number-field.tokens.json +1 -0
- package/src/otp-input/otp-input.css +67 -57
- package/src/otp-input/otp-input.tokens.json +1 -0
- package/src/page/page.css +23 -23
- package/src/page-header/page-header.css +268 -281
- package/src/page-header/page-header.tokens.json +1 -0
- package/src/pagination/pagination.css +68 -72
- package/src/popover/popover.css +40 -49
- package/src/progress-indicator/progress-indicator.css +177 -120
- package/src/progress-indicator/progress-indicator.tokens.json +1 -1
- package/src/prompt-composer/prompt-composer.css +221 -102
- package/src/prompt-composer/prompt-composer.tokens.json +15 -0
- package/src/prose/prose.css +71 -75
- package/src/radio-group/radio-group.css +98 -103
- package/src/rating/rating.css +136 -132
- package/src/rating/rating.tokens.json +1 -0
- package/src/result-state/result-state.css +74 -77
- package/src/runtime-properties.mjs +2 -0
- package/src/saved-views/saved-views.css +41 -47
- package/src/scroll-area/scroll-area.css +39 -32
- package/src/section/section.css +161 -41
- package/src/section/section.tokens.json +7 -2
- package/src/segmented-control/segmented-control.css +254 -97
- package/src/segmented-control/segmented-control.tokens.json +15 -11
- package/src/select/select.css +118 -117
- package/src/select/select.tokens.json +1 -0
- package/src/side-navigation/side-navigation.css +179 -182
- package/src/side-navigation/side-navigation.tokens.json +1 -0
- package/src/skeleton/skeleton.css +47 -48
- package/src/slider/slider.css +86 -88
- package/src/sparkline/sparkline.css +62 -40
- package/src/sparkline/sparkline.tokens.json +2 -0
- package/src/spinner/spinner.css +39 -182
- package/src/spinner/spinner.tokens.json +0 -2
- package/src/split-button/split-button.css +30 -31
- package/src/split-button/split-button.tokens.json +1 -0
- package/src/splitter/splitter.css +35 -35
- package/src/stack/stack.css +24 -24
- package/src/stat-card/stat-card.css +341 -224
- package/src/stat-card/stat-card.tokens.json +3 -0
- package/src/status-indicator/status-indicator.css +28 -28
- package/src/stepper/stepper.css +58 -62
- package/src/switch/switch.css +86 -92
- package/src/table/table.css +310 -165
- package/src/table/table.tokens.json +6 -0
- package/src/table-of-contents/table-of-contents.css +51 -54
- package/src/tabs/tabs.css +330 -302
- package/src/tabs/tabs.tokens.json +8 -5
- package/src/tag/tag.css +79 -71
- package/src/tag/tag.tokens.json +9 -0
- package/src/tags-input/tags-input.css +145 -82
- package/src/tags-input/tags-input.tokens.json +7 -1
- package/src/text-field/text-field.css +132 -136
- package/src/text-field/text-field.tokens.json +1 -0
- package/src/textarea/textarea.css +31 -28
- package/src/textarea/textarea.tokens.json +1 -0
- package/src/time-field/time-field.css +72 -69
- package/src/time-field/time-field.tokens.json +1 -0
- package/src/time-picker/time-picker.css +56 -58
- package/src/time-range-picker/time-range-picker.css +126 -133
- package/src/timeline/timeline.css +254 -266
- package/src/timeline/timeline.tokens.json +5 -0
- package/src/toast/toast.css +89 -90
- package/src/toast/toast.tokens.json +5 -0
- package/src/toggle/toggle.css +62 -25
- package/src/toggle/toggle.tokens.json +8 -0
- package/src/toggle-group/toggle-group.css +106 -60
- package/src/toggle-group/toggle-group.tokens.json +10 -0
- package/src/toolbar/toolbar.css +30 -35
- package/src/tooltip/tooltip.css +26 -26
- package/src/top-navigation/top-navigation.css +243 -259
- package/src/tour/tour.css +51 -60
- package/src/transfer/transfer.css +160 -164
- package/src/tree/tree.css +103 -111
- package/src/typography/typography.css +40 -36
- package/src/typography/typography.tokens.json +1 -0
- package/src/upload/upload.css +224 -224
- package/src/visually-hidden/visually-hidden.css +1 -1
- package/src/wizard/wizard.css +185 -197
|
@@ -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
|
|
@@ -82,6 +82,16 @@
|
|
|
82
82
|
/** The box a row's mark occupies: a control's own size, so the two agree. */
|
|
83
83
|
--_row-mark: var(--slotted-app-shell-row-mark-size, var(--slotted-control-height-md, 34px));
|
|
84
84
|
--_row-gap: var(--slotted-control-gap-md, 8px);
|
|
85
|
+
/**
|
|
86
|
+
* How far a focus ring drawn outside a control reaches past its box: the
|
|
87
|
+
* ring's width and its offset, 4px with the default theme. The three parts
|
|
88
|
+
* of the navigation column pad their inline sides by it, because the body
|
|
89
|
+
* scrolls and clips at its padding box, and a full-width control's ring
|
|
90
|
+
* stood outside that box on both sides.
|
|
91
|
+
*/
|
|
92
|
+
--_row-ring-inset: calc(
|
|
93
|
+
var(--slotted-focus-ring-width, 2px) + var(--slotted-focus-ring-offset, 2px)
|
|
94
|
+
);
|
|
85
95
|
|
|
86
96
|
/**
|
|
87
97
|
* A row's type. A list of destinations is text and not a control, so it
|
|
@@ -271,16 +281,16 @@
|
|
|
271
281
|
position: relative;
|
|
272
282
|
}
|
|
273
283
|
|
|
274
|
-
[data-ui
|
|
284
|
+
[data-ui-app-shell][data-nav-size='sm'] {
|
|
275
285
|
--_nav-size: var(--slotted-app-shell-nav-size-sm, 13rem);
|
|
276
286
|
}
|
|
277
|
-
[data-ui
|
|
287
|
+
[data-ui-app-shell][data-nav-size='lg'] {
|
|
278
288
|
--_nav-size: var(--slotted-app-shell-nav-size-lg, 18rem);
|
|
279
289
|
}
|
|
280
|
-
[data-ui
|
|
290
|
+
[data-ui-app-shell][data-aside-size='sm'] {
|
|
281
291
|
--_aside-size: var(--slotted-app-shell-aside-size-sm, 16rem);
|
|
282
292
|
}
|
|
283
|
-
[data-ui
|
|
293
|
+
[data-ui-app-shell][data-aside-size='lg'] {
|
|
284
294
|
--_aside-size: var(--slotted-app-shell-aside-size-lg, 26rem);
|
|
285
295
|
}
|
|
286
296
|
|
|
@@ -292,7 +302,7 @@
|
|
|
292
302
|
* toolbar makes `100vh` taller than the space there is, and `100dvh` is the
|
|
293
303
|
* space there is.
|
|
294
304
|
*/
|
|
295
|
-
[data-ui
|
|
305
|
+
[data-ui-app-shell][data-scroll='content'] {
|
|
296
306
|
block-size: 100%;
|
|
297
307
|
/**
|
|
298
308
|
* Both axes, under `content` alone: the shell's height is the space it was
|
|
@@ -311,14 +321,14 @@
|
|
|
311
321
|
* focused: the reader who does not need it never meets it, and the reader
|
|
312
322
|
* who does finds it before the chrome.
|
|
313
323
|
*/
|
|
314
|
-
[data-ui
|
|
324
|
+
[data-ui-app-shell] > [data-part-skip] {
|
|
315
325
|
inset-block-start: 0;
|
|
316
326
|
inset-inline-start: 0;
|
|
317
327
|
position: absolute;
|
|
318
328
|
z-index: var(--slotted-z-index-popover, 1100);
|
|
319
329
|
}
|
|
320
330
|
|
|
321
|
-
[data-ui
|
|
331
|
+
[data-ui-app-shell] > [data-part-skip] > a {
|
|
322
332
|
background-color: var(--_canvas);
|
|
323
333
|
border: var(--_rule-width) solid var(--_rule);
|
|
324
334
|
border-radius: var(--slotted-control-radius, 4px);
|
|
@@ -338,7 +348,7 @@
|
|
|
338
348
|
white-space: nowrap;
|
|
339
349
|
}
|
|
340
350
|
|
|
341
|
-
[data-ui
|
|
351
|
+
[data-ui-app-shell] > [data-part-skip] > a:focus-visible {
|
|
342
352
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
343
353
|
outline-offset: var(--slotted-focus-ring-offset, 2px);
|
|
344
354
|
translate: 0 0;
|
|
@@ -359,7 +369,7 @@
|
|
|
359
369
|
* in the family reads the query — the bar carries an application's own search
|
|
360
370
|
* and its own account, and those are the things that shed a label first.
|
|
361
371
|
*/
|
|
362
|
-
[data-ui
|
|
372
|
+
[data-ui-app-shell] > [data-part-banner] {
|
|
363
373
|
align-items: center;
|
|
364
374
|
background-color: var(--slotted-app-shell-banner-surface, transparent);
|
|
365
375
|
color: var(
|
|
@@ -376,7 +386,7 @@
|
|
|
376
386
|
padding-inline: var(--_edge);
|
|
377
387
|
}
|
|
378
388
|
|
|
379
|
-
[data-ui
|
|
389
|
+
[data-ui-app-shell] [data-part-brand] {
|
|
380
390
|
align-items: center;
|
|
381
391
|
display: flex;
|
|
382
392
|
flex: 0 1 auto;
|
|
@@ -395,13 +405,13 @@
|
|
|
395
405
|
* shortens instead; the control is exempt, because a control that shrinks
|
|
396
406
|
* below its target is a defect of a different kind.
|
|
397
407
|
*/
|
|
398
|
-
[data-ui
|
|
408
|
+
[data-ui-app-shell] [data-part-brand] > *:not([data-part-nav-toggle]) {
|
|
399
409
|
min-inline-size: 0;
|
|
400
410
|
overflow: var(--slotted-app-shell-brand-overflow, hidden);
|
|
401
411
|
text-overflow: ellipsis;
|
|
402
412
|
white-space: var(--slotted-app-shell-brand-wrap, nowrap);
|
|
403
413
|
}
|
|
404
|
-
[data-ui
|
|
414
|
+
[data-ui-app-shell] > [data-part-banner] > [data-part-actions] {
|
|
405
415
|
align-items: center;
|
|
406
416
|
display: flex;
|
|
407
417
|
flex: 0 1 auto;
|
|
@@ -416,7 +426,7 @@
|
|
|
416
426
|
* defect of a different kind from a bar that has run out of room. What runs
|
|
417
427
|
* out of room is the middle, which is what `centre` is for.
|
|
418
428
|
*/
|
|
419
|
-
[data-ui
|
|
429
|
+
[data-ui-app-shell] > [data-part-banner] > [data-part-actions] > * {
|
|
420
430
|
flex-shrink: 0;
|
|
421
431
|
}
|
|
422
432
|
|
|
@@ -428,7 +438,7 @@
|
|
|
428
438
|
* is the consumer's; that it may be narrower than what it holds is the
|
|
429
439
|
* shell's, for the reason `actions` carries `min-inline-size: 0`.
|
|
430
440
|
*/
|
|
431
|
-
[data-ui
|
|
441
|
+
[data-ui-app-shell] > [data-part-banner] > [data-part-centre] {
|
|
432
442
|
align-items: center;
|
|
433
443
|
display: flex;
|
|
434
444
|
flex: 1 1 auto;
|
|
@@ -442,7 +452,7 @@
|
|
|
442
452
|
* destination shows at that width — a mark alone, a mark and a word — is
|
|
443
453
|
* `side-navigation`'s decision to take against the room it has.
|
|
444
454
|
*/
|
|
445
|
-
[data-ui
|
|
455
|
+
[data-ui-app-shell] > [data-part-nav] {
|
|
446
456
|
background-color: var(--slotted-app-shell-nav-surface, transparent);
|
|
447
457
|
box-sizing: border-box;
|
|
448
458
|
color: var(
|
|
@@ -460,7 +470,18 @@
|
|
|
460
470
|
* for fifty pixels stood at whatever the longest destination measured.
|
|
461
471
|
*/
|
|
462
472
|
min-inline-size: 0;
|
|
463
|
-
|
|
473
|
+
/**
|
|
474
|
+
* The inline axis clips, which the width transition between open and rail
|
|
475
|
+
* needs. The block axis scrolls: a region holding one column taller than
|
|
476
|
+
* itself instead of `nav-header`, `nav-body` and `nav-footer` keeps its
|
|
477
|
+
* foot reachable. With the three parts the body scrolls and the region
|
|
478
|
+
* never overflows.
|
|
479
|
+
*/
|
|
480
|
+
overflow-x: hidden;
|
|
481
|
+
overflow-y: auto;
|
|
482
|
+
overflow-inline: hidden;
|
|
483
|
+
overflow-block: auto;
|
|
484
|
+
overscroll-behavior: contain;
|
|
464
485
|
transition:
|
|
465
486
|
inline-size var(--_duration) var(--_easing),
|
|
466
487
|
visibility var(--_duration) step-start;
|
|
@@ -476,25 +497,43 @@
|
|
|
476
497
|
* two-line block its own air; without it both were crushed against the group
|
|
477
498
|
* heading below and the frame's footer beneath.
|
|
478
499
|
*/
|
|
479
|
-
[data-ui
|
|
480
|
-
[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] {
|
|
481
502
|
align-items: center;
|
|
482
503
|
display: flex;
|
|
483
504
|
flex: 0 0 auto;
|
|
484
505
|
gap: var(--_row-gap);
|
|
485
506
|
min-block-size: var(--_rail-size);
|
|
486
507
|
min-inline-size: 0;
|
|
508
|
+
/**
|
|
509
|
+
* The gutter the body reserves, reserved here too. `scrollbar-gutter`
|
|
510
|
+
* applies to a scroll container only, and `hidden` is the overflow that
|
|
511
|
+
* makes one without a bar of its own: with classic scrollbars the body's
|
|
512
|
+
* content box ended one bar width (10px in Chrome) before the head's and
|
|
513
|
+
* the foot's. Nothing is clipped that was drawn before: the ring inset
|
|
514
|
+
* keeps a control's focus ring inside the padding box. The bar's width is
|
|
515
|
+
* the body's, or the gutter is the platform's full bar (15px in Chrome).
|
|
516
|
+
*/
|
|
517
|
+
overflow: hidden;
|
|
487
518
|
padding-block: var(--_row-inset);
|
|
519
|
+
scrollbar-gutter: stable;
|
|
520
|
+
scrollbar-width: thin;
|
|
488
521
|
}
|
|
489
522
|
/**
|
|
490
523
|
* The inset is the rows', not the region's: on the parts, a seam drawn by
|
|
491
524
|
* one of them — the rule over the foot — still runs the column's full width,
|
|
492
525
|
* and a strip of the rail's own beside the column needs none.
|
|
493
526
|
*/
|
|
494
|
-
[data-ui
|
|
495
|
-
> [data-part
|
|
496
|
-
> :is([data-part
|
|
497
|
-
|
|
527
|
+
[data-ui-app-shell]
|
|
528
|
+
> [data-part-nav]
|
|
529
|
+
> :is([data-part-nav-header], [data-part-nav-body], [data-part-nav-footer]) {
|
|
530
|
+
/**
|
|
531
|
+
* Published where it pads, beside the row geometry the root publishes:
|
|
532
|
+
* `side-navigation` reads it to keep its rows' box on the edge it had,
|
|
533
|
+
* and a row it reaches outside these parts reads nothing.
|
|
534
|
+
*/
|
|
535
|
+
--slotted-app-shell-row-ring-inset: var(--_row-ring-inset);
|
|
536
|
+
padding-inline: calc(var(--_nav-inset) + var(--_row-ring-inset));
|
|
498
537
|
}
|
|
499
538
|
/**
|
|
500
539
|
* The body scrolls the way `scroll-area` scrolls, and for the reasons written
|
|
@@ -511,7 +550,7 @@
|
|
|
511
550
|
* between open and rail, the rows stand wider than the body, and an `auto`
|
|
512
551
|
* inline axis drew a horizontal bar for the length of the transition.
|
|
513
552
|
*/
|
|
514
|
-
[data-ui
|
|
553
|
+
[data-ui-app-shell] > [data-part-nav] > [data-part-nav-body] {
|
|
515
554
|
align-items: stretch;
|
|
516
555
|
display: flex;
|
|
517
556
|
flex: 1 1 auto;
|
|
@@ -529,7 +568,7 @@
|
|
|
529
568
|
scrollbar-width: thin;
|
|
530
569
|
}
|
|
531
570
|
|
|
532
|
-
[data-ui
|
|
571
|
+
[data-ui-app-shell] > [data-part-main] {
|
|
533
572
|
background-color: var(
|
|
534
573
|
--slotted-app-shell-main-surface,
|
|
535
574
|
var(--slotted-app-shell-canvas, var(--slotted-surface, Canvas))
|
|
@@ -549,7 +588,7 @@
|
|
|
549
588
|
min-block-size: 0;
|
|
550
589
|
min-inline-size: 0;
|
|
551
590
|
}
|
|
552
|
-
[data-ui
|
|
591
|
+
[data-ui-app-shell][data-scroll='content'] > [data-part-main] {
|
|
553
592
|
overflow: auto;
|
|
554
593
|
}
|
|
555
594
|
|
|
@@ -566,7 +605,7 @@
|
|
|
566
605
|
* Strict containment keeps the travelling bar's per-frame layout inside
|
|
567
606
|
* this box, and its paint inside the corners.
|
|
568
607
|
*/
|
|
569
|
-
[data-ui
|
|
608
|
+
[data-ui-app-shell] > [data-part-progress] {
|
|
570
609
|
contain: strict;
|
|
571
610
|
grid-area: 2 / 2 / 3 / 3;
|
|
572
611
|
inset-block-start: calc(-1 * var(--_progress-lift, 0px));
|
|
@@ -582,15 +621,15 @@
|
|
|
582
621
|
* with it; the bar holds the top of the viewport once the banner, which is
|
|
583
622
|
* not sticky there, has gone.
|
|
584
623
|
*/
|
|
585
|
-
[data-ui
|
|
624
|
+
[data-ui-app-shell][data-scroll='document'] > [data-part-progress] {
|
|
586
625
|
--slotted-progress-indicator-position: sticky;
|
|
587
626
|
}
|
|
588
627
|
|
|
589
628
|
/** A skip link's destination takes focus; it draws no ring for a pointer. */
|
|
590
|
-
[data-ui
|
|
629
|
+
[data-ui-app-shell] > [data-part-main]:focus {
|
|
591
630
|
outline: none;
|
|
592
631
|
}
|
|
593
|
-
[data-ui
|
|
632
|
+
[data-ui-app-shell] > [data-part-main]:focus-visible {
|
|
594
633
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
595
634
|
outline-offset: calc(var(--slotted-focus-ring-offset, 2px) * -1);
|
|
596
635
|
}
|
|
@@ -605,7 +644,7 @@
|
|
|
605
644
|
* the thing it shows or nothing — and a region at nought pixels that still
|
|
606
645
|
* lays its children out puts content outside the box that owns it.
|
|
607
646
|
*/
|
|
608
|
-
[data-ui
|
|
647
|
+
[data-ui-app-shell] > [data-part-aside] {
|
|
609
648
|
background-color: var(
|
|
610
649
|
--slotted-app-shell-aside-surface,
|
|
611
650
|
var(--slotted-app-shell-canvas, var(--slotted-surface, Canvas))
|
|
@@ -621,10 +660,10 @@
|
|
|
621
660
|
min-block-size: 0;
|
|
622
661
|
min-inline-size: 0;
|
|
623
662
|
}
|
|
624
|
-
[data-ui
|
|
663
|
+
[data-ui-app-shell][data-scroll='content'] > [data-part-aside] {
|
|
625
664
|
overflow: auto;
|
|
626
665
|
}
|
|
627
|
-
[data-ui
|
|
666
|
+
[data-ui-app-shell]:not([data-aside-mode='overlay']) > [data-part-aside]:not([data-open]) {
|
|
628
667
|
display: none;
|
|
629
668
|
}
|
|
630
669
|
|
|
@@ -635,8 +674,8 @@
|
|
|
635
674
|
* foot holds the actions that close its task. Both stand on the row inset
|
|
636
675
|
* plus the edge, so the title's left edge is the content card's.
|
|
637
676
|
*/
|
|
638
|
-
[data-ui
|
|
639
|
-
[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] {
|
|
640
679
|
align-items: center;
|
|
641
680
|
display: flex;
|
|
642
681
|
flex: 0 0 auto;
|
|
@@ -646,18 +685,18 @@
|
|
|
646
685
|
padding-block: var(--_row-inset);
|
|
647
686
|
padding-inline: calc(var(--_row-inset) + var(--_row-gap));
|
|
648
687
|
}
|
|
649
|
-
[data-ui
|
|
688
|
+
[data-ui-app-shell] > [data-part-aside] > [data-part-aside-header] {
|
|
650
689
|
font-weight: var(--slotted-font-weight-semibold, 600);
|
|
651
690
|
}
|
|
652
691
|
/** The title takes the room and the control keeps its own. */
|
|
653
|
-
[data-ui
|
|
692
|
+
[data-ui-app-shell] > [data-part-aside] > [data-part-aside-header] > :not([data-part]) {
|
|
654
693
|
flex: 1 1 auto;
|
|
655
694
|
min-inline-size: 0;
|
|
656
695
|
overflow: hidden;
|
|
657
696
|
text-overflow: ellipsis;
|
|
658
697
|
white-space: nowrap;
|
|
659
698
|
}
|
|
660
|
-
[data-ui
|
|
699
|
+
[data-ui-app-shell] > [data-part-aside] > [data-part-aside-footer] {
|
|
661
700
|
justify-content: flex-end;
|
|
662
701
|
}
|
|
663
702
|
/**
|
|
@@ -665,7 +704,7 @@
|
|
|
665
704
|
* stands on the inset the head and the foot stand on, so what it holds lines
|
|
666
705
|
* up with the pane's title and no consumer pads it by hand.
|
|
667
706
|
*/
|
|
668
|
-
[data-ui
|
|
707
|
+
[data-ui-app-shell] > [data-part-aside] > [data-part-aside-body] {
|
|
669
708
|
flex: 1 1 auto;
|
|
670
709
|
min-block-size: 0;
|
|
671
710
|
min-inline-size: 0;
|
|
@@ -681,7 +720,7 @@
|
|
|
681
720
|
scrollbar-width: thin;
|
|
682
721
|
}
|
|
683
722
|
/* Content that brings its own inset — a page, a detail panel, a list to the edges. */
|
|
684
|
-
[data-ui
|
|
723
|
+
[data-ui-app-shell] > [data-part-aside] > [data-part-aside-body][data-inset='none'] {
|
|
685
724
|
padding: 0;
|
|
686
725
|
}
|
|
687
726
|
|
|
@@ -699,7 +738,7 @@
|
|
|
699
738
|
* At rest it draws nothing; under the hand, the drag and the keyboard its
|
|
700
739
|
* outer border becomes the line, and the keyboard alone adds the ring.
|
|
701
740
|
*/
|
|
702
|
-
[data-ui
|
|
741
|
+
[data-ui-app-shell] > [data-part-aside] > [data-part-aside-resizer] {
|
|
703
742
|
--_resizer-thickness: var(--slotted-space-6, 1rem);
|
|
704
743
|
--_resizer-reach: var(--slotted-target-min, 24px);
|
|
705
744
|
background: transparent;
|
|
@@ -716,29 +755,27 @@
|
|
|
716
755
|
transition: border-color var(--_duration) var(--_easing);
|
|
717
756
|
z-index: 1;
|
|
718
757
|
}
|
|
719
|
-
[data-ui
|
|
758
|
+
[data-ui-app-shell][data-nav-side='end'] > [data-part-aside] > [data-part-aside-resizer] {
|
|
720
759
|
border-inline-end-width: var(--slotted-border-width-thick, 2px);
|
|
721
760
|
border-inline-start-width: 0;
|
|
722
761
|
inset-inline-end: 0;
|
|
723
762
|
inset-inline-start: auto;
|
|
724
763
|
}
|
|
725
|
-
[data-ui
|
|
764
|
+
[data-ui-app-shell] > [data-part-aside] > [data-part-aside-resizer]::before {
|
|
726
765
|
content: '';
|
|
727
766
|
inset-block: 0;
|
|
728
767
|
inset-inline: calc((var(--_resizer-reach) - var(--_resizer-thickness)) / -2);
|
|
729
768
|
position: absolute;
|
|
730
769
|
}
|
|
731
|
-
[data-ui
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
[data-ui='app-shell'] > [data-part='aside'] > [data-part='aside-resizer']:focus-visible,
|
|
735
|
-
[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] {
|
|
736
773
|
border-color: var(
|
|
737
774
|
--slotted-app-shell-resizer-color,
|
|
738
775
|
var(--slotted-border-strong, ButtonBorder)
|
|
739
776
|
);
|
|
740
777
|
}
|
|
741
|
-
[data-ui
|
|
778
|
+
[data-ui-app-shell] > [data-part-aside] > [data-part-aside-resizer]:focus-visible {
|
|
742
779
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
743
780
|
outline-offset: calc(-1 * var(--slotted-focus-ring-offset, 2px));
|
|
744
781
|
}
|
|
@@ -750,7 +787,7 @@
|
|
|
750
787
|
* where a product does have one — a licence, a status, an environment — and
|
|
751
788
|
* it takes only the height of its own line.
|
|
752
789
|
*/
|
|
753
|
-
[data-ui
|
|
790
|
+
[data-ui-app-shell] > [data-part-footer] {
|
|
754
791
|
align-items: center;
|
|
755
792
|
background-color: var(--slotted-app-shell-footer-surface, transparent);
|
|
756
793
|
color: var(
|
|
@@ -772,7 +809,7 @@
|
|
|
772
809
|
* it. What it is a containing block for is the shell rather than the
|
|
773
810
|
* viewport, because `container-type` contains layout.
|
|
774
811
|
*/
|
|
775
|
-
[data-ui
|
|
812
|
+
[data-ui-app-shell] > [data-part-layer] {
|
|
776
813
|
display: contents;
|
|
777
814
|
}
|
|
778
815
|
|
|
@@ -786,30 +823,44 @@
|
|
|
786
823
|
* finding — the closed strip had twelve pixels to its right, where the
|
|
787
824
|
* content card begins, and nothing to its left.
|
|
788
825
|
*/
|
|
789
|
-
[data-ui
|
|
826
|
+
[data-ui-app-shell][data-canvas='inset'] > [data-part-nav] {
|
|
827
|
+
/* The navigation stands on the sunken frame, which the secondary tone's
|
|
828
|
+
hover is 0.011 lighter than in the light scheme: a row's hover was the
|
|
829
|
+
frame itself. Both steps are recomputed from the ground it stands on. */
|
|
830
|
+
--slotted-tone-secondary-subtle-hover: color-mix(
|
|
831
|
+
in oklab,
|
|
832
|
+
var(--slotted-app-shell-nav-surface, var(--_frame)),
|
|
833
|
+
var(--slotted-text) 4%
|
|
834
|
+
);
|
|
835
|
+
--slotted-tone-secondary-subtle-active: color-mix(
|
|
836
|
+
in oklab,
|
|
837
|
+
var(--slotted-app-shell-nav-surface, var(--_frame)),
|
|
838
|
+
var(--slotted-text) 7%
|
|
839
|
+
);
|
|
840
|
+
|
|
790
841
|
/* Invisible on the transparent default; a product that paints the column
|
|
791
842
|
gets a region with the plane's corners rather than a square block. */
|
|
792
843
|
border-radius: var(--_radius);
|
|
793
844
|
margin-block: var(--_gutter);
|
|
794
845
|
margin-inline-start: var(--_gutter);
|
|
795
846
|
}
|
|
796
|
-
[data-ui
|
|
797
|
-
[data-ui
|
|
798
|
-
[data-ui
|
|
799
|
-
[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] {
|
|
800
851
|
border: var(--_rule-width) solid var(--_rule);
|
|
801
852
|
border-radius: var(--_radius);
|
|
802
853
|
box-shadow: var(--_elevation);
|
|
803
854
|
margin-block: var(--_gutter);
|
|
804
855
|
margin-inline: var(--_gutter);
|
|
805
856
|
}
|
|
806
|
-
[data-ui
|
|
807
|
-
[data-ui
|
|
857
|
+
[data-ui-app-shell][data-canvas='floating'] > [data-part-aside],
|
|
858
|
+
[data-ui-app-shell][data-canvas='inset'] > [data-part-aside] {
|
|
808
859
|
margin-inline-start: 0;
|
|
809
860
|
}
|
|
810
|
-
[data-ui
|
|
811
|
-
[data-ui
|
|
812
|
-
[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] {
|
|
813
864
|
padding-block-start: 0;
|
|
814
865
|
}
|
|
815
866
|
/**
|
|
@@ -820,8 +871,8 @@
|
|
|
820
871
|
* for the seam the gutter used to draw. Keyed on the mode, as every layer
|
|
821
872
|
* rule is; the width answers only for a shell not yet measured, below.
|
|
822
873
|
*/
|
|
823
|
-
[data-ui
|
|
824
|
-
[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] {
|
|
825
876
|
border-block-end: 0;
|
|
826
877
|
border-inline: 0;
|
|
827
878
|
border-radius: 0;
|
|
@@ -836,33 +887,33 @@
|
|
|
836
887
|
* carries the ground. Stated as the same six properties, so a product that
|
|
837
888
|
* repaints one region keeps its choice under either plane.
|
|
838
889
|
*/
|
|
839
|
-
[data-ui
|
|
890
|
+
[data-ui-app-shell][data-canvas='flush'] {
|
|
840
891
|
--_edge: var(--_row-inset);
|
|
841
892
|
--_nav-edges: var(--_seam-width);
|
|
842
893
|
--_nav-inset: var(--_row-inset);
|
|
843
894
|
}
|
|
844
|
-
[data-ui
|
|
895
|
+
[data-ui-app-shell][data-canvas='flush'] > [data-part-banner] {
|
|
845
896
|
background-color: var(
|
|
846
897
|
--slotted-app-shell-banner-surface,
|
|
847
898
|
var(--slotted-app-shell-canvas, var(--slotted-surface, Canvas))
|
|
848
899
|
);
|
|
849
900
|
}
|
|
850
|
-
[data-ui
|
|
901
|
+
[data-ui-app-shell][data-canvas='flush'] > [data-part-nav] {
|
|
851
902
|
background-color: var(
|
|
852
903
|
--slotted-app-shell-nav-surface,
|
|
853
904
|
var(--slotted-app-shell-canvas, var(--slotted-surface, Canvas))
|
|
854
905
|
);
|
|
855
906
|
}
|
|
856
|
-
[data-ui
|
|
907
|
+
[data-ui-app-shell][data-canvas='flush'] > [data-part-main] {
|
|
857
908
|
background-color: var(--slotted-app-shell-main-surface, transparent);
|
|
858
909
|
}
|
|
859
|
-
[data-ui
|
|
910
|
+
[data-ui-app-shell][data-canvas='flush'] > [data-part-aside] {
|
|
860
911
|
background-color: var(
|
|
861
912
|
--slotted-app-shell-aside-surface,
|
|
862
913
|
var(--slotted-app-shell-canvas, var(--slotted-surface, Canvas))
|
|
863
914
|
);
|
|
864
915
|
}
|
|
865
|
-
[data-ui
|
|
916
|
+
[data-ui-app-shell][data-canvas='flush'] > [data-part-footer] {
|
|
866
917
|
background-color: var(
|
|
867
918
|
--slotted-app-shell-footer-surface,
|
|
868
919
|
var(--slotted-app-shell-canvas, var(--slotted-surface, Canvas))
|
|
@@ -874,33 +925,33 @@
|
|
|
874
925
|
* off-centre on this plane once; none at all put every row's ground against
|
|
875
926
|
* the screen's edge and against the seam.
|
|
876
927
|
*/
|
|
877
|
-
[data-ui
|
|
928
|
+
[data-ui-app-shell][data-canvas='flush'] > [data-part-nav] {
|
|
878
929
|
padding-block: var(--_gutter);
|
|
879
930
|
}
|
|
880
|
-
[data-ui
|
|
931
|
+
[data-ui-app-shell][data-canvas='flush'] > [data-part-banner] {
|
|
881
932
|
border-block-end: var(--_seam);
|
|
882
933
|
}
|
|
883
|
-
[data-ui
|
|
934
|
+
[data-ui-app-shell][data-canvas='flush'] > [data-part-footer] {
|
|
884
935
|
border-block-start: var(--_seam);
|
|
885
936
|
}
|
|
886
|
-
[data-ui
|
|
937
|
+
[data-ui-app-shell][data-canvas='flush'] > [data-part-aside] {
|
|
887
938
|
border-block-start: var(--_seam);
|
|
888
939
|
}
|
|
889
940
|
/* The seams inside a region: wherever regions touch without a gutter, which
|
|
890
941
|
is every seam of `flush` and every seam inside the `panel` card. */
|
|
891
|
-
[data-ui
|
|
892
|
-
> [data-part
|
|
893
|
-
> [data-part
|
|
942
|
+
[data-ui-app-shell]:is([data-canvas='flush'], [data-canvas='panel'])
|
|
943
|
+
> [data-part-nav]
|
|
944
|
+
> [data-part-nav-footer] {
|
|
894
945
|
border-block-start: var(--_seam);
|
|
895
946
|
}
|
|
896
|
-
[data-ui
|
|
897
|
-
> [data-part
|
|
898
|
-
> [data-part
|
|
947
|
+
[data-ui-app-shell]:is([data-canvas='flush'], [data-canvas='panel'])
|
|
948
|
+
> [data-part-aside]
|
|
949
|
+
> [data-part-aside-header] {
|
|
899
950
|
border-block-end: var(--_seam);
|
|
900
951
|
}
|
|
901
|
-
[data-ui
|
|
902
|
-
> [data-part
|
|
903
|
-
> [data-part
|
|
952
|
+
[data-ui-app-shell]:is([data-canvas='flush'], [data-canvas='panel'])
|
|
953
|
+
> [data-part-aside]
|
|
954
|
+
> [data-part-aside-footer] {
|
|
904
955
|
border-block-start: var(--_seam);
|
|
905
956
|
}
|
|
906
957
|
|
|
@@ -914,7 +965,7 @@
|
|
|
914
965
|
* mark column and a row's inset each side, and the card's edge is added to
|
|
915
966
|
* it rather than taken from the marks.
|
|
916
967
|
*/
|
|
917
|
-
[data-ui
|
|
968
|
+
[data-ui-app-shell][data-canvas='floating'] > [data-part-nav] {
|
|
918
969
|
background-color: var(
|
|
919
970
|
--slotted-app-shell-nav-surface,
|
|
920
971
|
var(--slotted-app-shell-canvas, var(--slotted-surface, Canvas))
|
|
@@ -927,12 +978,12 @@
|
|
|
927
978
|
}
|
|
928
979
|
/* A card has an edge the column never had: the rows stand one inset in, as
|
|
929
980
|
they do on the overlay card, and the bar's rows stand over them. */
|
|
930
|
-
[data-ui
|
|
981
|
+
[data-ui-app-shell][data-canvas='floating'] {
|
|
931
982
|
--_edge: calc(var(--_gutter) + var(--_rule-width) + var(--_row-inset));
|
|
932
983
|
--_nav-edges: calc(2 * var(--_rule-width));
|
|
933
984
|
--_nav-inset: var(--_row-inset);
|
|
934
985
|
}
|
|
935
|
-
[data-ui
|
|
986
|
+
[data-ui-app-shell][data-canvas='floating'][data-nav-side='end'] > [data-part-nav] {
|
|
936
987
|
margin-inline: 0 var(--_gutter);
|
|
937
988
|
}
|
|
938
989
|
|
|
@@ -951,11 +1002,11 @@
|
|
|
951
1002
|
* A layer is a phone's arrangement, and a phone has no room for a frame: the
|
|
952
1003
|
* card goes wherever the navigation is a layer, as the inset card does.
|
|
953
1004
|
*/
|
|
954
|
-
[data-ui
|
|
1005
|
+
[data-ui-app-shell]:is(
|
|
955
1006
|
[data-canvas='floating'],
|
|
956
1007
|
[data-canvas='inset']
|
|
957
1008
|
)[data-primary='main']::before,
|
|
958
|
-
[data-ui
|
|
1009
|
+
[data-ui-app-shell][data-canvas='panel']::before {
|
|
959
1010
|
background-color: var(
|
|
960
1011
|
--slotted-app-shell-main-surface,
|
|
961
1012
|
var(--slotted-app-shell-canvas, var(--slotted-surface))
|
|
@@ -968,17 +1019,14 @@
|
|
|
968
1019
|
margin: var(--_gutter);
|
|
969
1020
|
min-inline-size: 0;
|
|
970
1021
|
}
|
|
971
|
-
[data-ui
|
|
1022
|
+
[data-ui-app-shell][data-canvas='panel']::before {
|
|
972
1023
|
grid-area: 2 / 1 / 3 / -1;
|
|
973
1024
|
margin: 0;
|
|
974
1025
|
}
|
|
975
|
-
[data-ui
|
|
976
|
-
[data-primary='nav'],
|
|
977
|
-
[data-primary='main']
|
|
978
|
-
)::before {
|
|
1026
|
+
[data-ui-app-shell][data-canvas='panel']:is([data-primary='nav'], [data-primary='main'])::before {
|
|
979
1027
|
grid-area: 1 / 1 / 3 / -1;
|
|
980
1028
|
}
|
|
981
|
-
[data-ui
|
|
1029
|
+
[data-ui-app-shell][data-nav-mode='overlay'][data-canvas]::before {
|
|
982
1030
|
content: none;
|
|
983
1031
|
}
|
|
984
1032
|
|
|
@@ -990,37 +1038,37 @@
|
|
|
990
1038
|
* and keeps its ground with the card's lower corners. Between them is a
|
|
991
1039
|
* seam, and `separation` decides it.
|
|
992
1040
|
*/
|
|
993
|
-
[data-ui
|
|
994
|
-
> [data-part
|
|
1041
|
+
[data-ui-app-shell]:is([data-canvas='floating'], [data-canvas='inset'])[data-primary='main']
|
|
1042
|
+
> [data-part-banner] {
|
|
995
1043
|
margin-block-start: calc(var(--_gutter) + var(--_rule-width));
|
|
996
1044
|
margin-inline: calc(var(--_gutter) + var(--_rule-width));
|
|
997
1045
|
padding-inline: 0;
|
|
998
1046
|
}
|
|
999
|
-
[data-ui
|
|
1000
|
-
> [data-part
|
|
1047
|
+
[data-ui-app-shell]:is([data-canvas='floating'], [data-canvas='inset'])[data-primary='main']
|
|
1048
|
+
> [data-part-main] {
|
|
1001
1049
|
border: none;
|
|
1002
1050
|
border-radius: 0 0 var(--_inner-radius) var(--_inner-radius);
|
|
1003
1051
|
box-shadow: none;
|
|
1004
1052
|
margin-block: 0 calc(var(--_gutter) + var(--_rule-width));
|
|
1005
1053
|
margin-inline: calc(var(--_gutter) + var(--_rule-width));
|
|
1006
1054
|
}
|
|
1007
|
-
[data-ui
|
|
1008
|
-
[data-ui
|
|
1009
|
-
[data-ui
|
|
1010
|
-
[data-ui
|
|
1011
|
-
> [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] {
|
|
1012
1060
|
border-block-end: var(--_seam);
|
|
1013
1061
|
grid-column: 2 / 3;
|
|
1014
1062
|
}
|
|
1015
|
-
[data-ui
|
|
1063
|
+
[data-ui-app-shell][data-primary='main'][data-nav-mode='overlay'] > [data-part-banner] {
|
|
1016
1064
|
margin: 0;
|
|
1017
1065
|
padding-inline: var(--_edge);
|
|
1018
1066
|
}
|
|
1019
|
-
[data-ui
|
|
1067
|
+
[data-ui-app-shell]:is(
|
|
1020
1068
|
[data-canvas='floating'],
|
|
1021
1069
|
[data-canvas='inset']
|
|
1022
1070
|
)[data-primary='main'][data-nav-mode='overlay']
|
|
1023
|
-
> [data-part
|
|
1071
|
+
> [data-part-main] {
|
|
1024
1072
|
border-radius: 0;
|
|
1025
1073
|
margin: 0;
|
|
1026
1074
|
}
|
|
@@ -1039,80 +1087,80 @@
|
|
|
1039
1087
|
* measured below the compact width keeps it for one frame: the root cannot
|
|
1040
1088
|
* query its own width, and that frame is the cost.
|
|
1041
1089
|
*/
|
|
1042
|
-
[data-ui
|
|
1090
|
+
[data-ui-app-shell][data-canvas='panel'] {
|
|
1043
1091
|
--_edge: calc(var(--_rule-width) + var(--_row-inset));
|
|
1044
1092
|
--_nav-edges: var(--_seam-width);
|
|
1045
1093
|
--_nav-inset: var(--_row-inset);
|
|
1046
1094
|
}
|
|
1047
1095
|
/* Once the navigation is a layer the card beside the bar is gone, and the
|
|
1048
1096
|
bar's rows stand where the inset plane's do. */
|
|
1049
|
-
[data-ui
|
|
1050
|
-
[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'] {
|
|
1051
1099
|
--_edge: var(--_gutter);
|
|
1052
1100
|
}
|
|
1053
|
-
[data-ui
|
|
1101
|
+
[data-ui-app-shell][data-canvas='panel']:not([data-nav-mode='overlay']) {
|
|
1054
1102
|
box-sizing: border-box;
|
|
1055
1103
|
padding-block-end: var(--_gutter);
|
|
1056
1104
|
padding-inline: var(--_gutter);
|
|
1057
1105
|
}
|
|
1058
|
-
[data-ui
|
|
1106
|
+
[data-ui-app-shell][data-canvas='panel']:not([data-nav-mode='overlay']):is(
|
|
1059
1107
|
[data-primary='nav'],
|
|
1060
1108
|
[data-primary='main']
|
|
1061
1109
|
) {
|
|
1062
1110
|
padding-block-start: var(--_gutter);
|
|
1063
1111
|
}
|
|
1064
|
-
[data-ui
|
|
1112
|
+
[data-ui-app-shell][data-canvas='panel']:not([data-nav-mode='overlay']) > [data-part-nav] {
|
|
1065
1113
|
border-end-start-radius: var(--_inner-radius);
|
|
1066
1114
|
border-start-start-radius: var(--_inner-radius);
|
|
1067
1115
|
margin: var(--_rule-width) 0 var(--_rule-width) var(--_rule-width);
|
|
1068
1116
|
}
|
|
1069
|
-
[data-ui
|
|
1070
|
-
> [data-part
|
|
1117
|
+
[data-ui-app-shell][data-canvas='panel']:not([data-nav-mode='overlay'])[data-nav-side='end']
|
|
1118
|
+
> [data-part-nav] {
|
|
1071
1119
|
border-radius: 0 var(--_inner-radius) var(--_inner-radius) 0;
|
|
1072
1120
|
margin: var(--_rule-width) var(--_rule-width) var(--_rule-width) 0;
|
|
1073
1121
|
}
|
|
1074
|
-
[data-ui
|
|
1122
|
+
[data-ui-app-shell][data-canvas='panel']:not([data-nav-mode='overlay']) > [data-part-main] {
|
|
1075
1123
|
border-end-end-radius: var(--_inner-radius);
|
|
1076
1124
|
margin-block-end: var(--_rule-width);
|
|
1077
1125
|
margin-inline-end: var(--_rule-width);
|
|
1078
1126
|
}
|
|
1079
|
-
[data-ui
|
|
1080
|
-
> [data-part
|
|
1127
|
+
[data-ui-app-shell][data-canvas='panel'][data-primary='banner']:not([data-nav-mode='overlay'])
|
|
1128
|
+
> [data-part-main] {
|
|
1081
1129
|
border-start-end-radius: var(--_inner-radius);
|
|
1082
1130
|
margin-block-start: var(--_rule-width);
|
|
1083
1131
|
}
|
|
1084
|
-
[data-ui
|
|
1132
|
+
[data-ui-app-shell][data-canvas='panel']:not([data-nav-mode='overlay']):not(
|
|
1085
1133
|
[data-primary='banner']
|
|
1086
1134
|
)
|
|
1087
|
-
> [data-part
|
|
1135
|
+
> [data-part-banner] {
|
|
1088
1136
|
margin-block-start: var(--_rule-width);
|
|
1089
1137
|
margin-inline-end: var(--_rule-width);
|
|
1090
1138
|
}
|
|
1091
1139
|
/* The corner the content shares with the card is the pane's once the pane
|
|
1092
1140
|
stands beside it. */
|
|
1093
|
-
[data-ui
|
|
1094
|
-
> [data-part
|
|
1141
|
+
[data-ui-app-shell][data-canvas='panel']:not([data-nav-mode='overlay']):has(
|
|
1142
|
+
> [data-part-aside][data-open]
|
|
1095
1143
|
)
|
|
1096
|
-
> [data-part
|
|
1144
|
+
> [data-part-main] {
|
|
1097
1145
|
border-end-end-radius: 0;
|
|
1098
1146
|
border-start-end-radius: 0;
|
|
1099
1147
|
margin-inline-end: 0;
|
|
1100
1148
|
}
|
|
1101
|
-
[data-ui
|
|
1102
|
-
> [data-part
|
|
1149
|
+
[data-ui-app-shell][data-canvas='panel']:not([data-nav-mode='overlay']):has(
|
|
1150
|
+
> [data-part-aside][data-open]
|
|
1103
1151
|
)
|
|
1104
|
-
> [data-part
|
|
1152
|
+
> [data-part-banner] {
|
|
1105
1153
|
margin-inline-end: 0;
|
|
1106
1154
|
}
|
|
1107
|
-
[data-ui
|
|
1155
|
+
[data-ui-app-shell][data-canvas='panel']:not([data-nav-mode='overlay']):not(
|
|
1108
1156
|
[data-aside-mode='overlay']
|
|
1109
1157
|
)
|
|
1110
|
-
> [data-part
|
|
1158
|
+
> [data-part-aside] {
|
|
1111
1159
|
border-end-end-radius: var(--_inner-radius);
|
|
1112
1160
|
border-start-end-radius: var(--_inner-radius);
|
|
1113
1161
|
margin: var(--_rule-width) var(--_rule-width) var(--_rule-width) 0;
|
|
1114
1162
|
}
|
|
1115
|
-
[data-ui
|
|
1163
|
+
[data-ui-app-shell][data-canvas='panel'][data-nav-mode='overlay'] > [data-part-main] {
|
|
1116
1164
|
border-block-start: var(--_rule-width) solid var(--_rule);
|
|
1117
1165
|
}
|
|
1118
1166
|
|
|
@@ -1130,14 +1178,14 @@
|
|
|
1130
1178
|
* gives it once the navigation is a layer — the frame is the box of `main`
|
|
1131
1179
|
* and covers that edge already.
|
|
1132
1180
|
*/
|
|
1133
|
-
[data-ui
|
|
1134
|
-
[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'] {
|
|
1135
1183
|
--_progress-lift: var(--_seam-width);
|
|
1136
1184
|
}
|
|
1137
|
-
[data-ui
|
|
1185
|
+
[data-ui-app-shell][data-canvas='panel'][data-primary='banner'] {
|
|
1138
1186
|
--_progress-lift: var(--_rule-width);
|
|
1139
1187
|
}
|
|
1140
|
-
[data-ui
|
|
1188
|
+
[data-ui-app-shell][data-canvas='panel'][data-nav-mode='overlay'] {
|
|
1141
1189
|
--_progress-lift: 0px;
|
|
1142
1190
|
}
|
|
1143
1191
|
|
|
@@ -1152,50 +1200,62 @@
|
|
|
1152
1200
|
* their originals in the narrow query below. `app-shell.styles.test.mjs`
|
|
1153
1201
|
* holds every rule that gives `main` a margin or a radius to its twin.
|
|
1154
1202
|
*/
|
|
1155
|
-
[data-ui
|
|
1156
|
-
[data-ui
|
|
1203
|
+
[data-ui-app-shell][data-canvas='floating'] > [data-part-progress],
|
|
1204
|
+
[data-ui-app-shell][data-canvas='inset'] > [data-part-progress] {
|
|
1157
1205
|
border-radius: var(--_radius);
|
|
1158
1206
|
margin-block: var(--_gutter);
|
|
1159
1207
|
margin-inline: var(--_gutter);
|
|
1160
1208
|
}
|
|
1161
|
-
[data-ui
|
|
1162
|
-
[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] {
|
|
1163
1211
|
border-radius: 0;
|
|
1164
1212
|
margin: 0;
|
|
1165
1213
|
}
|
|
1166
|
-
[data-ui
|
|
1167
|
-
> [data-part
|
|
1214
|
+
[data-ui-app-shell]:is([data-canvas='floating'], [data-canvas='inset'])[data-primary='main']
|
|
1215
|
+
> [data-part-progress] {
|
|
1168
1216
|
border-radius: 0 0 var(--_inner-radius) var(--_inner-radius);
|
|
1169
1217
|
margin-block: 0 calc(var(--_gutter) + var(--_rule-width));
|
|
1170
1218
|
margin-inline: calc(var(--_gutter) + var(--_rule-width));
|
|
1171
1219
|
}
|
|
1172
|
-
[data-ui
|
|
1220
|
+
[data-ui-app-shell]:is(
|
|
1173
1221
|
[data-canvas='floating'],
|
|
1174
1222
|
[data-canvas='inset']
|
|
1175
1223
|
)[data-primary='main'][data-nav-mode='overlay']
|
|
1176
|
-
> [data-part
|
|
1224
|
+
> [data-part-progress] {
|
|
1177
1225
|
border-radius: 0;
|
|
1178
1226
|
margin: 0;
|
|
1179
1227
|
}
|
|
1180
|
-
[data-ui
|
|
1181
|
-
> [data-part='progress'] {
|
|
1228
|
+
[data-ui-app-shell][data-canvas='panel']:not([data-nav-mode='overlay']) > [data-part-progress] {
|
|
1182
1229
|
border-end-end-radius: var(--_inner-radius);
|
|
1183
1230
|
margin-block-end: var(--_rule-width);
|
|
1184
1231
|
margin-inline-end: var(--_rule-width);
|
|
1185
1232
|
}
|
|
1186
|
-
[data-ui
|
|
1187
|
-
> [data-part
|
|
1233
|
+
[data-ui-app-shell][data-canvas='panel'][data-primary='banner']:not([data-nav-mode='overlay'])
|
|
1234
|
+
> [data-part-progress] {
|
|
1188
1235
|
border-start-end-radius: var(--_inner-radius);
|
|
1189
1236
|
margin-block-start: var(--_rule-width);
|
|
1190
1237
|
}
|
|
1191
|
-
[data-ui
|
|
1192
|
-
> [data-part
|
|
1238
|
+
[data-ui-app-shell][data-canvas='panel']:not([data-nav-mode='overlay']):has(
|
|
1239
|
+
> [data-part-aside][data-open]
|
|
1193
1240
|
)
|
|
1194
|
-
> [data-part
|
|
1241
|
+
> [data-part-progress] {
|
|
1195
1242
|
border-end-end-radius: 0;
|
|
1196
1243
|
border-start-end-radius: 0;
|
|
1197
1244
|
margin-inline-end: 0;
|
|
1198
1245
|
}
|
|
1246
|
+
|
|
1247
|
+
/**
|
|
1248
|
+
* The seam re-read in each region's scope. `--_seam` declared on the root
|
|
1249
|
+
* holds the root's `--slotted-app-shell-border-color`, so the property written
|
|
1250
|
+
* on a region recoloured nothing. Declared again on every region, the chain
|
|
1251
|
+
* resolves where the region stands: a colour written there recolours the
|
|
1252
|
+
* seams the region and its parts draw, and `transparent` removes them. The
|
|
1253
|
+
* tone rules below state the same two declarations at a higher specificity.
|
|
1254
|
+
*/
|
|
1255
|
+
[data-ui-app-shell] > [data-part] {
|
|
1256
|
+
--_rule: var(--slotted-app-shell-border-color, var(--slotted-border-subtle, ButtonBorder));
|
|
1257
|
+
--_seam: var(--_rule-width) solid var(--_rule);
|
|
1258
|
+
}
|
|
1199
1259
|
/* ── Separation by tone ──────────────────────────────────────────────── */
|
|
1200
1260
|
|
|
1201
1261
|
/**
|
|
@@ -1213,11 +1273,12 @@
|
|
|
1213
1273
|
* where it is declared, and a region carrying a scheme of its own must mix
|
|
1214
1274
|
* its own ink.
|
|
1215
1275
|
*/
|
|
1216
|
-
[data-ui
|
|
1276
|
+
[data-ui-app-shell][data-separation='tone'],
|
|
1277
|
+
[data-ui-app-shell][data-separation='tone'] > [data-part] {
|
|
1217
1278
|
--_seam: none;
|
|
1218
1279
|
--_seam-width: 0px;
|
|
1219
1280
|
}
|
|
1220
|
-
[data-ui
|
|
1281
|
+
[data-ui-app-shell][data-canvas='flush'][data-separation='tone'] > [data-part-footer] {
|
|
1221
1282
|
--_ground: var(
|
|
1222
1283
|
--slotted-app-shell-footer-surface,
|
|
1223
1284
|
var(
|
|
@@ -1226,8 +1287,8 @@
|
|
|
1226
1287
|
)
|
|
1227
1288
|
);
|
|
1228
1289
|
}
|
|
1229
|
-
[data-ui
|
|
1230
|
-
> [data-part
|
|
1290
|
+
[data-ui-app-shell][data-canvas='flush'][data-separation='tone']:not([data-primary='main'])
|
|
1291
|
+
> [data-part-banner] {
|
|
1231
1292
|
--_ground: var(
|
|
1232
1293
|
--slotted-app-shell-banner-surface,
|
|
1233
1294
|
var(
|
|
@@ -1236,8 +1297,8 @@
|
|
|
1236
1297
|
)
|
|
1237
1298
|
);
|
|
1238
1299
|
}
|
|
1239
|
-
[data-ui
|
|
1240
|
-
> [data-part
|
|
1300
|
+
[data-ui-app-shell]:is([data-canvas='flush'], [data-canvas='panel'])[data-separation='tone']
|
|
1301
|
+
> [data-part-nav] {
|
|
1241
1302
|
--_ground: var(
|
|
1242
1303
|
--slotted-app-shell-nav-surface,
|
|
1243
1304
|
var(
|
|
@@ -1246,8 +1307,8 @@
|
|
|
1246
1307
|
)
|
|
1247
1308
|
);
|
|
1248
1309
|
}
|
|
1249
|
-
[data-ui
|
|
1250
|
-
> [data-part
|
|
1310
|
+
[data-ui-app-shell]:is([data-canvas='flush'], [data-canvas='panel'])[data-separation='tone']
|
|
1311
|
+
> [data-part-aside] {
|
|
1251
1312
|
--_ground: var(
|
|
1252
1313
|
--slotted-app-shell-aside-surface,
|
|
1253
1314
|
var(
|
|
@@ -1256,18 +1317,18 @@
|
|
|
1256
1317
|
)
|
|
1257
1318
|
);
|
|
1258
1319
|
}
|
|
1259
|
-
[data-ui
|
|
1320
|
+
[data-ui-app-shell][data-separation='tone'] > [data-part-nav] > [data-part-nav-rail] {
|
|
1260
1321
|
--_ground: var(
|
|
1261
1322
|
--slotted-app-shell-tone-surface,
|
|
1262
1323
|
color-mix(in oklab, var(--slotted-surface), var(--slotted-text) 4.5%)
|
|
1263
1324
|
);
|
|
1264
1325
|
}
|
|
1265
|
-
[data-ui
|
|
1266
|
-
> [data-part
|
|
1267
|
-
[data-ui
|
|
1268
|
-
[data-ui
|
|
1269
|
-
> :is([data-part
|
|
1270
|
-
[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] {
|
|
1271
1332
|
--slotted-tone-secondary-subtle-hover: color-mix(
|
|
1272
1333
|
in oklab,
|
|
1273
1334
|
var(--_ground),
|
|
@@ -1283,7 +1344,7 @@
|
|
|
1283
1344
|
}
|
|
1284
1345
|
/* The content keeps the surface under a toned frame: on the flush plane it
|
|
1285
1346
|
carried the sunken ground, which is 0.014 from the tone. */
|
|
1286
|
-
[data-ui
|
|
1347
|
+
[data-ui-app-shell][data-canvas='flush'][data-separation='tone'] > [data-part-main] {
|
|
1287
1348
|
background-color: var(
|
|
1288
1349
|
--slotted-app-shell-main-surface,
|
|
1289
1350
|
var(--slotted-app-shell-canvas, var(--slotted-surface, Canvas))
|
|
@@ -1303,12 +1364,12 @@
|
|
|
1303
1364
|
* on the way in. `:has()` recognises the part, so no script writes an
|
|
1304
1365
|
* attribute and a server render has the grid on its first paint.
|
|
1305
1366
|
*/
|
|
1306
|
-
[data-ui
|
|
1367
|
+
[data-ui-app-shell] > [data-part-nav]:has(> [data-part-nav-rail]) {
|
|
1307
1368
|
display: grid;
|
|
1308
1369
|
grid-template-columns: var(--_rail-size) minmax(var(--_nav-size), 1fr);
|
|
1309
1370
|
grid-template-rows: auto minmax(0, 1fr) auto;
|
|
1310
1371
|
}
|
|
1311
|
-
[data-ui
|
|
1372
|
+
[data-ui-app-shell] > [data-part-nav] > [data-part-nav-rail] {
|
|
1312
1373
|
align-items: center;
|
|
1313
1374
|
border-inline-end: var(--_seam);
|
|
1314
1375
|
box-sizing: border-box;
|
|
@@ -1322,47 +1383,43 @@
|
|
|
1322
1383
|
padding-block: var(--_row-inset);
|
|
1323
1384
|
scrollbar-width: none;
|
|
1324
1385
|
}
|
|
1325
|
-
[data-ui
|
|
1326
|
-
> [data-part='nav']:has(> [data-part='nav-rail'])
|
|
1327
|
-
> [data-part='nav-header'] {
|
|
1386
|
+
[data-ui-app-shell] > [data-part-nav]:has(> [data-part-nav-rail]) > [data-part-nav-header] {
|
|
1328
1387
|
grid-area: 1 / 2 / 2 / 3;
|
|
1329
1388
|
}
|
|
1330
|
-
[data-ui
|
|
1389
|
+
[data-ui-app-shell] > [data-part-nav]:has(> [data-part-nav-rail]) > [data-part-nav-body] {
|
|
1331
1390
|
grid-area: 2 / 2 / 3 / 3;
|
|
1332
1391
|
}
|
|
1333
|
-
[data-ui
|
|
1334
|
-
> [data-part='nav']:has(> [data-part='nav-rail'])
|
|
1335
|
-
> [data-part='nav-footer'] {
|
|
1392
|
+
[data-ui-app-shell] > [data-part-nav]:has(> [data-part-nav-rail]) > [data-part-nav-footer] {
|
|
1336
1393
|
grid-area: 3 / 2 / 4 / 3;
|
|
1337
1394
|
}
|
|
1338
1395
|
/* The strip's rule is an edge, and a row whose ground meets it reads as a
|
|
1339
1396
|
column with no padding. */
|
|
1340
|
-
[data-ui
|
|
1341
|
-
> [data-part
|
|
1342
|
-
> :is([data-part
|
|
1343
|
-
padding-inline-start: var(--_row-inset);
|
|
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]) {
|
|
1400
|
+
padding-inline-start: calc(var(--_row-inset) + var(--_row-ring-inset));
|
|
1344
1401
|
transition: visibility var(--_duration) step-start;
|
|
1345
1402
|
}
|
|
1346
|
-
[data-ui
|
|
1347
|
-
> [data-part
|
|
1403
|
+
[data-ui-app-shell][data-nav-mode='inline'][data-open]
|
|
1404
|
+
> [data-part-nav]:has(> [data-part-nav-rail]) {
|
|
1348
1405
|
inline-size: calc(var(--_rail-size) + var(--_nav-size) + var(--_nav-edges));
|
|
1349
1406
|
}
|
|
1350
1407
|
/* Closed, the region is the strip and its edges: the strip holds a row's
|
|
1351
1408
|
inset on each side of its marks already. */
|
|
1352
|
-
[data-ui
|
|
1353
|
-
> [data-part
|
|
1409
|
+
[data-ui-app-shell][data-nav-mode='inline']:not([data-open])
|
|
1410
|
+
> [data-part-nav]:has(> [data-part-nav-rail]) {
|
|
1354
1411
|
inline-size: calc(var(--_rail-size) + var(--_nav-edges));
|
|
1355
1412
|
}
|
|
1356
|
-
[data-ui
|
|
1357
|
-
> [data-part
|
|
1358
|
-
> :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]) {
|
|
1359
1416
|
transition: visibility var(--_duration) step-end;
|
|
1360
1417
|
visibility: hidden;
|
|
1361
1418
|
}
|
|
1362
1419
|
/* A closed strip is the region's edge, and the edge is the plane's to draw. */
|
|
1363
|
-
[data-ui
|
|
1364
|
-
> [data-part
|
|
1365
|
-
> [data-part
|
|
1420
|
+
[data-ui-app-shell][data-nav-mode='inline']:not([data-open])
|
|
1421
|
+
> [data-part-nav]
|
|
1422
|
+
> [data-part-nav-rail] {
|
|
1366
1423
|
border-inline-end: none;
|
|
1367
1424
|
}
|
|
1368
1425
|
|
|
@@ -1375,7 +1432,8 @@
|
|
|
1375
1432
|
* a forced-colours rule of its own for.
|
|
1376
1433
|
*/
|
|
1377
1434
|
@media (forced-colors: active) {
|
|
1378
|
-
[data-ui
|
|
1435
|
+
[data-ui-app-shell][data-separation='tone'],
|
|
1436
|
+
[data-ui-app-shell][data-separation='tone'] > [data-part] {
|
|
1379
1437
|
--_seam: var(--_rule-width) solid CanvasText;
|
|
1380
1438
|
--_seam-width: var(--_rule-width);
|
|
1381
1439
|
}
|
|
@@ -1396,8 +1454,8 @@
|
|
|
1396
1454
|
* The pane's control is the same control: the same box, the same ink, the
|
|
1397
1455
|
* same pair of marks. What differs is which way the artwork faces, below.
|
|
1398
1456
|
*/
|
|
1399
|
-
[data-ui
|
|
1400
|
-
[data-ui
|
|
1457
|
+
[data-ui-app-shell] [data-part-nav-toggle],
|
|
1458
|
+
[data-ui-app-shell] [data-part-aside-toggle] {
|
|
1401
1459
|
--slotted-icon-size: var(--slotted-control-icon-size-md, 16px);
|
|
1402
1460
|
|
|
1403
1461
|
background-color: transparent;
|
|
@@ -1434,37 +1492,31 @@
|
|
|
1434
1492
|
* navigation's turns. The box is not `directional`: which side the region
|
|
1435
1493
|
* stands on is this family's fact, not the reading direction's alone.
|
|
1436
1494
|
*/
|
|
1437
|
-
[data-ui
|
|
1438
|
-
[dir='rtl'] [data-ui
|
|
1439
|
-
[data-ui
|
|
1440
|
-
[dir='rtl']
|
|
1441
|
-
[data-ui='app-shell'][data-nav-side='end']
|
|
1442
|
-
[data-part='aside-toggle']
|
|
1443
|
-
> [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] {
|
|
1444
1499
|
scale: -1 1;
|
|
1445
1500
|
}
|
|
1501
|
+
[dir='rtl'] [data-ui-app-shell][data-nav-side='end'] [data-part-nav-toggle] > [data-ui-icon],
|
|
1446
1502
|
[dir='rtl']
|
|
1447
|
-
[data-ui
|
|
1448
|
-
[data-part
|
|
1449
|
-
> [data-ui
|
|
1450
|
-
[dir='rtl']
|
|
1451
|
-
[data-ui='app-shell']:not([data-nav-side='end'])
|
|
1452
|
-
[data-part='aside-toggle']
|
|
1453
|
-
> [data-ui='icon'] {
|
|
1503
|
+
[data-ui-app-shell]:not([data-nav-side='end'])
|
|
1504
|
+
[data-part-aside-toggle]
|
|
1505
|
+
> [data-ui-icon] {
|
|
1454
1506
|
scale: 1 1;
|
|
1455
1507
|
}
|
|
1456
1508
|
|
|
1457
|
-
[data-ui
|
|
1458
|
-
[data-ui
|
|
1509
|
+
[data-ui-app-shell] [data-part-nav-toggle]:enabled:hover,
|
|
1510
|
+
[data-ui-app-shell] [data-part-aside-toggle]:enabled:hover {
|
|
1459
1511
|
background-color: var(--slotted-tone-secondary-subtle-hover, ButtonFace);
|
|
1460
1512
|
color: currentcolor;
|
|
1461
1513
|
}
|
|
1462
|
-
[data-ui
|
|
1463
|
-
[data-ui
|
|
1514
|
+
[data-ui-app-shell] [data-part-nav-toggle]:enabled:active,
|
|
1515
|
+
[data-ui-app-shell] [data-part-aside-toggle]:enabled:active {
|
|
1464
1516
|
background-color: var(--slotted-tone-secondary-subtle-active, ButtonFace);
|
|
1465
1517
|
}
|
|
1466
|
-
[data-ui
|
|
1467
|
-
[data-ui
|
|
1518
|
+
[data-ui-app-shell] [data-part-nav-toggle]:focus-visible,
|
|
1519
|
+
[data-ui-app-shell] [data-part-aside-toggle]:focus-visible {
|
|
1468
1520
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
1469
1521
|
outline-offset: var(--slotted-focus-ring-offset, 2px);
|
|
1470
1522
|
}
|
|
@@ -1476,31 +1528,35 @@
|
|
|
1476
1528
|
* mode at any width. The container query further down is the fallback for
|
|
1477
1529
|
* the frame before the binding has measured, and nothing else.
|
|
1478
1530
|
*/
|
|
1479
|
-
|
|
1480
|
-
|
|
1531
|
+
/* The rail holds the parts' ring inset on each side as well, so a control
|
|
1532
|
+
at the mark's size keeps its focus ring inside the body beside the gutter. */
|
|
1533
|
+
[data-ui-app-shell][data-nav-mode='inline'] > [data-part-nav] {
|
|
1534
|
+
inline-size: calc(
|
|
1535
|
+
var(--_rail-size) + 2 * (var(--_nav-inset) + var(--_row-ring-inset)) + var(--_nav-edges)
|
|
1536
|
+
);
|
|
1481
1537
|
}
|
|
1482
|
-
[data-ui
|
|
1538
|
+
[data-ui-app-shell][data-nav-mode='inline'][data-open] > [data-part-nav] {
|
|
1483
1539
|
inline-size: var(--_nav-size);
|
|
1484
1540
|
}
|
|
1485
1541
|
/**
|
|
1486
1542
|
* The rail centres its marks, all three rows together: a head centred over a
|
|
1487
1543
|
* body that is not reads as two columns in one strip.
|
|
1488
1544
|
*/
|
|
1489
|
-
[data-ui
|
|
1490
|
-
> [data-part
|
|
1491
|
-
> [data-part
|
|
1492
|
-
[data-ui
|
|
1493
|
-
> [data-part
|
|
1494
|
-
> [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] {
|
|
1495
1551
|
/* Two marks in one end of a rail — the control and the account — stand
|
|
1496
1552
|
one over the other: the rail is one mark column wide, so a row of two
|
|
1497
1553
|
is a row that overflows it. */
|
|
1498
1554
|
flex-wrap: wrap;
|
|
1499
1555
|
justify-content: center;
|
|
1500
1556
|
}
|
|
1501
|
-
[data-ui
|
|
1502
|
-
> [data-part
|
|
1503
|
-
> [data-part
|
|
1557
|
+
[data-ui-app-shell][data-nav-mode='inline']:not([data-open])
|
|
1558
|
+
> [data-part-nav]
|
|
1559
|
+
> [data-part-nav-body] {
|
|
1504
1560
|
align-items: center;
|
|
1505
1561
|
}
|
|
1506
1562
|
/**
|
|
@@ -1513,35 +1569,35 @@
|
|
|
1513
1569
|
* `hidden` does not animate, because it is a removal rather than a change of
|
|
1514
1570
|
* width.
|
|
1515
1571
|
*/
|
|
1516
|
-
[data-ui
|
|
1517
|
-
> [data-part
|
|
1572
|
+
[data-ui-app-shell][data-nav-mode='inline'][data-collapsed-to='hidden']:not([data-open])
|
|
1573
|
+
> [data-part-nav] {
|
|
1518
1574
|
display: none;
|
|
1519
1575
|
}
|
|
1520
1576
|
|
|
1521
|
-
[data-ui
|
|
1577
|
+
[data-ui-app-shell][data-nav-side='end'] > [data-part-nav] {
|
|
1522
1578
|
grid-area: 2 / 3 / 3 / 4;
|
|
1523
1579
|
}
|
|
1524
|
-
[data-ui
|
|
1580
|
+
[data-ui-app-shell][data-canvas='inset'][data-nav-side='end'] > [data-part-nav] {
|
|
1525
1581
|
margin-inline: 0 var(--_gutter);
|
|
1526
1582
|
}
|
|
1527
|
-
[data-ui
|
|
1583
|
+
[data-ui-app-shell][data-canvas='flush'][data-nav-side='end'] > [data-part-nav] {
|
|
1528
1584
|
padding-inline: 0 var(--_gutter);
|
|
1529
1585
|
}
|
|
1530
|
-
[data-ui
|
|
1586
|
+
[data-ui-app-shell]:is([data-canvas='flush'], [data-canvas='panel']) > [data-part-nav] {
|
|
1531
1587
|
border-inline-end: var(--_seam);
|
|
1532
1588
|
}
|
|
1533
|
-
[data-ui
|
|
1534
|
-
> [data-part
|
|
1589
|
+
[data-ui-app-shell]:is([data-canvas='flush'], [data-canvas='panel'])[data-nav-side='end']
|
|
1590
|
+
> [data-part-nav] {
|
|
1535
1591
|
border-inline-end: none;
|
|
1536
1592
|
border-inline-start: var(--_seam);
|
|
1537
1593
|
}
|
|
1538
1594
|
|
|
1539
1595
|
/** Reaching the corner: the navigation spans every row instead. */
|
|
1540
|
-
[data-ui
|
|
1596
|
+
[data-ui-app-shell]:is([data-primary='nav'], [data-primary='main']) > [data-part-nav] {
|
|
1541
1597
|
grid-area: 1 / 1 / -1 / 2;
|
|
1542
1598
|
}
|
|
1543
|
-
[data-ui
|
|
1544
|
-
> [data-part
|
|
1599
|
+
[data-ui-app-shell]:is([data-primary='nav'], [data-primary='main'])[data-nav-side='end']
|
|
1600
|
+
> [data-part-nav] {
|
|
1545
1601
|
grid-area: 1 / 3 / -1 / 4;
|
|
1546
1602
|
}
|
|
1547
1603
|
/**
|
|
@@ -1549,22 +1605,22 @@
|
|
|
1549
1605
|
* and whatever the bar carries sit on one line rather than being two headers
|
|
1550
1606
|
* of different sizes in the same row of the screen.
|
|
1551
1607
|
*/
|
|
1552
|
-
[data-ui
|
|
1553
|
-
> [data-part
|
|
1554
|
-
> [data-part
|
|
1608
|
+
[data-ui-app-shell]:is([data-primary='nav'], [data-primary='main'])
|
|
1609
|
+
> [data-part-nav]
|
|
1610
|
+
> [data-part-nav-header] {
|
|
1555
1611
|
/* The head's own padding is inside the banner's height, or the mark stands
|
|
1556
1612
|
its padding lower than the bar beside it. */
|
|
1557
1613
|
box-sizing: border-box;
|
|
1558
1614
|
min-block-size: var(--_banner-size);
|
|
1559
1615
|
}
|
|
1560
|
-
[data-ui
|
|
1561
|
-
[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] {
|
|
1562
1618
|
grid-column: 2 / -1;
|
|
1563
1619
|
}
|
|
1564
|
-
[data-ui
|
|
1565
|
-
> [data-part
|
|
1566
|
-
[data-ui
|
|
1567
|
-
> [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] {
|
|
1568
1624
|
grid-column: 1 / -2;
|
|
1569
1625
|
}
|
|
1570
1626
|
/**
|
|
@@ -1573,8 +1629,8 @@
|
|
|
1573
1629
|
* `panel` the banner is inside the card whether the column or the content
|
|
1574
1630
|
* is primary, so `nav` draws what `main` draws there.
|
|
1575
1631
|
*/
|
|
1576
|
-
[data-ui
|
|
1577
|
-
[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] {
|
|
1578
1634
|
grid-column: 2 / 3;
|
|
1579
1635
|
}
|
|
1580
1636
|
|
|
@@ -1595,7 +1651,7 @@
|
|
|
1595
1651
|
* puts the veil over the bar as well: the reader then has no fixed point on
|
|
1596
1652
|
* the screen at all.
|
|
1597
1653
|
*/
|
|
1598
|
-
[data-ui
|
|
1654
|
+
[data-ui-app-shell][data-nav-mode='overlay'] > [data-part-nav] {
|
|
1599
1655
|
/* A layer has an edge on every plane, so its rows stand one inset in. The
|
|
1600
1656
|
inset is read by the parts, which take it from here. */
|
|
1601
1657
|
--_nav-inset: var(--_row-inset);
|
|
@@ -1624,14 +1680,14 @@
|
|
|
1624
1680
|
visibility: hidden;
|
|
1625
1681
|
z-index: var(--slotted-z-index-overlay, 1000);
|
|
1626
1682
|
}
|
|
1627
|
-
[data-ui
|
|
1683
|
+
[data-ui-app-shell][data-nav-mode='overlay'][data-open] > [data-part-nav] {
|
|
1628
1684
|
transition:
|
|
1629
1685
|
translate var(--_duration) var(--slotted-easing-enter, cubic-bezier(0.05, 0.7, 0.1, 1)),
|
|
1630
1686
|
visibility var(--_duration) step-start;
|
|
1631
1687
|
translate: 0 0;
|
|
1632
1688
|
visibility: visible;
|
|
1633
1689
|
}
|
|
1634
|
-
[data-ui
|
|
1690
|
+
[data-ui-app-shell][data-nav-mode='overlay'][data-nav-side='end'] > [data-part-nav] {
|
|
1635
1691
|
inset-inline-end: 0;
|
|
1636
1692
|
inset-inline-start: auto;
|
|
1637
1693
|
translate: 100% 0;
|
|
@@ -1649,9 +1705,9 @@
|
|
|
1649
1705
|
* three parts: the marks keep one column, and a consumer's header row that
|
|
1650
1706
|
* writes the same inset stays over them.
|
|
1651
1707
|
*/
|
|
1652
|
-
[data-ui
|
|
1653
|
-
[data-ui
|
|
1654
|
-
[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] {
|
|
1655
1711
|
border: var(--_rule-width) solid var(--_rule);
|
|
1656
1712
|
border-radius: var(--_radius);
|
|
1657
1713
|
box-shadow: var(--slotted-shadow-lg);
|
|
@@ -1659,14 +1715,14 @@
|
|
|
1659
1715
|
margin-inline-start: var(--_gutter);
|
|
1660
1716
|
translate: calc(-100% - var(--_gutter)) 0;
|
|
1661
1717
|
}
|
|
1662
|
-
[data-ui
|
|
1663
|
-
> [data-part
|
|
1718
|
+
[data-ui-app-shell]:not([data-canvas='flush'])[data-nav-mode='overlay'][data-nav-side='end']
|
|
1719
|
+
> [data-part-nav] {
|
|
1664
1720
|
margin-inline-end: var(--_gutter);
|
|
1665
1721
|
margin-inline-start: 0;
|
|
1666
1722
|
translate: calc(100% + var(--_gutter)) 0;
|
|
1667
1723
|
}
|
|
1668
|
-
[data-ui
|
|
1669
|
-
> [data-part
|
|
1724
|
+
[data-ui-app-shell]:not([data-canvas='flush'])[data-nav-mode='overlay'][data-open]
|
|
1725
|
+
> [data-part-nav] {
|
|
1670
1726
|
translate: 0 0;
|
|
1671
1727
|
}
|
|
1672
1728
|
|
|
@@ -1678,7 +1734,7 @@
|
|
|
1678
1734
|
* every inline distance. It slides in from the end the navigation is not on,
|
|
1679
1735
|
* which is the end the pane stands at as a column.
|
|
1680
1736
|
*/
|
|
1681
|
-
[data-ui
|
|
1737
|
+
[data-ui-app-shell][data-aside-mode='overlay'] > [data-part-aside] {
|
|
1682
1738
|
background-color: var(
|
|
1683
1739
|
--slotted-app-shell-aside-surface,
|
|
1684
1740
|
var(--slotted-app-shell-canvas, var(--slotted-surface, Canvas))
|
|
@@ -1701,21 +1757,21 @@
|
|
|
1701
1757
|
visibility: hidden;
|
|
1702
1758
|
z-index: var(--slotted-z-index-overlay, 1000);
|
|
1703
1759
|
}
|
|
1704
|
-
[data-ui
|
|
1760
|
+
[data-ui-app-shell][data-aside-mode='overlay'] > [data-part-aside][data-open] {
|
|
1705
1761
|
transition:
|
|
1706
1762
|
translate var(--_duration) var(--slotted-easing-enter, cubic-bezier(0.05, 0.7, 0.1, 1)),
|
|
1707
1763
|
visibility var(--_duration) step-start;
|
|
1708
1764
|
translate: 0 0;
|
|
1709
1765
|
visibility: visible;
|
|
1710
1766
|
}
|
|
1711
|
-
[data-ui
|
|
1767
|
+
[data-ui-app-shell][data-aside-mode='overlay'][data-nav-side='end'] > [data-part-aside] {
|
|
1712
1768
|
inset-inline-end: auto;
|
|
1713
1769
|
inset-inline-start: 0;
|
|
1714
1770
|
translate: -100% 0;
|
|
1715
1771
|
}
|
|
1716
|
-
[data-ui
|
|
1717
|
-
[data-ui
|
|
1718
|
-
[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] {
|
|
1719
1775
|
border: var(--_rule-width) solid var(--_rule);
|
|
1720
1776
|
border-radius: var(--_radius);
|
|
1721
1777
|
box-shadow: var(--slotted-shadow-lg);
|
|
@@ -1723,14 +1779,14 @@
|
|
|
1723
1779
|
margin-inline-end: var(--_gutter);
|
|
1724
1780
|
translate: calc(100% + var(--_gutter)) 0;
|
|
1725
1781
|
}
|
|
1726
|
-
[data-ui
|
|
1727
|
-
> [data-part
|
|
1782
|
+
[data-ui-app-shell]:not([data-canvas='flush'])[data-aside-mode='overlay'][data-nav-side='end']
|
|
1783
|
+
> [data-part-aside] {
|
|
1728
1784
|
margin-inline-end: 0;
|
|
1729
1785
|
margin-inline-start: var(--_gutter);
|
|
1730
1786
|
translate: calc(-100% - var(--_gutter)) 0;
|
|
1731
1787
|
}
|
|
1732
|
-
[data-ui
|
|
1733
|
-
> [data-part
|
|
1788
|
+
[data-ui-app-shell]:not([data-canvas='flush'])[data-aside-mode='overlay']
|
|
1789
|
+
> [data-part-aside][data-open] {
|
|
1734
1790
|
translate: 0 0;
|
|
1735
1791
|
}
|
|
1736
1792
|
|
|
@@ -1753,10 +1809,12 @@
|
|
|
1753
1809
|
* rather than of mode, so the width answers it and the width alone.
|
|
1754
1810
|
*/
|
|
1755
1811
|
@container slotted-app-shell (inline-size >= 600px) {
|
|
1756
|
-
[data-ui
|
|
1757
|
-
inline-size: calc(
|
|
1812
|
+
[data-ui-app-shell]:not([data-nav-mode]) > [data-part-nav] {
|
|
1813
|
+
inline-size: calc(
|
|
1814
|
+
var(--_rail-size) + 2 * (var(--_nav-inset) + var(--_row-ring-inset)) + var(--_nav-edges)
|
|
1815
|
+
);
|
|
1758
1816
|
}
|
|
1759
|
-
[data-ui
|
|
1817
|
+
[data-ui-app-shell]:not([data-nav-mode])[data-open] > [data-part-nav] {
|
|
1760
1818
|
inline-size: var(--_nav-size);
|
|
1761
1819
|
}
|
|
1762
1820
|
|
|
@@ -1768,63 +1826,60 @@
|
|
|
1768
1826
|
the unit resolves against the shell's own inline size from inside this
|
|
1769
1827
|
`auto` track, where a percentage would resolve against the track the
|
|
1770
1828
|
pane itself sizes. */
|
|
1771
|
-
[data-ui
|
|
1829
|
+
[data-ui-app-shell]:not([data-aside-mode='overlay']) > [data-part-aside] {
|
|
1772
1830
|
grid-area: 2 / 3 / 3 / 4;
|
|
1773
1831
|
inline-size: var(--slotted-app-shell-aside-extent, var(--_aside-size));
|
|
1774
1832
|
position: relative;
|
|
1775
1833
|
}
|
|
1776
|
-
[data-ui
|
|
1777
|
-
> [data-part
|
|
1778
|
-
> [data-part
|
|
1834
|
+
[data-ui-app-shell]:not([data-aside-mode='overlay'])
|
|
1835
|
+
> [data-part-aside]
|
|
1836
|
+
> [data-part-aside-resizer]:not([hidden]) {
|
|
1779
1837
|
display: block;
|
|
1780
1838
|
}
|
|
1781
|
-
[data-ui
|
|
1782
|
-
> [data-part='aside'] {
|
|
1839
|
+
[data-ui-app-shell]:not([data-aside-mode='overlay'])[data-nav-side='end'] > [data-part-aside] {
|
|
1783
1840
|
grid-area: 2 / 1 / 3 / 2;
|
|
1784
1841
|
}
|
|
1785
1842
|
/* Under `primary="main"` the pane, as a column, stands beside the card
|
|
1786
1843
|
that holds the banner and the content, so it spans the banner's row. */
|
|
1787
|
-
[data-ui
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
> [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] {
|
|
1791
1847
|
grid-row: 1 / 3;
|
|
1792
1848
|
}
|
|
1793
|
-
[data-ui
|
|
1849
|
+
[data-ui-app-shell]:not([data-aside-mode='overlay']):is(
|
|
1794
1850
|
[data-canvas='floating'],
|
|
1795
1851
|
[data-canvas='inset']
|
|
1796
1852
|
)[data-nav-side='end']
|
|
1797
|
-
> [data-part
|
|
1853
|
+
> [data-part-aside] {
|
|
1798
1854
|
margin-inline: var(--_gutter) 0;
|
|
1799
1855
|
}
|
|
1800
|
-
[data-ui
|
|
1801
|
-
> [data-part='aside'] {
|
|
1856
|
+
[data-ui-app-shell]:not([data-aside-mode='overlay'])[data-canvas='flush'] > [data-part-aside] {
|
|
1802
1857
|
border-block-start: none;
|
|
1803
1858
|
}
|
|
1804
|
-
[data-ui
|
|
1859
|
+
[data-ui-app-shell]:not([data-aside-mode='overlay']):is(
|
|
1805
1860
|
[data-canvas='flush'],
|
|
1806
1861
|
[data-canvas='panel']
|
|
1807
1862
|
)
|
|
1808
|
-
> [data-part
|
|
1863
|
+
> [data-part-aside] {
|
|
1809
1864
|
border-inline-start: var(--_seam);
|
|
1810
1865
|
}
|
|
1811
|
-
[data-ui
|
|
1866
|
+
[data-ui-app-shell]:not([data-aside-mode='overlay']):is(
|
|
1812
1867
|
[data-canvas='flush'],
|
|
1813
1868
|
[data-canvas='panel']
|
|
1814
1869
|
)[data-nav-side='end']
|
|
1815
|
-
> [data-part
|
|
1870
|
+
> [data-part-aside] {
|
|
1816
1871
|
border-inline-end: var(--_seam);
|
|
1817
1872
|
border-inline-start: none;
|
|
1818
1873
|
}
|
|
1819
1874
|
}
|
|
1820
1875
|
|
|
1821
1876
|
@container slotted-app-shell (inline-size < 600px) {
|
|
1822
|
-
[data-ui
|
|
1877
|
+
[data-ui-app-shell]:not([data-nav-mode]) > [data-part-nav] {
|
|
1823
1878
|
display: none;
|
|
1824
1879
|
}
|
|
1825
1880
|
/* The content flush to the frame, as it is once the mode says overlay. */
|
|
1826
|
-
[data-ui
|
|
1827
|
-
[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] {
|
|
1828
1883
|
border-block-end: 0;
|
|
1829
1884
|
border-inline: 0;
|
|
1830
1885
|
border-radius: 0;
|
|
@@ -1834,33 +1889,33 @@
|
|
|
1834
1889
|
/* The card of `primary="main"` goes with the gutter. The root cannot
|
|
1835
1890
|
query its own width, but its pseudo-element is a child of the query
|
|
1836
1891
|
container and reads it. */
|
|
1837
|
-
[data-ui
|
|
1892
|
+
[data-ui-app-shell]:not([data-nav-mode]):is(
|
|
1838
1893
|
[data-canvas='floating'],
|
|
1839
1894
|
[data-canvas='inset']
|
|
1840
1895
|
)[data-primary='main']::before {
|
|
1841
1896
|
content: none;
|
|
1842
1897
|
}
|
|
1843
|
-
[data-ui
|
|
1898
|
+
[data-ui-app-shell]:not([data-nav-mode])[data-primary='main'] > [data-part-banner] {
|
|
1844
1899
|
margin: 0;
|
|
1845
1900
|
padding-inline: var(--_edge);
|
|
1846
1901
|
}
|
|
1847
|
-
[data-ui
|
|
1902
|
+
[data-ui-app-shell]:not([data-nav-mode])[data-canvas='panel'] > [data-part-main] {
|
|
1848
1903
|
border-block-start: var(--_rule-width) solid var(--_rule);
|
|
1849
1904
|
border-radius: 0;
|
|
1850
1905
|
}
|
|
1851
|
-
[data-ui
|
|
1852
|
-
[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] {
|
|
1853
1908
|
border-radius: 0;
|
|
1854
1909
|
margin: 0;
|
|
1855
1910
|
}
|
|
1856
|
-
[data-ui
|
|
1911
|
+
[data-ui-app-shell]:not([data-nav-mode])[data-canvas='panel'] > [data-part-progress] {
|
|
1857
1912
|
border-radius: 0;
|
|
1858
1913
|
}
|
|
1859
|
-
[data-ui
|
|
1914
|
+
[data-ui-app-shell]:not([data-aside-mode='overlay']):is(
|
|
1860
1915
|
[data-canvas='floating'],
|
|
1861
1916
|
[data-canvas='inset']
|
|
1862
1917
|
)
|
|
1863
|
-
> [data-part
|
|
1918
|
+
> [data-part-aside] {
|
|
1864
1919
|
margin-inline: var(--_gutter);
|
|
1865
1920
|
}
|
|
1866
1921
|
/* A row under the content takes at most half the shell, so the content
|
|
@@ -1868,14 +1923,14 @@
|
|
|
1868
1923
|
left the content a line high, with the pane scrolling and the content
|
|
1869
1924
|
gone. Only where the shell owns its height; under `document` the page
|
|
1870
1925
|
scrolls and the row takes its content's height. */
|
|
1871
|
-
[data-ui
|
|
1872
|
-
> [data-part
|
|
1926
|
+
[data-ui-app-shell][data-scroll='content']:not([data-aside-mode='overlay'])
|
|
1927
|
+
> [data-part-aside] {
|
|
1873
1928
|
max-block-size: 50cqb;
|
|
1874
1929
|
}
|
|
1875
1930
|
/* The pane as a row under the content, in the inline mode alone: a pane
|
|
1876
1931
|
whose mode is not yet decided draws nothing at a narrow width, the safe
|
|
1877
1932
|
half of the answer, for the reason the navigation draws nothing. */
|
|
1878
|
-
[data-ui
|
|
1933
|
+
[data-ui-app-shell]:not([data-aside-mode]) > [data-part-aside] {
|
|
1879
1934
|
display: none;
|
|
1880
1935
|
}
|
|
1881
1936
|
}
|
|
@@ -1883,7 +1938,7 @@
|
|
|
1883
1938
|
/* ── The veil ────────────────────────────────────────────────────────── */
|
|
1884
1939
|
|
|
1885
1940
|
/** It stops where the panel stops, so the bar above stays a fixed point. */
|
|
1886
|
-
[data-ui
|
|
1941
|
+
[data-ui-app-shell] > [data-part-scrim] {
|
|
1887
1942
|
background-color: var(--_scrim);
|
|
1888
1943
|
grid-area: 2 / 1 / -1 / -1;
|
|
1889
1944
|
inset: 0;
|
|
@@ -1892,8 +1947,8 @@
|
|
|
1892
1947
|
transition: opacity var(--_duration) var(--_easing);
|
|
1893
1948
|
z-index: calc(var(--slotted-z-index-overlay, 1000) - 1);
|
|
1894
1949
|
}
|
|
1895
|
-
[data-ui
|
|
1896
|
-
[data-ui
|
|
1950
|
+
[data-ui-app-shell] > [data-part-scrim][data-status='entering'],
|
|
1951
|
+
[data-ui-app-shell] > [data-part-scrim][data-status='exiting'] {
|
|
1897
1952
|
opacity: 0;
|
|
1898
1953
|
}
|
|
1899
1954
|
}
|