@slotted/styles 0.1.0-beta.1 → 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
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* order is the browser's locale rather than the application's. The value
|
|
15
15
|
* reaches a form through a hidden input carrying `HH:mm:ss`.
|
|
16
16
|
*/
|
|
17
|
-
[data-ui
|
|
17
|
+
[data-ui-time-field][data-part-root] {
|
|
18
18
|
/**
|
|
19
19
|
* Type, height, inline padding, gap and glyph size come from the control
|
|
20
20
|
* scales — the only ones the theme restates per density — so a time in a
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
* begin from it — the arithmetic `text-field` records, holding at every step
|
|
71
71
|
* and every density.
|
|
72
72
|
*/
|
|
73
|
-
[data-ui
|
|
73
|
+
[data-ui-time-field][data-part-root]:has(> [data-part-clear]:last-child) {
|
|
74
74
|
padding-inline-end: max(
|
|
75
75
|
0px,
|
|
76
76
|
calc(var(--_padding-inline) - (var(--_action-size) - var(--_icon-size)) / 2)
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
* and puts the time at the reading edge, so an empty field and a full one
|
|
83
83
|
* start in the same place.
|
|
84
84
|
*/
|
|
85
|
-
[data-ui
|
|
85
|
+
[data-ui-time-field] [data-part-segments] {
|
|
86
86
|
align-items: center;
|
|
87
87
|
/* It says what it is before it is pressed. A time is typed, so the pointer
|
|
88
88
|
over it is a caret — and the row rather than only the segments, because
|
|
@@ -124,7 +124,7 @@
|
|
|
124
124
|
* the document — which is the reason every other family in this library
|
|
125
125
|
* reaches for it too.
|
|
126
126
|
*/
|
|
127
|
-
[data-ui
|
|
127
|
+
[data-ui-time-field] [data-part-segments]:dir(rtl) {
|
|
128
128
|
justify-content: flex-end;
|
|
129
129
|
}
|
|
130
130
|
|
|
@@ -135,7 +135,7 @@
|
|
|
135
135
|
* single digit becomes two: `1ch` is the advance of a digit in a tabular
|
|
136
136
|
* face, and `--_digits` is how many the field can hold.
|
|
137
137
|
*/
|
|
138
|
-
[data-ui
|
|
138
|
+
[data-ui-time-field] [data-part-segment] {
|
|
139
139
|
--_digits: 2;
|
|
140
140
|
|
|
141
141
|
background-color: transparent;
|
|
@@ -175,7 +175,7 @@
|
|
|
175
175
|
* digit face is dropped here for the same reason: tabular figures inside a
|
|
176
176
|
* word letter-space it.
|
|
177
177
|
*/
|
|
178
|
-
[data-ui
|
|
178
|
+
[data-ui-time-field] [data-part-segment][data-field='dayPeriod'] {
|
|
179
179
|
font-variant-numeric: normal;
|
|
180
180
|
min-inline-size: var(--slotted-time-field-period-min-inline-size, 2ch);
|
|
181
181
|
/* An abbreviation, in whatever case the locale itself writes it. */
|
|
@@ -188,7 +188,7 @@
|
|
|
188
188
|
* placeholder is the format — `hh:mm` in the reader's own words rather than
|
|
189
189
|
* in English — and a time being typed has to keep saying what is missing.
|
|
190
190
|
*/
|
|
191
|
-
[data-ui
|
|
191
|
+
[data-ui-time-field] [data-part-segment][data-placeholder] {
|
|
192
192
|
color: var(--slotted-time-field-placeholder-color, var(--slotted-text-muted, GrayText));
|
|
193
193
|
}
|
|
194
194
|
|
|
@@ -197,7 +197,7 @@
|
|
|
197
197
|
* name already carries the whole time in words, so a screen reader reading
|
|
198
198
|
* "colon" between two numbers would be reading punctuation aloud.
|
|
199
199
|
*/
|
|
200
|
-
[data-ui
|
|
200
|
+
[data-ui-time-field] [data-part-literal] {
|
|
201
201
|
color: var(--slotted-time-field-literal-color, var(--slotted-text-muted, GrayText));
|
|
202
202
|
flex: 0 0 auto;
|
|
203
203
|
/* Its own bidi run: a colon between two numbers takes the paragraph's
|
|
@@ -216,7 +216,7 @@
|
|
|
216
216
|
* It is a real `input`, so a mobile keyboard opens and the platform supplies
|
|
217
217
|
* every text-editing key the reader already knows.
|
|
218
218
|
*/
|
|
219
|
-
[data-ui
|
|
219
|
+
[data-ui-time-field] [data-part-duration] {
|
|
220
220
|
appearance: none;
|
|
221
221
|
background-color: transparent;
|
|
222
222
|
border: 0;
|
|
@@ -240,11 +240,11 @@
|
|
|
240
240
|
|
|
241
241
|
/* Left-to-right content in a right-to-left field still sits at the reading
|
|
242
242
|
edge, which is the treatment every form gives a phone number or an IBAN. */
|
|
243
|
-
[data-ui
|
|
243
|
+
[data-ui-time-field] [data-part-duration]:dir(rtl) {
|
|
244
244
|
text-align: right;
|
|
245
245
|
}
|
|
246
246
|
|
|
247
|
-
[data-ui
|
|
247
|
+
[data-ui-time-field] [data-part-duration]::placeholder {
|
|
248
248
|
color: var(--slotted-time-field-placeholder-color, var(--slotted-text-muted, GrayText));
|
|
249
249
|
}
|
|
250
250
|
|
|
@@ -256,7 +256,7 @@
|
|
|
256
256
|
* library already has for "and then"; it is direction-sensitive, so it turns
|
|
257
257
|
* with the document rather than pointing out of it.
|
|
258
258
|
*/
|
|
259
|
-
[data-ui
|
|
259
|
+
[data-ui-time-field] [data-part-preview] {
|
|
260
260
|
/**
|
|
261
261
|
* One line box, not a flex row. The chevron sits *in* the line rather than
|
|
262
262
|
* beside it, which is the only way it can be aligned to the text at all —
|
|
@@ -293,7 +293,7 @@
|
|
|
293
293
|
* marked `directional`: it points along the reading direction, so the `icon`
|
|
294
294
|
* family turns it in a right-to-left context.
|
|
295
295
|
*/
|
|
296
|
-
[data-ui
|
|
296
|
+
[data-ui-time-field] [data-part-preview] > [data-ui-icon] {
|
|
297
297
|
--slotted-icon-size: var(--_mark);
|
|
298
298
|
|
|
299
299
|
margin-inline-end: var(--slotted-space-1, 0.125rem);
|
|
@@ -307,7 +307,7 @@
|
|
|
307
307
|
* `docs/component-features.md` §2.5 refuses that, and a reader on a screen
|
|
308
308
|
* reader hears the same words the sighted reader sees.
|
|
309
309
|
*/
|
|
310
|
-
[data-ui
|
|
310
|
+
[data-ui-time-field] [data-part-preview][data-crosses-midnight] {
|
|
311
311
|
color: var(--slotted-time-field-preview-next-color, var(--slotted-tone-warning-text));
|
|
312
312
|
}
|
|
313
313
|
|
|
@@ -317,7 +317,7 @@
|
|
|
317
317
|
* border is the accent the preview is written in, so the two marks are one
|
|
318
318
|
* statement rather than two.
|
|
319
319
|
*/
|
|
320
|
-
[data-ui
|
|
320
|
+
[data-ui-time-field][data-part-root][data-relative] {
|
|
321
321
|
border-color: var(
|
|
322
322
|
--slotted-time-field-relative-border-color,
|
|
323
323
|
var(--slotted-tone-accent-border)
|
|
@@ -330,7 +330,7 @@
|
|
|
330
330
|
* holding an `md` control is a field and a control disagreeing about one row.
|
|
331
331
|
*/
|
|
332
332
|
|
|
333
|
-
[data-ui
|
|
333
|
+
[data-ui-time-field][data-part-root][data-size='sm'] {
|
|
334
334
|
--_font-size: var(--slotted-control-font-size-sm, 12px);
|
|
335
335
|
--_height: var(--slotted-control-height-sm, 30px);
|
|
336
336
|
--_padding-inline: var(--slotted-control-padding-inline-sm, 10px);
|
|
@@ -338,7 +338,7 @@
|
|
|
338
338
|
--_icon-size: max(var(--_icon-floor), var(--slotted-control-icon-size-sm, 14px));
|
|
339
339
|
}
|
|
340
340
|
|
|
341
|
-
[data-ui
|
|
341
|
+
[data-ui-time-field][data-part-root][data-size='md'] {
|
|
342
342
|
--_font-size: var(--slotted-control-font-size-md, 13px);
|
|
343
343
|
--_height: var(--slotted-control-height-md, 34px);
|
|
344
344
|
--_padding-inline: var(--slotted-control-padding-inline-md, 13px);
|
|
@@ -346,7 +346,7 @@
|
|
|
346
346
|
--_icon-size: max(var(--_icon-floor), var(--slotted-control-icon-size-md, 16px));
|
|
347
347
|
}
|
|
348
348
|
|
|
349
|
-
[data-ui
|
|
349
|
+
[data-ui-time-field][data-part-root][data-size='lg'] {
|
|
350
350
|
--_font-size: var(--slotted-control-font-size-lg, 14px);
|
|
351
351
|
--_height: var(--slotted-control-height-lg, 38px);
|
|
352
352
|
--_padding-inline: var(--slotted-control-padding-inline-lg, 16px);
|
|
@@ -360,7 +360,7 @@
|
|
|
360
360
|
* shows one frame twice rather than two frames.
|
|
361
361
|
*/
|
|
362
362
|
|
|
363
|
-
[data-ui
|
|
363
|
+
[data-ui-time-field][data-part-root][data-variant='subtle'] {
|
|
364
364
|
background-color: var(
|
|
365
365
|
--slotted-time-field-subtle-background,
|
|
366
366
|
var(--slotted-surface-sunken, Canvas)
|
|
@@ -371,7 +371,7 @@
|
|
|
371
371
|
);
|
|
372
372
|
}
|
|
373
373
|
|
|
374
|
-
[data-ui
|
|
374
|
+
[data-ui-time-field][data-part-root][data-variant='plain'] {
|
|
375
375
|
background-color: transparent;
|
|
376
376
|
border-color: transparent;
|
|
377
377
|
border-radius: var(--slotted-radius-none, 0px);
|
|
@@ -384,8 +384,8 @@
|
|
|
384
384
|
* the value: an adornment annotates, and a reader looking for the time
|
|
385
385
|
* should not have to step over it.
|
|
386
386
|
*/
|
|
387
|
-
[data-ui
|
|
388
|
-
[data-ui
|
|
387
|
+
[data-ui-time-field] > [data-part-start],
|
|
388
|
+
[data-ui-time-field] > [data-part-end] {
|
|
389
389
|
--slotted-icon-size: var(--_icon-size);
|
|
390
390
|
|
|
391
391
|
align-items: center;
|
|
@@ -397,8 +397,8 @@
|
|
|
397
397
|
unicode-bidi: plaintext;
|
|
398
398
|
}
|
|
399
399
|
|
|
400
|
-
[data-ui
|
|
401
|
-
[data-ui
|
|
400
|
+
[data-ui-time-field] > [data-part-start] > svg,
|
|
401
|
+
[data-ui-time-field] > [data-part-end] > svg {
|
|
402
402
|
block-size: var(--_icon-size);
|
|
403
403
|
inline-size: var(--_icon-size);
|
|
404
404
|
}
|
|
@@ -409,7 +409,7 @@
|
|
|
409
409
|
* character, and held to the target minimum by the family rather than by the
|
|
410
410
|
* page.
|
|
411
411
|
*/
|
|
412
|
-
[data-ui
|
|
412
|
+
[data-ui-time-field] > [data-part-clear] {
|
|
413
413
|
align-items: center;
|
|
414
414
|
appearance: none;
|
|
415
415
|
background-color: transparent;
|
|
@@ -439,7 +439,7 @@
|
|
|
439
439
|
* larger one alone, which is the correction `docs/token-foundation.md`
|
|
440
440
|
* leaves to the family rather than to the theme.
|
|
441
441
|
*/
|
|
442
|
-
[data-ui
|
|
442
|
+
[data-ui-time-field] > [data-part-clear]::after {
|
|
443
443
|
content: '';
|
|
444
444
|
inset: min(0px, calc((100% - var(--slotted-target-min, 24px)) / 2));
|
|
445
445
|
position: absolute;
|
|
@@ -450,28 +450,28 @@
|
|
|
450
450
|
the hit area above grows to 44 pixels around them. After an end
|
|
451
451
|
adornment — a picker's trigger — it does not reach back across it. */
|
|
452
452
|
@media (pointer: coarse) {
|
|
453
|
-
[data-ui
|
|
453
|
+
[data-ui-time-field] > [data-part-clear]::after {
|
|
454
454
|
inset: min(0px, calc((100% - var(--slotted-target-comfortable, 44px)) / 2));
|
|
455
455
|
}
|
|
456
456
|
|
|
457
|
-
[data-ui
|
|
457
|
+
[data-ui-time-field] > [data-part-end] + [data-part-clear]::after {
|
|
458
458
|
inset-inline-start: 0;
|
|
459
459
|
}
|
|
460
460
|
}
|
|
461
461
|
|
|
462
462
|
/* The cross is drawn at the control's own icon step. */
|
|
463
|
-
[data-ui
|
|
463
|
+
[data-ui-time-field] > [data-part-clear] {
|
|
464
464
|
--slotted-icon-size: var(--_icon-size);
|
|
465
465
|
}
|
|
466
466
|
|
|
467
|
-
[data-ui
|
|
467
|
+
[data-ui-time-field] > [data-part-clear]:hover:not(:disabled):not([data-disabled]) {
|
|
468
468
|
background-color: var(
|
|
469
469
|
--slotted-time-field-action-hover-background,
|
|
470
470
|
var(--slotted-tone-secondary-subtle-hover)
|
|
471
471
|
);
|
|
472
472
|
}
|
|
473
473
|
|
|
474
|
-
[data-ui
|
|
474
|
+
[data-ui-time-field] > [data-part-clear]:active:not(:disabled):not([data-disabled]) {
|
|
475
475
|
background-color: var(
|
|
476
476
|
--slotted-time-field-action-active-background,
|
|
477
477
|
var(--slotted-tone-secondary-subtle-active)
|
|
@@ -484,7 +484,7 @@
|
|
|
484
484
|
* and a ring around the whole frame would sit still while focus moved inside
|
|
485
485
|
* it.
|
|
486
486
|
*/
|
|
487
|
-
[data-ui
|
|
487
|
+
[data-ui-time-field] > [data-part-clear]:focus-visible {
|
|
488
488
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
489
489
|
outline-offset: calc(var(--slotted-focus-ring-offset, 2px) * -1);
|
|
490
490
|
}
|
|
@@ -495,13 +495,13 @@
|
|
|
495
495
|
* one it can meet, which is the order `STATE_PRECEDENCE` sets.
|
|
496
496
|
*/
|
|
497
497
|
|
|
498
|
-
[data-ui
|
|
498
|
+
[data-ui-time-field][data-part-root]:hover:not([data-disabled]):not([data-readonly]):not(
|
|
499
499
|
[data-invalid]
|
|
500
500
|
) {
|
|
501
501
|
border-color: var(--slotted-time-field-hover-border-color, var(--slotted-tone-accent-border));
|
|
502
502
|
}
|
|
503
503
|
|
|
504
|
-
[data-ui
|
|
504
|
+
[data-ui-time-field][data-part-root][data-variant='subtle']:hover:not([data-disabled]):not(
|
|
505
505
|
[data-readonly]
|
|
506
506
|
):not([data-invalid]) {
|
|
507
507
|
background-color: var(
|
|
@@ -510,7 +510,7 @@
|
|
|
510
510
|
);
|
|
511
511
|
}
|
|
512
512
|
|
|
513
|
-
[data-ui
|
|
513
|
+
[data-ui-time-field][data-part-root][data-variant='plain']:hover:not([data-disabled]):not(
|
|
514
514
|
[data-readonly]
|
|
515
515
|
):not([data-invalid]) {
|
|
516
516
|
background-color: var(
|
|
@@ -536,12 +536,12 @@
|
|
|
536
536
|
* had before the press. The expression is an `input` and takes the frame's
|
|
537
537
|
* ring on `:focus-within` for the same reason from the other side.
|
|
538
538
|
*/
|
|
539
|
-
[data-ui
|
|
540
|
-
[data-ui
|
|
539
|
+
[data-ui-time-field][data-part-root]:has([data-part-segment]:focus),
|
|
540
|
+
[data-ui-time-field][data-part-root]:has([data-part-duration]:focus) {
|
|
541
541
|
box-shadow: var(--slotted-control-shadow-focus-geometry, 0 1px 4px -1px)
|
|
542
542
|
var(--slotted-focus-ring-color, Highlight);
|
|
543
543
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
544
|
-
outline-offset: var(--slotted-focus-ring-offset, 2px);
|
|
544
|
+
outline-offset: var(--slotted-control-focus-ring-offset, var(--slotted-focus-ring-offset, 2px));
|
|
545
545
|
}
|
|
546
546
|
|
|
547
547
|
/**
|
|
@@ -551,13 +551,13 @@
|
|
|
551
551
|
* shadow that appears only under focus is a cell that changes size when it
|
|
552
552
|
* is used.
|
|
553
553
|
*/
|
|
554
|
-
[data-ui
|
|
555
|
-
[data-ui
|
|
554
|
+
[data-ui-time-field][data-part-root][data-variant='plain']:has([data-part-segment]:focus),
|
|
555
|
+
[data-ui-time-field][data-part-root][data-variant='plain']:has([data-part-duration]:focus) {
|
|
556
556
|
box-shadow: none;
|
|
557
557
|
outline-offset: calc(var(--slotted-focus-ring-offset, 2px) * -1);
|
|
558
558
|
}
|
|
559
559
|
|
|
560
|
-
[data-ui
|
|
560
|
+
[data-ui-time-field] [data-part-segment]:focus {
|
|
561
561
|
background-color: var(
|
|
562
562
|
--slotted-time-field-segment-focus-background,
|
|
563
563
|
var(--slotted-tone-accent-solid)
|
|
@@ -573,7 +573,7 @@
|
|
|
573
573
|
* ring is retargeted rather than repainted, so the frame's outline, the
|
|
574
574
|
* shadow under it and the ring on the clear button all move at once.
|
|
575
575
|
*/
|
|
576
|
-
[data-ui
|
|
576
|
+
[data-ui-time-field][data-part-root][data-invalid] {
|
|
577
577
|
--slotted-focus-ring-color: var(
|
|
578
578
|
--slotted-time-field-invalid-focus-ring-color,
|
|
579
579
|
var(--slotted-focus-ring-color-invalid, Highlight)
|
|
@@ -598,19 +598,19 @@
|
|
|
598
598
|
box-shadow: var(--_invalid-edge);
|
|
599
599
|
}
|
|
600
600
|
|
|
601
|
-
[data-ui
|
|
602
|
-
[data-ui
|
|
601
|
+
[data-ui-time-field][data-part-root][data-invalid]:has([data-part-segment]:focus),
|
|
602
|
+
[data-ui-time-field][data-part-root][data-invalid]:has([data-part-duration]:focus) {
|
|
603
603
|
box-shadow:
|
|
604
604
|
var(--_invalid-edge),
|
|
605
605
|
var(--slotted-control-shadow-focus-geometry, 0 1px 4px -1px)
|
|
606
606
|
var(--slotted-focus-ring-color, Highlight);
|
|
607
607
|
}
|
|
608
608
|
|
|
609
|
-
[data-ui
|
|
610
|
-
[data-part
|
|
609
|
+
[data-ui-time-field][data-part-root][data-variant='plain'][data-invalid]:has(
|
|
610
|
+
[data-part-segment]:focus
|
|
611
611
|
),
|
|
612
|
-
[data-ui
|
|
613
|
-
[data-part
|
|
612
|
+
[data-ui-time-field][data-part-root][data-variant='plain'][data-invalid]:has(
|
|
613
|
+
[data-part-duration]:focus
|
|
614
614
|
) {
|
|
615
615
|
/* The ring lies inside the box here, over the border and an edge as wide as
|
|
616
616
|
it; the edge reaches past the ring. */
|
|
@@ -628,25 +628,28 @@
|
|
|
628
628
|
* control draws its ring double, which a valid ring is not.
|
|
629
629
|
*/
|
|
630
630
|
@media (forced-colors: active) {
|
|
631
|
-
[data-ui
|
|
631
|
+
[data-ui-time-field][data-part-root][data-invalid] {
|
|
632
632
|
outline: var(--_invalid-edge-width) solid CanvasText;
|
|
633
633
|
outline-offset: calc(
|
|
634
634
|
-1 * (var(--slotted-control-border-width, 1px) + var(--_invalid-edge-width))
|
|
635
635
|
);
|
|
636
636
|
}
|
|
637
637
|
|
|
638
|
-
[data-ui
|
|
639
|
-
[data-ui
|
|
638
|
+
[data-ui-time-field][data-part-root][data-invalid]:has([data-part-segment]:focus),
|
|
639
|
+
[data-ui-time-field][data-part-root][data-invalid]:has([data-part-duration]:focus) {
|
|
640
640
|
outline: calc(var(--slotted-focus-ring-width, 2px) + var(--_invalid-edge-width)) double
|
|
641
641
|
var(--slotted-focus-ring-color, Highlight);
|
|
642
|
-
outline-offset: var(
|
|
642
|
+
outline-offset: var(
|
|
643
|
+
--slotted-control-focus-ring-offset,
|
|
644
|
+
var(--slotted-focus-ring-offset, 2px)
|
|
645
|
+
);
|
|
643
646
|
}
|
|
644
647
|
|
|
645
|
-
[data-ui
|
|
646
|
-
[data-part
|
|
648
|
+
[data-ui-time-field][data-part-root][data-variant='plain'][data-invalid]:has(
|
|
649
|
+
[data-part-segment]:focus
|
|
647
650
|
),
|
|
648
|
-
[data-ui
|
|
649
|
-
[data-part
|
|
651
|
+
[data-ui-time-field][data-part-root][data-variant='plain'][data-invalid]:has(
|
|
652
|
+
[data-part-duration]:focus
|
|
650
653
|
) {
|
|
651
654
|
outline: calc(var(--slotted-focus-ring-width, 2px) + var(--_invalid-edge-width)) double
|
|
652
655
|
var(--slotted-focus-ring-color, Highlight);
|
|
@@ -661,13 +664,13 @@
|
|
|
661
664
|
* mistakable for disabled: the value is still real and still submitted. The
|
|
662
665
|
* ground says "not yours to change" and the ink says nothing at all.
|
|
663
666
|
*/
|
|
664
|
-
[data-ui
|
|
665
|
-
[data-ui
|
|
666
|
-
[data-ui
|
|
667
|
+
[data-ui-time-field][data-part-root][data-readonly],
|
|
668
|
+
[data-ui-time-field][data-part-root][data-readonly] [data-part-segments],
|
|
669
|
+
[data-ui-time-field][data-part-root][data-readonly] [data-part-segment] {
|
|
667
670
|
cursor: default;
|
|
668
671
|
}
|
|
669
672
|
|
|
670
|
-
[data-ui
|
|
673
|
+
[data-ui-time-field][data-part-root][data-readonly] {
|
|
671
674
|
background-color: var(
|
|
672
675
|
--slotted-time-field-readonly-background,
|
|
673
676
|
var(--slotted-tone-secondary-subtle-hover)
|
|
@@ -679,7 +682,7 @@
|
|
|
679
682
|
* time nobody can read is a field nobody can check, and a disabled form
|
|
680
683
|
* still has to say what it holds.
|
|
681
684
|
*/
|
|
682
|
-
[data-ui
|
|
685
|
+
[data-ui-time-field][data-part-root][data-disabled] {
|
|
683
686
|
background-color: var(
|
|
684
687
|
--slotted-time-field-disabled-background,
|
|
685
688
|
var(--slotted-disabled-background)
|
|
@@ -691,28 +694,28 @@
|
|
|
691
694
|
cursor: not-allowed;
|
|
692
695
|
}
|
|
693
696
|
|
|
694
|
-
[data-ui
|
|
695
|
-
[data-ui
|
|
697
|
+
[data-ui-time-field][data-part-root][data-disabled] [data-part-segments],
|
|
698
|
+
[data-ui-time-field][data-part-root][data-disabled] [data-part-segment] {
|
|
696
699
|
cursor: not-allowed;
|
|
697
700
|
}
|
|
698
701
|
|
|
699
|
-
[data-ui
|
|
700
|
-
[data-ui
|
|
701
|
-
[data-ui
|
|
702
|
-
[data-ui
|
|
702
|
+
[data-ui-time-field][data-part-root][data-disabled] > [data-part-start],
|
|
703
|
+
[data-ui-time-field][data-part-root][data-disabled] > [data-part-end],
|
|
704
|
+
[data-ui-time-field][data-part-root][data-disabled] [data-part-literal],
|
|
705
|
+
[data-ui-time-field][data-part-root][data-disabled] [data-part-segment][data-placeholder] {
|
|
703
706
|
color: var(--slotted-disabled-foreground);
|
|
704
707
|
}
|
|
705
708
|
|
|
706
709
|
@media (forced-colors: active) {
|
|
707
710
|
/* A transparent border has no system colour to be remapped to, so the
|
|
708
711
|
`plain` control would lose its only edge where an edge matters most. */
|
|
709
|
-
[data-ui
|
|
712
|
+
[data-ui-time-field][data-part-root][data-variant='plain'] {
|
|
710
713
|
border-color: ButtonBorder;
|
|
711
714
|
}
|
|
712
715
|
|
|
713
716
|
/* The preview's two tones both map to the same system ink, so the border
|
|
714
717
|
is what is left to say the control is in a different mode. */
|
|
715
|
-
[data-ui
|
|
718
|
+
[data-ui-time-field][data-part-root][data-relative] {
|
|
716
719
|
border-color: Highlight;
|
|
717
720
|
}
|
|
718
721
|
}
|