@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
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* order is the browser's locale rather than the application's. The value
|
|
19
19
|
* reaches a form through a hidden input carrying `YYYY-MM-DDTHH:mm:ss`.
|
|
20
20
|
*/
|
|
21
|
-
[data-ui
|
|
21
|
+
[data-ui-datetime-field][data-part-root] {
|
|
22
22
|
/**
|
|
23
23
|
* Type, height, inline padding, gap and glyph size come from the control
|
|
24
24
|
* scales — the only ones the theme restates per density — so a datetime in
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
* begin from it — the arithmetic `text-field` records, holding at every step
|
|
90
90
|
* and every density.
|
|
91
91
|
*/
|
|
92
|
-
[data-ui
|
|
92
|
+
[data-ui-datetime-field][data-part-root]:has(> [data-part-clear]:last-child) {
|
|
93
93
|
padding-inline-end: max(
|
|
94
94
|
0px,
|
|
95
95
|
calc(var(--_padding-inline) - (var(--_action-size) - var(--_icon-size)) / 2)
|
|
@@ -111,7 +111,7 @@
|
|
|
111
111
|
* the focus. Each half stays one flex item, so the value never breaks
|
|
112
112
|
* inside a date or inside a time.
|
|
113
113
|
*/
|
|
114
|
-
[data-ui
|
|
114
|
+
[data-ui-datetime-field] [data-part-segments] {
|
|
115
115
|
align-items: center;
|
|
116
116
|
column-gap: var(--_half-gap);
|
|
117
117
|
/* It says what it is before it is pressed. A datetime is typed, so the
|
|
@@ -137,7 +137,7 @@
|
|
|
137
137
|
* a field that had done nothing but inherit. The isolation keeps the decision
|
|
138
138
|
* inside the half, so the frame around it still reads with the document.
|
|
139
139
|
*/
|
|
140
|
-
[data-ui
|
|
140
|
+
[data-ui-datetime-field] [data-part-half] {
|
|
141
141
|
align-items: center;
|
|
142
142
|
direction: ltr;
|
|
143
143
|
display: flex;
|
|
@@ -158,7 +158,7 @@
|
|
|
158
158
|
* the document — which is the reason every other family in this library
|
|
159
159
|
* reaches for it too.
|
|
160
160
|
*/
|
|
161
|
-
[data-ui
|
|
161
|
+
[data-ui-datetime-field] [data-part-segments]:dir(rtl) {
|
|
162
162
|
justify-content: flex-end;
|
|
163
163
|
}
|
|
164
164
|
|
|
@@ -169,7 +169,7 @@
|
|
|
169
169
|
* single digit becomes two: `1ch` is the advance of a digit in a tabular
|
|
170
170
|
* face, and `--_digits` is how many the field can hold.
|
|
171
171
|
*/
|
|
172
|
-
[data-ui
|
|
172
|
+
[data-ui-datetime-field] [data-part-segment] {
|
|
173
173
|
--_digits: 2;
|
|
174
174
|
|
|
175
175
|
background-color: transparent;
|
|
@@ -206,7 +206,7 @@
|
|
|
206
206
|
|
|
207
207
|
/* The one field with four digits rather than two. Stated here rather than in
|
|
208
208
|
the markup, so a year is the same width in both bindings and the harness. */
|
|
209
|
-
[data-ui
|
|
209
|
+
[data-ui-datetime-field] [data-part-segment][data-field='year'] {
|
|
210
210
|
--_digits: 4;
|
|
211
211
|
}
|
|
212
212
|
|
|
@@ -217,7 +217,7 @@
|
|
|
217
217
|
* first of those, and a floor clips none of them. The digit face is dropped
|
|
218
218
|
* here for the same reason: tabular figures inside a word letter-space it.
|
|
219
219
|
*/
|
|
220
|
-
[data-ui
|
|
220
|
+
[data-ui-datetime-field] [data-part-segment][data-field='dayPeriod'] {
|
|
221
221
|
font-variant-numeric: normal;
|
|
222
222
|
min-inline-size: var(--slotted-datetime-field-period-min-inline-size, 2ch);
|
|
223
223
|
/* An abbreviation, in whatever case the locale itself writes it. */
|
|
@@ -231,7 +231,7 @@
|
|
|
231
231
|
* rather than in English — and a value being typed has to keep saying what
|
|
232
232
|
* is missing.
|
|
233
233
|
*/
|
|
234
|
-
[data-ui
|
|
234
|
+
[data-ui-datetime-field] [data-part-segment][data-placeholder] {
|
|
235
235
|
color: var(--slotted-datetime-field-placeholder-color, var(--slotted-text-muted, GrayText));
|
|
236
236
|
}
|
|
237
237
|
|
|
@@ -240,7 +240,7 @@
|
|
|
240
240
|
* name already carries the whole value in words, so a screen reader reading
|
|
241
241
|
* "slash" between two numbers would be reading punctuation aloud.
|
|
242
242
|
*/
|
|
243
|
-
[data-ui
|
|
243
|
+
[data-ui-datetime-field] [data-part-literal] {
|
|
244
244
|
color: var(--slotted-datetime-field-literal-color, var(--slotted-text-muted, GrayText));
|
|
245
245
|
flex: 0 0 auto;
|
|
246
246
|
/* Its own bidi run: a colon between two numbers takes the paragraph's
|
|
@@ -258,7 +258,7 @@
|
|
|
258
258
|
* whitespace is not drawn at all, and the row's column gap separates the
|
|
259
259
|
* halves instead.
|
|
260
260
|
*/
|
|
261
|
-
[data-ui
|
|
261
|
+
[data-ui-datetime-field] [data-part-literal][data-boundary] {
|
|
262
262
|
margin-inline-end: 0;
|
|
263
263
|
}
|
|
264
264
|
|
|
@@ -273,7 +273,7 @@
|
|
|
273
273
|
* It is a real `input`, so a mobile keyboard opens and the platform supplies
|
|
274
274
|
* every text-editing key the reader already knows.
|
|
275
275
|
*/
|
|
276
|
-
[data-ui
|
|
276
|
+
[data-ui-datetime-field] [data-part-duration] {
|
|
277
277
|
appearance: none;
|
|
278
278
|
background-color: transparent;
|
|
279
279
|
border: 0;
|
|
@@ -297,11 +297,11 @@
|
|
|
297
297
|
|
|
298
298
|
/* Left-to-right content in a right-to-left field still sits at the reading
|
|
299
299
|
edge, which is the treatment every form gives a phone number or an IBAN. */
|
|
300
|
-
[data-ui
|
|
300
|
+
[data-ui-datetime-field] [data-part-duration]:dir(rtl) {
|
|
301
301
|
text-align: right;
|
|
302
302
|
}
|
|
303
303
|
|
|
304
|
-
[data-ui
|
|
304
|
+
[data-ui-datetime-field] [data-part-duration]::placeholder {
|
|
305
305
|
color: var(--slotted-datetime-field-placeholder-color, var(--slotted-text-muted, GrayText));
|
|
306
306
|
}
|
|
307
307
|
|
|
@@ -313,7 +313,7 @@
|
|
|
313
313
|
* library already has for "and then"; it is direction-sensitive, so it turns
|
|
314
314
|
* with the document rather than pointing out of it.
|
|
315
315
|
*/
|
|
316
|
-
[data-ui
|
|
316
|
+
[data-ui-datetime-field] [data-part-preview] {
|
|
317
317
|
/**
|
|
318
318
|
* One line box, not a flex row. The chevron sits *in* the line rather than
|
|
319
319
|
* beside it, which is the only way it can be aligned to the text at all —
|
|
@@ -351,7 +351,7 @@
|
|
|
351
351
|
* marked `directional`: it points along the reading direction, so the `icon`
|
|
352
352
|
* family turns it in a right-to-left context.
|
|
353
353
|
*/
|
|
354
|
-
[data-ui
|
|
354
|
+
[data-ui-datetime-field] [data-part-preview] > [data-ui-icon] {
|
|
355
355
|
--slotted-icon-size: var(--_mark);
|
|
356
356
|
|
|
357
357
|
/**
|
|
@@ -377,7 +377,7 @@
|
|
|
377
377
|
* preview whenever it differs from today — and this rule only lifts the date
|
|
378
378
|
* out of the surrounding time so the eye lands on the part that moved.
|
|
379
379
|
*/
|
|
380
|
-
[data-ui
|
|
380
|
+
[data-ui-datetime-field] [data-part-preview][data-rolls-day] > [data-part-preview-date] {
|
|
381
381
|
color: var(--slotted-datetime-field-preview-day-color, var(--slotted-tone-accent-text));
|
|
382
382
|
font-weight: var(--slotted-font-weight-semibold, 600);
|
|
383
383
|
}
|
|
@@ -388,7 +388,7 @@
|
|
|
388
388
|
* border is the accent the preview is written in, so the two marks are one
|
|
389
389
|
* statement rather than two.
|
|
390
390
|
*/
|
|
391
|
-
[data-ui
|
|
391
|
+
[data-ui-datetime-field][data-part-root][data-relative] {
|
|
392
392
|
border-color: var(
|
|
393
393
|
--slotted-datetime-field-relative-border-color,
|
|
394
394
|
var(--slotted-tone-accent-border)
|
|
@@ -401,7 +401,7 @@
|
|
|
401
401
|
* holding an `md` control is a field and a control disagreeing about one row.
|
|
402
402
|
*/
|
|
403
403
|
|
|
404
|
-
[data-ui
|
|
404
|
+
[data-ui-datetime-field][data-part-root][data-size='sm'] {
|
|
405
405
|
--_font-size: var(--slotted-control-font-size-sm, 12px);
|
|
406
406
|
--_height: var(--slotted-control-height-sm, 30px);
|
|
407
407
|
--_padding-inline: var(--slotted-control-padding-inline-sm, 10px);
|
|
@@ -409,7 +409,7 @@
|
|
|
409
409
|
--_icon-size: max(var(--_icon-floor), var(--slotted-control-icon-size-sm, 14px));
|
|
410
410
|
}
|
|
411
411
|
|
|
412
|
-
[data-ui
|
|
412
|
+
[data-ui-datetime-field][data-part-root][data-size='md'] {
|
|
413
413
|
--_font-size: var(--slotted-control-font-size-md, 13px);
|
|
414
414
|
--_height: var(--slotted-control-height-md, 34px);
|
|
415
415
|
--_padding-inline: var(--slotted-control-padding-inline-md, 13px);
|
|
@@ -417,7 +417,7 @@
|
|
|
417
417
|
--_icon-size: max(var(--_icon-floor), var(--slotted-control-icon-size-md, 16px));
|
|
418
418
|
}
|
|
419
419
|
|
|
420
|
-
[data-ui
|
|
420
|
+
[data-ui-datetime-field][data-part-root][data-size='lg'] {
|
|
421
421
|
--_font-size: var(--slotted-control-font-size-lg, 14px);
|
|
422
422
|
--_height: var(--slotted-control-height-lg, 38px);
|
|
423
423
|
--_padding-inline: var(--slotted-control-padding-inline-lg, 16px);
|
|
@@ -431,7 +431,7 @@
|
|
|
431
431
|
* shows one frame twice rather than two frames.
|
|
432
432
|
*/
|
|
433
433
|
|
|
434
|
-
[data-ui
|
|
434
|
+
[data-ui-datetime-field][data-part-root][data-variant='subtle'] {
|
|
435
435
|
background-color: var(
|
|
436
436
|
--slotted-datetime-field-subtle-background,
|
|
437
437
|
var(--slotted-surface-sunken, Canvas)
|
|
@@ -442,7 +442,7 @@
|
|
|
442
442
|
);
|
|
443
443
|
}
|
|
444
444
|
|
|
445
|
-
[data-ui
|
|
445
|
+
[data-ui-datetime-field][data-part-root][data-variant='plain'] {
|
|
446
446
|
background-color: transparent;
|
|
447
447
|
border-color: transparent;
|
|
448
448
|
border-radius: var(--slotted-radius-none, 0px);
|
|
@@ -455,8 +455,8 @@
|
|
|
455
455
|
* the value: an adornment annotates, and a reader looking for the datetime
|
|
456
456
|
* should not have to step over it.
|
|
457
457
|
*/
|
|
458
|
-
[data-ui
|
|
459
|
-
[data-ui
|
|
458
|
+
[data-ui-datetime-field] > [data-part-start],
|
|
459
|
+
[data-ui-datetime-field] > [data-part-end] {
|
|
460
460
|
--slotted-icon-size: var(--_icon-size);
|
|
461
461
|
|
|
462
462
|
align-items: center;
|
|
@@ -468,8 +468,8 @@
|
|
|
468
468
|
unicode-bidi: plaintext;
|
|
469
469
|
}
|
|
470
470
|
|
|
471
|
-
[data-ui
|
|
472
|
-
[data-ui
|
|
471
|
+
[data-ui-datetime-field] > [data-part-start] > svg,
|
|
472
|
+
[data-ui-datetime-field] > [data-part-end] > svg {
|
|
473
473
|
block-size: var(--_icon-size);
|
|
474
474
|
inline-size: var(--_icon-size);
|
|
475
475
|
}
|
|
@@ -481,7 +481,7 @@
|
|
|
481
481
|
* page. It empties both halves: half a value is not a value this family
|
|
482
482
|
* holds.
|
|
483
483
|
*/
|
|
484
|
-
[data-ui
|
|
484
|
+
[data-ui-datetime-field] > [data-part-clear] {
|
|
485
485
|
align-items: center;
|
|
486
486
|
appearance: none;
|
|
487
487
|
background-color: transparent;
|
|
@@ -511,7 +511,7 @@
|
|
|
511
511
|
* larger one alone, which is the correction `docs/token-foundation.md`
|
|
512
512
|
* leaves to the family rather than to the theme.
|
|
513
513
|
*/
|
|
514
|
-
[data-ui
|
|
514
|
+
[data-ui-datetime-field] > [data-part-clear]::after {
|
|
515
515
|
content: '';
|
|
516
516
|
inset: min(0px, calc((100% - var(--slotted-target-min, 24px)) / 2));
|
|
517
517
|
position: absolute;
|
|
@@ -522,28 +522,28 @@
|
|
|
522
522
|
the hit area above grows to 44 pixels around them. After an end
|
|
523
523
|
adornment — a picker's trigger — it does not reach back across it. */
|
|
524
524
|
@media (pointer: coarse) {
|
|
525
|
-
[data-ui
|
|
525
|
+
[data-ui-datetime-field] > [data-part-clear]::after {
|
|
526
526
|
inset: min(0px, calc((100% - var(--slotted-target-comfortable, 44px)) / 2));
|
|
527
527
|
}
|
|
528
528
|
|
|
529
|
-
[data-ui
|
|
529
|
+
[data-ui-datetime-field] > [data-part-end] + [data-part-clear]::after {
|
|
530
530
|
inset-inline-start: 0;
|
|
531
531
|
}
|
|
532
532
|
}
|
|
533
533
|
|
|
534
534
|
/* The cross is drawn at the control's own icon step. */
|
|
535
|
-
[data-ui
|
|
535
|
+
[data-ui-datetime-field] > [data-part-clear] {
|
|
536
536
|
--slotted-icon-size: var(--_icon-size);
|
|
537
537
|
}
|
|
538
538
|
|
|
539
|
-
[data-ui
|
|
539
|
+
[data-ui-datetime-field] > [data-part-clear]:hover:not(:disabled):not([data-disabled]) {
|
|
540
540
|
background-color: var(
|
|
541
541
|
--slotted-datetime-field-action-hover-background,
|
|
542
542
|
var(--slotted-tone-secondary-subtle-hover)
|
|
543
543
|
);
|
|
544
544
|
}
|
|
545
545
|
|
|
546
|
-
[data-ui
|
|
546
|
+
[data-ui-datetime-field] > [data-part-clear]:active:not(:disabled):not([data-disabled]) {
|
|
547
547
|
background-color: var(
|
|
548
548
|
--slotted-datetime-field-action-active-background,
|
|
549
549
|
var(--slotted-tone-secondary-subtle-active)
|
|
@@ -556,7 +556,7 @@
|
|
|
556
556
|
* and a ring around the whole frame would sit still while focus moved inside
|
|
557
557
|
* it.
|
|
558
558
|
*/
|
|
559
|
-
[data-ui
|
|
559
|
+
[data-ui-datetime-field] > [data-part-clear]:focus-visible {
|
|
560
560
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
561
561
|
outline-offset: calc(var(--slotted-focus-ring-offset, 2px) * -1);
|
|
562
562
|
}
|
|
@@ -567,7 +567,7 @@
|
|
|
567
567
|
* one it can meet, which is the order `STATE_PRECEDENCE` sets.
|
|
568
568
|
*/
|
|
569
569
|
|
|
570
|
-
[data-ui
|
|
570
|
+
[data-ui-datetime-field][data-part-root]:hover:not([data-disabled]):not([data-readonly]):not(
|
|
571
571
|
[data-invalid]
|
|
572
572
|
):not([data-incomplete]) {
|
|
573
573
|
border-color: var(
|
|
@@ -576,16 +576,16 @@
|
|
|
576
576
|
);
|
|
577
577
|
}
|
|
578
578
|
|
|
579
|
-
[data-ui
|
|
580
|
-
[data-
|
|
581
|
-
):not([data-
|
|
579
|
+
[data-ui-datetime-field][data-part-root][data-variant='subtle']:hover:not([data-disabled]):not(
|
|
580
|
+
[data-readonly]
|
|
581
|
+
):not([data-invalid]) {
|
|
582
582
|
background-color: var(
|
|
583
583
|
--slotted-datetime-field-subtle-hover-background,
|
|
584
584
|
var(--slotted-tone-secondary-subtle-hover)
|
|
585
585
|
);
|
|
586
586
|
}
|
|
587
587
|
|
|
588
|
-
[data-ui
|
|
588
|
+
[data-ui-datetime-field][data-part-root][data-variant='plain']:hover:not([data-disabled]):not(
|
|
589
589
|
[data-readonly]
|
|
590
590
|
):not([data-invalid]) {
|
|
591
591
|
background-color: var(
|
|
@@ -624,7 +624,7 @@
|
|
|
624
624
|
* reminder — louder at rest than `invalid` is, for a state that is weaker
|
|
625
625
|
* than it.
|
|
626
626
|
*/
|
|
627
|
-
[data-ui
|
|
627
|
+
[data-ui-datetime-field][data-part-root][data-incomplete]:not([data-disabled]):not(
|
|
628
628
|
[data-readonly]
|
|
629
629
|
):not([data-invalid]):not(:focus-within) {
|
|
630
630
|
border-color: var(
|
|
@@ -649,8 +649,8 @@
|
|
|
649
649
|
* had before the press. The expression is an `input` and takes the frame's
|
|
650
650
|
* ring the same way from the other side.
|
|
651
651
|
*/
|
|
652
|
-
[data-ui
|
|
653
|
-
[data-ui
|
|
652
|
+
[data-ui-datetime-field][data-part-root]:has([data-part-segment]:focus),
|
|
653
|
+
[data-ui-datetime-field][data-part-root]:has([data-part-duration]:focus) {
|
|
654
654
|
box-shadow: var(--slotted-control-shadow-focus-geometry, 0 1px 4px -1px)
|
|
655
655
|
var(--slotted-focus-ring-color, Highlight);
|
|
656
656
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
@@ -664,17 +664,13 @@
|
|
|
664
664
|
* shadow that appears only under focus is a cell that changes size when it
|
|
665
665
|
* is used.
|
|
666
666
|
*/
|
|
667
|
-
[data-ui
|
|
668
|
-
|
|
669
|
-
),
|
|
670
|
-
[data-ui='datetime-field'][data-part='root'][data-variant='plain']:has(
|
|
671
|
-
[data-part='duration']:focus
|
|
672
|
-
) {
|
|
667
|
+
[data-ui-datetime-field][data-part-root][data-variant='plain']:has([data-part-segment]:focus),
|
|
668
|
+
[data-ui-datetime-field][data-part-root][data-variant='plain']:has([data-part-duration]:focus) {
|
|
673
669
|
box-shadow: none;
|
|
674
670
|
outline-offset: calc(var(--slotted-focus-ring-offset, 2px) * -1);
|
|
675
671
|
}
|
|
676
672
|
|
|
677
|
-
[data-ui
|
|
673
|
+
[data-ui-datetime-field] [data-part-segment]:focus {
|
|
678
674
|
background-color: var(
|
|
679
675
|
--slotted-datetime-field-segment-focus-background,
|
|
680
676
|
var(--slotted-tone-accent-solid)
|
|
@@ -691,7 +687,7 @@
|
|
|
691
687
|
* The ring is retargeted rather than repainted, so the frame's outline, the
|
|
692
688
|
* shadow under it and the ring on the clear button all move at once.
|
|
693
689
|
*/
|
|
694
|
-
[data-ui
|
|
690
|
+
[data-ui-datetime-field][data-part-root][data-invalid] {
|
|
695
691
|
--slotted-focus-ring-color: var(
|
|
696
692
|
--slotted-datetime-field-invalid-focus-ring-color,
|
|
697
693
|
var(--slotted-focus-ring-color-invalid, Highlight)
|
|
@@ -719,19 +715,19 @@
|
|
|
719
715
|
box-shadow: var(--_invalid-edge);
|
|
720
716
|
}
|
|
721
717
|
|
|
722
|
-
[data-ui
|
|
723
|
-
[data-ui
|
|
718
|
+
[data-ui-datetime-field][data-part-root][data-invalid]:has([data-part-segment]:focus),
|
|
719
|
+
[data-ui-datetime-field][data-part-root][data-invalid]:has([data-part-duration]:focus) {
|
|
724
720
|
box-shadow:
|
|
725
721
|
var(--_invalid-edge),
|
|
726
722
|
var(--slotted-control-shadow-focus-geometry, 0 1px 4px -1px)
|
|
727
723
|
var(--slotted-focus-ring-color, Highlight);
|
|
728
724
|
}
|
|
729
725
|
|
|
730
|
-
[data-ui
|
|
731
|
-
[data-part
|
|
726
|
+
[data-ui-datetime-field][data-part-root][data-variant='plain'][data-invalid]:has(
|
|
727
|
+
[data-part-segment]:focus
|
|
732
728
|
),
|
|
733
|
-
[data-ui
|
|
734
|
-
[data-part
|
|
729
|
+
[data-ui-datetime-field][data-part-root][data-variant='plain'][data-invalid]:has(
|
|
730
|
+
[data-part-duration]:focus
|
|
735
731
|
) {
|
|
736
732
|
/* The ring lies inside the box here, over the border and an edge as wide as
|
|
737
733
|
it; the edge reaches past the ring. */
|
|
@@ -749,25 +745,25 @@
|
|
|
749
745
|
* control draws its ring double, which a valid ring is not.
|
|
750
746
|
*/
|
|
751
747
|
@media (forced-colors: active) {
|
|
752
|
-
[data-ui
|
|
748
|
+
[data-ui-datetime-field][data-part-root][data-invalid] {
|
|
753
749
|
outline: var(--_invalid-edge-width) solid CanvasText;
|
|
754
750
|
outline-offset: calc(
|
|
755
751
|
-1 * (var(--slotted-control-border-width, 1px) + var(--_invalid-edge-width))
|
|
756
752
|
);
|
|
757
753
|
}
|
|
758
754
|
|
|
759
|
-
[data-ui
|
|
760
|
-
[data-ui
|
|
755
|
+
[data-ui-datetime-field][data-part-root][data-invalid]:has([data-part-segment]:focus),
|
|
756
|
+
[data-ui-datetime-field][data-part-root][data-invalid]:has([data-part-duration]:focus) {
|
|
761
757
|
outline: calc(var(--slotted-focus-ring-width, 2px) + var(--_invalid-edge-width)) double
|
|
762
758
|
var(--slotted-focus-ring-color, Highlight);
|
|
763
759
|
outline-offset: var(--slotted-focus-ring-offset, 2px);
|
|
764
760
|
}
|
|
765
761
|
|
|
766
|
-
[data-ui
|
|
767
|
-
[data-part
|
|
762
|
+
[data-ui-datetime-field][data-part-root][data-variant='plain'][data-invalid]:has(
|
|
763
|
+
[data-part-segment]:focus
|
|
768
764
|
),
|
|
769
|
-
[data-ui
|
|
770
|
-
[data-part
|
|
765
|
+
[data-ui-datetime-field][data-part-root][data-variant='plain'][data-invalid]:has(
|
|
766
|
+
[data-part-duration]:focus
|
|
771
767
|
) {
|
|
772
768
|
outline: calc(var(--slotted-focus-ring-width, 2px) + var(--_invalid-edge-width)) double
|
|
773
769
|
var(--slotted-focus-ring-color, Highlight);
|
|
@@ -782,13 +778,13 @@
|
|
|
782
778
|
* mistakable for disabled: the value is still real and still submitted. The
|
|
783
779
|
* ground says "not yours to change" and the ink says nothing at all.
|
|
784
780
|
*/
|
|
785
|
-
[data-ui
|
|
786
|
-
[data-ui
|
|
787
|
-
[data-ui
|
|
781
|
+
[data-ui-datetime-field][data-part-root][data-readonly],
|
|
782
|
+
[data-ui-datetime-field][data-part-root][data-readonly] [data-part-segments],
|
|
783
|
+
[data-ui-datetime-field][data-part-root][data-readonly] [data-part-segment] {
|
|
788
784
|
cursor: default;
|
|
789
785
|
}
|
|
790
786
|
|
|
791
|
-
[data-ui
|
|
787
|
+
[data-ui-datetime-field][data-part-root][data-readonly] {
|
|
792
788
|
background-color: var(
|
|
793
789
|
--slotted-datetime-field-readonly-background,
|
|
794
790
|
var(--slotted-tone-secondary-subtle-hover)
|
|
@@ -800,7 +796,7 @@
|
|
|
800
796
|
* datetime nobody can read is a field nobody can check, and a disabled form
|
|
801
797
|
* still has to say what it holds.
|
|
802
798
|
*/
|
|
803
|
-
[data-ui
|
|
799
|
+
[data-ui-datetime-field][data-part-root][data-disabled] {
|
|
804
800
|
background-color: var(
|
|
805
801
|
--slotted-datetime-field-disabled-background,
|
|
806
802
|
var(--slotted-disabled-background)
|
|
@@ -815,23 +811,22 @@
|
|
|
815
811
|
cursor: not-allowed;
|
|
816
812
|
}
|
|
817
813
|
|
|
818
|
-
[data-ui
|
|
819
|
-
[data-ui
|
|
814
|
+
[data-ui-datetime-field][data-part-root][data-disabled] [data-part-segments],
|
|
815
|
+
[data-ui-datetime-field][data-part-root][data-disabled] [data-part-segment] {
|
|
820
816
|
cursor: not-allowed;
|
|
821
817
|
}
|
|
822
818
|
|
|
823
|
-
[data-ui
|
|
824
|
-
[data-ui
|
|
825
|
-
[data-ui
|
|
826
|
-
[data-ui
|
|
827
|
-
[data-part='segment'][data-placeholder] {
|
|
819
|
+
[data-ui-datetime-field][data-part-root][data-disabled] > [data-part-start],
|
|
820
|
+
[data-ui-datetime-field][data-part-root][data-disabled] > [data-part-end],
|
|
821
|
+
[data-ui-datetime-field][data-part-root][data-disabled] [data-part-literal],
|
|
822
|
+
[data-ui-datetime-field][data-part-root][data-disabled] [data-part-segment][data-placeholder] {
|
|
828
823
|
color: var(--slotted-disabled-foreground);
|
|
829
824
|
}
|
|
830
825
|
|
|
831
826
|
@media (forced-colors: active) {
|
|
832
827
|
/* A transparent border has no system colour to be remapped to, so the
|
|
833
828
|
`plain` control would lose its only edge where an edge matters most. */
|
|
834
|
-
[data-ui
|
|
829
|
+
[data-ui-datetime-field][data-part-root][data-variant='plain'] {
|
|
835
830
|
border-color: ButtonBorder;
|
|
836
831
|
}
|
|
837
832
|
|
|
@@ -839,7 +834,7 @@
|
|
|
839
834
|
modes that are told apart by tone need a second signal. The expression
|
|
840
835
|
borrows the highlight; the incomplete frame borrows the thicker border
|
|
841
836
|
the system reserves for something asking to be finished. */
|
|
842
|
-
[data-ui
|
|
837
|
+
[data-ui-datetime-field][data-part-root][data-relative] {
|
|
843
838
|
border-color: Highlight;
|
|
844
839
|
}
|
|
845
840
|
|