@stainless-api/ui-primitives 0.1.0-beta.49 → 0.1.0-beta.50

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/dist/styles.css CHANGED
@@ -1,19 +1,14 @@
1
- /* Typography - Stainless */
2
1
  @layer stl-ui.tokens {
3
2
  :root {
4
- --stl-typography-font: 'Geist', system-ui, sans-serif;
5
- --stl-typography-font-mono: 'Geist Mono', ui-monospace, monospace;
3
+ --stl-typography-font: "Geist", system-ui, sans-serif;
4
+ --stl-typography-font-mono: "Geist Mono", ui-monospace, monospace;
6
5
  --stl-typography-font-heading: var(--stl-typography-font);
7
-
8
6
  --stl-typography-line-height: 1.5;
9
7
  --stl-typography-line-height-heading: 1.2;
10
-
11
8
  --stl-typography-text-body: var(--stl-typography-scale-base);
12
9
  --stl-typography-text-body-sm: var(--stl-typography-scale-sm);
13
10
  --stl-typography-text-body-xs: var(--stl-typography-scale-xs);
14
-
15
- --stl-typography-text-code: max(0.875em, var(--stl-typography-scale-xs));
16
-
11
+ --stl-typography-text-code: max(.875em, var(--stl-typography-scale-xs));
17
12
  --stl-typography-text-h1: var(--stl-typography-scale-5xl);
18
13
  --stl-typography-text-h2: var(--stl-typography-scale-4xl);
19
14
  --stl-typography-text-h3: var(--stl-typography-scale-3xl);
@@ -29,28 +24,177 @@
29
24
  --stl-typography-scale-4xl: 35px;
30
25
  --stl-typography-scale-5xl: 42px;
31
26
  --stl-typography-scale-6xl: 64px;
32
-
33
27
  --stl-color-text-selection-foreground: /* unset by default; text colors are unchanged */;
34
- --stl-color-text-selection-background: light-dark(
35
- rgb(from var(--stl-color-text-selection) r g b / calc(alpha * 0.15)),
36
- rgb(from var(--stl-color-text-selection) r g b / calc(alpha * 0.35))
37
- );
28
+ --stl-color-text-selection-background: light-dark(rgb(from var(--stl-color-text-selection) r g b / calc(alpha * .15)), rgb(from var(--stl-color-text-selection) r g b / calc(alpha * .35)));
29
+ --stl-ui-layout-border-radius-xs: 4px;
30
+ --stl-ui-layout-border-radius-sml: 8px;
31
+ --stl-ui-layout-border-radius: 12px;
32
+ --stl-ui-layout-border-radius-med: 16px;
33
+ --stl-ui-layout-border-radius-max: 100vmax;
34
+ --stl-ui-left-content-indent: 24px;
35
+ --stl-ui-page-padding-inline: 20px;
36
+ --stl-opacity-level-080: .8;
37
+ --stl-opacity-level-040: .4;
38
+ --stl-opacity-level-016: .16;
39
+ --stl-opacity-level-008: .08;
40
+ --stl-opacity-level-004: .04;
41
+ --stl-color-background: light-dark(#fff, #0a0a0a);
42
+ --stl-color-background-hover: light-dark(rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-004))), rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))));
43
+ --stl-color-muted-background: light-dark(rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-016))));
44
+ --stl-color-muted-background-hover: rgb(from var(--stl-color-muted-background) r g b/calc(alpha * 2));
45
+ --stl-color-faint-background: rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-004)));
46
+ --stl-color-faint-background-hover: rgb(from var(--stl-color-faint-background) r g b/calc(alpha * 2));
47
+ --stl-color-ui-background: light-dark(var(--stl-color-background), rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-004))));
48
+ --stl-color-ui-background-hover: light-dark(var(--stl-color-background-hover), rgb(from var(--stl-color-ui-background) r g b/calc(alpha * 2)));
49
+ --stl-color-foreground: light-dark(#262626, #f5f5f5);
50
+ --stl-color-foreground-reduced: rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
51
+ --stl-color-foreground-muted: rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
52
+ --stl-color-inverse-background: var(--stl-color-foreground);
53
+ --stl-color-inverse-background-hover: rgb(from var(--stl-color-inverse-background) r g b/calc(alpha * .9));
54
+ --stl-color-inverse-foreground: var(--stl-color-background);
55
+ --stl-color-border: rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-016)));
56
+ --stl-color-border-faint: rgb(from var(--stl-color-border) r g b/calc(alpha * .5));
57
+ --stl-color-border-strong: rgb(from var(--stl-color-border) r g b/calc(alpha * 2.5));
58
+ --stl-color-accent: light-dark(#155dfc, #2b7fff);
59
+ --stl-color-accent-foreground: var(--stl-color-accent);
60
+ --stl-color-accent-foreground-reduced: rgb(from var(--stl-color-accent-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
61
+ --stl-color-accent-foreground-muted: rgb(from var(--stl-color-accent-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
62
+ --stl-color-accent-muted-background: light-dark(rgb(from var(--stl-color-accent-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-accent-foreground) r g b/calc(alpha * var(--stl-opacity-level-016))));
63
+ --stl-color-accent-muted-background-hover: rgb(from var(--stl-color-accent-muted-background) r g b/calc(alpha * 2));
64
+ --stl-color-accent-border: light-dark(rgb(from var(--stl-color-accent) r g b/calc(alpha * var(--stl-opacity-level-016))), rgb(from var(--stl-color-accent) r g b/calc(alpha * calc(var(--stl-opacity-level-016) * 1.5))));
65
+ --stl-color-accent-border-faint: rgb(from var(--stl-color-accent-border) r g b/calc(alpha * .5));
66
+ --stl-color-accent-border-strong: var(--stl-color-accent);
67
+ --stl-color-accent-inverse-background: var(--stl-color-accent);
68
+ --stl-color-accent-inverse-background-hover: rgb(from var(--stl-color-accent-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
69
+ --stl-color-accent-inverse-foreground: #fff;
70
+ --stl-color-red: light-dark(#d01e22, #e34041);
71
+ --stl-color-red-foreground: var(--stl-color-red);
72
+ --stl-color-red-foreground-reduced: rgb(from var(--stl-color-red-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
73
+ --stl-color-red-foreground-muted: rgb(from var(--stl-color-red-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
74
+ --stl-color-red-muted-background: light-dark(rgb(from var(--stl-color-red-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-red-foreground) r g b/calc(alpha * var(--stl-opacity-level-016))));
75
+ --stl-color-red-muted-background-hover: rgb(from var(--stl-color-red-muted-background) r g b/calc(alpha * 2));
76
+ --stl-color-red-border: light-dark(rgb(from var(--stl-color-red) r g b/calc(alpha * var(--stl-opacity-level-016))), rgb(from var(--stl-color-red) r g b/calc(alpha * calc(var(--stl-opacity-level-016) * 1.5))));
77
+ --stl-color-red-border-faint: rgb(from var(--stl-color-red-border) r g b/calc(alpha * .5));
78
+ --stl-color-red-border-strong: var(--stl-color-red);
79
+ --stl-color-red-inverse-background: var(--stl-color-red);
80
+ --stl-color-red-inverse-background-hover: rgb(from var(--stl-color-red-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
81
+ --stl-color-red-inverse-foreground: #fff;
82
+ --stl-color-green: light-dark(#16a34a, #22c55e);
83
+ --stl-color-green-foreground: var(--stl-color-green);
84
+ --stl-color-green-foreground-reduced: rgb(from var(--stl-color-green-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
85
+ --stl-color-green-foreground-muted: rgb(from var(--stl-color-green-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
86
+ --stl-color-green-muted-background: light-dark(rgb(from var(--stl-color-green-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-green-foreground) r g b/calc(alpha * var(--stl-opacity-level-016))));
87
+ --stl-color-green-muted-background-hover: rgb(from var(--stl-color-green-muted-background) r g b/calc(alpha * 2));
88
+ --stl-color-green-border: light-dark(rgb(from var(--stl-color-green) r g b/calc(alpha * var(--stl-opacity-level-016))), rgb(from var(--stl-color-green) r g b/calc(alpha * calc(var(--stl-opacity-level-016) * 1.5))));
89
+ --stl-color-green-border-faint: rgb(from var(--stl-color-green-border) r g b/calc(alpha * .5));
90
+ --stl-color-green-border-strong: var(--stl-color-green);
91
+ --stl-color-green-inverse-background: var(--stl-color-green);
92
+ --stl-color-green-inverse-background-hover: rgb(from var(--stl-color-green-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
93
+ --stl-color-green-inverse-foreground: #fff;
94
+ --stl-color-blue: light-dark(#155dfc, #2b7fff);
95
+ --stl-color-blue-foreground: var(--stl-color-blue);
96
+ --stl-color-blue-foreground-reduced: rgb(from var(--stl-color-blue-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
97
+ --stl-color-blue-foreground-muted: rgb(from var(--stl-color-blue-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
98
+ --stl-color-blue-muted-background: light-dark(rgb(from var(--stl-color-blue-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-blue-foreground) r g b/calc(alpha * var(--stl-opacity-level-016))));
99
+ --stl-color-blue-muted-background-hover: rgb(from var(--stl-color-blue-muted-background) r g b/calc(alpha * 2));
100
+ --stl-color-blue-border: light-dark(rgb(from var(--stl-color-blue) r g b/calc(alpha * var(--stl-opacity-level-016))), rgb(from var(--stl-color-blue) r g b/calc(alpha * calc(var(--stl-opacity-level-016) * 1.5))));
101
+ --stl-color-blue-border-faint: rgb(from var(--stl-color-blue-border) r g b/calc(alpha * .5));
102
+ --stl-color-blue-border-strong: var(--stl-color-blue);
103
+ --stl-color-blue-inverse-background: var(--stl-color-blue);
104
+ --stl-color-blue-inverse-background-hover: rgb(from var(--stl-color-blue-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
105
+ --stl-color-blue-inverse-foreground: #fff;
106
+ --stl-color-yellow: light-dark(#ca8a04, #eab308);
107
+ --stl-color-yellow-foreground: var(--stl-color-yellow);
108
+ --stl-color-yellow-foreground-reduced: rgb(from var(--stl-color-yellow-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
109
+ --stl-color-yellow-foreground-muted: rgb(from var(--stl-color-yellow-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
110
+ --stl-color-yellow-muted-background: light-dark(rgb(from var(--stl-color-yellow-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-yellow-foreground) r g b/calc(alpha * var(--stl-opacity-level-016))));
111
+ --stl-color-yellow-muted-background-hover: rgb(from var(--stl-color-yellow-muted-background) r g b/calc(alpha * 2));
112
+ --stl-color-yellow-border: light-dark(rgb(from var(--stl-color-yellow) r g b/calc(alpha * var(--stl-opacity-level-016))), rgb(from var(--stl-color-yellow) r g b/calc(alpha * calc(var(--stl-opacity-level-016) * 1.5))));
113
+ --stl-color-yellow-border-faint: rgb(from var(--stl-color-yellow-border) r g b/calc(alpha * .5));
114
+ --stl-color-yellow-border-strong: var(--stl-color-yellow);
115
+ --stl-color-yellow-inverse-background: var(--stl-color-yellow);
116
+ --stl-color-yellow-inverse-background-hover: rgb(from var(--stl-color-yellow-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
117
+ --stl-color-yellow-inverse-foreground: #fff;
118
+ --stl-color-orange: light-dark(#ea580c, #f97316);
119
+ --stl-color-orange-foreground: var(--stl-color-orange);
120
+ --stl-color-orange-foreground-reduced: rgb(from var(--stl-color-orange-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
121
+ --stl-color-orange-foreground-muted: rgb(from var(--stl-color-orange-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
122
+ --stl-color-orange-muted-background: light-dark(rgb(from var(--stl-color-orange-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-orange-foreground) r g b/calc(alpha * var(--stl-opacity-level-016))));
123
+ --stl-color-orange-muted-background-hover: rgb(from var(--stl-color-orange-muted-background) r g b/calc(alpha * 2));
124
+ --stl-color-orange-border: light-dark(rgb(from var(--stl-color-orange) r g b/calc(alpha * var(--stl-opacity-level-016))), rgb(from var(--stl-color-orange) r g b/calc(alpha * calc(var(--stl-opacity-level-016) * 1.5))));
125
+ --stl-color-orange-border-faint: rgb(from var(--stl-color-orange-border) r g b/calc(alpha * .5));
126
+ --stl-color-orange-border-strong: var(--stl-color-orange);
127
+ --stl-color-orange-inverse-background: var(--stl-color-orange);
128
+ --stl-color-orange-inverse-background-hover: rgb(from var(--stl-color-orange-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
129
+ --stl-color-orange-inverse-foreground: #fff;
130
+ --stl-color-purple: light-dark(#9333ea, #a855f7);
131
+ --stl-color-purple-foreground: var(--stl-color-purple);
132
+ --stl-color-purple-foreground-reduced: rgb(from var(--stl-color-purple-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
133
+ --stl-color-purple-foreground-muted: rgb(from var(--stl-color-purple-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
134
+ --stl-color-purple-muted-background: light-dark(rgb(from var(--stl-color-purple-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-purple-foreground) r g b/calc(alpha * var(--stl-opacity-level-016))));
135
+ --stl-color-purple-muted-background-hover: rgb(from var(--stl-color-purple-muted-background) r g b/calc(alpha * 2));
136
+ --stl-color-purple-border: light-dark(rgb(from var(--stl-color-purple) r g b/calc(alpha * var(--stl-opacity-level-016))), rgb(from var(--stl-color-purple) r g b/calc(alpha * calc(var(--stl-opacity-level-016) * 1.5))));
137
+ --stl-color-purple-border-faint: rgb(from var(--stl-color-purple-border) r g b/calc(alpha * .5));
138
+ --stl-color-purple-border-strong: var(--stl-color-purple);
139
+ --stl-color-purple-inverse-background: var(--stl-color-purple);
140
+ --stl-color-purple-inverse-background-hover: rgb(from var(--stl-color-purple-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
141
+ --stl-color-purple-inverse-foreground: #fff;
142
+ --stl-color-cyan: light-dark(#0891b2, #06b6d4);
143
+ --stl-color-cyan-foreground: var(--stl-color-cyan);
144
+ --stl-color-cyan-foreground-reduced: rgb(from var(--stl-color-cyan-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
145
+ --stl-color-cyan-foreground-muted: rgb(from var(--stl-color-cyan-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
146
+ --stl-color-cyan-muted-background: light-dark(rgb(from var(--stl-color-cyan-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-cyan-foreground) r g b/calc(alpha * var(--stl-opacity-level-016))));
147
+ --stl-color-cyan-muted-background-hover: rgb(from var(--stl-color-cyan-muted-background) r g b/calc(alpha * 2));
148
+ --stl-color-cyan-border: light-dark(rgb(from var(--stl-color-cyan) r g b/calc(alpha * var(--stl-opacity-level-016))), rgb(from var(--stl-color-cyan) r g b/calc(alpha * calc(var(--stl-opacity-level-016) * 1.5))));
149
+ --stl-color-cyan-border-faint: rgb(from var(--stl-color-cyan-border) r g b/calc(alpha * .5));
150
+ --stl-color-cyan-border-strong: var(--stl-color-cyan);
151
+ --stl-color-cyan-inverse-background: var(--stl-color-cyan);
152
+ --stl-color-cyan-inverse-background-hover: rgb(from var(--stl-color-cyan-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
153
+ --stl-color-cyan-inverse-foreground: #fff;
154
+ --stl-color-pink: light-dark(#ec4899, #ec4899);
155
+ --stl-color-pink-foreground: var(--stl-color-pink);
156
+ --stl-color-pink-foreground-reduced: rgb(from var(--stl-color-pink-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
157
+ --stl-color-pink-foreground-muted: rgb(from var(--stl-color-pink-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
158
+ --stl-color-pink-muted-background: light-dark(rgb(from var(--stl-color-pink-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-pink-foreground) r g b/calc(alpha * var(--stl-opacity-level-016))));
159
+ --stl-color-pink-muted-background-hover: rgb(from var(--stl-color-pink-muted-background) r g b/calc(alpha * 2));
160
+ --stl-color-pink-border: light-dark(rgb(from var(--stl-color-pink) r g b/calc(alpha * var(--stl-opacity-level-016))), rgb(from var(--stl-color-pink) r g b/calc(alpha * calc(var(--stl-opacity-level-016) * 1.5))));
161
+ --stl-color-pink-border-faint: rgb(from var(--stl-color-pink-border) r g b/calc(alpha * .5));
162
+ --stl-color-pink-border-strong: var(--stl-color-pink);
163
+ --stl-color-pink-inverse-background: var(--stl-color-pink);
164
+ --stl-color-pink-inverse-background-hover: rgb(from var(--stl-color-pink-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
165
+ --stl-color-pink-inverse-foreground: #fff;
166
+ }
167
+
168
+ :root[data-theme="dark"], .stl-theme-dark {
169
+ color-scheme: dark;
170
+ background: var(--stl-color-background);
171
+ color: var(--stl-color-foreground);
172
+ }
173
+
174
+ :root[data-theme="light"], .stl-theme-light {
175
+ color-scheme: light;
176
+ background: var(--stl-color-background);
177
+ color: var(--stl-color-foreground);
178
+ }
179
+
180
+ :root {
181
+ --stl-color-link-foreground: var(--stl-color-accent-foreground);
182
+ --stl-color-text-selection: var(--stl-color-accent-inverse-background);
38
183
  }
39
184
  }
40
185
 
41
- /* Prose exists in its own sub-layer for easy reverting */
42
186
  body {
43
187
  font-family: var(--stl-typography-font);
44
188
  }
45
189
 
46
190
  .stl-ui-prose {
47
- letter-spacing: -0.01em;
191
+ letter-spacing: -.01em;
48
192
  font-weight: 400;
49
193
  line-height: var(--stl-typography-line-height);
50
194
  font-size: var(--stl-typography-text-body);
51
195
  color: var(--stl-color-foreground-reduced);
52
196
 
53
- :where(.stl-ui-not-prose) {
197
+ & :where(.stl-ui-not-prose) {
54
198
  letter-spacing: initial;
55
199
  font-weight: initial;
56
200
  line-height: initial;
@@ -63,67 +207,63 @@ body {
63
207
  letter-spacing: normal;
64
208
  }
65
209
 
66
- :where(strong:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose strong) {
210
+ & :where(strong:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose strong) {
67
211
  color: rgb(from currentColor r g b / 1);
68
212
  }
69
213
 
70
- :where(a:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose a) {
214
+ & :where(a:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose a) {
71
215
  color: var(--stl-color-link-foreground);
72
216
  text-decoration-color: rgb(from currentColor r g b / calc(alpha * var(--stl-opacity-level-040)));
73
- transition: text-decoration-color 0.1s ease-out;
217
+ transition: text-decoration-color .1s ease-out;
218
+
74
219
  &:hover {
75
220
  text-decoration-color: currentColor;
76
221
  }
77
222
  }
78
223
 
79
- :where(h1, h2, h3, h4, h5, h6):where(:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose *) {
224
+ & :where(h1, h2, h3, h4, h5, h6):where(:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose *) {
80
225
  color: var(--stl-color-foreground);
81
226
  font-weight: 500;
82
227
  line-height: var(--stl-typography-line-height-heading);
83
228
  font-family: var(--stl-typography-font-heading);
84
-
85
229
  text-wrap: pretty;
230
+
86
231
  &:where(h1, h2, h3) {
87
232
  text-wrap: balance;
88
233
  }
89
234
  }
90
235
 
91
- :where(h1:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose h1) {
92
- /* Heading 1/Medium */
236
+ & :where(h1:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose h1) {
93
237
  font-size: var(--stl-typography-text-h1);
94
- letter-spacing: -0.03em;
238
+ letter-spacing: -.03em;
95
239
  margin-top: 1.5em;
96
240
  }
97
241
 
98
- :where(h2:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose h2) {
99
- /* Heading 2/Medium */
242
+ & :where(h2:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose h2) {
100
243
  font-size: var(--stl-typography-text-h2);
101
- letter-spacing: -0.03em;
244
+ letter-spacing: -.03em;
102
245
  margin-top: 1.35em;
103
246
  }
104
247
 
105
- :where(h3:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose h3) {
106
- /* Heading 3/Medium */
248
+ & :where(h3:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose h3) {
107
249
  font-size: var(--stl-typography-text-h3);
108
- letter-spacing: -0.02em;
250
+ letter-spacing: -.02em;
109
251
  margin-top: 1.35em;
110
252
  }
111
253
 
112
- :where(h4:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose h4) {
113
- /* Heading 4/Medium */
254
+ & :where(h4:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose h4) {
114
255
  font-size: var(--stl-typography-text-h4);
115
- letter-spacing: -0.02em;
256
+ letter-spacing: -.02em;
116
257
  margin-top: 1.35em;
117
258
  }
118
259
 
119
- :where(h5:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose h5) {
120
- /* Heading 5/Medium */
260
+ & :where(h5:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose h5) {
121
261
  font-size: var(--stl-typography-text-h5);
122
- letter-spacing: -0.02em;
262
+ letter-spacing: -.02em;
123
263
  margin-top: 1.2em;
124
264
  }
125
265
 
126
- :where(li:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose li) {
266
+ & :where(li:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose li) {
127
267
  &:where(:not(:last-child)) {
128
268
  margin-bottom: 8px;
129
269
  }
@@ -136,305 +276,99 @@ body {
136
276
  --stl-typography-text-h4: var(--stl-typography-scale-lg);
137
277
  --stl-typography-text-h5: var(--stl-typography-scale-base);
138
278
 
139
- :where(h1) {
279
+ & :where(h1) {
140
280
  margin-top: 1.5em;
141
281
  }
142
- :where(h2, h3, h4) {
282
+
283
+ & :where(h2, h3, h4) {
143
284
  margin-top: 1.25em;
144
285
  }
145
- :where(h5) {
286
+
287
+ & :where(h5) {
146
288
  margin-top: 1em;
147
289
  }
148
290
  }
149
291
 
150
- /* code blocks */
151
- :where(
152
- pre:not(.stl-ui-not-prose *, .expressive-code *),
153
- .stl-ui-not-prose .stl-ui-prose pre:not(.expressive-code *)
154
- ) {
155
- padding: 12px 20px;
292
+ & :where(pre:not(.stl-ui-not-prose *, .expressive-code *), .stl-ui-not-prose .stl-ui-prose pre:not(.expressive-code *)) {
156
293
  border-radius: var(--stl-ui-layout-border-radius-sml);
157
294
  border: 1px solid var(--stl-color-border);
158
295
  background-color: var(--stl-color-faint-background);
159
- overflow: auto;
160
296
  margin-bottom: 1rem;
297
+ padding: 12px 20px;
298
+ overflow: auto;
161
299
  }
162
300
 
163
- :where(ol, ul) {
301
+ & :where(ol, ul) {
164
302
  &:where(:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose *) {
165
303
  padding-left: 26px;
166
304
  }
167
305
  }
168
306
 
169
- :where(ol, ul, aside, img, figure, details):where(
170
- :not(.stl-ui-not-prose *),
171
- .stl-ui-not-prose .stl-ui-prose *
172
- ) {
307
+ & :where(ol, ul, aside, img, figure, details):where(:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose *) {
173
308
  margin-top: 16px;
174
309
  }
175
310
 
176
- /* all code (inline + block) */
177
- :where(code):where(:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose *) {
311
+ & :where(code):where(:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose *) {
178
312
  font-family: var(--stl-typography-font-mono);
179
- font-feature-settings:
180
- 'ss01' on,
181
- 'ss03' on,
182
- 'ss04' on,
183
- 'ss06' on;
184
-
313
+ font-feature-settings: "ss01" on,
314
+ "ss03" on,
315
+ "ss04" on,
316
+ "ss06" on;
185
317
  font-size: var(--stl-typography-text-code);
186
318
  font-weight: inherit;
187
319
  letter-spacing: normal;
188
320
  white-space: pre;
189
321
 
190
- /* inline code */
191
322
  &:where(:not(pre > code)) {
192
323
  color: var(--stl-color-foreground);
193
- padding: 0 0.2em;
194
- background-color: rgb(from var(--stl-color-foreground) r g b / 0.1);
195
- border-radius: 0.2em;
324
+ background-color: rgb(from var(--stl-color-foreground) r g b / .1);
325
+ border-radius: .2em;
326
+ padding: 0 .2em;
196
327
  }
197
-
198
- /* code blocks */
199
- /* &:where(pre > &) { } */
200
328
  }
201
329
  }
202
330
 
203
- /* _direct_ children of stl-ui-prose should get a margin-top by default for spacing. */
204
331
  :where(.stl-ui-prose, .stl-ui-prose > .sl-markdown-content) > :where(:not(:first-child)) {
205
332
  margin-top: 16px;
206
333
  }
207
334
 
208
335
  @layer starlight.content {
209
336
  .stl-ui-prose .sl-markdown-content {
210
- a,
211
- a:hover {
337
+ & a, & a:hover {
212
338
  color: revert-layer;
213
339
  }
214
340
  }
215
- }
216
-
217
- ::selection {
218
- background-color: var(--stl-color-text-selection-background);
219
- color: var(--stl-color-text-selection-foreground);
220
- }
221
-
222
- @layer stl-ui.tokens {
223
- /* Layout - Stainless */
224
- :root {
225
- --stl-ui-layout-border-radius-xs: 4px;
226
- --stl-ui-layout-border-radius-sml: 8px;
227
- --stl-ui-layout-border-radius: 12px;
228
- --stl-ui-layout-border-radius-med: 16px;
229
- --stl-ui-layout-border-radius-max: 100vmax;
230
- --stl-ui-left-content-indent: 24px;
231
341
 
232
- --stl-ui-page-padding-inline: 20px;
233
- }
234
- }
235
-
236
- /* 1. Base colors */
237
- @layer stl-ui.tokens {
238
- :root {
239
- --stl-opacity-level-080: 0.80;
240
- --stl-opacity-level-040: 0.40;
241
- --stl-opacity-level-016: 0.16;
242
- --stl-opacity-level-008: 0.08;
243
- --stl-opacity-level-004: 0.04;
244
- /* background */
245
- --stl-color-background: light-dark(rgb(255 255 255), rgb(10 10 10));
246
- --stl-color-background-hover: light-dark(rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-004))), rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))));
247
- /* background shades */
248
- /* muted background */
249
- --stl-color-muted-background: light-dark(rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-016))));
250
- --stl-color-muted-background-hover: rgb(from var(--stl-color-muted-background) r g b/calc(alpha * 2));
251
- /* faint background */
252
- --stl-color-faint-background: rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-004)));
253
- --stl-color-faint-background-hover: rgb(from var(--stl-color-faint-background) r g b/calc(alpha * 2));
254
- /* ui elements like cards and buttons match --stl-color-background in light mode, but have a slight tint in dark mode */
255
- --stl-color-ui-background: light-dark(
256
- var(--stl-color-background),
257
- rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-004)))
258
- );
259
- --stl-color-ui-background-hover: light-dark(
260
- var(--stl-color-background-hover),
261
- rgb(from var(--stl-color-ui-background) r g b/calc(alpha * 2))
262
- );
263
- /* foreground */
264
- --stl-color-foreground: light-dark(rgb(38 38 38), rgb(245 245 245));
265
- --stl-color-foreground-reduced: rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
266
- --stl-color-foreground-muted: rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
267
- /* inverse */
268
- --stl-color-inverse-background: var(--stl-color-foreground);
269
- --stl-color-inverse-background-hover: rgb(from var(--stl-color-inverse-background) r g b/calc(alpha * 0.9));
270
- --stl-color-inverse-foreground: var(--stl-color-background);
271
- /* default border (“foreground border”) */
272
- --stl-color-border: rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-016)));
273
- --stl-color-border-faint: rgb(from var(--stl-color-border) r g b/calc(alpha * 0.5));
274
- --stl-color-border-strong: rgb(from var(--stl-color-border) r g b/calc(alpha * 2.5));
275
- }
276
- }
277
- /* 2. Color palettes (accent, red, green, etc) */
278
- @layer stl-ui.tokens {
279
- :root {
280
- /* accent */
281
- --stl-color-accent: light-dark(#155dfc, #2b7fff);
282
- --stl-color-accent-foreground: var(--stl-color-accent);
283
- --stl-color-accent-foreground-reduced: rgb(from var(--stl-color-accent-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
284
- --stl-color-accent-foreground-muted: rgb(from var(--stl-color-accent-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
285
- --stl-color-accent-muted-background: light-dark(rgb(from var(--stl-color-accent-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-accent-foreground) r g b/calc(alpha * var(--stl-opacity-level-016))));
286
- --stl-color-accent-muted-background-hover: rgb(from var(--stl-color-accent-muted-background) r g b/calc(alpha * 2));
287
- --stl-color-accent-border: light-dark(rgb(from var(--stl-color-accent) r g b/calc(alpha * var(--stl-opacity-level-016))), rgb(from var(--stl-color-accent) r g b/calc(alpha * calc(var(--stl-opacity-level-016) * 1.5))));
288
- --stl-color-accent-border-faint: rgb(from var(--stl-color-accent-border) r g b/calc(alpha * 0.5));
289
- --stl-color-accent-border-strong: var(--stl-color-accent);
290
- --stl-color-accent-inverse-background: var(--stl-color-accent);
291
- --stl-color-accent-inverse-background-hover: rgb(from var(--stl-color-accent-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
292
- --stl-color-accent-inverse-foreground: rgb(255, 255, 255);
293
- /* red */
294
- --stl-color-red: light-dark(#d01e22, #e34041);
295
- --stl-color-red-foreground: var(--stl-color-red);
296
- --stl-color-red-foreground-reduced: rgb(from var(--stl-color-red-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
297
- --stl-color-red-foreground-muted: rgb(from var(--stl-color-red-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
298
- --stl-color-red-muted-background: light-dark(rgb(from var(--stl-color-red-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-red-foreground) r g b/calc(alpha * var(--stl-opacity-level-016))));
299
- --stl-color-red-muted-background-hover: rgb(from var(--stl-color-red-muted-background) r g b/calc(alpha * 2));
300
- --stl-color-red-border: light-dark(rgb(from var(--stl-color-red) r g b/calc(alpha * var(--stl-opacity-level-016))), rgb(from var(--stl-color-red) r g b/calc(alpha * calc(var(--stl-opacity-level-016) * 1.5))));
301
- --stl-color-red-border-faint: rgb(from var(--stl-color-red-border) r g b/calc(alpha * 0.5));
302
- --stl-color-red-border-strong: var(--stl-color-red);
303
- --stl-color-red-inverse-background: var(--stl-color-red);
304
- --stl-color-red-inverse-background-hover: rgb(from var(--stl-color-red-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
305
- --stl-color-red-inverse-foreground: rgb(255, 255, 255);
306
- /* green */
307
- --stl-color-green: light-dark(#16a34a, #22c55e);
308
- --stl-color-green-foreground: var(--stl-color-green);
309
- --stl-color-green-foreground-reduced: rgb(from var(--stl-color-green-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
310
- --stl-color-green-foreground-muted: rgb(from var(--stl-color-green-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
311
- --stl-color-green-muted-background: light-dark(rgb(from var(--stl-color-green-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-green-foreground) r g b/calc(alpha * var(--stl-opacity-level-016))));
312
- --stl-color-green-muted-background-hover: rgb(from var(--stl-color-green-muted-background) r g b/calc(alpha * 2));
313
- --stl-color-green-border: light-dark(rgb(from var(--stl-color-green) r g b/calc(alpha * var(--stl-opacity-level-016))), rgb(from var(--stl-color-green) r g b/calc(alpha * calc(var(--stl-opacity-level-016) * 1.5))));
314
- --stl-color-green-border-faint: rgb(from var(--stl-color-green-border) r g b/calc(alpha * 0.5));
315
- --stl-color-green-border-strong: var(--stl-color-green);
316
- --stl-color-green-inverse-background: var(--stl-color-green);
317
- --stl-color-green-inverse-background-hover: rgb(from var(--stl-color-green-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
318
- --stl-color-green-inverse-foreground: rgb(255, 255, 255);
319
- /* blue */
320
- --stl-color-blue: light-dark(#155dfc, #2b7fff);
321
- --stl-color-blue-foreground: var(--stl-color-blue);
322
- --stl-color-blue-foreground-reduced: rgb(from var(--stl-color-blue-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
323
- --stl-color-blue-foreground-muted: rgb(from var(--stl-color-blue-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
324
- --stl-color-blue-muted-background: light-dark(rgb(from var(--stl-color-blue-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-blue-foreground) r g b/calc(alpha * var(--stl-opacity-level-016))));
325
- --stl-color-blue-muted-background-hover: rgb(from var(--stl-color-blue-muted-background) r g b/calc(alpha * 2));
326
- --stl-color-blue-border: light-dark(rgb(from var(--stl-color-blue) r g b/calc(alpha * var(--stl-opacity-level-016))), rgb(from var(--stl-color-blue) r g b/calc(alpha * calc(var(--stl-opacity-level-016) * 1.5))));
327
- --stl-color-blue-border-faint: rgb(from var(--stl-color-blue-border) r g b/calc(alpha * 0.5));
328
- --stl-color-blue-border-strong: var(--stl-color-blue);
329
- --stl-color-blue-inverse-background: var(--stl-color-blue);
330
- --stl-color-blue-inverse-background-hover: rgb(from var(--stl-color-blue-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
331
- --stl-color-blue-inverse-foreground: rgb(255, 255, 255);
332
- /* yellow */
333
- --stl-color-yellow: light-dark(#ca8a04, #eab308);
334
- --stl-color-yellow-foreground: var(--stl-color-yellow);
335
- --stl-color-yellow-foreground-reduced: rgb(from var(--stl-color-yellow-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
336
- --stl-color-yellow-foreground-muted: rgb(from var(--stl-color-yellow-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
337
- --stl-color-yellow-muted-background: light-dark(rgb(from var(--stl-color-yellow-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-yellow-foreground) r g b/calc(alpha * var(--stl-opacity-level-016))));
338
- --stl-color-yellow-muted-background-hover: rgb(from var(--stl-color-yellow-muted-background) r g b/calc(alpha * 2));
339
- --stl-color-yellow-border: light-dark(rgb(from var(--stl-color-yellow) r g b/calc(alpha * var(--stl-opacity-level-016))), rgb(from var(--stl-color-yellow) r g b/calc(alpha * calc(var(--stl-opacity-level-016) * 1.5))));
340
- --stl-color-yellow-border-faint: rgb(from var(--stl-color-yellow-border) r g b/calc(alpha * 0.5));
341
- --stl-color-yellow-border-strong: var(--stl-color-yellow);
342
- --stl-color-yellow-inverse-background: var(--stl-color-yellow);
343
- --stl-color-yellow-inverse-background-hover: rgb(from var(--stl-color-yellow-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
344
- --stl-color-yellow-inverse-foreground: rgb(255, 255, 255);
345
- /* orange */
346
- --stl-color-orange: light-dark(#ea580c, #f97316);
347
- --stl-color-orange-foreground: var(--stl-color-orange);
348
- --stl-color-orange-foreground-reduced: rgb(from var(--stl-color-orange-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
349
- --stl-color-orange-foreground-muted: rgb(from var(--stl-color-orange-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
350
- --stl-color-orange-muted-background: light-dark(rgb(from var(--stl-color-orange-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-orange-foreground) r g b/calc(alpha * var(--stl-opacity-level-016))));
351
- --stl-color-orange-muted-background-hover: rgb(from var(--stl-color-orange-muted-background) r g b/calc(alpha * 2));
352
- --stl-color-orange-border: light-dark(rgb(from var(--stl-color-orange) r g b/calc(alpha * var(--stl-opacity-level-016))), rgb(from var(--stl-color-orange) r g b/calc(alpha * calc(var(--stl-opacity-level-016) * 1.5))));
353
- --stl-color-orange-border-faint: rgb(from var(--stl-color-orange-border) r g b/calc(alpha * 0.5));
354
- --stl-color-orange-border-strong: var(--stl-color-orange);
355
- --stl-color-orange-inverse-background: var(--stl-color-orange);
356
- --stl-color-orange-inverse-background-hover: rgb(from var(--stl-color-orange-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
357
- --stl-color-orange-inverse-foreground: rgb(255, 255, 255);
358
- /* purple */
359
- --stl-color-purple: light-dark(#9333ea, #a855f7);
360
- --stl-color-purple-foreground: var(--stl-color-purple);
361
- --stl-color-purple-foreground-reduced: rgb(from var(--stl-color-purple-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
362
- --stl-color-purple-foreground-muted: rgb(from var(--stl-color-purple-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
363
- --stl-color-purple-muted-background: light-dark(rgb(from var(--stl-color-purple-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-purple-foreground) r g b/calc(alpha * var(--stl-opacity-level-016))));
364
- --stl-color-purple-muted-background-hover: rgb(from var(--stl-color-purple-muted-background) r g b/calc(alpha * 2));
365
- --stl-color-purple-border: light-dark(rgb(from var(--stl-color-purple) r g b/calc(alpha * var(--stl-opacity-level-016))), rgb(from var(--stl-color-purple) r g b/calc(alpha * calc(var(--stl-opacity-level-016) * 1.5))));
366
- --stl-color-purple-border-faint: rgb(from var(--stl-color-purple-border) r g b/calc(alpha * 0.5));
367
- --stl-color-purple-border-strong: var(--stl-color-purple);
368
- --stl-color-purple-inverse-background: var(--stl-color-purple);
369
- --stl-color-purple-inverse-background-hover: rgb(from var(--stl-color-purple-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
370
- --stl-color-purple-inverse-foreground: rgb(255, 255, 255);
371
- /* cyan */
372
- --stl-color-cyan: light-dark(#0891b2, #06b6d4);
373
- --stl-color-cyan-foreground: var(--stl-color-cyan);
374
- --stl-color-cyan-foreground-reduced: rgb(from var(--stl-color-cyan-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
375
- --stl-color-cyan-foreground-muted: rgb(from var(--stl-color-cyan-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
376
- --stl-color-cyan-muted-background: light-dark(rgb(from var(--stl-color-cyan-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-cyan-foreground) r g b/calc(alpha * var(--stl-opacity-level-016))));
377
- --stl-color-cyan-muted-background-hover: rgb(from var(--stl-color-cyan-muted-background) r g b/calc(alpha * 2));
378
- --stl-color-cyan-border: light-dark(rgb(from var(--stl-color-cyan) r g b/calc(alpha * var(--stl-opacity-level-016))), rgb(from var(--stl-color-cyan) r g b/calc(alpha * calc(var(--stl-opacity-level-016) * 1.5))));
379
- --stl-color-cyan-border-faint: rgb(from var(--stl-color-cyan-border) r g b/calc(alpha * 0.5));
380
- --stl-color-cyan-border-strong: var(--stl-color-cyan);
381
- --stl-color-cyan-inverse-background: var(--stl-color-cyan);
382
- --stl-color-cyan-inverse-background-hover: rgb(from var(--stl-color-cyan-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
383
- --stl-color-cyan-inverse-foreground: rgb(255, 255, 255);
384
- /* pink */
385
- --stl-color-pink: light-dark(#ec4899, #ec4899);
386
- --stl-color-pink-foreground: var(--stl-color-pink);
387
- --stl-color-pink-foreground-reduced: rgb(from var(--stl-color-pink-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
388
- --stl-color-pink-foreground-muted: rgb(from var(--stl-color-pink-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
389
- --stl-color-pink-muted-background: light-dark(rgb(from var(--stl-color-pink-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-pink-foreground) r g b/calc(alpha * var(--stl-opacity-level-016))));
390
- --stl-color-pink-muted-background-hover: rgb(from var(--stl-color-pink-muted-background) r g b/calc(alpha * 2));
391
- --stl-color-pink-border: light-dark(rgb(from var(--stl-color-pink) r g b/calc(alpha * var(--stl-opacity-level-016))), rgb(from var(--stl-color-pink) r g b/calc(alpha * calc(var(--stl-opacity-level-016) * 1.5))));
392
- --stl-color-pink-border-faint: rgb(from var(--stl-color-pink-border) r g b/calc(alpha * 0.5));
393
- --stl-color-pink-border-strong: var(--stl-color-pink);
394
- --stl-color-pink-inverse-background: var(--stl-color-pink);
395
- --stl-color-pink-inverse-background-hover: rgb(from var(--stl-color-pink-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
396
- --stl-color-pink-inverse-foreground: rgb(255, 255, 255);
397
- }
398
- :root[data-theme=dark],
399
- .stl-theme-dark {
400
- color-scheme: dark;
401
- background: var(--stl-color-background);
402
- color: var(--stl-color-foreground);
403
- }
404
- :root[data-theme=light],
405
- .stl-theme-light {
406
- color-scheme: light;
407
- background: var(--stl-color-background);
408
- color: var(--stl-color-foreground);
342
+ .stl-ui-prose .sl-markdown-content.sl-markdown-content.sl-markdown-content {
343
+ & details, & summary, & summary:before, & summary::marker {
344
+ all: revert-layer;
345
+ }
409
346
  }
410
347
  }
411
- /* Semantic color roles */
412
- @layer stl-ui.tokens {
413
- :root {
414
- --stl-color-link-foreground: var(--stl-color-accent-foreground);
415
- --stl-color-text-selection: var(--stl-color-accent-inverse-background);
416
- }
348
+
349
+ ::selection {
350
+ background-color: var(--stl-color-text-selection-background);
351
+ color: var(--stl-color-text-selection-foreground);
417
352
  }
353
+
418
354
  .stl-ui-button {
419
- height: 32px;
420
- padding: 8px 10px;
421
355
  border-radius: var(--stl-ui-layout-border-radius-sml);
422
- line-height: 150%;
356
+ height: 32px;
423
357
  font-weight: 500;
358
+ line-height: 150%;
424
359
  font-size: var(--stl-typography-text-body-sm);
425
360
  font-family: var(--stl-typography-font);
426
-
427
361
  cursor: pointer;
428
- display: inline-flex;
429
- align-items: center;
430
- justify-content: center;
431
- gap: 2px;
432
362
  white-space: nowrap;
433
- flex-shrink: 0;
434
-
435
- border: 1px solid transparent;
436
363
  color: var(--stl-color-inverse-foreground);
437
364
  background-color: var(--stl-color-inverse-background);
365
+ border: 1px solid #0000;
366
+ flex-shrink: 0;
367
+ justify-content: center;
368
+ align-items: center;
369
+ gap: 2px;
370
+ padding: 8px 10px;
371
+ display: inline-flex;
438
372
 
439
373
  &:hover {
440
374
  background-color: var(--stl-color-inverse-background-hover);
@@ -445,11 +379,10 @@ body {
445
379
  }
446
380
  }
447
381
 
448
- /* --- COLOR VARIANTS --- */
449
-
450
382
  .stl-ui-button--accent {
451
383
  color: var(--stl-color-accent-inverse-foreground);
452
384
  background-color: var(--stl-color-accent-inverse-background);
385
+
453
386
  &:hover {
454
387
  background-color: var(--stl-color-accent-inverse-background-hover);
455
388
  }
@@ -458,9 +391,11 @@ body {
458
391
  .stl-ui-button--accent-muted {
459
392
  color: var(--stl-color-accent-foreground);
460
393
  background-color: var(--stl-color-accent-muted-background);
394
+
461
395
  &:hover {
462
396
  background-color: var(--stl-color-accent-muted-background-hover);
463
397
  }
398
+
464
399
  &.stl-ui-button--with-border {
465
400
  border-color: var(--stl-color-accent-border);
466
401
  }
@@ -469,9 +404,11 @@ body {
469
404
  .stl-ui-button--muted {
470
405
  color: var(--stl-color-foreground);
471
406
  background-color: var(--stl-color-muted-background);
407
+
472
408
  &:hover {
473
409
  background-color: var(--stl-color-muted-background-hover);
474
410
  }
411
+
475
412
  &.stl-ui-button--with-border {
476
413
  border-color: var(--stl-color-border);
477
414
  }
@@ -481,19 +418,21 @@ body {
481
418
  color: var(--stl-color-foreground);
482
419
  background-color: var(--stl-color-ui-background);
483
420
  border-color: var(--stl-color-border);
421
+
484
422
  &:hover {
485
- background:
486
- linear-gradient(var(--stl-color-ui-background-hover), var(--stl-color-ui-background-hover)),
423
+ background: linear-gradient(var(--stl-color-ui-background-hover), var(--stl-color-ui-background-hover)),
487
424
  linear-gradient(var(--stl-color-ui-background), var(--stl-color-ui-background));
488
425
  }
489
426
  }
490
427
 
491
428
  .stl-ui-button--ghost {
492
429
  color: var(--stl-color-foreground);
493
- background-color: transparent;
430
+ background-color: #0000;
431
+
494
432
  &:hover {
495
433
  background-color: var(--stl-color-background-hover);
496
434
  }
435
+
497
436
  &.stl-ui-button--with-border {
498
437
  border-color: var(--stl-color-border);
499
438
  }
@@ -502,6 +441,7 @@ body {
502
441
  .stl-ui-button--success {
503
442
  color: var(--stl-color-green-inverse-foreground);
504
443
  background-color: var(--stl-color-green-inverse-background);
444
+
505
445
  &:hover {
506
446
  background-color: var(--stl-color-green-inverse-background-hover);
507
447
  }
@@ -510,37 +450,31 @@ body {
510
450
  .stl-ui-button--destructive {
511
451
  color: var(--stl-color-red-inverse-foreground);
512
452
  background-color: var(--stl-color-red-inverse-background);
453
+
513
454
  &:hover {
514
455
  background-color: var(--stl-color-red-inverse-background-hover);
515
456
  }
516
457
  }
517
458
 
518
- /* --- LOADING STATE --- */
519
-
520
- /**
521
- * When loading, set aria-disabled="true" and aria-label="<Doing action...>"
522
- * Don't use disabled, it loses focus.
523
- */
524
-
525
459
  .stl-ui-button--loading {
526
460
  -webkit-text-fill-color: transparent;
527
461
  position: relative;
528
462
 
529
463
  & * {
530
- color: transparent;
464
+ color: #0000;
531
465
  }
532
466
 
533
- &::before {
534
- content: '';
535
- animation: stl-ui-button--loading-spin 1s linear infinite;
536
- position: absolute;
467
+ &:before {
468
+ content: "";
469
+ background: currentColor;
537
470
  width: 16px;
538
471
  height: 16px;
539
- mask-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWxvYWRlci1jaXJjbGUtaWNvbiBsdWNpZGUtbG9hZGVyLWNpcmNsZSI+PHBhdGggZD0iTTIxIDEyYTkgOSAwIDEgMS02LjIxOS04LjU2Ii8+PC9zdmc+');
540
- mask-size: contain;
472
+ animation: 1s linear infinite stl-ui-button--loading-spin;
473
+ position: absolute;
474
+ mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWxvYWRlci1jaXJjbGUtaWNvbiBsdWNpZGUtbG9hZGVyLWNpcmNsZSI+PHBhdGggZD0iTTIxIDEyYTkgOSAwIDEgMS02LjIxOS04LjU2Ii8+PC9zdmc+");
541
475
  mask-position: center;
476
+ mask-size: contain;
542
477
  mask-repeat: no-repeat;
543
- background: currentColor;
544
478
  }
545
479
  }
546
480
 
@@ -550,111 +484,94 @@ body {
550
484
  }
551
485
  }
552
486
 
553
- /* --- SIZE VARIANTS --- */
554
487
  .stl-ui-button--size-sm {
555
- height: 24px;
556
- padding: 0 6px;
557
488
  border-radius: var(--stl-ui-layout-border-radius-xs);
558
- line-height: 100%;
489
+ height: 24px;
559
490
  font-weight: 500;
491
+ line-height: 100%;
560
492
  font-size: var(--stl-typography-text-body-xs);
493
+ padding: 0 6px;
561
494
  }
562
495
 
563
496
  .stl-ui-button--size-lg {
564
- height: 40px;
565
- padding: 8px 14px;
566
497
  border-radius: var(--stl-ui-layout-border-radius);
567
- line-height: 150%;
498
+ height: 40px;
568
499
  font-weight: 500;
500
+ line-height: 150%;
569
501
  font-size: var(--stl-typography-text-body);
502
+ padding: 8px 14px;
570
503
  }
571
504
 
572
- /* --- ICONS --- */
573
505
  .stl-ui-button__icon {
574
506
  flex-shrink: 0;
575
- display: flex;
576
- align-items: center;
577
507
  justify-content: center;
508
+ align-items: center;
509
+ display: flex;
578
510
 
579
- svg {
511
+ & svg {
580
512
  margin-top: 0;
581
513
  }
582
514
  }
583
515
 
584
- /* Left Icon */
585
516
  .stl-ui-button:has(.stl-ui-button__icon:first-child) .stl-ui-button__icon {
586
517
  margin-left: -4px;
587
518
  margin-right: 4px;
588
519
  }
589
520
 
590
521
  .stl-ui-button:has(.stl-ui-button__icon:last-child) .stl-ui-button__icon {
591
- /* Right Icon */
592
- margin-right: -4px;
593
522
  margin-left: 4px;
523
+ margin-right: -4px;
594
524
 
595
- /* Right & Left Icon */
596
525
  &:first-child {
597
526
  margin-left: -4px;
598
527
  margin-right: 4px;
599
528
  }
600
529
  }
601
530
 
602
- /* Only Icon */
603
- .stl-ui-button:not(:has(.stl-ui-button-label)):has(.stl-ui-button__icon:last-child):has(
604
- .stl-ui-button__icon:first-child
605
- ) {
606
- aspect-ratio: 1 / 1;
531
+ .stl-ui-button:not(:has(.stl-ui-button-label)):has(.stl-ui-button__icon:last-child):has(.stl-ui-button__icon:first-child) {
532
+ aspect-ratio: 1;
607
533
 
608
- .stl-ui-button__icon {
534
+ & .stl-ui-button__icon {
609
535
  margin-left: -4px;
610
536
  margin-right: -4px;
611
537
  }
612
538
  }
613
539
 
614
- /* --- LINKS --- */
615
-
616
540
  a.stl-ui-button {
617
- text-decoration: none;
618
541
  text-align: center;
542
+ text-decoration: none;
619
543
  }
620
544
 
621
545
  .stl-ui-dropdown {
622
546
  --stl-ui-dropdown-button-color: var(--stl-color-foreground);
623
547
  --stl-ui-dropdown-button-background-color: var(--stl-color-ui-background);
624
548
  --stl-ui-dropdown-button-border-color: var(--stl-color-border);
625
-
626
549
  --stl-ui-dropdown-button-border-radius: var(--stl-ui-layout-border-radius-sml);
627
550
  --stl-ui-dropdown-button-font-size: var(--stl-typography-scale-sm);
628
-
629
551
  --stl-ui-dropdown-button-height: 2rem;
630
- --stl-ui-dropdown-button-padding-inline: calc(0.75rem - 1px);
552
+ --stl-ui-dropdown-button-padding-inline: calc(.75rem - 1px);
631
553
  --stl-ui-dropdown-button-line-height: 100%;
632
554
  --stl-ui-dropdown-button-font-weight: 500;
633
-
634
- position: relative;
635
- display: inline-flex;
636
- align-items: center;
637
-
638
555
  color: var(--stl-ui-dropdown-button-color);
639
- gap: 0;
640
556
  font-size: var(--stl-ui-dropdown-button-font-size);
557
+ align-items: center;
558
+ gap: 0;
559
+ display: inline-flex;
560
+ position: relative;
641
561
 
642
- hr {
562
+ & hr {
643
563
  --stl-ui-dropdown-button__divider-height: 1px;
644
564
  --stl-ui-dropdown-button__divider-color: var(--stl-color-border);
645
-
646
565
  height: var(--stl-ui-dropdown-button__divider-height);
647
566
  background-color: var(--stl-ui-dropdown-button__divider-color);
648
567
  border: none;
649
-
650
- margin: 4px 0;
651
568
  width: calc(100% + 8px);
569
+ margin: 4px 0;
652
570
  transform: translateX(-4px);
653
571
  }
654
572
 
655
- .stl-ui-dropdown__button {
573
+ & .stl-ui-dropdown__button {
656
574
  background-color: var(--stl-ui-dropdown-button-background-color);
657
-
658
575
  border: 1px solid var(--stl-ui-dropdown-button-border-color);
659
576
  border-radius: var(--stl-ui-dropdown-button-border-radius);
660
577
  height: var(--stl-ui-dropdown-button-height);
@@ -662,54 +579,52 @@ a.stl-ui-button {
662
579
  line-height: var(--stl-ui-dropdown-button-line-height);
663
580
  font-weight: var(--stl-ui-dropdown-button-font-weight);
664
581
  cursor: pointer;
665
- display: flex;
666
- align-items: center;
667
- justify-content: center;
668
582
  color: inherit;
583
+ justify-content: center;
584
+ align-items: center;
585
+ display: flex;
669
586
 
670
587
  &:focus {
671
- outline: 1px auto Highlight;
588
+ outline: 1px auto highlight;
672
589
  }
673
590
 
674
591
  &:hover {
675
592
  background-color: var(--stl-color-ui-background-hover);
676
593
  }
677
594
 
678
- .stl-ui-dropdown__trigger-icon {
679
- margin-right: -4px;
595
+ & .stl-ui-dropdown__trigger-icon {
596
+ justify-content: center;
597
+ align-items: center;
680
598
  margin-left: 4px;
599
+ margin-right: -4px;
681
600
  display: flex;
682
- align-items: center;
683
- justify-content: center;
684
601
  }
685
602
  }
686
603
 
687
- .stl-ui-dropdown__icon {
688
- display: flex;
689
- align-items: center;
604
+ & .stl-ui-dropdown__icon {
690
605
  justify-content: center;
606
+ align-items: center;
607
+ display: flex;
691
608
 
692
- svg {
609
+ & svg {
693
610
  width: 16px;
694
611
  height: 16px;
695
612
  }
696
613
  }
697
614
 
698
- /**
699
- * Dropdown Button
700
- */
701
- .stl-ui-dropdown-button--action {
702
- display: flex;
703
- align-items: center;
704
- gap: 8px;
615
+ & .stl-ui-dropdown-button--action {
616
+ border-right-width: 0;
705
617
  border-top-right-radius: 0;
706
618
  border-bottom-right-radius: 0;
707
- border-right-width: 0;
619
+ align-items: center;
620
+ gap: 8px;
621
+ display: flex;
708
622
 
709
623
  &:hover {
710
624
  background-color: var(--stl-color-ui-background-hover);
711
625
  z-index: 1;
712
626
  border-right-width: 1px;
627
+
713
628
  & + .stl-ui-dropdown-button__trigger {
714
629
  border-left-width: 0;
715
630
  }
@@ -721,7 +636,7 @@ a.stl-ui-button {
721
636
  }
722
637
  }
723
638
 
724
- .stl-ui-dropdown-button__trigger {
639
+ & .stl-ui-dropdown-button__trigger {
725
640
  border-radius: 0;
726
641
  border-top-right-radius: var(--stl-ui-dropdown-button-border-radius);
727
642
  border-bottom-right-radius: var(--stl-ui-dropdown-button-border-radius);
@@ -731,128 +646,113 @@ a.stl-ui-button {
731
646
  }
732
647
  }
733
648
 
734
- .stl-ui-dropdown__trigger-selected {
735
- display: flex;
649
+ & .stl-ui-dropdown__trigger-selected {
736
650
  align-items: center;
737
651
  gap: 8px;
652
+ display: flex;
738
653
  }
739
654
 
740
- /**
741
- * Dropdown Menu
742
- */
743
- .stl-ui-dropdown-menu {
655
+ & .stl-ui-dropdown-menu {
744
656
  --stl-ui-dropdown-menu-background-color: var(--stl-color-ui-background);
745
657
  --stl-ui-dropdown-menu-border-color: var(--stl-color-border);
746
658
  --stl-ui-dropdown-menu-box-shadow: 0px 4px 4px -2px #00000014;
747
659
  --stl-ui-dropdown-menu-border-radius: var(--stl-ui-layout-border-radius-sml);
748
-
749
- /* opaque background with sometimes-transparent color on top in image layer*/
750
660
  background-color: var(--stl-color-background);
751
- background-image: linear-gradient(
752
- to right,
661
+ background-image: linear-gradient(to right,
753
662
  var(--stl-ui-dropdown-menu-background-color),
754
- var(--stl-ui-dropdown-menu-background-color)
755
- );
756
-
663
+ var(--stl-ui-dropdown-menu-background-color));
757
664
  border: 1px solid var(--stl-ui-dropdown-menu-border-color);
758
665
  box-shadow: var(--stl-ui-dropdown-menu-box-shadow);
759
666
  border-radius: var(--stl-ui-dropdown-menu-border-radius);
760
-
761
- position: absolute;
762
- right: 0;
763
667
  z-index: 1000;
764
- min-width: 100%;
765
668
  width: max-content;
669
+ min-width: 100%;
766
670
  padding: 4px;
767
671
  display: none;
672
+ position: absolute;
673
+ right: 0;
768
674
 
769
675
  &.stl-ui-dropdown-menu--above {
676
+ margin-bottom: 4px;
770
677
  top: auto;
771
678
  bottom: 100%;
772
- margin-bottom: 4px;
773
679
  }
774
680
 
775
681
  &.stl-ui-dropdown-menu--below {
682
+ margin-top: 4px;
776
683
  top: 100%;
777
684
  bottom: auto;
778
- margin-top: 4px;
779
685
  }
780
686
 
781
- &[data-state='open'] {
687
+ &[data-state="open"] {
782
688
  display: block;
783
689
  }
784
690
 
785
- .stl-ui-dropdown-menu__item {
691
+ & .stl-ui-dropdown-menu__item {
786
692
  --stl-ui-dropdown-menu__item-border-radius: var(--stl-ui-dropdown-button-border-radius);
787
693
  --stl-ui-dropdown-menu__item-height: var(--stl-ui-dropdown-button-height);
788
694
  --stl-ui-dropdown-menu__item-line-height: var(--stl-ui-dropdown-button-line-height);
789
695
  --stl-ui-dropdown-menu__item-hover-background-color: var(--stl-color-ui-background-hover);
790
-
791
696
  border-radius: var(--stl-ui-dropdown-menu__item-border-radius);
792
697
  height: var(--stl-ui-dropdown-menu__item-height);
793
698
  line-height: var(--stl-ui-dropdown-menu__item-line-height);
794
-
795
- background: transparent;
796
- border: none;
797
-
798
- padding: 8px;
799
699
  cursor: pointer;
800
- display: flex;
801
- align-items: center;
700
+ background: none;
701
+ border: none;
802
702
  justify-content: space-between;
703
+ align-items: center;
803
704
  gap: 16px;
804
705
  width: 100%;
706
+ padding: 8px;
707
+ display: flex;
805
708
 
806
- &:hover,
807
- &:focus-visible {
709
+ &:hover, &:focus-visible {
808
710
  background-color: var(--stl-ui-dropdown-menu__item-hover-background-color);
809
711
  }
810
712
 
811
- &:hover,
812
- &:focus-visible,
813
- &:focus {
713
+ &:hover, &:focus-visible, &:focus {
814
714
  color: var(--stl-color-foreground);
815
715
  }
816
716
 
817
717
  &.stl-ui-dropdown-menu__item-link {
818
- display: flex;
819
- align-items: center;
820
718
  justify-content: space-between;
719
+ align-items: center;
821
720
  gap: 16px;
822
721
  width: 100%;
722
+ display: flex;
823
723
 
824
724
  &:hover {
825
725
  color: var(--stl-color-foreground);
826
726
  }
827
727
  }
828
728
 
829
- .stl-ui-dropdown-menu__item-icon {
729
+ & .stl-ui-dropdown-menu__item-icon {
830
730
  display: flex;
831
731
  }
832
732
 
833
- .stl-ui-dropdown-menu__item-content {
834
- display: flex;
733
+ & .stl-ui-dropdown-menu__item-content {
835
734
  align-items: center;
836
735
  gap: 8px;
736
+ display: flex;
837
737
  }
838
738
 
839
- .stl-ui-dropdown-menu__item-text {
739
+ & .stl-ui-dropdown-menu__item-text {
840
740
  white-space: nowrap;
841
741
  }
842
742
 
843
- .stl-ui-dropdown-menu__item-text--subtle {
743
+ & .stl-ui-dropdown-menu__item-text--subtle {
844
744
  color: var(--stl-color-foreground-muted);
845
745
  }
846
746
 
847
- strong {
747
+ & strong {
848
748
  color: var(--stl-color-foreground);
849
749
  font-weight: 500;
850
750
  }
851
751
 
852
- .stl-ui-dropdown-menu__item-subtle-icon {
853
- --stl-ui-dropdown-menu__item-subtle-icon-color: rgb(from var(--stl-color-foreground) r g b / 0.25);
752
+ & .stl-ui-dropdown-menu__item-subtle-icon {
753
+ --stl-ui-dropdown-menu__item-subtle-icon-color: rgb(from var(--stl-color-foreground) r g b / .25);
854
754
 
855
- svg {
755
+ & svg {
856
756
  color: var(--stl-ui-dropdown-menu__item-subtle-icon-color);
857
757
  }
858
758
  }
@@ -864,36 +764,33 @@ a.stl-ui-button {
864
764
  --stl-ui-callout-background-color: var(--stl-color-faint-background);
865
765
  --stl-ui-callout-border-color: var(--stl-color-border);
866
766
  --stl-ui-callout-accent-color: var(--stl-color-foreground);
867
-
868
767
  border: 1px solid var(--stl-ui-callout-border-color);
869
768
  background-color: var(--stl-ui-callout-background-color);
870
769
  border-radius: var(--stl-ui-layout-border-radius);
871
- padding: 12px;
872
770
  line-height: var(--stl-typography-line-height);
873
771
  font-weight: 400;
874
772
  font-size: var(--stl-typography-text-body);
875
773
  color: var(--stl-color-foreground);
876
-
877
- display: flex;
878
774
  align-items: flex-start;
879
775
  gap: 8px;
776
+ padding: 12px;
777
+ display: flex;
880
778
 
881
- :where(a, strong) {
779
+ & :where(a, strong) {
882
780
  color: var(--stl-ui-callout-strong-color, var(--stl-ui-callout-accent-color));
883
781
  }
884
- :where(a) {
885
- text-decoration-color: rgba(from currentColor r g b / 0.4);
886
- transition: text-decoration-color 0.1s ease;
782
+
783
+ & :where(a) {
784
+ text-decoration-color: rgba(from currentColor r g b / .4);
785
+ transition: text-decoration-color .1s;
786
+
887
787
  &:hover {
888
- text-decoration-color: rgba(from currentColor r g b / 0.8);
788
+ text-decoration-color: rgba(from currentColor r g b / .8);
889
789
  }
890
790
  }
891
791
 
892
- ::selection {
893
- background-color: light-dark(
894
- rgb(from var(--stl-ui-callout-background-color) r g b / 0.2),
895
- rgb(from var(--stl-ui-callout-background-color) r g b / 0.35)
896
- );
792
+ & ::selection {
793
+ background-color: light-dark(rgb(from var(--stl-ui-callout-background-color) r g b / .2), rgb(from var(--stl-ui-callout-background-color) r g b / .35));
897
794
  color: var(--stl-color-foreground);
898
795
  }
899
796
  }
@@ -940,7 +837,7 @@ a.stl-ui-button {
940
837
  flex-shrink: 0;
941
838
  width: 1em;
942
839
  height: 1em;
943
- margin: calc((1lh - 1em) / 2);
840
+ margin: calc(.5lh - .5em);
944
841
  }
945
842
 
946
843
  .stl-ui-callout__content {
@@ -952,19 +849,6 @@ a.stl-ui-button {
952
849
  }
953
850
  }
954
851
 
955
- /* revert starlight details styles */
956
- @layer starlight.content {
957
- /* artificially increase specificity to outcompete selectors in the same layer whose styles we want to revert */
958
- .stl-ui-prose .sl-markdown-content.sl-markdown-content.sl-markdown-content {
959
- details,
960
- summary,
961
- summary::before,
962
- summary::marker {
963
- all: revert-layer;
964
- }
965
- }
966
- }
967
-
968
852
  .stl-ui-accordion {
969
853
  --stl-ui-accordion-padding: 12px;
970
854
  --stl-ui-accordion-content-padding-bottom: 4px;
@@ -974,60 +858,42 @@ a.stl-ui-button {
974
858
  --stl-ui-accordion-row-gap: 8px;
975
859
  --stl-ui-accordion-summary-column-gap: 8px;
976
860
  --stl-ui-accordion-border-radius: var(--stl-ui-layout-border-radius);
977
- /* left inset to make content line up with summary content (after chevron) */
978
- --stl-ui--internal--accordion-padding-start: calc(
979
- var(--stl-ui-accordion-padding) + var(--stl-ui-accordion-marker-size) +
980
- var(--stl-ui-accordion-marker-margin) * 2 + var(--stl-ui-accordion-summary-column-gap)
981
- );
982
-
861
+ --stl-ui--internal--accordion-padding-start: calc(var(--stl-ui-accordion-padding) + var(--stl-ui-accordion-marker-size) +
862
+ var(--stl-ui-accordion-marker-margin) * 2 + var(--stl-ui-accordion-summary-column-gap));
983
863
  background-color: var(--stl-color-ui-background);
984
864
  border: 1px solid var(--stl-color-border);
985
865
  border-radius: var(--stl-ui-accordion-border-radius);
986
866
  font-size: var(--stl-typography-text-body);
987
-
988
867
  padding: var(--stl-ui-accordion-padding);
989
- /* indent content to line up with left edge of summary content */
990
868
  padding-inline-start: var(--stl-ui--internal--accordion-padding-start);
991
869
 
992
870
  & > .stl-ui-accordion__summary {
993
- display: block;
994
- list-style: none;
995
-
996
- /* summary extends to the edges of the element in order to increase click target */
997
871
  padding: var(--stl-ui-accordion-padding);
998
- padding-inline-start: var(--stl-ui--internal--accordion-padding-start);
999
872
  margin: calc(-1 * var(--stl-ui-accordion-padding));
1000
- margin-inline-start: calc(-1 * var(--stl-ui--internal--accordion-padding-start));
1001
-
1002
873
  cursor: pointer;
1003
- font-weight: 500;
1004
-
1005
874
  border-radius: var(--stl-ui-accordion-border-radius);
875
+ margin-inline-start: calc(-1 * var(--stl-ui--internal--accordion-padding-start));
876
+ padding-inline-start: var(--stl-ui--internal--accordion-padding-start);
877
+ font-weight: 500;
878
+ list-style: none;
879
+ display: block;
1006
880
 
1007
- &::before {
1008
- content: '';
881
+ &:before {
882
+ content: "";
1009
883
  width: var(--stl-ui-accordion-marker-size);
1010
884
  height: var(--stl-ui-accordion-marker-size);
1011
885
  margin: var(--stl-ui-accordion-marker-margin);
1012
886
  background-color: var(--stl-ui-accordion-marker-color);
1013
- display: block;
1014
- position: absolute;
1015
- --stl-ui-accordion--internal--marker-width: calc(
1016
- var(--stl-ui-accordion-marker-size) + var(--stl-ui-accordion-marker-margin) * 2
1017
- );
1018
- --stl-ui-accordion--internal--summary-marker-transform: translateX(
1019
- calc(
1020
- -1 * var(--stl-ui-accordion--internal--marker-width) - var(--stl-ui-accordion-summary-column-gap)
1021
- )
1022
- );
887
+ --stl-ui-accordion--internal--marker-width: calc(var(--stl-ui-accordion-marker-size) + var(--stl-ui-accordion-marker-margin) * 2);
888
+ --stl-ui-accordion--internal--summary-marker-transform: translateX(calc(-1 * var(--stl-ui-accordion--internal--marker-width) - var(--stl-ui-accordion-summary-column-gap)));
1023
889
  transform: var(--stl-ui-accordion--internal--summary-marker-transform);
1024
-
1025
- --lucide-chevron-right: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWNoZXZyb24tcmlnaHQtaWNvbiBsdWNpZGUtY2hldnJvbi1yaWdodCI+PHBhdGggZD0ibTkgMTggNi02LTYtNiIvPjwvc3ZnPg==');
890
+ --lucide-chevron-right: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWNoZXZyb24tcmlnaHQtaWNvbiBsdWNpZGUtY2hldnJvbi1yaWdodCI+PHBhdGggZD0ibTkgMTggNi02LTYtNiIvPjwvc3ZnPg==");
1026
891
  mask-image: var(--lucide-chevron-right);
892
+ transition: transform .1s ease-out;
893
+ display: block;
894
+ position: absolute;
1027
895
  mask-size: contain;
1028
896
  mask-repeat: no-repeat;
1029
-
1030
- transition: transform 0.1s ease-out;
1031
897
  }
1032
898
 
1033
899
  & > :first-child {
@@ -1040,23 +906,20 @@ a.stl-ui-button {
1040
906
  padding-bottom: calc(var(--stl-ui-accordion-padding) + var(--stl-ui-accordion-content-padding-bottom));
1041
907
 
1042
908
  & > .stl-ui-accordion__summary {
1043
- /* padding-bottom shouldn’t extend beyond the row gap while open, i.e. we shouldn’t be negative-margin-placing content overlapping summary */
1044
- --stl-ui--internal--summary-padding-bottom: min(
1045
- var(--stl-ui-accordion-padding),
1046
- var(--stl-ui-accordion-row-gap)
1047
- );
909
+ --stl-ui--internal--summary-padding-bottom: min(var(--stl-ui-accordion-padding),
910
+ var(--stl-ui-accordion-row-gap));
1048
911
  padding-bottom: var(--stl-ui--internal--summary-padding-bottom);
1049
912
  margin-bottom: calc(var(--stl-ui-accordion-row-gap) - var(--stl-ui--internal--summary-padding-bottom));
1050
- border-bottom-left-radius: 0;
1051
913
  border-bottom-right-radius: 0;
914
+ border-bottom-left-radius: 0;
1052
915
 
1053
- &::before {
916
+ &:before {
1054
917
  transform: var(--stl-ui-accordion--internal--summary-marker-transform) rotate(90deg);
1055
918
  }
1056
919
  }
1057
920
  }
1058
921
 
1059
- &:has(> .stl-ui-accordion__summary:hover) {
922
+ &:has( > .stl-ui-accordion__summary:hover) {
1060
923
  background-color: var(--stl-color-ui-background-hover);
1061
924
  }
1062
925
 
@@ -1065,23 +928,22 @@ a.stl-ui-button {
1065
928
  }
1066
929
  }
1067
930
 
1068
- /* Groups */
1069
-
1070
931
  .stl-ui-accordion-group {
1071
- & > .stl-ui-accordion:has(+ .stl-ui-accordion) {
1072
- border-bottom-left-radius: 0;
932
+ & > .stl-ui-accordion:has( + .stl-ui-accordion) {
1073
933
  border-bottom-right-radius: 0;
934
+ border-bottom-left-radius: 0;
935
+
1074
936
  & > .stl-ui-accordion__summary {
1075
- border-bottom-left-radius: 0;
1076
937
  border-bottom-right-radius: 0;
938
+ border-bottom-left-radius: 0;
1077
939
  }
1078
940
  }
1079
941
 
1080
942
  & > .stl-ui-accordion + .stl-ui-accordion {
1081
- margin-top: 0;
1082
943
  border-top-width: 0;
1083
944
  border-top-left-radius: 0;
1084
945
  border-top-right-radius: 0;
946
+ margin-top: 0;
1085
947
 
1086
948
  & > .stl-ui-accordion__summary {
1087
949
  border-top-left-radius: 0;
@@ -1089,20 +951,19 @@ a.stl-ui-button {
1089
951
  }
1090
952
  }
1091
953
 
1092
- /* Ensure the darker border always extends all the way around the active element, instead of
1093
- * leaving an inactive border-top */
1094
-
1095
- .stl-ui-accordion:not(:hover, [open]):has(+ .stl-ui-accordion:hover) {
954
+ & .stl-ui-accordion:not(:hover, [open]):has( + .stl-ui-accordion:hover) {
1096
955
  border-bottom-width: 0;
1097
956
  }
1098
- .stl-ui-accordion:not(:hover, [open]) + .stl-ui-accordion:hover {
957
+
958
+ & .stl-ui-accordion:not(:hover, [open]) + .stl-ui-accordion:hover {
1099
959
  border-top-width: 1px;
1100
960
  }
1101
961
 
1102
- .stl-ui-accordion:not([open]):has(+ .stl-ui-accordion[open]) {
962
+ & .stl-ui-accordion:not([open]):has( + .stl-ui-accordion[open]) {
1103
963
  border-bottom-width: 0;
1104
964
  }
1105
- .stl-ui-accordion:not([open]) + .stl-ui-accordion[open] {
965
+
966
+ & .stl-ui-accordion:not([open]) + .stl-ui-accordion[open] {
1106
967
  border-top-width: 1px;
1107
968
  }
1108
969
  }
@@ -1114,211 +975,212 @@ a.stl-ui-button {
1114
975
  .stl-ui-steps__step {
1115
976
  --step-icon-width: 24px;
1116
977
  --step-padding: 12px;
1117
- list-style: none;
1118
- position: relative;
1119
978
  padding: var(--step-padding);
1120
- /* Space for the custom marker */
1121
979
  padding-left: calc(var(--step-icon-width) + var(--step-padding));
1122
980
  margin: 0;
981
+ list-style: none;
982
+ position: relative;
1123
983
 
1124
- &::before {
984
+ &:before {
1125
985
  content: counter(list-item);
1126
- position: absolute;
1127
986
  left: 0;
1128
987
  top: var(--step-padding);
1129
988
  width: var(--step-icon-width);
1130
989
  height: var(--step-icon-width);
1131
990
  border: 1px solid var(--stl-color-border);
1132
- border-radius: 100%;
1133
- display: flex;
1134
- align-items: center;
1135
- justify-content: center;
1136
991
  background: var(--stl-color-bg);
1137
992
  z-index: 1;
1138
993
  font-size: var(--stl-typography-text-body-xs);
994
+ border-radius: 100%;
995
+ justify-content: center;
996
+ align-items: center;
1139
997
  font-style: normal;
1140
998
  font-weight: 600;
1141
999
  line-height: 100%;
1000
+ display: flex;
1001
+ position: absolute;
1142
1002
  }
1143
1003
 
1144
- &::after {
1145
- content: '';
1146
- position: absolute;
1147
- left: calc(var(--step-icon-width) / 2 - 0.5px);
1004
+ &:after {
1005
+ content: "";
1006
+ left: calc(var(--step-icon-width) / 2 - .5px);
1148
1007
  top: calc(var(--step-icon-width) + var(--step-padding));
1149
1008
  bottom: calc(-1 * (var(--step-padding)));
1150
- width: 1px;
1151
1009
  background: var(--stl-color-border);
1010
+ width: 1px;
1011
+ position: absolute;
1152
1012
  }
1153
1013
 
1154
1014
  &:last-child {
1155
1015
  padding-bottom: 0;
1156
1016
 
1157
- /* No line after the last step */
1158
- &::after {
1017
+ &:after {
1159
1018
  display: none;
1160
1019
  }
1161
1020
  }
1162
1021
  }
1022
+
1163
1023
  .stl-ui-steps__step-title {
1164
1024
  font-weight: 600;
1165
1025
  }
1166
1026
 
1167
1027
  .stl-ui-steps__step-content {
1168
- margin-bottom: 0;
1169
1028
  margin-top: 4px;
1029
+ margin-bottom: 0;
1170
1030
  }
1171
1031
 
1172
1032
  .stl-ui-badge {
1173
- display: inline-flex;
1174
- align-items: center;
1175
- gap: 0.125em;
1176
-
1177
- font-weight: 500;
1178
1033
  letter-spacing: normal;
1179
-
1180
- border-width: 1px;
1181
1034
  border-style: solid;
1035
+ border-width: 1px;
1036
+ align-items: center;
1037
+ gap: .125em;
1038
+ font-weight: 500;
1039
+ display: inline-flex;
1182
1040
 
1183
- /* sizes */
1184
1041
  &.stl-ui-badge--size-sm {
1185
1042
  height: 20px;
1186
1043
  font-size: var(--stl-typography-scale-xs);
1187
- padding: 0 2px;
1188
1044
  border-radius: var(--stl-ui-layout-border-radius-xs);
1189
1045
  --stl-ui-badge-icon-size: 14px;
1046
+ padding: 0 2px;
1190
1047
  }
1191
- &,
1192
- &.stl-ui-badge--size-md {
1048
+
1049
+ &, &.stl-ui-badge--size-md {
1193
1050
  height: 24px;
1194
1051
  font-size: var(--stl-typography-scale-sm);
1195
- padding: 0 4px;
1196
1052
  border-radius: var(--stl-ui-layout-border-radius-xs);
1197
1053
  --stl-ui-badge-icon-size: 14px;
1054
+ padding: 0 4px;
1198
1055
  }
1056
+
1199
1057
  &.stl-ui-badge--size-lg {
1200
1058
  height: 32px;
1201
1059
  font-size: var(--stl-typography-scale-md);
1202
- padding: 0 6px;
1203
1060
  border-radius: var(--stl-ui-layout-border-radius-sml);
1204
1061
  --stl-ui-badge-icon-size: 16px;
1062
+ padding: 0 6px;
1205
1063
  }
1206
1064
 
1207
- /* intents */
1208
1065
  &.stl-ui-badge--intent-none {
1209
1066
  background-color: var(--stl-color-ui-background);
1210
1067
  color: var(--stl-color-foreground-muted);
1211
1068
  --stl-ui-badge-icon-opacity: var(--stl-opacity-level-040);
1212
1069
  border-color: var(--stl-color-border);
1213
1070
  }
1071
+
1214
1072
  &.stl-ui-badge--intent-info {
1215
1073
  background-color: var(--stl-color-muted-background);
1216
1074
  color: var(--stl-color-foreground);
1217
1075
  border-color: var(--stl-color-border);
1076
+
1218
1077
  &.stl-ui-badge--solid {
1219
1078
  background-color: var(--stl-color-inverse-background);
1220
1079
  color: var(--stl-color-inverse-foreground);
1221
1080
  --stl-ui-badge-icon-opacity: 1;
1222
1081
  }
1223
1082
  }
1224
- &.stl-ui-badge--intent-success,
1225
- &.stl-ui-badge--http-get {
1083
+
1084
+ &.stl-ui-badge--intent-success, &.stl-ui-badge--http-get {
1226
1085
  background-color: var(--stl-color-green-muted-background);
1227
1086
  color: var(--stl-color-green-foreground);
1228
1087
  border-color: var(--stl-color-green-border);
1088
+
1229
1089
  &.stl-ui-badge--solid {
1230
1090
  background-color: var(--stl-color-green-inverse-background);
1231
1091
  color: var(--stl-color-green-inverse-foreground);
1232
1092
  }
1233
1093
  }
1094
+
1234
1095
  &.stl-ui-badge--intent-warning {
1235
1096
  background-color: var(--stl-color-yellow-muted-background);
1236
1097
  color: var(--stl-color-yellow-foreground);
1237
1098
  border-color: var(--stl-color-yellow-border);
1099
+
1238
1100
  &.stl-ui-badge--solid {
1239
1101
  background-color: var(--stl-color-yellow-inverse-background);
1240
1102
  color: var(--stl-color-yellow-inverse-foreground);
1241
1103
  }
1242
1104
  }
1243
- &.stl-ui-badge--intent-danger,
1244
- &.stl-ui-badge--http-delete {
1105
+
1106
+ &.stl-ui-badge--intent-danger, &.stl-ui-badge--http-delete {
1245
1107
  background-color: var(--stl-color-red-muted-background);
1246
1108
  color: var(--stl-color-red-foreground);
1247
1109
  border-color: var(--stl-color-red-border);
1110
+
1248
1111
  &.stl-ui-badge--solid {
1249
1112
  background-color: var(--stl-color-red-inverse-background);
1250
1113
  color: var(--stl-color-red-inverse-foreground);
1251
1114
  }
1252
1115
  }
1253
- &.stl-ui-badge--intent-note,
1254
- &.stl-ui-badge--http-post {
1116
+
1117
+ &.stl-ui-badge--intent-note, &.stl-ui-badge--http-post {
1255
1118
  background-color: var(--stl-color-blue-muted-background);
1256
1119
  color: var(--stl-color-blue-foreground);
1257
1120
  border-color: var(--stl-color-blue-border);
1121
+
1258
1122
  &.stl-ui-badge--solid {
1259
1123
  background-color: var(--stl-color-blue-inverse-background);
1260
1124
  color: var(--stl-color-blue-inverse-foreground);
1261
1125
  }
1262
1126
  }
1127
+
1263
1128
  &.stl-ui-badge--intent-tip {
1264
1129
  background-color: var(--stl-color-purple-muted-background);
1265
1130
  color: var(--stl-color-purple-foreground);
1266
1131
  border-color: var(--stl-color-purple-border);
1132
+
1267
1133
  &.stl-ui-badge--solid {
1268
1134
  background-color: var(--stl-color-purple-inverse-background);
1269
1135
  color: var(--stl-color-purple-inverse-foreground);
1270
1136
  }
1271
1137
  }
1138
+
1272
1139
  &.stl-ui-badge--intent-accent {
1273
1140
  background-color: var(--stl-color-accent-muted-background);
1274
1141
  color: var(--stl-color-accent-foreground);
1275
1142
  border-color: var(--stl-color-accent-border);
1143
+
1276
1144
  &.stl-ui-badge--solid {
1277
1145
  background-color: var(--stl-color-accent-inverse-background);
1278
1146
  color: var(--stl-color-accent-inverse-foreground);
1279
1147
  }
1280
1148
  }
1281
- &.stl-ui-badge--http-put,
1282
- &.stl-ui-badge--http-patch {
1149
+
1150
+ &.stl-ui-badge--http-put, &.stl-ui-badge--http-patch {
1283
1151
  background-color: var(--stl-color-orange-muted-background);
1284
1152
  color: var(--stl-color-orange-foreground);
1285
1153
  border-color: var(--stl-color-orange-border);
1154
+
1286
1155
  &.stl-ui-badge--solid {
1287
1156
  background-color: var(--stl-color-orange-inverse-background);
1288
1157
  color: var(--stl-color-orange-inverse-foreground);
1289
1158
  }
1290
1159
  }
1291
1160
 
1292
- /* Text content */
1293
- .stl-ui-badge__content {
1161
+ & .stl-ui-badge__content {
1162
+ padding: .25em;
1294
1163
  display: inline-block;
1295
- padding: 0.25em;
1296
1164
  }
1297
1165
 
1298
- /* Icons */
1299
- svg {
1300
- flex-shrink: 0;
1301
- display: inline-block;
1166
+ & svg {
1302
1167
  color: rgb(from currentColor r g b / 1);
1303
1168
  opacity: var(--stl-ui-badge-icon-opacity, 1);
1304
1169
  width: var(--stl-ui-badge-icon-size);
1305
1170
  height: var(--stl-ui-badge-icon-size);
1171
+ flex-shrink: 0;
1172
+ display: inline-block;
1306
1173
  }
1307
- &:has(> svg:only-child) {
1308
- padding: 0;
1174
+
1175
+ &:has( > svg:only-child) {
1309
1176
  aspect-ratio: 1;
1310
1177
  justify-content: center;
1178
+ padding: 0;
1311
1179
  }
1312
1180
 
1313
- /* HTTP */
1314
1181
  &.stl-ui-badge--http {
1315
1182
  font-family: var(--stl-typography-font-mono);
1316
1183
  font-variant-numeric: tabular-nums;
1317
1184
  text-transform: uppercase;
1318
1185
  }
1319
1186
  }
1320
-
1321
- /* design system variables */
1322
-
1323
- /* components */
1324
-