@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
|
@@ -23,14 +23,10 @@
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
|
-
* Where the travelling bar of an indeterminate indicator starts and how
|
|
27
|
-
* it is, as percentages of the track
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* two things read them: the plain bar sets its inset and its length from them,
|
|
31
|
-
* and the wavy bar cuts a window out of its path at the same two numbers. One
|
|
32
|
-
* clock, read twice, is what keeps a wavy bar and a plain one travelling the
|
|
33
|
-
* same journey.
|
|
26
|
+
* Where the travelling bar of an indeterminate wavy indicator starts and how
|
|
27
|
+
* long it is, as percentages of the track: the wavy bar cuts a window out of
|
|
28
|
+
* its path at the two numbers. The plain bar travels the same journey by
|
|
29
|
+
* `translate` and `scale`, which the compositor runs.
|
|
34
30
|
*/
|
|
35
31
|
@property --slotted-progress-indicator-travel-start {
|
|
36
32
|
syntax: '<number>';
|
|
@@ -97,7 +93,7 @@
|
|
|
97
93
|
* authored stylesheet has to know which of three things it is painting, and
|
|
98
94
|
* a prop would be a fourth way to pick a component already picked.
|
|
99
95
|
*/
|
|
100
|
-
[data-ui
|
|
96
|
+
[data-ui-progress-indicator][data-part-root] {
|
|
101
97
|
/**
|
|
102
98
|
* The ink, and it is the tone's `text` role rather than its `solid` one.
|
|
103
99
|
* Two reasons, and the second is the one that decides it. The indicator is
|
|
@@ -123,8 +119,9 @@
|
|
|
123
119
|
* scheme instead, because the ink is the far end of each scheme's own
|
|
124
120
|
* range. Twenty-four per cent is measured rather than chosen: it is the
|
|
125
121
|
* lowest ratio at which the track separates from the page in all three
|
|
126
|
-
* schemes at
|
|
127
|
-
* bars does not read as a column of
|
|
122
|
+
* schemes at a 2-pixel bar, half the thinnest one this family draws,
|
|
123
|
+
* and low enough that a column of bars does not read as a column of
|
|
124
|
+
* filled bars.
|
|
128
125
|
*/
|
|
129
126
|
--_track-color: var(
|
|
130
127
|
--slotted-progress-indicator-track-color,
|
|
@@ -152,14 +149,14 @@
|
|
|
152
149
|
--_font-size: var(--slotted-control-font-size-md, 13px);
|
|
153
150
|
--_text-gap: var(--slotted-space-4, 0.5rem);
|
|
154
151
|
--_row-gap: var(--slotted-space-3, 0.375rem);
|
|
155
|
-
--_thickness: var(--slotted-progress-indicator-thickness, var(--slotted-space-
|
|
152
|
+
--_thickness: var(--slotted-progress-indicator-thickness, var(--slotted-space-3, 0.375rem));
|
|
156
153
|
--_size: var(--slotted-progress-indicator-size, var(--slotted-control-height-md, 34px));
|
|
157
154
|
--_radius: var(--slotted-progress-indicator-radius, var(--slotted-radius-full, 9999px));
|
|
158
155
|
/**
|
|
159
156
|
* M3's indicator–track gap, and the stop indicator's diameter, are both
|
|
160
157
|
* 4dp at the 4dp track. Making them one thickness is the proportional form
|
|
161
|
-
* of that decision rather than a copy of the number: a 4-pixel gap
|
|
162
|
-
*
|
|
158
|
+
* of that decision rather than a copy of the number: a fixed 4-pixel gap
|
|
159
|
+
* would be the whole `sm` bar and half the `lg` one.
|
|
163
160
|
*/
|
|
164
161
|
--_gap: var(--slotted-progress-indicator-gap, var(--_thickness));
|
|
165
162
|
|
|
@@ -230,7 +227,7 @@
|
|
|
230
227
|
* user agent's `[hidden]`, and a family that painted through its own
|
|
231
228
|
* withdrawal would flash exactly what the delay exists to prevent.
|
|
232
229
|
*/
|
|
233
|
-
[data-ui
|
|
230
|
+
[data-ui-progress-indicator][hidden] {
|
|
234
231
|
display: none;
|
|
235
232
|
}
|
|
236
233
|
|
|
@@ -252,23 +249,27 @@
|
|
|
252
249
|
* It is the same substitution `badge` and `status-indicator` make for their
|
|
253
250
|
* own neutral marks, for the same reason.
|
|
254
251
|
*/
|
|
255
|
-
[data-ui
|
|
252
|
+
[data-ui-progress-indicator][data-part-root][data-tone='secondary'] {
|
|
256
253
|
--_ink: var(--slotted-progress-indicator-indicator-color, var(--slotted-border-strong));
|
|
257
254
|
}
|
|
258
255
|
|
|
259
|
-
[data-ui
|
|
256
|
+
[data-ui-progress-indicator][data-part-root][data-tone='success'] {
|
|
260
257
|
--_ink: var(--slotted-progress-indicator-indicator-color, var(--slotted-tone-success-text));
|
|
261
258
|
}
|
|
262
259
|
|
|
263
|
-
[data-ui
|
|
260
|
+
[data-ui-progress-indicator][data-part-root][data-tone='info'] {
|
|
261
|
+
--_ink: var(--slotted-progress-indicator-indicator-color, var(--slotted-tone-info-text));
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
[data-ui-progress-indicator][data-part-root][data-tone='warning'] {
|
|
264
265
|
--_ink: var(--slotted-progress-indicator-indicator-color, var(--slotted-tone-warning-text));
|
|
265
266
|
}
|
|
266
267
|
|
|
267
|
-
[data-ui
|
|
268
|
+
[data-ui-progress-indicator][data-part-root][data-tone='danger'] {
|
|
268
269
|
--_ink: var(--slotted-progress-indicator-indicator-color, var(--slotted-tone-danger-text));
|
|
269
270
|
}
|
|
270
271
|
|
|
271
|
-
[data-ui
|
|
272
|
+
[data-ui-progress-indicator][data-part-root][data-buffered] {
|
|
272
273
|
--_buffer-color: var(
|
|
273
274
|
--slotted-progress-indicator-buffer-color,
|
|
274
275
|
color-mix(in oklab, var(--_ink) 52%, var(--slotted-surface))
|
|
@@ -278,21 +279,21 @@
|
|
|
278
279
|
/* ── Size ─────────────────────────────────────────────────────────────
|
|
279
280
|
*
|
|
280
281
|
* One axis, three geometries. The bar reads a thickness from the space
|
|
281
|
-
* scale —
|
|
282
|
+
* scale — 4, 6 and 8 pixels, so no step draws a hairline in a table cell —
|
|
282
283
|
* while the circle and the loader read the control height scale, so a
|
|
283
284
|
* spinner standing beside a button is the same height as the button at
|
|
284
285
|
* every density. Neither needs a scale of this family's own, and the
|
|
285
286
|
* component layer of the token contract stays as `avatar` left it.
|
|
286
287
|
*/
|
|
287
288
|
|
|
288
|
-
[data-ui
|
|
289
|
+
[data-ui-progress-indicator][data-part-root][data-size='sm'] {
|
|
289
290
|
--_font-size: var(--slotted-control-font-size-sm, 12px);
|
|
290
291
|
--_text-gap: var(--slotted-space-3, 0.375rem);
|
|
291
|
-
--_thickness: var(--slotted-progress-indicator-thickness, var(--slotted-space-
|
|
292
|
+
--_thickness: var(--slotted-progress-indicator-thickness, var(--slotted-space-2, 0.25rem));
|
|
292
293
|
--_size: var(--slotted-progress-indicator-size, var(--slotted-control-height-sm, 30px));
|
|
293
294
|
}
|
|
294
295
|
|
|
295
|
-
[data-ui
|
|
296
|
+
[data-ui-progress-indicator][data-part-root][data-size='lg'] {
|
|
296
297
|
--_font-size: var(--slotted-control-font-size-lg, 14px);
|
|
297
298
|
--_row-gap: var(--slotted-space-4, 0.5rem);
|
|
298
299
|
--_thickness: var(--slotted-progress-indicator-thickness, var(--slotted-space-4, 0.5rem));
|
|
@@ -312,7 +313,7 @@
|
|
|
312
313
|
* character, so a grid column sized to its content collapses to that
|
|
313
314
|
* character.
|
|
314
315
|
*/
|
|
315
|
-
[data-ui
|
|
316
|
+
[data-ui-progress-indicator] [data-part-label] {
|
|
316
317
|
color: var(--slotted-text, CanvasText);
|
|
317
318
|
min-inline-size: 0;
|
|
318
319
|
overflow-wrap: break-word;
|
|
@@ -325,7 +326,7 @@
|
|
|
325
326
|
* is the muted step, because the number annotates the bar rather than
|
|
326
327
|
* naming it.
|
|
327
328
|
*/
|
|
328
|
-
[data-ui
|
|
329
|
+
[data-ui-progress-indicator] [data-part-value] {
|
|
329
330
|
color: var(--slotted-text-muted, GrayText);
|
|
330
331
|
font-variant-numeric: tabular-nums;
|
|
331
332
|
white-space: nowrap;
|
|
@@ -343,7 +344,7 @@
|
|
|
343
344
|
* inline end, which is the right edge of an English page and the left edge
|
|
344
345
|
* of an Arabic one, with no mirrored rule to write.
|
|
345
346
|
*/
|
|
346
|
-
[data-ui
|
|
347
|
+
[data-ui-progress-indicator][data-part-root][data-shape='linear'] {
|
|
347
348
|
align-items: baseline;
|
|
348
349
|
column-gap: var(--_text-gap);
|
|
349
350
|
display: grid;
|
|
@@ -351,16 +352,16 @@
|
|
|
351
352
|
row-gap: var(--_row-gap);
|
|
352
353
|
}
|
|
353
354
|
|
|
354
|
-
[data-ui
|
|
355
|
+
[data-ui-progress-indicator][data-shape='linear'] > [data-part-label] {
|
|
355
356
|
grid-column: 1;
|
|
356
357
|
}
|
|
357
358
|
|
|
358
|
-
[data-ui
|
|
359
|
+
[data-ui-progress-indicator][data-shape='linear'] > [data-part-value] {
|
|
359
360
|
grid-column: 2;
|
|
360
361
|
justify-self: end;
|
|
361
362
|
}
|
|
362
363
|
|
|
363
|
-
[data-ui
|
|
364
|
+
[data-ui-progress-indicator][data-shape='linear'] > [data-part-track] {
|
|
364
365
|
grid-column: 1 / -1;
|
|
365
366
|
}
|
|
366
367
|
|
|
@@ -378,7 +379,7 @@
|
|
|
378
379
|
* block axis has to let a crest out. A single `clip` is what sliced the
|
|
379
380
|
* crests flat in the first capture of this family.
|
|
380
381
|
*/
|
|
381
|
-
[data-ui
|
|
382
|
+
[data-ui-progress-indicator][data-shape='linear'] [data-part-track] {
|
|
382
383
|
background-color: var(--_buffer-color);
|
|
383
384
|
block-size: var(--_thickness);
|
|
384
385
|
border-radius: var(--_radius);
|
|
@@ -396,7 +397,7 @@
|
|
|
396
397
|
* notch — the shape M3 took in 2024 and the one no other surveyed
|
|
397
398
|
* implementation draws.
|
|
398
399
|
*/
|
|
399
|
-
[data-ui
|
|
400
|
+
[data-ui-progress-indicator][data-shape='linear'] [data-part-track]::before {
|
|
400
401
|
background-color: var(--_track-color);
|
|
401
402
|
border-radius: inherit;
|
|
402
403
|
content: '';
|
|
@@ -412,7 +413,7 @@
|
|
|
412
413
|
* and it is the detail that makes a bar at four per cent read as four per
|
|
413
414
|
* cent of something rather than as a stray mark.
|
|
414
415
|
*/
|
|
415
|
-
[data-ui
|
|
416
|
+
[data-ui-progress-indicator][data-shape='linear'] [data-part-track]::after {
|
|
416
417
|
background-color: var(--_ink);
|
|
417
418
|
border-radius: var(--slotted-radius-full, 9999px);
|
|
418
419
|
content: '';
|
|
@@ -422,7 +423,7 @@
|
|
|
422
423
|
position: absolute;
|
|
423
424
|
}
|
|
424
425
|
|
|
425
|
-
[data-ui
|
|
426
|
+
[data-ui-progress-indicator][data-shape='linear'] [data-part-indicator] {
|
|
426
427
|
background-color: var(--_ink);
|
|
427
428
|
block-size: 100%;
|
|
428
429
|
border-radius: inherit;
|
|
@@ -445,47 +446,95 @@
|
|
|
445
446
|
* way along it. Keyed on the number, it goes when the fill arrives.
|
|
446
447
|
*/
|
|
447
448
|
@container style(--slotted-progress-indicator-percent: 100) {
|
|
448
|
-
[data-ui
|
|
449
|
-
[data-ui
|
|
449
|
+
[data-ui-progress-indicator][data-shape='linear'] [data-part-track]::before,
|
|
450
|
+
[data-ui-progress-indicator][data-shape='linear'] [data-part-track]::after {
|
|
450
451
|
content: none;
|
|
451
452
|
}
|
|
452
453
|
}
|
|
453
454
|
|
|
454
455
|
/**
|
|
455
456
|
* Indeterminate: the whole track shows, there is no end to mark, and the
|
|
456
|
-
* indicator becomes a short bar travelling the length of it.
|
|
457
|
-
* positioned so the travel is one property — the decision the family this
|
|
458
|
-
* one replaces recorded, and `inset-inline-start` is why a translation runs
|
|
459
|
-
* the way the document reads instead of the way the screen does.
|
|
457
|
+
* indicator becomes a short bar travelling the length of it.
|
|
460
458
|
*/
|
|
461
|
-
[data-ui
|
|
462
|
-
[data-part='track']::before {
|
|
459
|
+
[data-ui-progress-indicator][data-shape='linear'][data-indeterminate] [data-part-track]::before {
|
|
463
460
|
inset-inline-start: 0;
|
|
464
461
|
}
|
|
465
462
|
|
|
466
|
-
[data-ui
|
|
467
|
-
[data-part='track']::after {
|
|
463
|
+
[data-ui-progress-indicator][data-shape='linear'][data-indeterminate] [data-part-track]::after {
|
|
468
464
|
content: none;
|
|
469
465
|
}
|
|
470
466
|
|
|
471
|
-
|
|
472
|
-
|
|
467
|
+
/**
|
|
468
|
+
* The bar is the whole track, scaled to its length from the inline start
|
|
469
|
+
* and translated along it. `translate` and `scale` are the only properties
|
|
470
|
+
* the animation moves, so the compositor runs it: the bar is the sign that
|
|
471
|
+
* the page is busy, and a bar moved by its inset and its width needed a
|
|
472
|
+
* layout on the main thread every frame and froze under any long task.
|
|
473
|
+
* Two properties with keyframes of their own keep the journey the
|
|
474
|
+
* registered numbers draw for the wavy bar: the travel eases once from end
|
|
475
|
+
* to end, the length swells and shrinks in two steps.
|
|
476
|
+
*/
|
|
477
|
+
[data-ui-progress-indicator][data-shape='linear'][data-indeterminate]:not([data-wave])
|
|
478
|
+
[data-part-indicator] {
|
|
479
|
+
animation: slotted-progress-indicator-glide var(--slotted-duration-loop-slow)
|
|
473
480
|
var(--slotted-easing-standard) infinite;
|
|
474
|
-
inline-size:
|
|
481
|
+
inline-size: 100%;
|
|
475
482
|
inset-block: 0;
|
|
476
|
-
inset-inline-start:
|
|
483
|
+
inset-inline-start: 0;
|
|
477
484
|
position: absolute;
|
|
485
|
+
scale: 0.14 1;
|
|
486
|
+
transform-origin: left;
|
|
487
|
+
translate: -14% 0;
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
/* Translation and origin are physical: a right-to-left track runs the
|
|
491
|
+
mirrored journey from its right edge. */
|
|
492
|
+
[data-ui-progress-indicator][data-shape='linear'][data-indeterminate]:not([data-wave])
|
|
493
|
+
[data-part-indicator]:dir(rtl) {
|
|
494
|
+
animation-name: slotted-progress-indicator-glide-rtl;
|
|
495
|
+
transform-origin: right;
|
|
496
|
+
translate: 14% 0;
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
@keyframes slotted-progress-indicator-glide {
|
|
500
|
+
0% {
|
|
501
|
+
scale: 0.14 1;
|
|
502
|
+
translate: -14% 0;
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
45% {
|
|
506
|
+
scale: 0.46 1;
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
100% {
|
|
510
|
+
scale: 0.14 1;
|
|
511
|
+
translate: 100% 0;
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
@keyframes slotted-progress-indicator-glide-rtl {
|
|
516
|
+
0% {
|
|
517
|
+
scale: 0.14 1;
|
|
518
|
+
translate: 14% 0;
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
45% {
|
|
522
|
+
scale: 0.46 1;
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
100% {
|
|
526
|
+
scale: 0.14 1;
|
|
527
|
+
translate: -100% 0;
|
|
528
|
+
}
|
|
478
529
|
}
|
|
479
530
|
|
|
480
531
|
/**
|
|
481
|
-
*
|
|
482
|
-
*
|
|
483
|
-
*
|
|
484
|
-
*
|
|
485
|
-
*
|
|
486
|
-
*
|
|
487
|
-
* The keyframes move the two registered numbers rather than the box, so the
|
|
488
|
-
* wavy bar can cut its window at the same two numbers.
|
|
532
|
+
* The journey as two registered numbers, for the wavy bar, which cuts a
|
|
533
|
+
* window out of its path at them: a short bar that grows as it crosses and
|
|
534
|
+
* shrinks as it leaves, M3's disjoint indicator drawn with one bar rather
|
|
535
|
+
* than two. The width changes because a bar of constant length reads as a
|
|
536
|
+
* scrollbar being dragged; a bar that swells in the middle of its journey
|
|
537
|
+
* reads as something in progress. `glide` draws the same journey.
|
|
489
538
|
*/
|
|
490
539
|
@keyframes slotted-progress-indicator-travel {
|
|
491
540
|
0% {
|
|
@@ -514,7 +563,7 @@
|
|
|
514
563
|
* The stacking layer is a token, so an application's own stacking contract
|
|
515
564
|
* still decides. Every router progress bar in the field types a number here.
|
|
516
565
|
*/
|
|
517
|
-
[data-ui
|
|
566
|
+
[data-ui-progress-indicator][data-part-root][data-placement='page'] {
|
|
518
567
|
--_radius: var(--slotted-progress-indicator-radius, var(--slotted-radius-none, 0px));
|
|
519
568
|
--_track-color: var(--slotted-progress-indicator-track-color, transparent);
|
|
520
569
|
--_gap: var(--slotted-progress-indicator-gap, 0);
|
|
@@ -525,7 +574,7 @@
|
|
|
525
574
|
z-index: var(--slotted-z-index-sticky, 100);
|
|
526
575
|
}
|
|
527
576
|
|
|
528
|
-
[data-ui
|
|
577
|
+
[data-ui-progress-indicator][data-placement='page'] [data-part-track]::after {
|
|
529
578
|
content: none;
|
|
530
579
|
}
|
|
531
580
|
|
|
@@ -547,7 +596,7 @@
|
|
|
547
596
|
* the edge. `app-shell` writes it for a content region that scrolls with
|
|
548
597
|
* the document. It is a composition value, not a design token.
|
|
549
598
|
*/
|
|
550
|
-
[data-ui
|
|
599
|
+
[data-ui-progress-indicator][data-part-root]:is(
|
|
551
600
|
[data-placement='edge-start'],
|
|
552
601
|
[data-placement='edge-end']
|
|
553
602
|
) {
|
|
@@ -559,16 +608,16 @@
|
|
|
559
608
|
position: var(--slotted-progress-indicator-position, absolute);
|
|
560
609
|
}
|
|
561
610
|
|
|
562
|
-
[data-ui
|
|
611
|
+
[data-ui-progress-indicator][data-part-root][data-placement='edge-start'] {
|
|
563
612
|
inset-block-start: 0;
|
|
564
613
|
}
|
|
565
614
|
|
|
566
|
-
[data-ui
|
|
615
|
+
[data-ui-progress-indicator][data-part-root][data-placement='edge-end'] {
|
|
567
616
|
inset-block-end: 0;
|
|
568
617
|
}
|
|
569
618
|
|
|
570
|
-
[data-ui
|
|
571
|
-
[data-part
|
|
619
|
+
[data-ui-progress-indicator]:is([data-placement='edge-start'], [data-placement='edge-end'])
|
|
620
|
+
[data-part-track]::after {
|
|
572
621
|
content: none;
|
|
573
622
|
}
|
|
574
623
|
|
|
@@ -595,7 +644,7 @@
|
|
|
595
644
|
* back into its edge rather than on the frame it is asked to. The theme
|
|
596
645
|
* collapses both steps under `prefers-reduced-motion`.
|
|
597
646
|
*/
|
|
598
|
-
[data-ui
|
|
647
|
+
[data-ui-progress-indicator][data-part-root]:is(
|
|
599
648
|
[data-placement='page'],
|
|
600
649
|
[data-placement='edge-start'],
|
|
601
650
|
[data-placement='edge-end']
|
|
@@ -615,11 +664,11 @@
|
|
|
615
664
|
}
|
|
616
665
|
}
|
|
617
666
|
|
|
618
|
-
[data-ui
|
|
667
|
+
[data-ui-progress-indicator][data-part-root][data-placement='edge-end'] {
|
|
619
668
|
--_withdrawn: inset(100% 0 0 0);
|
|
620
669
|
}
|
|
621
670
|
|
|
622
|
-
[data-ui
|
|
671
|
+
[data-ui-progress-indicator][data-part-root]:is(
|
|
623
672
|
[data-placement='page'],
|
|
624
673
|
[data-placement='edge-start'],
|
|
625
674
|
[data-placement='edge-end']
|
|
@@ -641,8 +690,8 @@
|
|
|
641
690
|
* centred in it would be four-pixel type. Ant Design and MUI both put it
|
|
642
691
|
* inside because both draw rings twice this size.
|
|
643
692
|
*/
|
|
644
|
-
[data-ui
|
|
645
|
-
[data-ui
|
|
693
|
+
[data-ui-progress-indicator][data-part-root][data-shape='circular'],
|
|
694
|
+
[data-ui-progress-indicator][data-part-root][data-shape='morph'] {
|
|
646
695
|
align-items: center;
|
|
647
696
|
column-gap: var(--_text-gap);
|
|
648
697
|
display: inline-flex;
|
|
@@ -656,7 +705,7 @@
|
|
|
656
705
|
* and this family's circle are the same object, and Button can stop drawing
|
|
657
706
|
* its own.
|
|
658
707
|
*/
|
|
659
|
-
[data-ui
|
|
708
|
+
[data-ui-progress-indicator][data-shape='circular'] svg {
|
|
660
709
|
--_stroke: var(--slotted-progress-indicator-stroke, 6);
|
|
661
710
|
|
|
662
711
|
block-size: var(--_size);
|
|
@@ -668,8 +717,8 @@
|
|
|
668
717
|
rotate: -90deg;
|
|
669
718
|
}
|
|
670
719
|
|
|
671
|
-
[data-ui
|
|
672
|
-
[data-ui
|
|
720
|
+
[data-ui-progress-indicator][data-shape='circular'] [data-part-track],
|
|
721
|
+
[data-ui-progress-indicator][data-shape='circular'] [data-part-indicator] {
|
|
673
722
|
fill: none;
|
|
674
723
|
stroke-linecap: round;
|
|
675
724
|
stroke-width: var(--_stroke);
|
|
@@ -679,7 +728,7 @@
|
|
|
679
728
|
it by a second smoothing. */
|
|
680
729
|
}
|
|
681
730
|
|
|
682
|
-
[data-ui
|
|
731
|
+
[data-ui-progress-indicator][data-shape='circular'] [data-part-indicator] {
|
|
683
732
|
stroke: var(--_ink);
|
|
684
733
|
stroke-dasharray: var(--_percent) 100;
|
|
685
734
|
/**
|
|
@@ -697,7 +746,7 @@
|
|
|
697
746
|
* path is four device pixels of a 44-pixel ring, which is the gap M3
|
|
698
747
|
* specifies for the bar.
|
|
699
748
|
*/
|
|
700
|
-
[data-ui
|
|
749
|
+
[data-ui-progress-indicator][data-shape='circular'] [data-part-track] {
|
|
701
750
|
/**
|
|
702
751
|
* Three and two tenths of the path is four device pixels of a 44-pixel
|
|
703
752
|
* ring, and it collapses to nothing at nought per cent by the same clamp
|
|
@@ -719,7 +768,7 @@
|
|
|
719
768
|
* travel, not the stated value.
|
|
720
769
|
*/
|
|
721
770
|
@container style(--slotted-progress-indicator-percent: 100) {
|
|
722
|
-
[data-ui
|
|
771
|
+
[data-ui-progress-indicator][data-shape='circular'] [data-part-track] {
|
|
723
772
|
stroke: transparent;
|
|
724
773
|
}
|
|
725
774
|
}
|
|
@@ -734,16 +783,15 @@
|
|
|
734
783
|
* do not divide into each other, so the sweep never repeats the same shape
|
|
735
784
|
* in the same orientation.
|
|
736
785
|
*/
|
|
737
|
-
[data-ui
|
|
786
|
+
[data-ui-progress-indicator][data-shape='circular'][data-indeterminate] [data-part-track] {
|
|
738
787
|
stroke: transparent;
|
|
739
788
|
}
|
|
740
789
|
|
|
741
|
-
[data-ui
|
|
790
|
+
[data-ui-progress-indicator][data-shape='circular'][data-indeterminate] svg {
|
|
742
791
|
animation: slotted-progress-indicator-turn var(--slotted-duration-loop) linear infinite;
|
|
743
792
|
}
|
|
744
793
|
|
|
745
|
-
[data-ui
|
|
746
|
-
[data-part='indicator'] {
|
|
794
|
+
[data-ui-progress-indicator][data-shape='circular'][data-indeterminate] [data-part-indicator] {
|
|
747
795
|
animation: slotted-progress-indicator-sweep var(--slotted-duration-loop-slow)
|
|
748
796
|
var(--slotted-easing-standard) infinite;
|
|
749
797
|
stroke-opacity: 1;
|
|
@@ -817,7 +865,7 @@
|
|
|
817
865
|
* at fast and slow loads, and the geometry below carries the sign once per
|
|
818
866
|
* shape.
|
|
819
867
|
*/
|
|
820
|
-
[data-ui
|
|
868
|
+
[data-ui-progress-indicator][data-part-root][data-wave] {
|
|
821
869
|
--slotted-progress-indicator-wave-amplitude: min(
|
|
822
870
|
clamp(0, calc((var(--_percent) - 6) / 10), 1),
|
|
823
871
|
clamp(0, calc((96 - var(--_percent)) / 12), 1)
|
|
@@ -831,7 +879,7 @@
|
|
|
831
879
|
* throughout, which is what M3 draws: `hasWavyEffect(isDeterminate)` is the
|
|
832
880
|
* flag that separates the two.
|
|
833
881
|
*/
|
|
834
|
-
[data-ui
|
|
882
|
+
[data-ui-progress-indicator][data-part-root][data-wave][data-indeterminate] {
|
|
835
883
|
--slotted-progress-indicator-wave-amplitude: 1;
|
|
836
884
|
}
|
|
837
885
|
|
|
@@ -861,12 +909,12 @@
|
|
|
861
909
|
* container the path measures itself against: `cqi` is how a dash stated in
|
|
862
910
|
* thicknesses learns how many thicknesses the track is.
|
|
863
911
|
*/
|
|
864
|
-
[data-ui
|
|
912
|
+
[data-ui-progress-indicator][data-shape='linear'][data-wave] [data-part-track] {
|
|
865
913
|
container-type: inline-size;
|
|
866
914
|
margin-block: calc(0.75 * var(--_thickness));
|
|
867
915
|
}
|
|
868
916
|
|
|
869
|
-
[data-ui
|
|
917
|
+
[data-ui-progress-indicator][data-shape='linear'][data-wave] [data-part-indicator] {
|
|
870
918
|
/** One wavelength, in thicknesses. */
|
|
871
919
|
--_wave-length: 10;
|
|
872
920
|
|
|
@@ -887,7 +935,7 @@
|
|
|
887
935
|
* anchored to the inline start, and its centre is the one point that stays
|
|
888
936
|
* inside the track.
|
|
889
937
|
*/
|
|
890
|
-
[data-ui
|
|
938
|
+
[data-ui-progress-indicator][data-shape='linear'][data-wave] [data-part-indicator]:dir(rtl) {
|
|
891
939
|
transform: scaleX(-1);
|
|
892
940
|
}
|
|
893
941
|
|
|
@@ -914,7 +962,7 @@
|
|
|
914
962
|
* one thickness, and at nought it is not painted at all, by the same clamp
|
|
915
963
|
* the ring uses on its own cap.
|
|
916
964
|
*/
|
|
917
|
-
[data-ui
|
|
965
|
+
[data-ui-progress-indicator][data-shape='linear'][data-wave] [data-part-indicator] path {
|
|
918
966
|
/** The track's length, in thicknesses: a ratio of two lengths, read as a number. */
|
|
919
967
|
--_track-units: tan(atan2(100cqi, var(--_thickness)));
|
|
920
968
|
--_window-start: 0;
|
|
@@ -940,8 +988,8 @@
|
|
|
940
988
|
* says at every moment of the fill's own transition. An indeterminate bar
|
|
941
989
|
* carries a different path and is left to the markup.
|
|
942
990
|
*/
|
|
943
|
-
[data-ui
|
|
944
|
-
[data-part
|
|
991
|
+
[data-ui-progress-indicator][data-shape='linear'][data-wave]:not([data-indeterminate])
|
|
992
|
+
[data-part-indicator]
|
|
945
993
|
path {
|
|
946
994
|
animation: slotted-progress-indicator-flatten-bar var(--_scrub) var(--_taper) both paused;
|
|
947
995
|
animation-delay: calc(
|
|
@@ -954,16 +1002,16 @@
|
|
|
954
1002
|
* is unknown — `IndeterminateActiveWaveWavelength` — so the markup carries
|
|
955
1003
|
* the tighter path, and the window is the travelling bar's own two numbers.
|
|
956
1004
|
*/
|
|
957
|
-
[data-ui
|
|
958
|
-
[data-part
|
|
1005
|
+
[data-ui-progress-indicator][data-shape='linear'][data-wave][data-indeterminate]
|
|
1006
|
+
[data-part-indicator] {
|
|
959
1007
|
--_wave-length: 5;
|
|
960
1008
|
|
|
961
1009
|
animation: slotted-progress-indicator-travel var(--slotted-duration-loop-slow)
|
|
962
1010
|
var(--slotted-easing-standard) infinite;
|
|
963
1011
|
}
|
|
964
1012
|
|
|
965
|
-
[data-ui
|
|
966
|
-
[data-part
|
|
1013
|
+
[data-ui-progress-indicator][data-shape='linear'][data-wave][data-indeterminate]
|
|
1014
|
+
[data-part-indicator]
|
|
967
1015
|
path {
|
|
968
1016
|
--_window-start: var(--slotted-progress-indicator-travel-start);
|
|
969
1017
|
--_window-size: var(--slotted-progress-indicator-travel-size);
|
|
@@ -983,7 +1031,7 @@
|
|
|
983
1031
|
* wavy keeps its weight, and the crest may pass the viewBox by the tenth of
|
|
984
1032
|
* a unit the stroke needs.
|
|
985
1033
|
*/
|
|
986
|
-
[data-ui
|
|
1034
|
+
[data-ui-progress-indicator][data-shape='circular'][data-wave] svg {
|
|
987
1035
|
--_stroke: var(--slotted-progress-indicator-stroke, 5);
|
|
988
1036
|
|
|
989
1037
|
block-size: calc(1.2 * var(--_size));
|
|
@@ -1009,7 +1057,7 @@
|
|
|
1009
1057
|
* far end fell into the gap as the pattern shifted, and a full ring opened
|
|
1010
1058
|
* a hole at twelve o'clock.
|
|
1011
1059
|
*/
|
|
1012
|
-
[data-ui
|
|
1060
|
+
[data-ui-progress-indicator][data-shape='circular'][data-wave] [data-part-indicator] {
|
|
1013
1061
|
rotate: calc(-45deg * var(--slotted-progress-indicator-wave-phase));
|
|
1014
1062
|
stroke-dasharray: var(--_percent) calc(100 - var(--_percent));
|
|
1015
1063
|
stroke-dashoffset: calc(-12.5 * var(--slotted-progress-indicator-wave-phase));
|
|
@@ -1019,8 +1067,8 @@
|
|
|
1019
1067
|
transform-origin: 50% 50%;
|
|
1020
1068
|
}
|
|
1021
1069
|
|
|
1022
|
-
[data-ui
|
|
1023
|
-
[data-part
|
|
1070
|
+
[data-ui-progress-indicator][data-shape='circular'][data-wave]:not([data-indeterminate])
|
|
1071
|
+
[data-part-indicator] {
|
|
1024
1072
|
animation: slotted-progress-indicator-flatten-ring var(--_scrub) var(--_taper) both paused;
|
|
1025
1073
|
animation-delay: calc(
|
|
1026
1074
|
-1 * var(--_scrub) * (1 - var(--slotted-progress-indicator-wave-amplitude))
|
|
@@ -1045,7 +1093,7 @@
|
|
|
1045
1093
|
* each pair must share a command list, and `progress.test.ts` holds both
|
|
1046
1094
|
* copies to `@slotted/core/progress`.
|
|
1047
1095
|
*/
|
|
1048
|
-
[data-ui
|
|
1096
|
+
[data-ui-progress-indicator][data-part-root][data-wave] {
|
|
1049
1097
|
--_scrub: var(--slotted-duration-long);
|
|
1050
1098
|
--_taper: cubic-bezier(0.45, 0, 0.55, 1);
|
|
1051
1099
|
}
|
|
@@ -1089,7 +1137,7 @@
|
|
|
1089
1137
|
* never shows the same shape in the same orientation twice — which is what
|
|
1090
1138
|
* makes a five-second wait bearable to watch and a spinning ring not.
|
|
1091
1139
|
*/
|
|
1092
|
-
[data-ui
|
|
1140
|
+
[data-ui-progress-indicator][data-shape='morph'] [data-part-track] {
|
|
1093
1141
|
block-size: var(--_size);
|
|
1094
1142
|
border-radius: var(--slotted-radius-full, 9999px);
|
|
1095
1143
|
display: grid;
|
|
@@ -1105,7 +1153,7 @@
|
|
|
1105
1153
|
* pair the bar's own track holds and clears the 3:1 the loading indicator
|
|
1106
1154
|
* documentation asks for between a contained shape and its container.
|
|
1107
1155
|
*/
|
|
1108
|
-
[data-ui
|
|
1156
|
+
[data-ui-progress-indicator][data-shape='morph'][data-contained] [data-part-track] {
|
|
1109
1157
|
background-color: var(--_track-color);
|
|
1110
1158
|
}
|
|
1111
1159
|
|
|
@@ -1136,7 +1184,7 @@
|
|
|
1136
1184
|
* each target and settle. Both animations take it, at the same period and on
|
|
1137
1185
|
* the same keyframe boundaries, because in M3 they are one spring.
|
|
1138
1186
|
*/
|
|
1139
|
-
[data-ui
|
|
1187
|
+
[data-ui-progress-indicator][data-shape='morph'] [data-part-track] {
|
|
1140
1188
|
animation: slotted-progress-indicator-drift calc(2 * var(--slotted-duration-loop-slow)) linear
|
|
1141
1189
|
infinite;
|
|
1142
1190
|
}
|
|
@@ -1150,7 +1198,7 @@
|
|
|
1150
1198
|
* hurry, and a multiple of one inherits that where a fourth token would be a
|
|
1151
1199
|
* scale step added for a single family.
|
|
1152
1200
|
*/
|
|
1153
|
-
[data-ui
|
|
1201
|
+
[data-ui-progress-indicator][data-shape='morph'] [data-part-indicator] {
|
|
1154
1202
|
animation:
|
|
1155
1203
|
slotted-progress-indicator-morph calc(2 * var(--slotted-duration-loop-slow))
|
|
1156
1204
|
var(--slotted-easing-emphasized) infinite,
|
|
@@ -1176,7 +1224,7 @@
|
|
|
1176
1224
|
* pixels. `round()` is what states that, and it states it once for the three
|
|
1177
1225
|
* steps rather than as three numbers.
|
|
1178
1226
|
*/
|
|
1179
|
-
[data-ui
|
|
1227
|
+
[data-ui-progress-indicator][data-shape='morph'][data-contained] [data-part-indicator] {
|
|
1180
1228
|
--_shape: round(nearest, calc(0.79 * var(--_size)), 2px);
|
|
1181
1229
|
|
|
1182
1230
|
block-size: var(--_shape);
|
|
@@ -1468,10 +1516,10 @@
|
|
|
1468
1516
|
* `path` is left out: the wave's paths carry the paused ramp below, which
|
|
1469
1517
|
* is a value and survives.
|
|
1470
1518
|
*/
|
|
1471
|
-
[data-ui
|
|
1472
|
-
[data-ui
|
|
1473
|
-
[data-ui
|
|
1474
|
-
[data-ui
|
|
1519
|
+
[data-ui-progress-indicator][data-part-root],
|
|
1520
|
+
[data-ui-progress-indicator] [data-part-indicator]:not(path),
|
|
1521
|
+
[data-ui-progress-indicator] [data-part-track],
|
|
1522
|
+
[data-ui-progress-indicator] svg {
|
|
1475
1523
|
animation: none !important;
|
|
1476
1524
|
}
|
|
1477
1525
|
|
|
@@ -1481,19 +1529,28 @@
|
|
|
1481
1529
|
* than as a value: pinned to either end it would read as nought per cent
|
|
1482
1530
|
* or as a hundred, which is a number this indicator does not have.
|
|
1483
1531
|
*/
|
|
1484
|
-
[data-ui
|
|
1485
|
-
[data-part='indicator'] {
|
|
1532
|
+
[data-ui-progress-indicator][data-shape='linear'][data-indeterminate] [data-part-indicator] {
|
|
1486
1533
|
--slotted-progress-indicator-travel-size: 46;
|
|
1487
1534
|
--slotted-progress-indicator-travel-start: 27;
|
|
1488
1535
|
}
|
|
1489
1536
|
|
|
1537
|
+
[data-ui-progress-indicator][data-shape='linear'][data-indeterminate]:not([data-wave])
|
|
1538
|
+
[data-part-indicator] {
|
|
1539
|
+
scale: 0.46 1;
|
|
1540
|
+
translate: 27% 0;
|
|
1541
|
+
}
|
|
1542
|
+
|
|
1543
|
+
[data-ui-progress-indicator][data-shape='linear'][data-indeterminate]:not([data-wave])
|
|
1544
|
+
[data-part-indicator]:dir(rtl) {
|
|
1545
|
+
translate: -27% 0;
|
|
1546
|
+
}
|
|
1547
|
+
|
|
1490
1548
|
/**
|
|
1491
1549
|
* The same question for the arc, and the same answer: a third of the ring
|
|
1492
1550
|
* is unmistakably a fraction of something rather than a full circle or an
|
|
1493
1551
|
* empty one.
|
|
1494
1552
|
*/
|
|
1495
|
-
[data-ui
|
|
1496
|
-
[data-part='indicator'] {
|
|
1553
|
+
[data-ui-progress-indicator][data-shape='circular'][data-indeterminate] [data-part-indicator] {
|
|
1497
1554
|
stroke-dasharray: 34 100;
|
|
1498
1555
|
}
|
|
1499
1556
|
|
|
@@ -1502,7 +1559,7 @@
|
|
|
1502
1559
|
* range survives, because it is a value rather than motion: a ring at four
|
|
1503
1560
|
* per cent is a circle whether or not anything moves.
|
|
1504
1561
|
*/
|
|
1505
|
-
[data-ui
|
|
1562
|
+
[data-ui-progress-indicator][data-part-root][data-wave] {
|
|
1506
1563
|
animation: none;
|
|
1507
1564
|
}
|
|
1508
1565
|
}
|
|
@@ -1524,14 +1581,14 @@
|
|
|
1524
1581
|
* with it, and a gap is a refinement rather than a meaning.
|
|
1525
1582
|
*/
|
|
1526
1583
|
@media (forced-colors: active) {
|
|
1527
|
-
[data-ui
|
|
1584
|
+
[data-ui-progress-indicator][data-shape='linear'] [data-part-track] {
|
|
1528
1585
|
background-color: Canvas;
|
|
1529
1586
|
outline: var(--slotted-border-width-thin, 1px) solid ButtonBorder;
|
|
1530
1587
|
outline-offset: calc(-1 * var(--slotted-border-width-thin, 1px));
|
|
1531
1588
|
}
|
|
1532
1589
|
|
|
1533
|
-
[data-ui
|
|
1534
|
-
[data-ui
|
|
1590
|
+
[data-ui-progress-indicator][data-shape='linear'] [data-part-track]::before,
|
|
1591
|
+
[data-ui-progress-indicator][data-shape='linear'] [data-part-track]::after {
|
|
1535
1592
|
content: none;
|
|
1536
1593
|
}
|
|
1537
1594
|
|
|
@@ -1540,13 +1597,13 @@
|
|
|
1540
1597
|
* draws its edge in a system colour, and an outline here would be a
|
|
1541
1598
|
* second line beside the first.
|
|
1542
1599
|
*/
|
|
1543
|
-
[data-ui
|
|
1544
|
-
[data-part
|
|
1600
|
+
[data-ui-progress-indicator]:is([data-placement='edge-start'], [data-placement='edge-end'])
|
|
1601
|
+
[data-part-track] {
|
|
1545
1602
|
background-color: transparent;
|
|
1546
1603
|
outline: none;
|
|
1547
1604
|
}
|
|
1548
1605
|
|
|
1549
|
-
[data-ui
|
|
1606
|
+
[data-ui-progress-indicator] [data-part-indicator] {
|
|
1550
1607
|
background-color: Highlight;
|
|
1551
1608
|
}
|
|
1552
1609
|
|
|
@@ -1555,20 +1612,20 @@
|
|
|
1555
1612
|
* way the ring does: the box behind it stays clear and the path takes
|
|
1556
1613
|
* the highlight.
|
|
1557
1614
|
*/
|
|
1558
|
-
[data-ui
|
|
1615
|
+
[data-ui-progress-indicator][data-shape='linear'][data-wave] [data-part-indicator] {
|
|
1559
1616
|
background-color: transparent;
|
|
1560
1617
|
}
|
|
1561
1618
|
|
|
1562
|
-
[data-ui
|
|
1619
|
+
[data-ui-progress-indicator][data-shape='linear'][data-wave] [data-part-indicator] path {
|
|
1563
1620
|
stroke: Highlight;
|
|
1564
1621
|
}
|
|
1565
1622
|
|
|
1566
|
-
[data-ui
|
|
1623
|
+
[data-ui-progress-indicator][data-shape='circular'] [data-part-indicator] {
|
|
1567
1624
|
background-color: transparent;
|
|
1568
1625
|
stroke: Highlight;
|
|
1569
1626
|
}
|
|
1570
1627
|
|
|
1571
|
-
[data-ui
|
|
1628
|
+
[data-ui-progress-indicator][data-shape='circular'] [data-part-track] {
|
|
1572
1629
|
stroke: ButtonBorder;
|
|
1573
1630
|
}
|
|
1574
1631
|
|
|
@@ -1577,7 +1634,7 @@
|
|
|
1577
1634
|
* loader exists — and loses the container behind it, which in a forced
|
|
1578
1635
|
* palette would be a `Canvas` disc on a `Canvas` page.
|
|
1579
1636
|
*/
|
|
1580
|
-
[data-ui
|
|
1637
|
+
[data-ui-progress-indicator][data-shape='morph'][data-contained] [data-part-track] {
|
|
1581
1638
|
background-color: Canvas;
|
|
1582
1639
|
}
|
|
1583
1640
|
}
|