@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
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
* description-list has a `description`, a card has `actions` and a `header`
|
|
37
37
|
* — and a descendant rule would restyle theirs.
|
|
38
38
|
*/
|
|
39
|
-
[data-ui
|
|
39
|
+
[data-ui-page-header] {
|
|
40
40
|
--_surface: var(--slotted-page-header-background, var(--slotted-surface, Canvas));
|
|
41
41
|
/* What the root and the title area paint; `plain` takes it away at rest. */
|
|
42
42
|
--_ground: var(--_surface);
|
|
@@ -117,7 +117,7 @@
|
|
|
117
117
|
overflow-x: clip;
|
|
118
118
|
}
|
|
119
119
|
|
|
120
|
-
[data-ui
|
|
120
|
+
[data-ui-page-header][data-size='sm'] {
|
|
121
121
|
--_heading-size: var(
|
|
122
122
|
--slotted-page-header-heading-size-sm,
|
|
123
123
|
var(--slotted-font-size-xl, 1.125rem)
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
--_snapped-heading-line-height: var(--slotted-line-height-md, 1.5);
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
-
[data-ui
|
|
133
|
+
[data-ui-page-header][data-size='lg'] {
|
|
134
134
|
--_heading-size: var(
|
|
135
135
|
--slotted-page-header-heading-size-lg,
|
|
136
136
|
var(--slotted-font-size-3xl, 1.5rem)
|
|
@@ -150,9 +150,9 @@
|
|
|
150
150
|
* and `pressed` is its word. Under `collapse="manual"` the offset is what
|
|
151
151
|
* the scroll would use, so it is zero for good.
|
|
152
152
|
*/
|
|
153
|
-
[data-ui
|
|
154
|
-
[data-ui
|
|
155
|
-
[data-ui
|
|
153
|
+
[data-ui-page-header][data-revealed],
|
|
154
|
+
[data-ui-page-header][data-collapse='manual'],
|
|
155
|
+
[data-ui-page-header]:has([data-part-pin][data-pressed]) {
|
|
156
156
|
inset-block-start: var(--_sticky-inset);
|
|
157
157
|
}
|
|
158
158
|
|
|
@@ -166,7 +166,7 @@
|
|
|
166
166
|
* ground would show the page through its title. The hairline stays in
|
|
167
167
|
* both: it is where the chrome ends.
|
|
168
168
|
*/
|
|
169
|
-
[data-ui
|
|
169
|
+
[data-ui-page-header][data-variant='plain']:not([data-stuck]) {
|
|
170
170
|
--_ground: transparent;
|
|
171
171
|
}
|
|
172
172
|
|
|
@@ -179,19 +179,19 @@
|
|
|
179
179
|
* sat an inset down over the content under it. The title area paints its
|
|
180
180
|
* own ground, so its top corners follow the root's, and it slides with it.
|
|
181
181
|
*/
|
|
182
|
-
[data-ui
|
|
182
|
+
[data-ui-page-header][data-variant='floating'] {
|
|
183
183
|
--_radius: var(--slotted-page-header-radius, var(--slotted-radius-lg, 8px));
|
|
184
184
|
|
|
185
185
|
border: var(--_rule-size) solid var(--_rule);
|
|
186
186
|
border-radius: var(--_radius);
|
|
187
187
|
box-sizing: border-box;
|
|
188
188
|
}
|
|
189
|
-
[data-ui
|
|
189
|
+
[data-ui-page-header][data-variant='floating'] > * > [data-part-title-area] {
|
|
190
190
|
border-start-end-radius: calc(var(--_radius) - var(--_rule-size));
|
|
191
191
|
border-start-start-radius: calc(var(--_radius) - var(--_rule-size));
|
|
192
192
|
transition: inset-block-start var(--_duration) var(--_easing);
|
|
193
193
|
}
|
|
194
|
-
[data-ui
|
|
194
|
+
[data-ui-page-header][data-variant='floating'][data-stuck] {
|
|
195
195
|
--_sticky-inset: var(--slotted-page-header-inset, var(--slotted-space-4, 0.5rem));
|
|
196
196
|
|
|
197
197
|
box-shadow: var(--slotted-page-header-shadow, var(--slotted-shadow-sm));
|
|
@@ -203,14 +203,14 @@
|
|
|
203
203
|
* record's header and tabs held 40 per cent of the screen for the whole
|
|
204
204
|
* scroll. `relative` and not `static`, so the root keeps the stacking the
|
|
205
205
|
* pill straddling its edge relies on, at an offset of nought. The binding
|
|
206
|
-
* writes the attribute from the
|
|
207
|
-
*
|
|
206
|
+
* writes the attribute from the frame's width, so a header in a narrow pane
|
|
207
|
+
* of a wide frame still sticks inside the pane.
|
|
208
208
|
*/
|
|
209
|
-
[data-ui
|
|
209
|
+
[data-ui-page-header][data-compact] {
|
|
210
210
|
inset-block-start: 0;
|
|
211
211
|
position: relative;
|
|
212
212
|
}
|
|
213
|
-
[data-ui
|
|
213
|
+
[data-ui-page-header][data-compact] > * > [data-part-title-area] {
|
|
214
214
|
inset-block-start: 0;
|
|
215
215
|
position: relative;
|
|
216
216
|
}
|
|
@@ -222,7 +222,7 @@
|
|
|
222
222
|
* renders to align its rows to the page's measure, and it is not named,
|
|
223
223
|
* because a family does not select another family's identity.
|
|
224
224
|
*/
|
|
225
|
-
[data-ui
|
|
225
|
+
[data-ui-page-header] > * > [data-part-title-area] {
|
|
226
226
|
background-color: var(--_ground);
|
|
227
227
|
display: flex;
|
|
228
228
|
flex-direction: column;
|
|
@@ -242,9 +242,7 @@
|
|
|
242
242
|
* the title keeps its own ground, because a title that let the area show
|
|
243
243
|
* through would print the area's words under its own.
|
|
244
244
|
*/
|
|
245
|
-
[data-ui
|
|
246
|
-
> *
|
|
247
|
-
> [data-part='title-area'] {
|
|
245
|
+
[data-ui-page-header]:not(:has(> * > [data-part-header-area])) > * > [data-part-title-area] {
|
|
248
246
|
background-color: transparent;
|
|
249
247
|
}
|
|
250
248
|
|
|
@@ -255,7 +253,7 @@
|
|
|
255
253
|
* at all. The filter is the stuck state's alone, so a `plain` header,
|
|
256
254
|
* transparent at rest, filters nothing at rest.
|
|
257
255
|
*/
|
|
258
|
-
[data-ui
|
|
256
|
+
[data-ui-page-header][data-stuck] {
|
|
259
257
|
-webkit-backdrop-filter: var(--slotted-page-header-backdrop-filter, none);
|
|
260
258
|
backdrop-filter: var(--slotted-page-header-backdrop-filter, none);
|
|
261
259
|
}
|
|
@@ -265,7 +263,7 @@
|
|
|
265
263
|
* forced colours the ground is the system's and the blur has nothing to add.
|
|
266
264
|
*/
|
|
267
265
|
@media (prefers-reduced-transparency: reduce), (forced-colors: active) {
|
|
268
|
-
[data-ui
|
|
266
|
+
[data-ui-page-header][data-stuck] {
|
|
269
267
|
-webkit-backdrop-filter: none;
|
|
270
268
|
backdrop-filter: none;
|
|
271
269
|
}
|
|
@@ -279,11 +277,11 @@
|
|
|
279
277
|
* because a padding that changed at the snap would move the tabs by that
|
|
280
278
|
* much at the moment the header area left.
|
|
281
279
|
*/
|
|
282
|
-
[data-ui
|
|
280
|
+
[data-ui-page-header]:has([data-part-controls] > *) > * > [data-part-title-area] {
|
|
283
281
|
padding-block-end: calc(var(--slotted-space-4, 0.5rem) + var(--_control-size) / 2);
|
|
284
282
|
}
|
|
285
283
|
|
|
286
|
-
[data-ui
|
|
284
|
+
[data-ui-page-header] > * > [data-part-title-area] > [data-part-nav] {
|
|
287
285
|
align-items: center;
|
|
288
286
|
color: var(--_muted);
|
|
289
287
|
display: flex;
|
|
@@ -292,7 +290,7 @@
|
|
|
292
290
|
line-height: var(--slotted-line-height-sm, 1.45);
|
|
293
291
|
min-inline-size: 0;
|
|
294
292
|
}
|
|
295
|
-
[data-ui
|
|
293
|
+
[data-ui-page-header] > * > [data-part-title-area] > [data-part-nav]:empty {
|
|
296
294
|
display: none;
|
|
297
295
|
}
|
|
298
296
|
/**
|
|
@@ -301,11 +299,11 @@
|
|
|
301
299
|
* breadcrumbs go and the arrow is what remains. A consumer writes both
|
|
302
300
|
* once and the width decides.
|
|
303
301
|
*/
|
|
304
|
-
[data-ui
|
|
302
|
+
[data-ui-page-header]
|
|
305
303
|
> *
|
|
306
|
-
> [data-part
|
|
307
|
-
> [data-part
|
|
308
|
-
> [data-part
|
|
304
|
+
> [data-part-title-area]
|
|
305
|
+
> [data-part-nav]
|
|
306
|
+
> [data-part-back]:has(~ [data-part-breadcrumbs]:not(:empty)) {
|
|
309
307
|
display: none;
|
|
310
308
|
}
|
|
311
309
|
|
|
@@ -315,7 +313,7 @@
|
|
|
315
313
|
* label, and it points along the reading direction, so its `directional`
|
|
316
314
|
* box mirrors it in a right-to-left document.
|
|
317
315
|
*/
|
|
318
|
-
[data-ui
|
|
316
|
+
[data-ui-page-header] > * > [data-part-title-area] > [data-part-nav] > [data-part-back] {
|
|
319
317
|
--slotted-icon-size: var(--_icon-size);
|
|
320
318
|
|
|
321
319
|
align-items: center;
|
|
@@ -339,11 +337,7 @@
|
|
|
339
337
|
reaches the comfortable size by padding and gives it back as a negative
|
|
340
338
|
margin, so the nav row keeps its height and nothing under it moves. */
|
|
341
339
|
@media (pointer: coarse) {
|
|
342
|
-
[data-ui
|
|
343
|
-
> *
|
|
344
|
-
> [data-part='title-area']
|
|
345
|
-
> [data-part='nav']
|
|
346
|
-
> [data-part='back'] {
|
|
340
|
+
[data-ui-page-header] > * > [data-part-title-area] > [data-part-nav] > [data-part-back] {
|
|
347
341
|
--_reach: max(
|
|
348
342
|
0px,
|
|
349
343
|
calc((var(--slotted-target-comfortable, 44px) - var(--slotted-target-min, 24px)) / 2)
|
|
@@ -353,27 +347,23 @@
|
|
|
353
347
|
padding-block: var(--_reach);
|
|
354
348
|
}
|
|
355
349
|
}
|
|
356
|
-
[data-ui
|
|
350
|
+
[data-ui-page-header]
|
|
357
351
|
> *
|
|
358
|
-
> [data-part
|
|
359
|
-
> [data-part
|
|
360
|
-
> [data-part
|
|
352
|
+
> [data-part-title-area]
|
|
353
|
+
> [data-part-nav]
|
|
354
|
+
> [data-part-back]:not([data-disabled]):not(:disabled):hover {
|
|
361
355
|
color: var(--_text);
|
|
362
356
|
}
|
|
363
|
-
[data-ui
|
|
357
|
+
[data-ui-page-header]
|
|
364
358
|
> *
|
|
365
|
-
> [data-part
|
|
366
|
-
> [data-part
|
|
367
|
-
> [data-part
|
|
359
|
+
> [data-part-title-area]
|
|
360
|
+
> [data-part-nav]
|
|
361
|
+
> [data-part-back]:focus-visible {
|
|
368
362
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
369
363
|
outline-offset: var(--slotted-focus-ring-offset, 2px);
|
|
370
364
|
}
|
|
371
365
|
|
|
372
|
-
[data-ui
|
|
373
|
-
> *
|
|
374
|
-
> [data-part='title-area']
|
|
375
|
-
> [data-part='nav']
|
|
376
|
-
> [data-part='breadcrumbs'] {
|
|
366
|
+
[data-ui-page-header] > * > [data-part-title-area] > [data-part-nav] > [data-part-breadcrumbs] {
|
|
377
367
|
min-inline-size: 0;
|
|
378
368
|
}
|
|
379
369
|
|
|
@@ -382,7 +372,7 @@
|
|
|
382
372
|
* navigation pushed to the end. Everything after the title wraps under it
|
|
383
373
|
* when the width runs out, in the order it has in the DOM.
|
|
384
374
|
*/
|
|
385
|
-
[data-ui
|
|
375
|
+
[data-ui-page-header] > * > [data-part-title-area] > [data-part-title-row] {
|
|
386
376
|
align-items: flex-start;
|
|
387
377
|
display: flex;
|
|
388
378
|
flex-wrap: wrap;
|
|
@@ -390,11 +380,7 @@
|
|
|
390
380
|
min-inline-size: 0;
|
|
391
381
|
}
|
|
392
382
|
|
|
393
|
-
[data-ui
|
|
394
|
-
> *
|
|
395
|
-
> [data-part='title-area']
|
|
396
|
-
> [data-part='title-row']
|
|
397
|
-
> [data-part='visual'] {
|
|
383
|
+
[data-ui-page-header] > * > [data-part-title-area] > [data-part-title-row] > [data-part-visual] {
|
|
398
384
|
align-items: center;
|
|
399
385
|
/* On the title's first line, as Primer's LeadingVisual: centred on the
|
|
400
386
|
whole column it sank beside the second line of a wrapped title. */
|
|
@@ -409,11 +395,7 @@
|
|
|
409
395
|
* aligned to the text" asks for — and the subheading, forced to a full
|
|
410
396
|
* row, takes the line under it.
|
|
411
397
|
*/
|
|
412
|
-
[data-ui
|
|
413
|
-
> *
|
|
414
|
-
> [data-part='title-area']
|
|
415
|
-
> [data-part='title-row']
|
|
416
|
-
> [data-part='title'] {
|
|
398
|
+
[data-ui-page-header] > * > [data-part-title-area] > [data-part-title-row] > [data-part-title] {
|
|
417
399
|
align-items: center;
|
|
418
400
|
column-gap: var(--slotted-space-4, 0.5rem);
|
|
419
401
|
display: flex;
|
|
@@ -440,12 +422,12 @@
|
|
|
440
422
|
* width to the flex algorithm that is not the width it then paints, and the
|
|
441
423
|
* marks beside it ran past the container in the first capture.
|
|
442
424
|
*/
|
|
443
|
-
[data-ui
|
|
425
|
+
[data-ui-page-header]
|
|
444
426
|
> *
|
|
445
|
-
> [data-part
|
|
446
|
-
> [data-part
|
|
447
|
-
> [data-part
|
|
448
|
-
> [data-part
|
|
427
|
+
> [data-part-title-area]
|
|
428
|
+
> [data-part-title-row]
|
|
429
|
+
> [data-part-title]
|
|
430
|
+
> [data-part-heading] {
|
|
449
431
|
-webkit-box-orient: vertical;
|
|
450
432
|
color: var(--_text);
|
|
451
433
|
display: -webkit-box;
|
|
@@ -466,12 +448,12 @@
|
|
|
466
448
|
/* No transition on the size: text re-rasterised on every frame of a
|
|
467
449
|
font-size change blurs and settles with a jolt, so the step is a cut. */
|
|
468
450
|
}
|
|
469
|
-
[data-ui
|
|
451
|
+
[data-ui-page-header]:not([data-expanded])
|
|
470
452
|
> *
|
|
471
|
-
> [data-part
|
|
472
|
-
> [data-part
|
|
473
|
-
> [data-part
|
|
474
|
-
> [data-part
|
|
453
|
+
> [data-part-title-area]
|
|
454
|
+
> [data-part-title-row]
|
|
455
|
+
> [data-part-title]
|
|
456
|
+
> [data-part-heading] {
|
|
475
457
|
display: block;
|
|
476
458
|
flex: 0 1 auto;
|
|
477
459
|
font-size: var(--_snapped-heading-size);
|
|
@@ -480,33 +462,33 @@
|
|
|
480
462
|
white-space: nowrap;
|
|
481
463
|
}
|
|
482
464
|
|
|
483
|
-
[data-ui
|
|
465
|
+
[data-ui-page-header]
|
|
484
466
|
> *
|
|
485
|
-
> [data-part
|
|
486
|
-
> [data-part
|
|
487
|
-
> [data-part
|
|
488
|
-
> [data-part
|
|
467
|
+
> [data-part-title-area]
|
|
468
|
+
> [data-part-title-row]
|
|
469
|
+
> [data-part-title]
|
|
470
|
+
> [data-part-marks] {
|
|
489
471
|
align-items: center;
|
|
490
472
|
display: inline-flex;
|
|
491
473
|
flex-wrap: wrap;
|
|
492
474
|
gap: var(--slotted-space-2, 0.25rem);
|
|
493
475
|
min-inline-size: 0;
|
|
494
476
|
}
|
|
495
|
-
[data-ui
|
|
477
|
+
[data-ui-page-header]
|
|
496
478
|
> *
|
|
497
|
-
> [data-part
|
|
498
|
-
> [data-part
|
|
499
|
-
> [data-part
|
|
500
|
-
> [data-part
|
|
479
|
+
> [data-part-title-area]
|
|
480
|
+
> [data-part-title-row]
|
|
481
|
+
> [data-part-title]
|
|
482
|
+
> [data-part-marks]:empty {
|
|
501
483
|
display: none;
|
|
502
484
|
}
|
|
503
485
|
|
|
504
|
-
[data-ui
|
|
486
|
+
[data-ui-page-header]
|
|
505
487
|
> *
|
|
506
|
-
> [data-part
|
|
507
|
-
> [data-part
|
|
508
|
-
> [data-part
|
|
509
|
-
> [data-part
|
|
488
|
+
> [data-part-title-area]
|
|
489
|
+
> [data-part-title-row]
|
|
490
|
+
> [data-part-title]
|
|
491
|
+
> [data-part-subheading] {
|
|
510
492
|
-webkit-box-orient: vertical;
|
|
511
493
|
color: var(--_muted);
|
|
512
494
|
display: -webkit-box;
|
|
@@ -522,23 +504,19 @@
|
|
|
522
504
|
text-wrap: pretty;
|
|
523
505
|
}
|
|
524
506
|
/* Snapped, the bar has one line to give it. */
|
|
525
|
-
[data-ui
|
|
507
|
+
[data-ui-page-header]:not([data-expanded])
|
|
526
508
|
> *
|
|
527
|
-
> [data-part
|
|
528
|
-
> [data-part
|
|
529
|
-
> [data-part
|
|
530
|
-
> [data-part
|
|
509
|
+
> [data-part-title-area]
|
|
510
|
+
> [data-part-title-row]
|
|
511
|
+
> [data-part-title]
|
|
512
|
+
> [data-part-subheading] {
|
|
531
513
|
display: block;
|
|
532
514
|
overflow: hidden;
|
|
533
515
|
text-overflow: ellipsis;
|
|
534
516
|
white-space: nowrap;
|
|
535
517
|
}
|
|
536
518
|
|
|
537
|
-
[data-ui
|
|
538
|
-
> *
|
|
539
|
-
> [data-part='title-area']
|
|
540
|
-
> [data-part='title-row']
|
|
541
|
-
> [data-part='actions'] {
|
|
519
|
+
[data-ui-page-header] > * > [data-part-title-area] > [data-part-title-row] > [data-part-actions] {
|
|
542
520
|
align-items: center;
|
|
543
521
|
display: flex;
|
|
544
522
|
flex: 0 1 auto;
|
|
@@ -559,20 +537,20 @@
|
|
|
559
537
|
* that scrolls — written from the same public tokens; a framed bar keeps
|
|
560
538
|
* its box.
|
|
561
539
|
*/
|
|
562
|
-
[data-ui
|
|
540
|
+
[data-ui-page-header]
|
|
563
541
|
> *
|
|
564
|
-
> [data-part
|
|
565
|
-
> [data-part
|
|
566
|
-
> [data-part
|
|
567
|
-
> [data-ui
|
|
542
|
+
> [data-part-title-area]
|
|
543
|
+
> [data-part-title-row]
|
|
544
|
+
> [data-part-actions]
|
|
545
|
+
> [data-ui-toolbar]:not([data-variant='outline']) {
|
|
568
546
|
margin-block: calc(-1 * var(--slotted-toolbar-inset, var(--slotted-space-2, 0.25rem)));
|
|
569
547
|
}
|
|
570
|
-
[data-ui
|
|
548
|
+
[data-ui-page-header]
|
|
571
549
|
> *
|
|
572
|
-
> [data-part
|
|
573
|
-
> [data-part
|
|
574
|
-
> [data-part
|
|
575
|
-
> [data-ui
|
|
550
|
+
> [data-part-title-area]
|
|
551
|
+
> [data-part-title-row]
|
|
552
|
+
> [data-part-actions]
|
|
553
|
+
> [data-ui-toolbar]:not([data-variant='outline']):is(
|
|
576
554
|
[data-overflow='menu'],
|
|
577
555
|
[data-overflow='scroll']
|
|
578
556
|
) {
|
|
@@ -601,12 +579,10 @@
|
|
|
601
579
|
* its observer never fired, and the actions stayed folded after the window
|
|
602
580
|
* widened again, while a fresh load at the same width showed them all.
|
|
603
581
|
*/
|
|
604
|
-
[data-ui
|
|
582
|
+
[data-ui-page-header]
|
|
605
583
|
> *
|
|
606
|
-
> [data-part
|
|
607
|
-
> [data-part
|
|
608
|
-
> [data-part='actions'] > [data-ui='toolbar'][data-overflow='menu']
|
|
609
|
-
) {
|
|
584
|
+
> [data-part-title-area]
|
|
585
|
+
> [data-part-title-row]:has(> [data-part-actions] > [data-ui-toolbar][data-overflow='menu']) {
|
|
610
586
|
flex-wrap: nowrap;
|
|
611
587
|
}
|
|
612
588
|
/* The title starts from its own width, not from the basis a wrapping row gives it, at every
|
|
@@ -617,48 +593,42 @@
|
|
|
617
593
|
of 420, and the toolbar beside them folded every command into its menu next to empty room. As
|
|
618
594
|
a grid — the heading and its marks on the first line, the subheading across both columns
|
|
619
595
|
under them — the title is as wide as its widest line. */
|
|
620
|
-
[data-ui
|
|
596
|
+
[data-ui-page-header]
|
|
621
597
|
> *
|
|
622
|
-
> [data-part
|
|
623
|
-
> [data-part
|
|
624
|
-
|
|
625
|
-
)
|
|
626
|
-
> [data-part='title'] {
|
|
598
|
+
> [data-part-title-area]
|
|
599
|
+
> [data-part-title-row]:has(> [data-part-actions] > [data-ui-toolbar][data-overflow='menu'])
|
|
600
|
+
> [data-part-title] {
|
|
627
601
|
align-items: center;
|
|
628
602
|
display: grid;
|
|
629
603
|
flex: 0 1 auto;
|
|
630
604
|
grid-template-columns: minmax(0, auto) auto;
|
|
631
605
|
justify-content: start;
|
|
632
606
|
}
|
|
633
|
-
[data-ui
|
|
607
|
+
[data-ui-page-header]
|
|
634
608
|
> *
|
|
635
|
-
> [data-part
|
|
636
|
-
> [data-part
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
> [data-part='title']
|
|
640
|
-
> [data-part='heading'] {
|
|
609
|
+
> [data-part-title-area]
|
|
610
|
+
> [data-part-title-row]:has(> [data-part-actions] > [data-ui-toolbar][data-overflow='menu'])
|
|
611
|
+
> [data-part-title]
|
|
612
|
+
> [data-part-heading] {
|
|
641
613
|
grid-column: 1;
|
|
642
614
|
}
|
|
643
|
-
[data-ui
|
|
615
|
+
[data-ui-page-header]
|
|
644
616
|
> *
|
|
645
|
-
> [data-part
|
|
646
|
-
> [data-part
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
> [data-part='title']
|
|
650
|
-
> [data-part='subheading'] {
|
|
617
|
+
> [data-part-title-area]
|
|
618
|
+
> [data-part-title-row]:has(> [data-part-actions] > [data-ui-toolbar][data-overflow='menu'])
|
|
619
|
+
> [data-part-title]
|
|
620
|
+
> [data-part-subheading] {
|
|
651
621
|
grid-column: 1 / -1;
|
|
652
622
|
}
|
|
653
623
|
/* The cluster starts from nothing and grows into what the title leaves, so its width follows
|
|
654
624
|
the row's in both directions. It never gives way below its menu's trigger, a medium control,
|
|
655
625
|
and the toolbar's inset on either side: under it the trigger stood past the screen's edge on
|
|
656
626
|
a phone. */
|
|
657
|
-
[data-ui
|
|
627
|
+
[data-ui-page-header]
|
|
658
628
|
> *
|
|
659
|
-
> [data-part
|
|
660
|
-
> [data-part
|
|
661
|
-
> [data-part
|
|
629
|
+
> [data-part-title-area]
|
|
630
|
+
> [data-part-title-row]
|
|
631
|
+
> [data-part-actions]:has(> [data-ui-toolbar][data-overflow='menu']) {
|
|
662
632
|
flex: 1 1 0%;
|
|
663
633
|
min-inline-size: calc(
|
|
664
634
|
var(--slotted-control-height-md, 34px) + 2 *
|
|
@@ -675,12 +645,12 @@
|
|
|
675
645
|
stand at the end of the row as they did when the cluster was their own width. `safe`, because
|
|
676
646
|
a bar of pinned controls wider than the room scrolls, and overflow at the start of a scroll
|
|
677
647
|
container cannot be scrolled to. */
|
|
678
|
-
[data-ui
|
|
648
|
+
[data-ui-page-header]
|
|
679
649
|
> *
|
|
680
|
-
> [data-part
|
|
681
|
-
> [data-part
|
|
682
|
-
> [data-part
|
|
683
|
-
> [data-ui
|
|
650
|
+
> [data-part-title-area]
|
|
651
|
+
> [data-part-title-row]
|
|
652
|
+
> [data-part-actions]
|
|
653
|
+
> [data-ui-toolbar][data-overflow='menu'] {
|
|
684
654
|
flex: 1 1 0%;
|
|
685
655
|
justify-content: safe flex-end;
|
|
686
656
|
}
|
|
@@ -689,11 +659,11 @@
|
|
|
689
659
|
* Previous and next record, after the actions and set apart from them by a
|
|
690
660
|
* rule, which is where sap.f puts navigationActions.
|
|
691
661
|
*/
|
|
692
|
-
[data-ui
|
|
662
|
+
[data-ui-page-header]
|
|
693
663
|
> *
|
|
694
|
-
> [data-part
|
|
695
|
-
> [data-part
|
|
696
|
-
> [data-part
|
|
664
|
+
> [data-part-title-area]
|
|
665
|
+
> [data-part-title-row]
|
|
666
|
+
> [data-part-navigation] {
|
|
697
667
|
align-items: center;
|
|
698
668
|
border-inline-start: var(--_rule-size) solid var(--_rule);
|
|
699
669
|
display: flex;
|
|
@@ -713,12 +683,12 @@
|
|
|
713
683
|
* for the other direction. The glyphs mirror; the order is already the
|
|
714
684
|
* row's.
|
|
715
685
|
*/
|
|
716
|
-
[data-ui
|
|
686
|
+
[data-ui-page-header]
|
|
717
687
|
> *
|
|
718
|
-
> [data-part
|
|
719
|
-
> [data-part
|
|
720
|
-
> [data-part
|
|
721
|
-
:is(svg, [data-ui
|
|
688
|
+
> [data-part-title-area]
|
|
689
|
+
> [data-part-title-row]
|
|
690
|
+
> [data-part-navigation]:dir(rtl)
|
|
691
|
+
:is(svg, [data-ui-icon]) {
|
|
722
692
|
scale: -1 1;
|
|
723
693
|
}
|
|
724
694
|
|
|
@@ -729,7 +699,7 @@
|
|
|
729
699
|
* to 0fr — the content's own height at every frame, nothing measured — as
|
|
730
700
|
* collapsible does. Figure and content share the row.
|
|
731
701
|
*/
|
|
732
|
-
[data-ui
|
|
702
|
+
[data-ui-page-header] > * > [data-part-header-area] {
|
|
733
703
|
display: grid;
|
|
734
704
|
grid-template-columns: auto minmax(0, 1fr);
|
|
735
705
|
grid-template-rows: 1fr;
|
|
@@ -739,10 +709,10 @@
|
|
|
739
709
|
grid-template-rows var(--_duration) var(--_easing),
|
|
740
710
|
opacity var(--_duration) var(--_easing);
|
|
741
711
|
}
|
|
742
|
-
[data-ui
|
|
712
|
+
[data-ui-page-header] > * > [data-part-header-area]:not(:has([data-part-figure])) {
|
|
743
713
|
grid-template-columns: minmax(0, 1fr);
|
|
744
714
|
}
|
|
745
|
-
[data-ui
|
|
715
|
+
[data-ui-page-header] > * > [data-part-header-area] > * {
|
|
746
716
|
min-block-size: 0;
|
|
747
717
|
}
|
|
748
718
|
|
|
@@ -752,26 +722,24 @@
|
|
|
752
722
|
* offset is what hides the area — a 0fr row there would shorten the root
|
|
753
723
|
* under the reader and jump the scroll by the area's height.
|
|
754
724
|
*/
|
|
755
|
-
[data-ui
|
|
756
|
-
> *
|
|
757
|
-
> [data-part='header-area'] {
|
|
725
|
+
[data-ui-page-header]:not([data-expanded]):not([data-scrolled]) > * > [data-part-header-area] {
|
|
758
726
|
grid-template-rows: 0fr;
|
|
759
727
|
opacity: 0;
|
|
760
728
|
}
|
|
761
|
-
[data-ui
|
|
729
|
+
[data-ui-page-header]:not([data-expanded]):not([data-scrolled])
|
|
762
730
|
> *
|
|
763
|
-
> [data-part
|
|
731
|
+
> [data-part-header-area]
|
|
764
732
|
> * {
|
|
765
733
|
overflow: clip;
|
|
766
734
|
}
|
|
767
735
|
|
|
768
|
-
[data-ui
|
|
736
|
+
[data-ui-page-header] > * > [data-part-header-area] > [data-part-figure] {
|
|
769
737
|
display: flex;
|
|
770
738
|
padding-block-end: var(--_padding-block);
|
|
771
739
|
padding-inline-end: var(--slotted-space-6, 1rem);
|
|
772
740
|
}
|
|
773
741
|
|
|
774
|
-
[data-ui
|
|
742
|
+
[data-ui-page-header] > * > [data-part-header-area] > [data-part-content] {
|
|
775
743
|
display: flex;
|
|
776
744
|
flex-direction: column;
|
|
777
745
|
gap: var(--_gap);
|
|
@@ -779,11 +747,11 @@
|
|
|
779
747
|
padding-block-end: var(--_padding-block);
|
|
780
748
|
}
|
|
781
749
|
|
|
782
|
-
[data-ui
|
|
750
|
+
[data-ui-page-header]
|
|
783
751
|
> *
|
|
784
|
-
> [data-part
|
|
785
|
-
> [data-part
|
|
786
|
-
> [data-part
|
|
752
|
+
> [data-part-header-area]
|
|
753
|
+
> [data-part-content]
|
|
754
|
+
> [data-part-description] {
|
|
787
755
|
-webkit-box-orient: vertical;
|
|
788
756
|
color: var(--_muted);
|
|
789
757
|
display: -webkit-box;
|
|
@@ -798,14 +766,14 @@
|
|
|
798
766
|
|
|
799
767
|
/* The half pill the header area's columns keep clear of the edge; see the
|
|
800
768
|
title area's reservation above. After the columns' own rules, so it wins. */
|
|
801
|
-
[data-ui
|
|
769
|
+
[data-ui-page-header]:has([data-part-controls] > *)
|
|
802
770
|
> *
|
|
803
|
-
> [data-part
|
|
804
|
-
> [data-part
|
|
805
|
-
[data-ui
|
|
771
|
+
> [data-part-header-area]
|
|
772
|
+
> [data-part-figure],
|
|
773
|
+
[data-ui-page-header]:has([data-part-controls] > *)
|
|
806
774
|
> *
|
|
807
|
-
> [data-part
|
|
808
|
-
> [data-part
|
|
775
|
+
> [data-part-header-area]
|
|
776
|
+
> [data-part-content] {
|
|
809
777
|
padding-block-end: calc(var(--_padding-block) + var(--_control-size) / 2);
|
|
810
778
|
}
|
|
811
779
|
|
|
@@ -814,9 +782,9 @@
|
|
|
814
782
|
* reserved would keep the area 27 pixels tall: the reservation goes with
|
|
815
783
|
* the content, and the pill straddles the title area's own reservation.
|
|
816
784
|
*/
|
|
817
|
-
[data-ui
|
|
785
|
+
[data-ui-page-header]:not([data-expanded]):not([data-scrolled])
|
|
818
786
|
> *
|
|
819
|
-
> [data-part
|
|
787
|
+
> [data-part-header-area]
|
|
820
788
|
> * {
|
|
821
789
|
padding-block: 0;
|
|
822
790
|
}
|
|
@@ -834,7 +802,7 @@
|
|
|
834
802
|
* The row is `relative` and the pill `absolute`, so the tabs under it lay
|
|
835
803
|
* out as if it were not there; the pill overlaps their top edge.
|
|
836
804
|
*/
|
|
837
|
-
[data-ui
|
|
805
|
+
[data-ui-page-header] > * > [data-part-controls] {
|
|
838
806
|
block-size: 0;
|
|
839
807
|
position: relative;
|
|
840
808
|
/* Above the title area, and above the wait drawn on the same edge. */
|
|
@@ -847,16 +815,14 @@
|
|
|
847
815
|
* Without tabs the root's edge is where the pill sits, and no second rule
|
|
848
816
|
* is drawn.
|
|
849
817
|
*/
|
|
850
|
-
[data-ui
|
|
851
|
-
> *
|
|
852
|
-
> [data-part='controls']::before {
|
|
818
|
+
[data-ui-page-header]:has(> * > [data-part-tabs]:not(:empty)) > * > [data-part-controls]::before {
|
|
853
819
|
border-block-start: var(--_rule-size) solid var(--_rule);
|
|
854
820
|
content: '';
|
|
855
821
|
inset-block-start: 0;
|
|
856
822
|
inset-inline: -50vw;
|
|
857
823
|
position: absolute;
|
|
858
824
|
}
|
|
859
|
-
[data-ui
|
|
825
|
+
[data-ui-page-header] > * > [data-part-controls] > * {
|
|
860
826
|
/* The pill is a control on the hairline: it keeps the surface in every variant. */
|
|
861
827
|
background-color: var(--_surface);
|
|
862
828
|
border: var(--_rule-size) solid var(--_rule);
|
|
@@ -879,8 +845,8 @@
|
|
|
879
845
|
* and nothing else does; press goes one step further; both hold back for a
|
|
880
846
|
* disabled control.
|
|
881
847
|
*/
|
|
882
|
-
[data-ui
|
|
883
|
-
[data-ui
|
|
848
|
+
[data-ui-page-header] > * > [data-part-controls] > * > [data-part-toggle],
|
|
849
|
+
[data-ui-page-header] > * > [data-part-controls] > * > [data-part-pin] {
|
|
884
850
|
/* One step above the nav row's arrow: a mark on a hairline pill reads
|
|
885
851
|
thin at the small step, and the reviewer asked for weight. The marks
|
|
886
852
|
are the Glyph elements the bindings render — `chevron-down` in the
|
|
@@ -906,20 +872,15 @@
|
|
|
906
872
|
background-color var(--slotted-duration-short) var(--_easing),
|
|
907
873
|
color var(--slotted-duration-short) var(--_easing);
|
|
908
874
|
}
|
|
909
|
-
[data-ui
|
|
910
|
-
> *
|
|
911
|
-
> [data-part='controls']
|
|
912
|
-
> *
|
|
913
|
-
> [data-part='toggle']
|
|
914
|
-
> [data-ui='icon'] {
|
|
875
|
+
[data-ui-page-header] > * > [data-part-controls] > * > [data-part-toggle] > [data-ui-icon] {
|
|
915
876
|
transition: rotate var(--slotted-duration-short) var(--_easing);
|
|
916
877
|
}
|
|
917
|
-
[data-ui
|
|
878
|
+
[data-ui-page-header][data-expanded]
|
|
918
879
|
> *
|
|
919
|
-
> [data-part
|
|
880
|
+
> [data-part-controls]
|
|
920
881
|
> *
|
|
921
|
-
> [data-part
|
|
922
|
-
> [data-ui
|
|
882
|
+
> [data-part-toggle]
|
|
883
|
+
> [data-ui-icon] {
|
|
923
884
|
rotate: 180deg;
|
|
924
885
|
}
|
|
925
886
|
/**
|
|
@@ -929,54 +890,38 @@
|
|
|
929
890
|
* read, so the pin is not offered — the binding writes the fact and lets a
|
|
930
891
|
* held header go — and below 600 pixels the sheet hides it on its own.
|
|
931
892
|
*/
|
|
932
|
-
[data-ui
|
|
893
|
+
[data-ui-page-header][data-tall] > * > [data-part-controls] > * > [data-part-pin] {
|
|
933
894
|
display: none;
|
|
934
895
|
}
|
|
935
|
-
[data-ui
|
|
896
|
+
[data-ui-page-header] > * > [data-part-controls] > * > [data-part-pin][data-pressed] {
|
|
936
897
|
background-color: var(--slotted-tone-accent-surface, transparent);
|
|
937
898
|
color: var(--slotted-tone-accent-text, LinkText);
|
|
938
899
|
}
|
|
939
|
-
[data-ui
|
|
900
|
+
[data-ui-page-header]
|
|
940
901
|
> *
|
|
941
|
-
> [data-part
|
|
902
|
+
> [data-part-controls]
|
|
942
903
|
> *
|
|
943
|
-
> [data-part
|
|
904
|
+
> [data-part-pin][data-pressed]:not(:disabled):hover {
|
|
944
905
|
background-color: var(--slotted-tone-accent-subtle-hover, ButtonFace);
|
|
945
906
|
color: var(--slotted-tone-accent-text, LinkText);
|
|
946
907
|
}
|
|
947
908
|
|
|
948
|
-
[data-ui
|
|
949
|
-
|
|
950
|
-
> [data-part='controls']
|
|
951
|
-
> *
|
|
952
|
-
> [data-part='toggle']:not(:disabled):hover,
|
|
953
|
-
[data-ui='page-header']
|
|
954
|
-
> *
|
|
955
|
-
> [data-part='controls']
|
|
956
|
-
> *
|
|
957
|
-
> [data-part='pin']:not(:disabled):hover {
|
|
909
|
+
[data-ui-page-header] > * > [data-part-controls] > * > [data-part-toggle]:not(:disabled):hover,
|
|
910
|
+
[data-ui-page-header] > * > [data-part-controls] > * > [data-part-pin]:not(:disabled):hover {
|
|
958
911
|
background-color: var(--slotted-tone-secondary-subtle-hover, ButtonFace);
|
|
959
912
|
color: var(--_text);
|
|
960
913
|
}
|
|
961
|
-
[data-ui
|
|
962
|
-
|
|
963
|
-
> [data-part='controls']
|
|
964
|
-
> *
|
|
965
|
-
> [data-part='toggle']:not(:disabled):active,
|
|
966
|
-
[data-ui='page-header']
|
|
967
|
-
> *
|
|
968
|
-
> [data-part='controls']
|
|
969
|
-
> *
|
|
970
|
-
> [data-part='pin']:not(:disabled):active {
|
|
914
|
+
[data-ui-page-header] > * > [data-part-controls] > * > [data-part-toggle]:not(:disabled):active,
|
|
915
|
+
[data-ui-page-header] > * > [data-part-controls] > * > [data-part-pin]:not(:disabled):active {
|
|
971
916
|
background-color: var(--slotted-tone-secondary-subtle-active, ButtonFace);
|
|
972
917
|
}
|
|
973
|
-
[data-ui
|
|
974
|
-
[data-ui
|
|
918
|
+
[data-ui-page-header] > * > [data-part-controls] > * > [data-part-toggle]:focus-visible,
|
|
919
|
+
[data-ui-page-header] > * > [data-part-controls] > * > [data-part-pin]:focus-visible {
|
|
975
920
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
976
921
|
outline-offset: var(--slotted-focus-ring-offset, 2px);
|
|
977
922
|
}
|
|
978
|
-
[data-ui
|
|
979
|
-
[data-ui
|
|
923
|
+
[data-ui-page-header] > * > [data-part-controls] > * > [data-part-toggle]:disabled,
|
|
924
|
+
[data-ui-page-header] > * > [data-part-controls] > * > [data-part-pin]:disabled {
|
|
980
925
|
color: var(--slotted-disabled-foreground, GrayText);
|
|
981
926
|
cursor: default;
|
|
982
927
|
}
|
|
@@ -988,18 +933,18 @@
|
|
|
988
933
|
* why it needs no sticky of its own. The pill above it needs the room its
|
|
989
934
|
* lower half takes, so the slot starts half a control down.
|
|
990
935
|
*/
|
|
991
|
-
[data-ui
|
|
936
|
+
[data-ui-page-header] > * > [data-part-tabs] {
|
|
992
937
|
/* The root's bottom edge is the tabs' track: one line, the whole width. */
|
|
993
938
|
--slotted-tabs-track-color: transparent;
|
|
994
939
|
|
|
995
940
|
min-inline-size: 0;
|
|
996
941
|
padding-block-start: calc(var(--_control-size) / 2 + var(--slotted-space-2, 0.25rem));
|
|
997
942
|
}
|
|
998
|
-
[data-ui
|
|
943
|
+
[data-ui-page-header] > * > [data-part-tabs]:empty {
|
|
999
944
|
display: none;
|
|
1000
945
|
}
|
|
1001
946
|
/* Without a pill the tabs sit on the rule. */
|
|
1002
|
-
[data-ui
|
|
947
|
+
[data-ui-page-header] > * > [data-part-controls]:empty + [data-part-tabs] {
|
|
1003
948
|
padding-block-start: 0;
|
|
1004
949
|
}
|
|
1005
950
|
|
|
@@ -1016,13 +961,13 @@
|
|
|
1016
961
|
* well and comes later. It is honoured on parts, which is where a consumer
|
|
1017
962
|
* writes it.
|
|
1018
963
|
*/
|
|
1019
|
-
[data-ui
|
|
964
|
+
[data-ui-page-header][data-expanded]
|
|
1020
965
|
> *
|
|
1021
|
-
> [data-part
|
|
966
|
+
> [data-part-title-area]
|
|
1022
967
|
[data-part][data-when='snapped'][data-when],
|
|
1023
|
-
[data-ui
|
|
968
|
+
[data-ui-page-header]:not([data-expanded])
|
|
1024
969
|
> *
|
|
1025
|
-
> [data-part
|
|
970
|
+
> [data-part-title-area]
|
|
1026
971
|
[data-part][data-when='expanded'][data-when] {
|
|
1027
972
|
display: none;
|
|
1028
973
|
}
|
|
@@ -1035,31 +980,31 @@
|
|
|
1035
980
|
* of the text it replaces, which is what keeps the height still when the
|
|
1036
981
|
* title arrives.
|
|
1037
982
|
*/
|
|
1038
|
-
[data-ui
|
|
983
|
+
[data-ui-page-header][data-loading]
|
|
1039
984
|
> *
|
|
1040
|
-
> [data-part
|
|
1041
|
-
> [data-part
|
|
1042
|
-
> [data-part
|
|
1043
|
-
> [data-part
|
|
985
|
+
> [data-part-title-area]
|
|
986
|
+
> [data-part-title-row]
|
|
987
|
+
> [data-part-title]
|
|
988
|
+
> [data-part-heading] {
|
|
1044
989
|
/* The width a title has, and no growth: grown, the heading pushed the
|
|
1045
990
|
marks to the far end and they jumped back beside it when the title
|
|
1046
991
|
arrived. The bar is what the words will be. */
|
|
1047
992
|
--slotted-skeleton-inline-size: 24ch;
|
|
1048
993
|
flex: 0 1 auto;
|
|
1049
994
|
}
|
|
1050
|
-
[data-ui
|
|
995
|
+
[data-ui-page-header][data-loading]
|
|
1051
996
|
> *
|
|
1052
|
-
> [data-part
|
|
1053
|
-
> [data-part
|
|
1054
|
-
> [data-part
|
|
1055
|
-
> [data-part
|
|
997
|
+
> [data-part-title-area]
|
|
998
|
+
> [data-part-title-row]
|
|
999
|
+
> [data-part-title]
|
|
1000
|
+
> [data-part-subheading] {
|
|
1056
1001
|
--slotted-skeleton-inline-size: 32ch;
|
|
1057
1002
|
}
|
|
1058
|
-
[data-ui
|
|
1003
|
+
[data-ui-page-header][data-loading]
|
|
1059
1004
|
> *
|
|
1060
|
-
> [data-part
|
|
1061
|
-
> [data-part
|
|
1062
|
-
> [data-part
|
|
1005
|
+
> [data-part-header-area]
|
|
1006
|
+
> [data-part-content]
|
|
1007
|
+
> [data-part-description] {
|
|
1063
1008
|
--slotted-skeleton-inline-size: 40ch;
|
|
1064
1009
|
}
|
|
1065
1010
|
|
|
@@ -1085,7 +1030,7 @@
|
|
|
1085
1030
|
* whose ground would cover the bar's upper pixel once the area has slid
|
|
1086
1031
|
* under the title; below the controls, whose pill straddles the same line.
|
|
1087
1032
|
*/
|
|
1088
|
-
[data-ui
|
|
1033
|
+
[data-ui-page-header] > * > [data-part-progress] {
|
|
1089
1034
|
block-size: var(--_rule-size);
|
|
1090
1035
|
grid-column: full;
|
|
1091
1036
|
margin-block-end: calc(-1 * var(--_rule-size));
|
|
@@ -1101,8 +1046,8 @@
|
|
|
1101
1046
|
* inside it. The second rule reads an ARIA state rather than another
|
|
1102
1047
|
* family's identity, so any region a consumer marks busy takes it.
|
|
1103
1048
|
*/
|
|
1104
|
-
[data-ui
|
|
1105
|
-
[aria-busy='true'] [data-ui
|
|
1049
|
+
[data-ui-page-header][data-loading] > * > [data-part-progress],
|
|
1050
|
+
[aria-busy='true'] [data-ui-page-header] > * > [data-part-progress] {
|
|
1106
1051
|
display: none;
|
|
1107
1052
|
}
|
|
1108
1053
|
|
|
@@ -1116,7 +1061,7 @@
|
|
|
1116
1061
|
* against the component's own width rather than the viewport.
|
|
1117
1062
|
*/
|
|
1118
1063
|
@container page-header (width < 600px) {
|
|
1119
|
-
[data-ui
|
|
1064
|
+
[data-ui-page-header] {
|
|
1120
1065
|
--_heading-size: var(
|
|
1121
1066
|
--slotted-page-header-heading-size-sm,
|
|
1122
1067
|
var(--slotted-font-size-xl, 1.125rem)
|
|
@@ -1128,29 +1073,25 @@
|
|
|
1128
1073
|
);
|
|
1129
1074
|
--_snapped-heading-line-height: var(--slotted-line-height-md, 1.5);
|
|
1130
1075
|
}
|
|
1131
|
-
[data-ui
|
|
1076
|
+
[data-ui-page-header]
|
|
1132
1077
|
> *
|
|
1133
|
-
> [data-part
|
|
1134
|
-
> [data-part
|
|
1135
|
-
> [data-part
|
|
1136
|
-
~ [data-part
|
|
1078
|
+
> [data-part-title-area]
|
|
1079
|
+
> [data-part-nav]
|
|
1080
|
+
> [data-part-back]
|
|
1081
|
+
~ [data-part-breadcrumbs] {
|
|
1137
1082
|
display: none;
|
|
1138
1083
|
}
|
|
1139
|
-
[data-ui
|
|
1084
|
+
[data-ui-page-header]
|
|
1140
1085
|
> *
|
|
1141
|
-
> [data-part
|
|
1142
|
-
> [data-part
|
|
1143
|
-
> [data-part
|
|
1086
|
+
> [data-part-title-area]
|
|
1087
|
+
> [data-part-nav]
|
|
1088
|
+
> [data-part-back]:has(~ [data-part-breadcrumbs]:not(:empty)) {
|
|
1144
1089
|
display: inline-flex;
|
|
1145
1090
|
}
|
|
1146
|
-
[data-ui
|
|
1091
|
+
[data-ui-page-header] > * > [data-part-controls] > * > [data-part-pin] {
|
|
1147
1092
|
display: none;
|
|
1148
1093
|
}
|
|
1149
|
-
[data-ui
|
|
1150
|
-
> *
|
|
1151
|
-
> [data-part='title-area']
|
|
1152
|
-
> [data-part='title-row']
|
|
1153
|
-
> [data-part='title'] {
|
|
1094
|
+
[data-ui-page-header] > * > [data-part-title-area] > [data-part-title-row] > [data-part-title] {
|
|
1154
1095
|
flex: 1 1 0;
|
|
1155
1096
|
min-inline-size: 60%;
|
|
1156
1097
|
}
|
|
@@ -1160,57 +1101,55 @@
|
|
|
1160
1101
|
* title that leaves it room, the grown box put one button at its own
|
|
1161
1102
|
* start, mid-row, off the edge every other width aligns it to.
|
|
1162
1103
|
*/
|
|
1163
|
-
[data-ui
|
|
1104
|
+
[data-ui-page-header]
|
|
1164
1105
|
> *
|
|
1165
|
-
> [data-part
|
|
1166
|
-
> [data-part
|
|
1167
|
-
> [data-part
|
|
1106
|
+
> [data-part-title-area]
|
|
1107
|
+
> [data-part-title-row]
|
|
1108
|
+
> [data-part-actions] {
|
|
1168
1109
|
flex: 1 1 auto;
|
|
1169
1110
|
justify-content: flex-end;
|
|
1170
1111
|
}
|
|
1171
1112
|
/* The marks take a line of their own under the heading: beside it their break depends on
|
|
1172
1113
|
what they say, which the waiting header cannot know, and the header grew when it landed. */
|
|
1173
|
-
[data-ui
|
|
1114
|
+
[data-ui-page-header]
|
|
1174
1115
|
> *
|
|
1175
|
-
> [data-part
|
|
1176
|
-
> [data-part
|
|
1177
|
-
> [data-part
|
|
1178
|
-
> [data-part
|
|
1116
|
+
> [data-part-title-area]
|
|
1117
|
+
> [data-part-title-row]
|
|
1118
|
+
> [data-part-title]
|
|
1119
|
+
> [data-part-marks] {
|
|
1179
1120
|
flex-basis: 100%;
|
|
1180
1121
|
}
|
|
1181
|
-
[data-ui
|
|
1122
|
+
[data-ui-page-header]
|
|
1182
1123
|
> *
|
|
1183
|
-
> [data-part
|
|
1184
|
-
> [data-part
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
> [data-part='title']
|
|
1188
|
-
> [data-part='marks'] {
|
|
1124
|
+
> [data-part-title-area]
|
|
1125
|
+
> [data-part-title-row]:has(> [data-part-actions] > [data-ui-toolbar][data-overflow='menu'])
|
|
1126
|
+
> [data-part-title]
|
|
1127
|
+
> [data-part-marks] {
|
|
1189
1128
|
grid-column: 1 / -1;
|
|
1190
1129
|
}
|
|
1191
1130
|
/* One line, as snapped: the phone has no second one to give it. */
|
|
1192
|
-
[data-ui
|
|
1131
|
+
[data-ui-page-header]
|
|
1193
1132
|
> *
|
|
1194
|
-
> [data-part
|
|
1195
|
-
> [data-part
|
|
1196
|
-
> [data-part
|
|
1197
|
-
> [data-part
|
|
1133
|
+
> [data-part-title-area]
|
|
1134
|
+
> [data-part-title-row]
|
|
1135
|
+
> [data-part-title]
|
|
1136
|
+
> [data-part-subheading] {
|
|
1198
1137
|
display: block;
|
|
1199
1138
|
text-overflow: ellipsis;
|
|
1200
1139
|
white-space: nowrap;
|
|
1201
1140
|
}
|
|
1202
|
-
[data-ui
|
|
1141
|
+
[data-ui-page-header]
|
|
1203
1142
|
> *
|
|
1204
|
-
> [data-part
|
|
1205
|
-
> [data-part
|
|
1206
|
-
> [data-part
|
|
1143
|
+
> [data-part-title-area]
|
|
1144
|
+
> [data-part-title-row]
|
|
1145
|
+
> [data-part-navigation] {
|
|
1207
1146
|
border-inline-start: 0;
|
|
1208
1147
|
padding-inline-start: 0;
|
|
1209
1148
|
}
|
|
1210
|
-
[data-ui
|
|
1149
|
+
[data-ui-page-header] > * > [data-part-header-area] {
|
|
1211
1150
|
grid-template-columns: minmax(0, 1fr);
|
|
1212
1151
|
}
|
|
1213
|
-
[data-ui
|
|
1152
|
+
[data-ui-page-header] > * > [data-part-header-area] > [data-part-figure] {
|
|
1214
1153
|
padding-block-end: var(--_gap);
|
|
1215
1154
|
padding-inline-end: 0;
|
|
1216
1155
|
}
|