@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
package/src/inline/inline.css
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* type step, so a run of items reads as one line rather than as a list laid
|
|
11
11
|
* sideways.
|
|
12
12
|
*/
|
|
13
|
-
[data-ui
|
|
13
|
+
[data-ui-inline] {
|
|
14
14
|
--_gap: var(--slotted-space-4, 0.5rem);
|
|
15
15
|
|
|
16
16
|
display: flex;
|
|
@@ -27,55 +27,55 @@
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
/* Separation is a step on the scale, never a length the consumer states. */
|
|
30
|
-
[data-ui
|
|
30
|
+
[data-ui-inline][data-gap='0'] {
|
|
31
31
|
--_gap: 0;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
[data-ui
|
|
34
|
+
[data-ui-inline][data-gap='1'] {
|
|
35
35
|
--_gap: var(--slotted-space-1, 0.125rem);
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
[data-ui
|
|
38
|
+
[data-ui-inline][data-gap='2'] {
|
|
39
39
|
--_gap: var(--slotted-space-2, 0.25rem);
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
[data-ui
|
|
42
|
+
[data-ui-inline][data-gap='3'] {
|
|
43
43
|
--_gap: var(--slotted-space-3, 0.375rem);
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
[data-ui
|
|
46
|
+
[data-ui-inline][data-gap='4'] {
|
|
47
47
|
--_gap: var(--slotted-space-4, 0.5rem);
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
[data-ui
|
|
50
|
+
[data-ui-inline][data-gap='5'] {
|
|
51
51
|
--_gap: var(--slotted-space-5, 0.75rem);
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
[data-ui
|
|
54
|
+
[data-ui-inline][data-gap='6'] {
|
|
55
55
|
--_gap: var(--slotted-space-6, 1rem);
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
[data-ui
|
|
58
|
+
[data-ui-inline][data-gap='7'] {
|
|
59
59
|
--_gap: var(--slotted-space-7, 1.25rem);
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
[data-ui
|
|
62
|
+
[data-ui-inline][data-gap='8'] {
|
|
63
63
|
--_gap: var(--slotted-space-8, 1.5rem);
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
[data-ui
|
|
66
|
+
[data-ui-inline][data-gap='9'] {
|
|
67
67
|
--_gap: var(--slotted-space-9, 2rem);
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
[data-ui
|
|
70
|
+
[data-ui-inline][data-gap='10'] {
|
|
71
71
|
--_gap: var(--slotted-space-10, 2.5rem);
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
[data-ui
|
|
74
|
+
[data-ui-inline][data-gap='11'] {
|
|
75
75
|
--_gap: var(--slotted-space-11, 3rem);
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
[data-ui
|
|
78
|
+
[data-ui-inline][data-gap='12'] {
|
|
79
79
|
--_gap: var(--slotted-space-12, 4rem);
|
|
80
80
|
}
|
|
81
81
|
|
|
@@ -85,23 +85,23 @@
|
|
|
85
85
|
* line can share a baseline, and a label beside a badge reads wrong without
|
|
86
86
|
* it.
|
|
87
87
|
*/
|
|
88
|
-
[data-ui
|
|
88
|
+
[data-ui-inline][data-align='start'] {
|
|
89
89
|
align-items: start;
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
-
[data-ui
|
|
92
|
+
[data-ui-inline][data-align='center'] {
|
|
93
93
|
align-items: center;
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
[data-ui
|
|
96
|
+
[data-ui-inline][data-align='end'] {
|
|
97
97
|
align-items: end;
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
-
[data-ui
|
|
100
|
+
[data-ui-inline][data-align='stretch'] {
|
|
101
101
|
align-items: stretch;
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
-
[data-ui
|
|
104
|
+
[data-ui-inline][data-align='baseline'] {
|
|
105
105
|
align-items: baseline;
|
|
106
106
|
}
|
|
107
107
|
|
|
@@ -110,31 +110,31 @@
|
|
|
110
110
|
* axis. The keywords are the logical ones, so a right-to-left document is the
|
|
111
111
|
* same component mirrored rather than a second stylesheet.
|
|
112
112
|
*/
|
|
113
|
-
[data-ui
|
|
113
|
+
[data-ui-inline][data-justify='start'] {
|
|
114
114
|
justify-content: start;
|
|
115
115
|
}
|
|
116
116
|
|
|
117
|
-
[data-ui
|
|
117
|
+
[data-ui-inline][data-justify='center'] {
|
|
118
118
|
justify-content: center;
|
|
119
119
|
}
|
|
120
120
|
|
|
121
|
-
[data-ui
|
|
121
|
+
[data-ui-inline][data-justify='end'] {
|
|
122
122
|
justify-content: end;
|
|
123
123
|
}
|
|
124
124
|
|
|
125
|
-
[data-ui
|
|
125
|
+
[data-ui-inline][data-justify='between'] {
|
|
126
126
|
justify-content: space-between;
|
|
127
127
|
}
|
|
128
128
|
|
|
129
|
-
[data-ui
|
|
129
|
+
[data-ui-inline][data-justify='around'] {
|
|
130
130
|
justify-content: space-around;
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
-
[data-ui
|
|
133
|
+
[data-ui-inline][data-justify='evenly'] {
|
|
134
134
|
justify-content: space-evenly;
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
-
[data-ui
|
|
137
|
+
[data-ui-inline][data-wrap='wrap'] {
|
|
138
138
|
flex-wrap: wrap;
|
|
139
139
|
}
|
|
140
140
|
|
|
@@ -143,7 +143,7 @@
|
|
|
143
143
|
* content. That is what the consumer asked for, and it is why the family does
|
|
144
144
|
* not ask for it on the consumer's behalf.
|
|
145
145
|
*/
|
|
146
|
-
[data-ui
|
|
146
|
+
[data-ui-inline][data-wrap='nowrap'] {
|
|
147
147
|
flex-wrap: nowrap;
|
|
148
148
|
}
|
|
149
149
|
}
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* DOM so it is read first; `position: absolute` is what keeps it from
|
|
21
21
|
* taking a grid cell or adding a line.
|
|
22
22
|
*/
|
|
23
|
-
[data-ui
|
|
23
|
+
[data-ui-inline-message][data-part-root] {
|
|
24
24
|
/**
|
|
25
25
|
* The default is the help tone, which is what most fields carry. It is the
|
|
26
26
|
* one tone that paints in the neutral muted ink rather than in a tone's
|
|
@@ -91,23 +91,27 @@
|
|
|
91
91
|
* a severity.
|
|
92
92
|
*/
|
|
93
93
|
|
|
94
|
-
[data-ui
|
|
94
|
+
[data-ui-inline-message][data-part-root][data-tone='accent'] {
|
|
95
95
|
--_text: var(--slotted-tone-accent-text);
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
-
[data-ui
|
|
98
|
+
[data-ui-inline-message][data-part-root][data-tone='secondary'] {
|
|
99
99
|
--_text: var(--slotted-text-muted);
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
-
[data-ui
|
|
102
|
+
[data-ui-inline-message][data-part-root][data-tone='success'] {
|
|
103
103
|
--_text: var(--slotted-tone-success-text);
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
[data-ui
|
|
106
|
+
[data-ui-inline-message][data-part-root][data-tone='info'] {
|
|
107
|
+
--_text: var(--slotted-tone-info-text);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
[data-ui-inline-message][data-part-root][data-tone='warning'] {
|
|
107
111
|
--_text: var(--slotted-tone-warning-text);
|
|
108
112
|
}
|
|
109
113
|
|
|
110
|
-
[data-ui
|
|
114
|
+
[data-ui-inline-message][data-part-root][data-tone='danger'] {
|
|
111
115
|
--_text: var(--slotted-tone-danger-text);
|
|
112
116
|
}
|
|
113
117
|
|
|
@@ -119,11 +123,11 @@
|
|
|
119
123
|
* field. Both are restated per density by the theme.
|
|
120
124
|
*/
|
|
121
125
|
|
|
122
|
-
[data-ui
|
|
126
|
+
[data-ui-inline-message][data-part-root][data-size='sm'] {
|
|
123
127
|
--_font-size: var(--slotted-control-font-size-sm, 12px);
|
|
124
128
|
}
|
|
125
129
|
|
|
126
|
-
[data-ui
|
|
130
|
+
[data-ui-inline-message][data-part-root][data-size='md'] {
|
|
127
131
|
--_font-size: var(--slotted-control-font-size-md, 13px);
|
|
128
132
|
}
|
|
129
133
|
|
|
@@ -137,7 +141,7 @@
|
|
|
137
141
|
* character as the message. A space is content: it defeats `:empty` below, so
|
|
138
142
|
* the mark and the severity word would be drawn beside nothing.
|
|
139
143
|
*/
|
|
140
|
-
[data-ui
|
|
144
|
+
[data-ui-inline-message][data-part-root][data-reserve] {
|
|
141
145
|
min-block-size: 1lh;
|
|
142
146
|
}
|
|
143
147
|
|
|
@@ -156,7 +160,7 @@
|
|
|
156
160
|
* a one-pixel box, clipped, out of flow, on a single line, with the negative
|
|
157
161
|
* margin that keeps it from adding a pixel of scrollable overflow.
|
|
158
162
|
*/
|
|
159
|
-
[data-ui
|
|
163
|
+
[data-ui-inline-message] > [data-part-prefix] {
|
|
160
164
|
block-size: 1px;
|
|
161
165
|
border: 0;
|
|
162
166
|
clip-path: inset(50%);
|
|
@@ -183,7 +187,7 @@
|
|
|
183
187
|
* A mark the page supplies instead takes the same box and its place on the
|
|
184
188
|
* first line, centred in it.
|
|
185
189
|
*/
|
|
186
|
-
[data-ui
|
|
190
|
+
[data-ui-inline-message] > [data-part-icon] {
|
|
187
191
|
--slotted-icon-size: var(--_mark-size);
|
|
188
192
|
|
|
189
193
|
align-items: center;
|
|
@@ -221,12 +225,12 @@
|
|
|
221
225
|
* page's own artwork alone: a supplied mark keeps the full box it was
|
|
222
226
|
* measured for.
|
|
223
227
|
*/
|
|
224
|
-
[data-ui
|
|
228
|
+
[data-ui-inline-message][data-part-root][data-mark='dot'] {
|
|
225
229
|
--_dot-size: calc(var(--_mark-size) / 3);
|
|
226
230
|
}
|
|
227
231
|
|
|
228
|
-
[data-ui
|
|
229
|
-
> [data-part
|
|
232
|
+
[data-ui-inline-message][data-mark='dot']
|
|
233
|
+
> [data-part-icon]:has(> [data-ui-icon] > [data-glyph='dot']) {
|
|
230
234
|
--slotted-icon-size: calc(var(--_dot-size) * 2);
|
|
231
235
|
|
|
232
236
|
inline-size: var(--_dot-size);
|
|
@@ -242,8 +246,8 @@
|
|
|
242
246
|
* and it is stated as an absence rather than as `[data-mark='glyph']` so
|
|
243
247
|
* markup written without the attribute keeps the rule.
|
|
244
248
|
*/
|
|
245
|
-
[data-ui
|
|
246
|
-
> [data-part
|
|
249
|
+
[data-ui-inline-message][data-tone='secondary']:not([data-loading]):not([data-mark='dot'])
|
|
250
|
+
> [data-part-icon]:empty {
|
|
247
251
|
display: none;
|
|
248
252
|
}
|
|
249
253
|
|
|
@@ -263,7 +267,7 @@
|
|
|
263
267
|
* `:not([data-loading])` keeps the ring, because a message with no mark can
|
|
264
268
|
* be waiting for something like any other.
|
|
265
269
|
*/
|
|
266
|
-
[data-ui
|
|
270
|
+
[data-ui-inline-message][data-mark='none']:not([data-loading]) > [data-part-icon]:empty {
|
|
267
271
|
display: none;
|
|
268
272
|
}
|
|
269
273
|
|
|
@@ -279,21 +283,41 @@
|
|
|
279
283
|
* name without a hyphen. Nothing is removed: the whole string stays in the
|
|
280
284
|
* DOM, in the accessibility tree, and findable by a page search.
|
|
281
285
|
*/
|
|
282
|
-
[data-ui
|
|
286
|
+
[data-ui-inline-message] > [data-part-text] {
|
|
283
287
|
grid-column: 2;
|
|
284
288
|
grid-row: 1;
|
|
285
289
|
min-inline-size: 0;
|
|
286
290
|
overflow-wrap: anywhere;
|
|
287
291
|
}
|
|
288
292
|
|
|
293
|
+
/**
|
|
294
|
+
* The answers the message offers — "R$ 2,00 · R$ 15,00" under an amount that
|
|
295
|
+
* could be either. They wrap under the sentence, in its column, at the gap
|
|
296
|
+
* the family puts between its mark and its sentence; the root is then a
|
|
297
|
+
* group named by the sentence, so a reader hears what the buttons answer.
|
|
298
|
+
*/
|
|
299
|
+
[data-ui-inline-message] > [data-part-actions] {
|
|
300
|
+
align-items: center;
|
|
301
|
+
display: flex;
|
|
302
|
+
flex-wrap: wrap;
|
|
303
|
+
gap: var(--slotted-inline-message-actions-gap, var(--_column-gap));
|
|
304
|
+
grid-column: 2;
|
|
305
|
+
grid-row: 2;
|
|
306
|
+
margin-block-start: var(
|
|
307
|
+
--slotted-inline-message-actions-offset,
|
|
308
|
+
var(--slotted-space-2, 0.25rem)
|
|
309
|
+
);
|
|
310
|
+
min-inline-size: 0;
|
|
311
|
+
}
|
|
312
|
+
|
|
289
313
|
/**
|
|
290
314
|
* Nothing to say, so nothing is drawn. This is the half of `reserve` that
|
|
291
315
|
* makes it usable: the line is held open, and a mark and a severity word
|
|
292
316
|
* standing beside an empty sentence would be the layout shift moved rather
|
|
293
317
|
* than removed.
|
|
294
318
|
*/
|
|
295
|
-
[data-ui
|
|
296
|
-
[data-ui
|
|
319
|
+
[data-ui-inline-message]:has([data-part-text]:empty) > [data-part-icon],
|
|
320
|
+
[data-ui-inline-message]:has([data-part-text]:empty) > [data-part-prefix] {
|
|
297
321
|
display: none;
|
|
298
322
|
}
|
|
299
323
|
|
|
@@ -309,7 +333,7 @@
|
|
|
309
333
|
* It is the ring `button` draws for the same reason, at the same duration,
|
|
310
334
|
* in the mark's own square on the first line where the mark it replaced was.
|
|
311
335
|
*/
|
|
312
|
-
[data-ui
|
|
336
|
+
[data-ui-inline-message][data-loading] > [data-part-icon] {
|
|
313
337
|
animation: slotted-inline-message-spin var(--slotted-duration-loop-fast) linear infinite;
|
|
314
338
|
block-size: var(--_mark-size);
|
|
315
339
|
border: max(var(--slotted-border-width-thin, 1px), calc(var(--_mark-size) / 8)) solid
|
|
@@ -329,7 +353,7 @@
|
|
|
329
353
|
|
|
330
354
|
/* The page's own artwork withdraws for the ring rather than sitting inside
|
|
331
355
|
it, because the ring is the mark while the message is waiting. */
|
|
332
|
-
[data-ui
|
|
356
|
+
[data-ui-inline-message][data-loading] > [data-part-icon] > * {
|
|
333
357
|
display: none;
|
|
334
358
|
}
|
|
335
359
|
|
|
@@ -343,11 +367,11 @@
|
|
|
343
367
|
* own. The ring does need one: `STATE_PRECEDENCE` puts `disabled` above
|
|
344
368
|
* `loading`, and a control nobody can use is not waiting for anything.
|
|
345
369
|
*/
|
|
346
|
-
[data-ui
|
|
370
|
+
[data-ui-inline-message][data-part-root][data-disabled] {
|
|
347
371
|
color: var(--slotted-disabled-foreground);
|
|
348
372
|
}
|
|
349
373
|
|
|
350
|
-
[data-ui
|
|
374
|
+
[data-ui-inline-message][data-disabled] > [data-part-icon] {
|
|
351
375
|
animation: none;
|
|
352
376
|
}
|
|
353
377
|
|
|
@@ -357,7 +381,7 @@
|
|
|
357
381
|
* is the decision `button` recorded for the same ring.
|
|
358
382
|
*/
|
|
359
383
|
@media (prefers-reduced-motion: reduce) {
|
|
360
|
-
[data-ui
|
|
384
|
+
[data-ui-inline-message][data-loading] > [data-part-icon] {
|
|
361
385
|
animation: none;
|
|
362
386
|
}
|
|
363
387
|
}
|
|
@@ -374,15 +398,15 @@
|
|
|
374
398
|
* one colour and the turn would be a complete circle turning invisibly.
|
|
375
399
|
*/
|
|
376
400
|
@media (forced-colors: active) {
|
|
377
|
-
[data-ui
|
|
401
|
+
[data-ui-inline-message] > [data-part-icon] {
|
|
378
402
|
color: CanvasText;
|
|
379
403
|
}
|
|
380
404
|
|
|
381
|
-
[data-ui
|
|
405
|
+
[data-ui-inline-message][data-part-root][data-disabled] > [data-part-icon] {
|
|
382
406
|
color: GrayText;
|
|
383
407
|
}
|
|
384
408
|
|
|
385
|
-
[data-ui
|
|
409
|
+
[data-ui-inline-message][data-loading] > [data-part-icon] {
|
|
386
410
|
border-color: CanvasText;
|
|
387
411
|
border-inline-end-color: Canvas;
|
|
388
412
|
}
|
|
@@ -5,15 +5,19 @@
|
|
|
5
5
|
"--slotted-control-font-size-sm",
|
|
6
6
|
"--slotted-disabled-foreground",
|
|
7
7
|
"--slotted-duration-loop-fast",
|
|
8
|
+
"--slotted-inline-message-actions-gap",
|
|
9
|
+
"--slotted-inline-message-actions-offset",
|
|
8
10
|
"--slotted-inline-message-column-gap",
|
|
9
11
|
"--slotted-inline-message-font-family",
|
|
10
12
|
"--slotted-inline-message-line-height",
|
|
11
13
|
"--slotted-line-height-md",
|
|
12
14
|
"--slotted-radius-full",
|
|
15
|
+
"--slotted-space-2",
|
|
13
16
|
"--slotted-space-4",
|
|
14
17
|
"--slotted-text-muted",
|
|
15
18
|
"--slotted-tone-accent-text",
|
|
16
19
|
"--slotted-tone-danger-text",
|
|
20
|
+
"--slotted-tone-info-text",
|
|
17
21
|
"--slotted-tone-success-text",
|
|
18
22
|
"--slotted-tone-warning-text"
|
|
19
23
|
]
|
package/src/kbd/kbd.css
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* The same length is the minimum inline size, which is what makes a
|
|
20
20
|
* one-letter cap square instead of a slot.
|
|
21
21
|
*/
|
|
22
|
-
[data-ui
|
|
22
|
+
[data-ui-kbd] {
|
|
23
23
|
/**
|
|
24
24
|
* The height comes from the space scale — 16, 20, 24, 28 — and not from
|
|
25
25
|
* the control geometry. A cap on its own is a glyph box, not a control,
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
--_color: var(--slotted-text, CanvasText);
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
-
[data-ui
|
|
76
|
+
[data-ui-kbd][data-part-root] {
|
|
77
77
|
background-color: var(--_background);
|
|
78
78
|
background-image: var(--_face);
|
|
79
79
|
/**
|
|
@@ -167,7 +167,7 @@
|
|
|
167
167
|
* so the trim moves the ink and never the box.
|
|
168
168
|
*/
|
|
169
169
|
@supports (text-box: trim-both cap alphabetic) {
|
|
170
|
-
[data-ui
|
|
170
|
+
[data-ui-kbd] [data-part-legend] {
|
|
171
171
|
text-box: trim-both cap alphabetic;
|
|
172
172
|
}
|
|
173
173
|
|
|
@@ -179,7 +179,7 @@
|
|
|
179
179
|
* three sat visibly high in the cap. Left untrimmed, what gets centred is
|
|
180
180
|
* the em box, which is where a mark is drawn.
|
|
181
181
|
*/
|
|
182
|
-
[data-ui
|
|
182
|
+
[data-ui-kbd] [data-part-legend][data-legend='symbol'] {
|
|
183
183
|
text-box: normal;
|
|
184
184
|
}
|
|
185
185
|
}
|
|
@@ -193,7 +193,7 @@
|
|
|
193
193
|
* below the cap height of `K`, and at 1.15em `⌫` stood wider than the
|
|
194
194
|
* `Esc` beside it.
|
|
195
195
|
*/
|
|
196
|
-
[data-ui
|
|
196
|
+
[data-ui-kbd] [data-part-legend][data-legend='symbol'] {
|
|
197
197
|
font-family: var(--slotted-kbd-symbol-font-family, var(--slotted-font-family-sans, sans-serif));
|
|
198
198
|
font-size: 1.1em;
|
|
199
199
|
}
|
|
@@ -208,7 +208,7 @@
|
|
|
208
208
|
* whose accessible name disappears when a consumer forgets an import has no
|
|
209
209
|
* accessible name.
|
|
210
210
|
*/
|
|
211
|
-
[data-ui
|
|
211
|
+
[data-ui-kbd] [data-part-name] {
|
|
212
212
|
block-size: 1px;
|
|
213
213
|
border: 0;
|
|
214
214
|
clip-path: inset(50%);
|
|
@@ -233,10 +233,14 @@
|
|
|
233
233
|
* pinned. A key legend written in Arabic still renders right-to-left within
|
|
234
234
|
* its own cap, because that is a run of its own.
|
|
235
235
|
*/
|
|
236
|
-
[data-ui
|
|
236
|
+
[data-ui-kbd][data-part-shortcut] {
|
|
237
237
|
align-items: center;
|
|
238
238
|
direction: ltr;
|
|
239
239
|
display: inline-flex;
|
|
240
|
+
/* The root is a `kbd`: without these it keeps the user agent's monospace
|
|
241
|
+
face and its line box, which a key in the combination does not share. */
|
|
242
|
+
font-family: var(--slotted-kbd-font-family, var(--slotted-control-font-family, sans-serif));
|
|
243
|
+
line-height: 1;
|
|
240
244
|
/**
|
|
241
245
|
* A shortcut wider than its column wraps between caps and never inside
|
|
242
246
|
* one. The row gets taller; no instruction gets shorter.
|
|
@@ -262,11 +266,11 @@
|
|
|
262
266
|
* `⌥⇧⌘P` and `⌘K` read as one run of six keys. One step tighter is what says
|
|
263
267
|
* these caps are one shortcut. Everywhere else the `+` says it instead.
|
|
264
268
|
*/
|
|
265
|
-
[data-ui
|
|
269
|
+
[data-ui-kbd][data-part-shortcut][data-platform='mac'] {
|
|
266
270
|
--_gap: var(--slotted-space-1, 0.125rem);
|
|
267
271
|
}
|
|
268
272
|
|
|
269
|
-
[data-ui
|
|
273
|
+
[data-ui-kbd][data-part-shortcut][data-platform='mac'][data-size='inherit'] {
|
|
270
274
|
--_gap: 0.125em;
|
|
271
275
|
}
|
|
272
276
|
|
|
@@ -277,7 +281,7 @@
|
|
|
277
281
|
* announce for the same shortcut. The word is not hidden: it is the only
|
|
278
282
|
* thing that tells a sequence from a combination.
|
|
279
283
|
*/
|
|
280
|
-
[data-ui
|
|
284
|
+
[data-ui-kbd] [data-part-separator] {
|
|
281
285
|
color: var(--slotted-text-muted, GrayText);
|
|
282
286
|
flex: none;
|
|
283
287
|
font-family: var(--slotted-kbd-font-family, var(--slotted-control-font-family, sans-serif));
|
|
@@ -285,7 +289,7 @@
|
|
|
285
289
|
line-height: 1;
|
|
286
290
|
}
|
|
287
291
|
|
|
288
|
-
[data-ui
|
|
292
|
+
[data-ui-kbd] [data-part-separator][data-separator='then'] {
|
|
289
293
|
font-family: var(--slotted-control-font-family, sans-serif);
|
|
290
294
|
/**
|
|
291
295
|
* A step boundary is a bigger break than a key join, so it gets more air
|
|
@@ -307,7 +311,7 @@
|
|
|
307
311
|
* scale starts at 12px, and 12px in a 16-pixel cap left one pixel of air
|
|
308
312
|
* above an ascender, so this step writes the one size the scale lacks.
|
|
309
313
|
*/
|
|
310
|
-
[data-ui
|
|
314
|
+
[data-ui-kbd][data-size='xs'] {
|
|
311
315
|
--_size: var(--slotted-space-6, 1rem);
|
|
312
316
|
--_font-size: 0.6875rem;
|
|
313
317
|
--_inset-inline: var(--slotted-space-2, 0.25rem);
|
|
@@ -315,13 +319,13 @@
|
|
|
315
319
|
--_gap: var(--slotted-space-1, 0.125rem);
|
|
316
320
|
}
|
|
317
321
|
|
|
318
|
-
[data-ui
|
|
322
|
+
[data-ui-kbd][data-size='sm'] {
|
|
319
323
|
--_size: var(--slotted-space-7, 1.25rem);
|
|
320
324
|
--_font-size: var(--slotted-control-font-size-sm, 12px);
|
|
321
325
|
--_inset-inline: var(--slotted-space-2, 0.25rem);
|
|
322
326
|
}
|
|
323
327
|
|
|
324
|
-
[data-ui
|
|
328
|
+
[data-ui-kbd][data-size='lg'] {
|
|
325
329
|
--_size: calc(var(--slotted-space-8, 1.5rem) + var(--slotted-space-2, 0.25rem));
|
|
326
330
|
--_font-size: var(--slotted-control-font-size-lg, 14px);
|
|
327
331
|
--_inset-inline: var(--slotted-space-4, 0.5rem);
|
|
@@ -341,7 +345,7 @@
|
|
|
341
345
|
* insets plus edges, made 25.8px on 16px text set at 24px lines. The radius
|
|
342
346
|
* is a quarter of that height, the proportion of the absolute steps.
|
|
343
347
|
*/
|
|
344
|
-
[data-ui
|
|
348
|
+
[data-ui-kbd][data-size='inherit'] {
|
|
345
349
|
--_size: 1.5em;
|
|
346
350
|
--_font-size: 0.8em;
|
|
347
351
|
--_inset-inline: 0.4em;
|
|
@@ -351,7 +355,7 @@
|
|
|
351
355
|
|
|
352
356
|
/* A fractional height puts both horizontal edges between pixels. */
|
|
353
357
|
@supports (inline-size: round(nearest, 1.5em, 1px)) {
|
|
354
|
-
[data-ui
|
|
358
|
+
[data-ui-kbd][data-size='inherit'] {
|
|
355
359
|
--_size: round(nearest, 1.5em, 1px);
|
|
356
360
|
}
|
|
357
361
|
}
|
|
@@ -363,7 +367,7 @@
|
|
|
363
367
|
* outlined one, and it is why `raised` is the default: it is the only value
|
|
364
368
|
* that reads as an object rather than as a box drawn round a word.
|
|
365
369
|
*/
|
|
366
|
-
[data-ui
|
|
370
|
+
[data-ui-kbd][data-variant='raised'] {
|
|
367
371
|
--_base-width: var(--slotted-kbd-base-width, var(--slotted-border-width-thick, 2px));
|
|
368
372
|
/**
|
|
369
373
|
* The skirt. The lower part of the face turns a tenth of the way toward
|
|
@@ -390,7 +394,7 @@
|
|
|
390
394
|
* survive an unknown surface was the one variant that could not. A box that
|
|
391
395
|
* borrows its ground borrows its foreground with it.
|
|
392
396
|
*/
|
|
393
|
-
[data-ui
|
|
397
|
+
[data-ui-kbd][data-variant='outline'] {
|
|
394
398
|
--_background: transparent;
|
|
395
399
|
/* The edge is all this variant draws, so it is the strong one all round. */
|
|
396
400
|
--_border: var(--slotted-border-strong, ButtonBorder);
|
|
@@ -403,7 +407,7 @@
|
|
|
403
407
|
* panel, where a key painted with it would disappear; the neutral tone's
|
|
404
408
|
* surface is the step `badge` calibrated to read on both.
|
|
405
409
|
*/
|
|
406
|
-
[data-ui
|
|
410
|
+
[data-ui-kbd][data-variant='soft'] {
|
|
407
411
|
--_background: var(--slotted-tone-secondary-surface);
|
|
408
412
|
/**
|
|
409
413
|
* The tinted key draws the tone's own edge, as every `badge` variant does,
|
|
@@ -431,14 +435,14 @@
|
|
|
431
435
|
* also what makes the row work: a menu item that dims dims its shortcut with
|
|
432
436
|
* it, with no state to set and nothing left bright at the end of a grey row.
|
|
433
437
|
*/
|
|
434
|
-
[data-ui
|
|
438
|
+
[data-ui-kbd][data-variant='plain'] {
|
|
435
439
|
--_background: transparent;
|
|
436
440
|
--_border: transparent;
|
|
437
441
|
--_base: transparent;
|
|
438
442
|
--_color: inherit;
|
|
439
443
|
}
|
|
440
444
|
|
|
441
|
-
[data-ui
|
|
445
|
+
[data-ui-kbd][data-part-root][data-variant='plain'] {
|
|
442
446
|
min-inline-size: 0;
|
|
443
447
|
padding-inline: 0;
|
|
444
448
|
}
|
|
@@ -451,7 +455,7 @@
|
|
|
451
455
|
* belongs to owns the semantics: `kbd` may carry only the global ARIA
|
|
452
456
|
* attributes, and `aria-disabled` is not one of them.
|
|
453
457
|
*/
|
|
454
|
-
[data-ui
|
|
458
|
+
[data-ui-kbd][data-disabled] {
|
|
455
459
|
--_background: var(--slotted-disabled-background, Canvas);
|
|
456
460
|
--_face: none;
|
|
457
461
|
--_border: var(--slotted-disabled-border, GrayText);
|
|
@@ -459,7 +463,7 @@
|
|
|
459
463
|
--_color: var(--slotted-disabled-foreground, GrayText);
|
|
460
464
|
}
|
|
461
465
|
|
|
462
|
-
[data-ui
|
|
466
|
+
[data-ui-kbd][data-disabled] [data-part-separator] {
|
|
463
467
|
color: var(--slotted-disabled-foreground, GrayText);
|
|
464
468
|
}
|
|
465
469
|
|
|
@@ -468,12 +472,12 @@
|
|
|
468
472
|
* that filled itself grey would be a grey rectangle on whatever surface it
|
|
469
473
|
* was placed over, which is the one thing the variant exists to avoid.
|
|
470
474
|
*/
|
|
471
|
-
[data-ui
|
|
472
|
-
[data-ui
|
|
475
|
+
[data-ui-kbd][data-variant='outline'][data-disabled],
|
|
476
|
+
[data-ui-kbd][data-variant='plain'][data-disabled] {
|
|
473
477
|
--_background: transparent;
|
|
474
478
|
}
|
|
475
479
|
|
|
476
|
-
[data-ui
|
|
480
|
+
[data-ui-kbd][data-variant='plain'][data-disabled] {
|
|
477
481
|
--_border: transparent;
|
|
478
482
|
--_base: transparent;
|
|
479
483
|
}
|