@slotted/styles 0.1.0-beta.1 → 0.1.0-beta.11
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 +35 -42
- 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 +149 -68
- package/src/button/button.tokens.json +10 -0
- package/src/button-group/button-group.css +79 -74
- 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 +103 -90
- package/src/command-palette/command-palette.tokens.json +1 -0
- 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 +535 -470
- package/src/data-grid/data-grid.tokens.json +4 -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 +86 -71
- package/src/detail-panel/detail-panel.tokens.json +2 -0
- package/src/dialog/dialog.css +372 -153
- package/src/dialog/dialog.tokens.json +6 -0
- package/src/divider/divider.css +18 -18
- package/src/drawer/drawer.css +205 -210
- package/src/drawer/drawer.tokens.json +1 -0
- 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 +39 -23
- package/src/page/page.tokens.json +1 -0
- package/src/page-header/page-header.css +323 -283
- package/src/page-header/page-header.tokens.json +5 -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 +83 -180
- package/src/spinner/spinner.tokens.json +0 -1
- 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 +337 -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 +108 -90
- package/src/toast/toast.tokens.json +6 -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
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
"--slotted-border-strong",
|
|
3
3
|
"--slotted-border-subtle",
|
|
4
4
|
"--slotted-border-width-medium",
|
|
5
|
+
"--slotted-border-width-thick",
|
|
5
6
|
"--slotted-border-width-thin",
|
|
6
7
|
"--slotted-control-border-color",
|
|
7
8
|
"--slotted-control-border-width",
|
|
9
|
+
"--slotted-control-focus-ring-offset",
|
|
8
10
|
"--slotted-control-font-family",
|
|
9
11
|
"--slotted-control-font-size-lg",
|
|
10
12
|
"--slotted-control-font-size-md",
|
|
@@ -24,9 +26,14 @@
|
|
|
24
26
|
"--slotted-control-surface",
|
|
25
27
|
"--slotted-control-transition-duration",
|
|
26
28
|
"--slotted-control-transition-easing",
|
|
29
|
+
"--slotted-data-1",
|
|
30
|
+
"--slotted-data-2",
|
|
31
|
+
"--slotted-data-3",
|
|
32
|
+
"--slotted-data-5",
|
|
27
33
|
"--slotted-disabled-background",
|
|
28
34
|
"--slotted-disabled-border",
|
|
29
35
|
"--slotted-disabled-foreground",
|
|
36
|
+
"--slotted-duration-loop-slow",
|
|
30
37
|
"--slotted-duration-medium",
|
|
31
38
|
"--slotted-duration-short",
|
|
32
39
|
"--slotted-easing-enter",
|
|
@@ -62,6 +69,13 @@
|
|
|
62
69
|
"--slotted-prompt-composer-raised-focus-shadow",
|
|
63
70
|
"--slotted-prompt-composer-raised-shadow",
|
|
64
71
|
"--slotted-prompt-composer-readonly-background",
|
|
72
|
+
"--slotted-prompt-composer-ring-colors",
|
|
73
|
+
"--slotted-prompt-composer-ring-duration",
|
|
74
|
+
"--slotted-prompt-composer-ring-glow-opacity",
|
|
75
|
+
"--slotted-prompt-composer-ring-glow-opacity-busy",
|
|
76
|
+
"--slotted-prompt-composer-ring-glow-opacity-focus",
|
|
77
|
+
"--slotted-prompt-composer-ring-glow-reach",
|
|
78
|
+
"--slotted-prompt-composer-ring-width",
|
|
65
79
|
"--slotted-prompt-composer-rows",
|
|
66
80
|
"--slotted-prompt-composer-selection-background",
|
|
67
81
|
"--slotted-prompt-composer-shadow",
|
|
@@ -82,6 +96,7 @@
|
|
|
82
96
|
"--slotted-space-3",
|
|
83
97
|
"--slotted-space-4",
|
|
84
98
|
"--slotted-space-5",
|
|
99
|
+
"--slotted-space-8",
|
|
85
100
|
"--slotted-surface-sunken",
|
|
86
101
|
"--slotted-target-comfortable",
|
|
87
102
|
"--slotted-target-min",
|
package/src/prose/prose.css
CHANGED
|
@@ -8,20 +8,20 @@
|
|
|
8
8
|
* two: a Slotted family placed inside the region, selected by `data-ui` at
|
|
9
9
|
* 0-1-0, and the consumer's own rule. So every content rule below is written
|
|
10
10
|
*
|
|
11
|
-
* [data-ui
|
|
11
|
+
* [data-ui-prose] :where(<tag>):not(:where(<the donut>))
|
|
12
12
|
*
|
|
13
13
|
* which weighs 0-1-0 — the root and nothing else. `:where()` has no weight,
|
|
14
14
|
* and `:not()` takes the weight of its argument, which here is also none.
|
|
15
15
|
*
|
|
16
16
|
* The donut is the opt-out: `data-part='exclude'` and everything inside it.
|
|
17
|
-
* `@scope ([data-ui
|
|
17
|
+
* `@scope ([data-ui-prose]) to ([data-part='exclude'])` says the same thing
|
|
18
18
|
* in one line and resolves lower still, and it was refused on a date rather
|
|
19
19
|
* than on a principle: it reached Baseline in March 2026, and an `@scope`
|
|
20
20
|
* block a browser cannot parse drops this whole stylesheet instead of one
|
|
21
21
|
* declaration. The attribute is the same either way, so the move costs no
|
|
22
22
|
* contract change. `specs/components/prose/contract.json` holds the note.
|
|
23
23
|
*/
|
|
24
|
-
[data-ui
|
|
24
|
+
[data-ui-prose] {
|
|
25
25
|
/**
|
|
26
26
|
* The space between blocks. Typeset proves one number governs a whole page
|
|
27
27
|
* — heading gaps, list gaps and the room around a rule all derive from it —
|
|
@@ -95,27 +95,27 @@
|
|
|
95
95
|
* is, so the offset from control type is a fact a reader can check rather
|
|
96
96
|
* than one hidden behind `sm`.
|
|
97
97
|
*/
|
|
98
|
-
[data-ui
|
|
98
|
+
[data-ui-prose][data-size='md'] {
|
|
99
99
|
font-size: var(--slotted-font-size-md, 0.875rem);
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
-
[data-ui
|
|
102
|
+
[data-ui-prose][data-size='lg'] {
|
|
103
103
|
font-size: var(--slotted-font-size-lg, 1rem);
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
[data-ui
|
|
106
|
+
[data-ui-prose][data-size='xl'] {
|
|
107
107
|
font-size: var(--slotted-font-size-xl, 1.125rem);
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
-
[data-ui
|
|
110
|
+
[data-ui-prose][data-flow='tight'] {
|
|
111
111
|
--_flow: var(--slotted-prose-flow-tight, 0.75em);
|
|
112
112
|
}
|
|
113
113
|
|
|
114
|
-
[data-ui
|
|
114
|
+
[data-ui-prose][data-flow='normal'] {
|
|
115
115
|
--_flow: var(--slotted-prose-flow-normal, 1.15em);
|
|
116
116
|
}
|
|
117
117
|
|
|
118
|
-
[data-ui
|
|
118
|
+
[data-ui-prose][data-flow='loose'] {
|
|
119
119
|
--_flow: var(--slotted-prose-flow-loose, 1.6em);
|
|
120
120
|
}
|
|
121
121
|
|
|
@@ -129,7 +129,7 @@
|
|
|
129
129
|
* and are stable, and `prose.styles.test.mjs` holds the distinction.
|
|
130
130
|
*/
|
|
131
131
|
|
|
132
|
-
[data-ui
|
|
132
|
+
[data-ui-prose]
|
|
133
133
|
:where(
|
|
134
134
|
p,
|
|
135
135
|
ul,
|
|
@@ -147,7 +147,7 @@
|
|
|
147
147
|
h4,
|
|
148
148
|
h5,
|
|
149
149
|
h6,
|
|
150
|
-
[data-part
|
|
150
|
+
[data-part-scroll],
|
|
151
151
|
[data-part='footnotes']
|
|
152
152
|
):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
153
153
|
margin-block-end: 0;
|
|
@@ -159,9 +159,9 @@
|
|
|
159
159
|
* child of the region and of every box that holds blocks of its own, so a
|
|
160
160
|
* quotation, a list item and a table cell each start flush.
|
|
161
161
|
*/
|
|
162
|
-
[data-ui
|
|
163
|
-
[data-ui
|
|
164
|
-
:where(li, blockquote, td, th, details, figure, [data-part
|
|
162
|
+
[data-ui-prose] > :first-child,
|
|
163
|
+
[data-ui-prose]
|
|
164
|
+
:where(li, blockquote, td, th, details, figure, [data-part-scroll])
|
|
165
165
|
> :first-child {
|
|
166
166
|
margin-block-start: 0;
|
|
167
167
|
}
|
|
@@ -171,7 +171,7 @@
|
|
|
171
171
|
* The pair is what keeps two consecutive headings — a section title followed
|
|
172
172
|
* by its first subsection — from collapsing into one block.
|
|
173
173
|
*/
|
|
174
|
-
[data-ui
|
|
174
|
+
[data-ui-prose]
|
|
175
175
|
:where(h1, h2, h3, h4, h5, h6):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
176
176
|
color: var(--slotted-text, CanvasText);
|
|
177
177
|
font-family: var(
|
|
@@ -197,31 +197,31 @@
|
|
|
197
197
|
text-wrap: balance;
|
|
198
198
|
}
|
|
199
199
|
|
|
200
|
-
[data-ui
|
|
200
|
+
[data-ui-prose]
|
|
201
201
|
:where(h1, h2, h3, h4, h5, h6)
|
|
202
202
|
+ :not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
203
203
|
margin-block-start: calc(var(--_flow) * 0.5);
|
|
204
204
|
}
|
|
205
205
|
|
|
206
|
-
[data-ui
|
|
206
|
+
[data-ui-prose] :where(h1):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
207
207
|
font-size: var(--_h1);
|
|
208
208
|
line-height: var(--slotted-line-height-3xl, 1.3);
|
|
209
209
|
}
|
|
210
210
|
|
|
211
|
-
[data-ui
|
|
211
|
+
[data-ui-prose] :where(h2):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
212
212
|
font-size: var(--_h2);
|
|
213
213
|
line-height: var(--slotted-line-height-3xl, 1.3);
|
|
214
214
|
}
|
|
215
215
|
|
|
216
|
-
[data-ui
|
|
216
|
+
[data-ui-prose] :where(h3):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
217
217
|
font-size: var(--_h3);
|
|
218
218
|
}
|
|
219
219
|
|
|
220
|
-
[data-ui
|
|
220
|
+
[data-ui-prose] :where(h4):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
221
221
|
font-size: var(--_h4);
|
|
222
222
|
}
|
|
223
223
|
|
|
224
|
-
[data-ui
|
|
224
|
+
[data-ui-prose] :where(h5):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
225
225
|
font-size: var(--_h5);
|
|
226
226
|
}
|
|
227
227
|
|
|
@@ -229,7 +229,7 @@
|
|
|
229
229
|
* The sixth level is smaller than the body text, so weight and case are what
|
|
230
230
|
* carry it. A heading that is merely smaller reads as a caption.
|
|
231
231
|
*/
|
|
232
|
-
[data-ui
|
|
232
|
+
[data-ui-prose] :where(h6):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
233
233
|
color: var(--_muted);
|
|
234
234
|
font-size: var(--_h6);
|
|
235
235
|
letter-spacing: var(--slotted-prose-h6-tracking, 0.06em);
|
|
@@ -242,7 +242,7 @@
|
|
|
242
242
|
* is the common languages written in it, which is the correction
|
|
243
243
|
* `typography` already carries.
|
|
244
244
|
*/
|
|
245
|
-
[data-ui
|
|
245
|
+
[data-ui-prose]
|
|
246
246
|
:where(h6):not(:where([data-part='exclude'], [data-part='exclude'] *)):where(
|
|
247
247
|
:lang(ar),
|
|
248
248
|
:lang(fa),
|
|
@@ -254,7 +254,7 @@
|
|
|
254
254
|
|
|
255
255
|
/* ── Running text ───────────────────────────────────────────────────── */
|
|
256
256
|
|
|
257
|
-
[data-ui
|
|
257
|
+
[data-ui-prose] :where(p):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
258
258
|
/**
|
|
259
259
|
* `pretty` asks the browser for the last few lines rather than the whole
|
|
260
260
|
* paragraph, which is what keeps a widow off the end without the cost
|
|
@@ -263,11 +263,11 @@
|
|
|
263
263
|
text-wrap: pretty;
|
|
264
264
|
}
|
|
265
265
|
|
|
266
|
-
[data-ui
|
|
266
|
+
[data-ui-prose] :where(strong, b):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
267
267
|
font-weight: var(--slotted-font-weight-semibold, 600);
|
|
268
268
|
}
|
|
269
269
|
|
|
270
|
-
[data-ui
|
|
270
|
+
[data-ui-prose] :where(small):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
271
271
|
font-size: var(--slotted-prose-small-size, 0.875em);
|
|
272
272
|
}
|
|
273
273
|
|
|
@@ -277,15 +277,14 @@
|
|
|
277
277
|
* theme's own — a mark painted with a background and no matching ink is a
|
|
278
278
|
* mark that vanishes in the dark scheme.
|
|
279
279
|
*/
|
|
280
|
-
[data-ui
|
|
280
|
+
[data-ui-prose] :where(mark):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
281
281
|
background-color: var(--slotted-tone-warning-surface, Mark);
|
|
282
282
|
border-radius: var(--slotted-radius-xs, 2px);
|
|
283
283
|
color: var(--slotted-tone-warning-text, MarkText);
|
|
284
284
|
padding-inline: var(--slotted-prose-mark-inset, 0.2em);
|
|
285
285
|
}
|
|
286
286
|
|
|
287
|
-
[data-ui='
|
|
288
|
-
:where(abbr[title]):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
287
|
+
[data-ui-prose] :where(abbr[title]):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
289
288
|
text-decoration-line: underline;
|
|
290
289
|
text-decoration-style: dotted;
|
|
291
290
|
text-underline-offset: 0.2em;
|
|
@@ -296,7 +295,7 @@
|
|
|
296
295
|
* sits in; zero is what keeps the paragraph's rhythm even where a footnote
|
|
297
296
|
* reference lands.
|
|
298
297
|
*/
|
|
299
|
-
[data-ui
|
|
298
|
+
[data-ui-prose] :where(sub, sup):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
300
299
|
font-size: 0.75em;
|
|
301
300
|
line-height: 0;
|
|
302
301
|
}
|
|
@@ -310,7 +309,7 @@
|
|
|
310
309
|
* `<Link>` placed inside this region wins on specificity and is left alone.
|
|
311
310
|
*/
|
|
312
311
|
|
|
313
|
-
[data-ui
|
|
312
|
+
[data-ui-prose] :where(a[href]):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
314
313
|
color: var(--slotted-link-color, var(--slotted-tone-accent-text, LinkText));
|
|
315
314
|
text-decoration-color: var(
|
|
316
315
|
--slotted-link-underline-color,
|
|
@@ -324,7 +323,7 @@
|
|
|
324
323
|
text-decoration-color var(--slotted-duration-short) var(--slotted-easing-standard);
|
|
325
324
|
}
|
|
326
325
|
|
|
327
|
-
[data-ui
|
|
326
|
+
[data-ui-prose]
|
|
328
327
|
:where(a[href]):not(:where([data-part='exclude'], [data-part='exclude'] *)):not(
|
|
329
328
|
[data-disabled]
|
|
330
329
|
):hover {
|
|
@@ -339,7 +338,7 @@
|
|
|
339
338
|
text-decoration-color: currentColor;
|
|
340
339
|
}
|
|
341
340
|
|
|
342
|
-
[data-ui
|
|
341
|
+
[data-ui-prose]
|
|
343
342
|
:where(a[href]):not(:where([data-part='exclude'], [data-part='exclude'] *)):focus-visible {
|
|
344
343
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
345
344
|
outline-offset: var(--slotted-link-focus-ring-offset, 1px);
|
|
@@ -354,16 +353,16 @@
|
|
|
354
353
|
* <https://www.scottohara.me/blog/2019/01/12/lists-and-safari.html>.
|
|
355
354
|
*/
|
|
356
355
|
|
|
357
|
-
[data-ui
|
|
356
|
+
[data-ui-prose] :where(ul, ol):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
358
357
|
padding-inline-start: var(--slotted-prose-list-inset, 1.5em);
|
|
359
358
|
}
|
|
360
359
|
|
|
361
|
-
[data-ui
|
|
360
|
+
[data-ui-prose] :where(li):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
362
361
|
margin-block-start: calc(var(--_flow) * 0.35);
|
|
363
362
|
padding-inline-start: var(--slotted-prose-marker-gap, 0.25em);
|
|
364
363
|
}
|
|
365
364
|
|
|
366
|
-
[data-ui
|
|
365
|
+
[data-ui-prose] :where(li):not(:where([data-part='exclude'], [data-part='exclude'] *))::marker {
|
|
367
366
|
color: var(--_muted);
|
|
368
367
|
}
|
|
369
368
|
|
|
@@ -371,24 +370,24 @@
|
|
|
371
370
|
* A nested list belongs to the row above it, so it takes the gap between two
|
|
372
371
|
* rows rather than the gap between two blocks.
|
|
373
372
|
*/
|
|
374
|
-
[data-ui
|
|
373
|
+
[data-ui-prose]
|
|
375
374
|
:where(li)
|
|
376
375
|
> :where(ul, ol):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
377
376
|
margin-block-start: calc(var(--_flow) * 0.35);
|
|
378
377
|
}
|
|
379
378
|
|
|
380
|
-
[data-ui
|
|
379
|
+
[data-ui-prose] :where(dt):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
381
380
|
font-weight: var(--slotted-font-weight-semibold, 600);
|
|
382
381
|
margin-block-start: calc(var(--_flow) * 0.5);
|
|
383
382
|
}
|
|
384
383
|
|
|
385
|
-
[data-ui
|
|
384
|
+
[data-ui-prose] :where(dd):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
386
385
|
margin-inline-start: var(--slotted-prose-list-inset, 1.5em);
|
|
387
386
|
}
|
|
388
387
|
|
|
389
388
|
/* ── Quotation ──────────────────────────────────────────────────────── */
|
|
390
389
|
|
|
391
|
-
[data-ui
|
|
390
|
+
[data-ui-prose] :where(blockquote):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
392
391
|
border-inline-start: var(
|
|
393
392
|
--slotted-prose-quote-thickness,
|
|
394
393
|
var(--slotted-border-width-thick, 2px)
|
|
@@ -408,11 +407,11 @@
|
|
|
408
407
|
}
|
|
409
408
|
|
|
410
409
|
/** The same forty pixels, on the element that holds an image. */
|
|
411
|
-
[data-ui
|
|
410
|
+
[data-ui-prose] :where(figure):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
412
411
|
margin-inline: 0;
|
|
413
412
|
}
|
|
414
413
|
|
|
415
|
-
[data-ui
|
|
414
|
+
[data-ui-prose]
|
|
416
415
|
:where(figcaption, caption):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
417
416
|
color: var(--_muted);
|
|
418
417
|
font-size: var(--slotted-prose-caption-size, 0.875em);
|
|
@@ -422,7 +421,7 @@
|
|
|
422
421
|
|
|
423
422
|
/* ── Media ──────────────────────────────────────────────────────────── */
|
|
424
423
|
|
|
425
|
-
[data-ui
|
|
424
|
+
[data-ui-prose]
|
|
426
425
|
:where(img, svg, video, canvas):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
427
426
|
block-size: auto;
|
|
428
427
|
border-radius: var(--slotted-prose-media-radius, var(--slotted-radius-md, 6px));
|
|
@@ -441,21 +440,21 @@
|
|
|
441
440
|
* code starts.
|
|
442
441
|
*/
|
|
443
442
|
|
|
444
|
-
[data-ui
|
|
443
|
+
[data-ui-prose]
|
|
445
444
|
:where(code, kbd, samp, var):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
446
445
|
font-family: var(--slotted-font-family-mono, ui-monospace, monospace);
|
|
447
446
|
/* The mono face runs large beside the sans at the same size. */
|
|
448
447
|
font-size: var(--slotted-prose-code-size, 0.9em);
|
|
449
448
|
}
|
|
450
449
|
|
|
451
|
-
[data-ui
|
|
450
|
+
[data-ui-prose] :where(code):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
452
451
|
background-color: var(--_ground);
|
|
453
452
|
border: var(--slotted-border-width-thin, 1px) solid var(--_rule);
|
|
454
453
|
border-radius: var(--slotted-radius-sm, 4px);
|
|
455
454
|
padding-inline: var(--slotted-prose-code-inset, 0.3em);
|
|
456
455
|
}
|
|
457
456
|
|
|
458
|
-
[data-ui
|
|
457
|
+
[data-ui-prose] :where(kbd):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
459
458
|
background-color: var(--slotted-surface-raised, Canvas);
|
|
460
459
|
border: var(--slotted-kbd-border-width, var(--slotted-border-width-thin, 1px)) solid
|
|
461
460
|
var(--slotted-border-strong, ButtonBorder);
|
|
@@ -465,7 +464,7 @@
|
|
|
465
464
|
padding-inline: var(--slotted-prose-code-inset, 0.3em);
|
|
466
465
|
}
|
|
467
466
|
|
|
468
|
-
[data-ui
|
|
467
|
+
[data-ui-prose] :where(pre):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
469
468
|
background-color: var(--_ground);
|
|
470
469
|
/**
|
|
471
470
|
* A fence reads left to right in a right-to-left document: the order of
|
|
@@ -483,7 +482,7 @@
|
|
|
483
482
|
}
|
|
484
483
|
|
|
485
484
|
/** A fence is one box, not a box of boxes. */
|
|
486
|
-
[data-ui
|
|
485
|
+
[data-ui-prose]
|
|
487
486
|
:where(pre)
|
|
488
487
|
> :where(code):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
489
488
|
background-color: transparent;
|
|
@@ -502,7 +501,7 @@
|
|
|
502
501
|
* so a row appended to a streaming answer restyles nothing above it.
|
|
503
502
|
*/
|
|
504
503
|
|
|
505
|
-
[data-ui
|
|
504
|
+
[data-ui-prose] :where(table):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
506
505
|
border-collapse: collapse;
|
|
507
506
|
inline-size: 100%;
|
|
508
507
|
text-align: start;
|
|
@@ -519,25 +518,25 @@
|
|
|
519
518
|
* `min-inline-size` keeps a narrow table filling the column, so wrapping a
|
|
520
519
|
* table that happens to fit costs nothing.
|
|
521
520
|
*/
|
|
522
|
-
[data-ui
|
|
523
|
-
[data-part
|
|
521
|
+
[data-ui-prose]
|
|
522
|
+
[data-part-scroll]
|
|
524
523
|
> :where(table):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
525
524
|
inline-size: max-content;
|
|
526
525
|
min-inline-size: 100%;
|
|
527
526
|
}
|
|
528
527
|
|
|
529
|
-
[data-ui
|
|
528
|
+
[data-ui-prose] :where(th, td):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
530
529
|
padding-block: var(--slotted-space-4, 0.5rem);
|
|
531
530
|
padding-inline: var(--slotted-space-5, 0.75rem);
|
|
532
531
|
text-align: start;
|
|
533
532
|
vertical-align: baseline;
|
|
534
533
|
}
|
|
535
534
|
|
|
536
|
-
[data-ui
|
|
535
|
+
[data-ui-prose] :where(th):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
537
536
|
font-weight: var(--slotted-font-weight-semibold, 600);
|
|
538
537
|
}
|
|
539
538
|
|
|
540
|
-
[data-ui
|
|
539
|
+
[data-ui-prose]
|
|
541
540
|
:where(thead)
|
|
542
541
|
> :where(tr)
|
|
543
542
|
> :where(th, td):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
@@ -545,7 +544,7 @@
|
|
|
545
544
|
var(--slotted-border-strong, ButtonBorder);
|
|
546
545
|
}
|
|
547
546
|
|
|
548
|
-
[data-ui
|
|
547
|
+
[data-ui-prose]
|
|
549
548
|
:where(tr + tr)
|
|
550
549
|
> :where(th, td):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
551
550
|
border-block-start: var(--slotted-border-width-thin, 1px) solid var(--_rule);
|
|
@@ -553,19 +552,19 @@
|
|
|
553
552
|
|
|
554
553
|
/* ── Rules and disclosure ───────────────────────────────────────────── */
|
|
555
554
|
|
|
556
|
-
[data-ui
|
|
555
|
+
[data-ui-prose] :where(hr):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
557
556
|
border: 0;
|
|
558
557
|
border-block-start: var(--slotted-divider-thickness, var(--slotted-border-width-thin, 1px))
|
|
559
558
|
solid var(--slotted-divider-color, var(--slotted-border-subtle, ButtonBorder));
|
|
560
559
|
margin-block-start: calc(var(--_flow) * 1.75);
|
|
561
560
|
}
|
|
562
561
|
|
|
563
|
-
[data-ui
|
|
562
|
+
[data-ui-prose] :where(summary):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
564
563
|
cursor: pointer;
|
|
565
564
|
font-weight: var(--slotted-font-weight-medium, 500);
|
|
566
565
|
}
|
|
567
566
|
|
|
568
|
-
[data-ui
|
|
567
|
+
[data-ui-prose]
|
|
569
568
|
:where(summary):not(:where([data-part='exclude'], [data-part='exclude'] *)):focus-visible {
|
|
570
569
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
571
570
|
outline-offset: var(--slotted-prose-focus-ring-offset, 2px);
|
|
@@ -579,13 +578,13 @@
|
|
|
579
578
|
* several. The selector looks backwards, which is what keeps it stable while
|
|
580
579
|
* the rest of the document is still arriving.
|
|
581
580
|
*/
|
|
582
|
-
[data-ui
|
|
581
|
+
[data-ui-prose]
|
|
583
582
|
[data-part='lead']
|
|
584
583
|
+ :not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
585
584
|
margin-block-start: calc(var(--_flow) * 1.35);
|
|
586
585
|
}
|
|
587
586
|
|
|
588
|
-
[data-ui
|
|
587
|
+
[data-ui-prose] [data-part='lead'] {
|
|
589
588
|
color: var(--_muted);
|
|
590
589
|
font-size: var(--slotted-prose-lead-size, 1.125em);
|
|
591
590
|
line-height: var(--slotted-prose-lead-line-height, var(--slotted-line-height-lg, 1.5));
|
|
@@ -615,7 +614,7 @@
|
|
|
615
614
|
* reason: a no-break space would carry a full word space with it.
|
|
616
615
|
*/
|
|
617
616
|
|
|
618
|
-
[data-ui
|
|
617
|
+
[data-ui-prose] [data-part-anchor] {
|
|
619
618
|
align-items: center;
|
|
620
619
|
color: var(--_muted);
|
|
621
620
|
display: inline-flex;
|
|
@@ -629,14 +628,12 @@
|
|
|
629
628
|
transition: opacity var(--slotted-duration-short) var(--slotted-easing-standard);
|
|
630
629
|
}
|
|
631
630
|
|
|
632
|
-
[data-ui
|
|
633
|
-
|
|
634
|
-
> [data-part='anchor']:not([data-disabled]),
|
|
635
|
-
[data-ui='prose'] [data-part='anchor']:focus-visible {
|
|
631
|
+
[data-ui-prose] :where(h1, h2, h3, h4, h5, h6):hover > [data-part-anchor]:not([data-disabled]),
|
|
632
|
+
[data-ui-prose] [data-part-anchor]:focus-visible {
|
|
636
633
|
opacity: 1;
|
|
637
634
|
}
|
|
638
635
|
|
|
639
|
-
[data-ui
|
|
636
|
+
[data-ui-prose] [data-part-anchor]:focus-visible {
|
|
640
637
|
border-radius: var(--slotted-radius-sm, 4px);
|
|
641
638
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
642
639
|
outline-offset: var(--slotted-prose-focus-ring-offset, 2px);
|
|
@@ -659,7 +656,7 @@
|
|
|
659
656
|
* a ring nobody asked for.
|
|
660
657
|
*/
|
|
661
658
|
|
|
662
|
-
[data-ui
|
|
659
|
+
[data-ui-prose] [data-part-scroll] {
|
|
663
660
|
max-inline-size: 100%;
|
|
664
661
|
/* The page does not scroll sideways because one table is wide. */
|
|
665
662
|
overflow-x: auto;
|
|
@@ -667,14 +664,14 @@
|
|
|
667
664
|
overscroll-behavior-inline: contain;
|
|
668
665
|
}
|
|
669
666
|
|
|
670
|
-
[data-ui
|
|
667
|
+
[data-ui-prose] [data-part-scroll][tabindex]:focus-visible {
|
|
671
668
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
672
669
|
outline-offset: var(--slotted-prose-focus-ring-offset, 2px);
|
|
673
670
|
}
|
|
674
671
|
|
|
675
672
|
/* ── Footnotes ──────────────────────────────────────────────────────── */
|
|
676
673
|
|
|
677
|
-
[data-ui
|
|
674
|
+
[data-ui-prose] [data-part='footnotes'] {
|
|
678
675
|
border-block-start: var(--slotted-border-width-thin, 1px) solid var(--_rule);
|
|
679
676
|
color: var(--_muted);
|
|
680
677
|
font-size: var(--slotted-prose-footnotes-size, 0.875em);
|
|
@@ -692,7 +689,7 @@
|
|
|
692
689
|
* expects, and a component that sets its own overrides all four.
|
|
693
690
|
*/
|
|
694
691
|
|
|
695
|
-
[data-ui
|
|
692
|
+
[data-ui-prose] [data-part='exclude'] {
|
|
696
693
|
font-family: var(--slotted-font-family-sans, ui-sans-serif, system-ui, sans-serif);
|
|
697
694
|
font-size: var(--slotted-font-size-md, 0.875rem);
|
|
698
695
|
line-height: var(--slotted-line-height-md, 1.5);
|
|
@@ -711,22 +708,21 @@
|
|
|
711
708
|
|
|
712
709
|
@container slotted-prose (max-width: 34rem) {
|
|
713
710
|
/* A 2em heading in a 400-pixel column is six words a line. */
|
|
714
|
-
[data-ui
|
|
711
|
+
[data-ui-prose] :where(h1):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
715
712
|
font-size: var(--slotted-prose-h1-size-narrow, 1.6em);
|
|
716
713
|
}
|
|
717
714
|
|
|
718
|
-
[data-ui
|
|
715
|
+
[data-ui-prose] :where(h2):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
719
716
|
font-size: var(--slotted-prose-h2-size-narrow, 1.35em);
|
|
720
717
|
}
|
|
721
718
|
}
|
|
722
719
|
|
|
723
720
|
@container slotted-prose (max-width: 22rem) {
|
|
724
|
-
[data-ui='
|
|
725
|
-
:where(blockquote):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
721
|
+
[data-ui-prose] :where(blockquote):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
726
722
|
padding-inline-start: calc(var(--slotted-prose-quote-inset, 1em) / 2);
|
|
727
723
|
}
|
|
728
724
|
|
|
729
|
-
[data-ui
|
|
725
|
+
[data-ui-prose] :where(ul, ol):not(:where([data-part='exclude'], [data-part='exclude'] *)) {
|
|
730
726
|
padding-inline-start: var(--slotted-prose-list-inset-narrow, 1.15em);
|
|
731
727
|
}
|
|
732
728
|
}
|