@stainless-api/ui-primitives 0.1.0-beta.10 → 0.1.0-beta.12

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.
@@ -0,0 +1,1172 @@
1
+ @layer stl-ui.tokens {
2
+ /* Scales - Default */
3
+ :root {
4
+ --stl-ui-gray-50: rgba(250, 250, 250, 1);
5
+ --stl-ui-gray-100: rgba(245, 245, 245, 1);
6
+ --stl-ui-gray-200: rgba(229, 229, 229, 1);
7
+ --stl-ui-gray-300: rgba(212, 212, 212, 1);
8
+ --stl-ui-gray-400: rgba(163, 163, 163, 1);
9
+ --stl-ui-gray-500: rgba(115, 115, 115, 1);
10
+ --stl-ui-gray-600: rgba(82, 82, 82, 1);
11
+ --stl-ui-gray-700: rgba(64, 64, 64, 1);
12
+ --stl-ui-gray-800: rgba(38, 38, 38, 1);
13
+ --stl-ui-gray-900: rgba(23, 23, 23, 1);
14
+ --stl-ui-gray-950: rgba(10, 10, 10, 1);
15
+ --stl-ui-accent-50: #eff6ffff;
16
+ --stl-ui-accent-100: #dbeafeff;
17
+ --stl-ui-accent-200: #bedbffff;
18
+ --stl-ui-accent-300: #8ec5ffff;
19
+ --stl-ui-accent-400: #51a2ffff;
20
+ --stl-ui-accent-500: #2b7fffff;
21
+ --stl-ui-accent-600: #155dfcff;
22
+ --stl-ui-accent-700: #1447e6ff;
23
+ --stl-ui-accent-800: #193cb8ff;
24
+ --stl-ui-accent-900: #132762ff;
25
+ --stl-ui-accent-950: #0b1128ff;
26
+ --stl-ui-red-50: rgba(252, 243, 243, 1);
27
+ --stl-ui-red-100: rgba(249, 227, 227, 1);
28
+ --stl-ui-red-200: rgba(246, 203, 203, 1);
29
+ --stl-ui-red-300: rgba(242, 166, 165, 1);
30
+ --stl-ui-red-400: rgba(235, 109, 108, 1);
31
+ --stl-ui-red-500: rgba(227, 64, 65, 1);
32
+ --stl-ui-red-600: rgba(208, 30, 34, 1);
33
+ --stl-ui-red-700: rgba(174, 25, 26, 1);
34
+ --stl-ui-red-800: rgba(143, 28, 27, 1);
35
+ --stl-ui-red-900: rgba(85, 24, 22, 1);
36
+ --stl-ui-red-950: rgba(43, 9, 8, 1);
37
+ --stl-ui-blue-50: rgba(239, 246, 255, 1);
38
+ --stl-ui-blue-100: rgba(219, 234, 254, 1);
39
+ --stl-ui-blue-200: rgba(190, 219, 255, 1);
40
+ --stl-ui-blue-300: rgba(142, 197, 255, 1);
41
+ --stl-ui-blue-400: rgba(81, 162, 255, 1);
42
+ --stl-ui-blue-500: rgba(43, 127, 255, 1);
43
+ --stl-ui-blue-600: rgba(21, 93, 252, 1);
44
+ --stl-ui-blue-700: rgba(20, 71, 230, 1);
45
+ --stl-ui-blue-800: rgba(25, 60, 184, 1);
46
+ --stl-ui-blue-900: rgba(19, 39, 98, 1);
47
+ --stl-ui-blue-950: rgba(11, 17, 40, 1);
48
+ --stl-ui-green-50: rgba(240, 253, 244, 1);
49
+ --stl-ui-green-100: rgba(220, 252, 231, 1);
50
+ --stl-ui-green-200: rgba(187, 247, 208, 1);
51
+ --stl-ui-green-300: rgba(134, 239, 172, 1);
52
+ --stl-ui-green-400: rgba(74, 222, 128, 1);
53
+ --stl-ui-green-500: rgba(34, 197, 94, 1);
54
+ --stl-ui-green-600: rgba(22, 163, 74, 1);
55
+ --stl-ui-green-700: rgba(21, 128, 61, 1);
56
+ --stl-ui-green-800: rgba(22, 101, 52, 1);
57
+ --stl-ui-green-900: rgba(15, 62, 33, 1);
58
+ --stl-ui-green-950: rgba(4, 32, 15, 1);
59
+ --stl-ui-orange-50: rgba(255, 247, 237, 1);
60
+ --stl-ui-orange-100: rgba(255, 237, 213, 1);
61
+ --stl-ui-orange-200: rgba(254, 215, 170, 1);
62
+ --stl-ui-orange-300: rgba(253, 186, 116, 1);
63
+ --stl-ui-orange-400: rgba(251, 146, 60, 1);
64
+ --stl-ui-orange-500: rgba(249, 115, 22, 1);
65
+ --stl-ui-orange-600: rgba(234, 88, 12, 1);
66
+ --stl-ui-orange-700: rgba(194, 65, 12, 1);
67
+ --stl-ui-orange-800: rgba(154, 52, 18, 1);
68
+ --stl-ui-orange-900: rgba(89, 32, 13, 1);
69
+ --stl-ui-orange-950: rgba(46, 14, 5, 1);
70
+ --stl-ui-purple-50: rgba(250, 245, 255, 1);
71
+ --stl-ui-purple-100: rgba(243, 232, 255, 1);
72
+ --stl-ui-purple-200: rgba(233, 213, 255, 1);
73
+ --stl-ui-purple-300: rgba(216, 180, 254, 1);
74
+ --stl-ui-purple-400: rgba(192, 132, 252, 1);
75
+ --stl-ui-purple-500: rgba(168, 85, 247, 1);
76
+ --stl-ui-purple-600: rgba(147, 51, 234, 1);
77
+ --stl-ui-purple-700: rgba(126, 34, 206, 1);
78
+ --stl-ui-purple-800: rgba(107, 33, 168, 1);
79
+ --stl-ui-purple-900: rgba(72, 23, 110, 1);
80
+ --stl-ui-purple-950: rgba(39, 5, 67, 1);
81
+ --stl-ui-cyan-50: rgba(236, 254, 255, 1);
82
+ --stl-ui-cyan-100: rgba(207, 250, 254, 1);
83
+ --stl-ui-cyan-200: rgba(165, 243, 252, 1);
84
+ --stl-ui-cyan-300: rgba(103, 232, 249, 1);
85
+ --stl-ui-cyan-400: rgba(34, 211, 238, 1);
86
+ --stl-ui-cyan-500: rgba(6, 182, 212, 1);
87
+ --stl-ui-cyan-600: rgba(8, 145, 178, 1);
88
+ --stl-ui-cyan-700: rgba(14, 116, 144, 1);
89
+ --stl-ui-cyan-800: rgba(21, 94, 117, 1);
90
+ --stl-ui-cyan-900: rgba(18, 62, 79, 1);
91
+ --stl-ui-cyan-950: rgba(5, 34, 46, 1);
92
+ --stl-ui-pink-50: rgba(253, 242, 248, 1);
93
+ --stl-ui-pink-100: rgba(252, 231, 243, 1);
94
+ --stl-ui-pink-200: rgba(251, 207, 232, 1);
95
+ --stl-ui-pink-300: rgba(249, 168, 212, 1);
96
+ --stl-ui-pink-400: rgba(244, 114, 182, 1);
97
+ --stl-ui-pink-500: rgba(236, 72, 153, 1);
98
+ --stl-ui-pink-600: rgba(219, 39, 119, 1);
99
+ --stl-ui-pink-700: rgba(190, 24, 93, 1);
100
+ --stl-ui-pink-800: rgba(157, 23, 77, 1);
101
+ --stl-ui-pink-900: rgba(103, 19, 53, 1);
102
+ --stl-ui-pink-950: rgba(56, 5, 25, 1);
103
+ --stl-ui-yellow-50: rgba(254, 252, 232, 1);
104
+ --stl-ui-yellow-100: rgba(254, 249, 195, 1);
105
+ --stl-ui-yellow-200: rgba(254, 240, 138, 1);
106
+ --stl-ui-yellow-300: rgba(253, 224, 71, 1);
107
+ --stl-ui-yellow-400: rgba(250, 204, 21, 1);
108
+ --stl-ui-yellow-500: rgba(234, 179, 8, 1);
109
+ --stl-ui-yellow-600: rgba(202, 138, 4, 1);
110
+ --stl-ui-yellow-700: rgba(161, 98, 7, 1);
111
+ --stl-ui-yellow-800: rgba(133, 77, 14, 1);
112
+ --stl-ui-yellow-900: rgba(88, 49, 14, 1);
113
+ --stl-ui-yellow-950: rgba(47, 23, 4, 1);
114
+
115
+ /* TODO support accent generation */
116
+ /* --stl-ui-accent-base: rgb(21, 93, 252);
117
+ --stl-ui-accent-50: color-mix(in oklch, white 95%, var(--stl-ui-accent-base));
118
+ --stl-ui-accent-100: color-mix(in oklch, white 85%, var(--stl-ui-accent-base));
119
+ --stl-ui-accent-200: color-mix(in oklch, white 70%, var(--stl-ui-accent-base));
120
+ --stl-ui-accent-300: color-mix(in oklch, white 55%, var(--stl-ui-accent-base));
121
+ --stl-ui-accent-400: color-mix(in oklch, white 40%, var(--stl-ui-accent-base));
122
+ --stl-ui-accent-500: color-mix(in oklch, white 25%, var(--stl-ui-accent-base));
123
+ --stl-ui-accent-600: var(--stl-ui-accent-base);
124
+ --stl-ui-accent-700: color-mix(in oklch, black 15%, var(--stl-ui-accent-base));
125
+ --stl-ui-accent-800: color-mix(in oklch, black 30%, var(--stl-ui-accent-base));
126
+ --stl-ui-accent-900: color-mix(in oklch, black 45%, var(--stl-ui-accent-base));
127
+ --stl-ui-accent-950: color-mix(in oklch, black 60%, var(--stl-ui-accent-base)); */
128
+ }
129
+ }
130
+
131
+ @layer stl-ui.tokens {
132
+ /* --stl-ui-swatch-es - Light */
133
+ :root {
134
+ --stl-ui-swatch-gray-gray-1: var(--stl-ui-gray-800);
135
+ --stl-ui-swatch-gray-gray-2: var(--stl-ui-gray-700);
136
+ --stl-ui-swatch-gray-gray-3: var(--stl-ui-gray-600);
137
+ --stl-ui-swatch-gray-gray-4: var(--stl-ui-gray-500);
138
+ --stl-ui-swatch-gray-gray-5: var(--stl-ui-gray-400);
139
+ --stl-ui-swatch-gray-gray-6: var(--stl-ui-gray-300);
140
+ --stl-ui-swatch-gray-gray-7: var(--stl-ui-gray-200);
141
+ --stl-ui-swatch-gray-gray-8: var(--stl-ui-gray-100);
142
+ --stl-ui-swatch-gray-gray-9: var(--stl-ui-gray-50);
143
+ --stl-ui-swatch-gray-black: var(--stl-ui-gray-950);
144
+ --stl-ui-swatch-gray-white: rgb(255, 255, 255);
145
+
146
+ --stl-ui-swatch-accent-base: var(--stl-ui-accent-600);
147
+ --stl-ui-swatch-accent-muted: var(--stl-ui-accent-200);
148
+ --stl-ui-swatch-accent-faint: var(--stl-ui-accent-50);
149
+ --stl-ui-swatch-red-base: var(--stl-ui-red-600);
150
+ --stl-ui-swatch-red-muted: var(--stl-ui-red-200);
151
+ --stl-ui-swatch-red-faint: var(--stl-ui-red-50);
152
+ --stl-ui-swatch-green-base: var(--stl-ui-green-600);
153
+ --stl-ui-swatch-green-muted: var(--stl-ui-green-200);
154
+ --stl-ui-swatch-green-faint: var(--stl-ui-green-50);
155
+ --stl-ui-swatch-blue-base: var(--stl-ui-blue-600);
156
+ --stl-ui-swatch-blue-muted: var(--stl-ui-blue-200);
157
+ --stl-ui-swatch-blue-faint: var(--stl-ui-blue-50);
158
+ --stl-ui-swatch-orange-base: var(--stl-ui-orange-600);
159
+ --stl-ui-swatch-orange-muted: var(--stl-ui-orange-200);
160
+ --stl-ui-swatch-orange-faint: var(--stl-ui-orange-50);
161
+ --stl-ui-swatch-purple-base: var(--stl-ui-purple-600);
162
+ --stl-ui-swatch-purple-muted: var(--stl-ui-purple-200);
163
+ --stl-ui-swatch-purple-faint: var(--stl-ui-purple-50);
164
+ --stl-ui-swatch-cyan-base: var(--stl-ui-cyan-600);
165
+ --stl-ui-swatch-cyan-muted: var(--stl-ui-cyan-200);
166
+ --stl-ui-swatch-cyan-faint: var(--stl-ui-cyan-50);
167
+ --stl-ui-swatch-pink-base: var(--stl-ui-pink-600);
168
+ --stl-ui-swatch-pink-muted: var(--stl-ui-pink-200);
169
+ --stl-ui-swatch-pink-faint: var(--stl-ui-pink-50);
170
+ --stl-ui-swatch-yellow-base: var(--stl-ui-yellow-600);
171
+ --stl-ui-swatch-yellow-muted: var(--stl-ui-yellow-200);
172
+ --stl-ui-swatch-yellow-faint: var(--stl-ui-yellow-50);
173
+ }
174
+
175
+ /* --stl-ui-swatch-es - Dark */
176
+ :root[data-theme='dark'] {
177
+ --stl-ui-swatch-gray-gray-1: var(--stl-ui-gray-100);
178
+ --stl-ui-swatch-gray-gray-2: var(--stl-ui-gray-200);
179
+ --stl-ui-swatch-gray-gray-3: var(--stl-ui-gray-300);
180
+ --stl-ui-swatch-gray-gray-4: var(--stl-ui-gray-400);
181
+ --stl-ui-swatch-gray-gray-5: var(--stl-ui-gray-500);
182
+ --stl-ui-swatch-gray-gray-6: var(--stl-ui-gray-600);
183
+ --stl-ui-swatch-gray-gray-7: var(--stl-ui-gray-700);
184
+ --stl-ui-swatch-gray-gray-8: var(--stl-ui-gray-800);
185
+ --stl-ui-swatch-gray-gray-9: var(--stl-ui-gray-900);
186
+ --stl-ui-swatch-gray-black: var(--stl-ui-gray-950);
187
+ --stl-ui-swatch-gray-white: rgb(255, 255, 255);
188
+
189
+ --stl-ui-swatch-accent-base: var(--stl-ui-accent-500);
190
+ --stl-ui-swatch-accent-muted: var(--stl-ui-accent-900);
191
+ --stl-ui-swatch-accent-faint: var(--stl-ui-accent-950);
192
+ --stl-ui-swatch-red-base: var(--stl-ui-red-500);
193
+ --stl-ui-swatch-red-muted: var(--stl-ui-red-900);
194
+ --stl-ui-swatch-red-faint: var(--stl-ui-red-950);
195
+ --stl-ui-swatch-green-base: var(--stl-ui-green-500);
196
+ --stl-ui-swatch-green-muted: var(--stl-ui-green-900);
197
+ --stl-ui-swatch-green-faint: var(--stl-ui-green-950);
198
+ --stl-ui-swatch-blue-base: var(--stl-ui-blue-500);
199
+ --stl-ui-swatch-blue-muted: var(--stl-ui-blue-900);
200
+ --stl-ui-swatch-blue-faint: var(--stl-ui-blue-950);
201
+ --stl-ui-swatch-orange-base: var(--stl-ui-orange-500);
202
+ --stl-ui-swatch-orange-muted: var(--stl-ui-orange-900);
203
+ --stl-ui-swatch-orange-faint: var(--stl-ui-orange-950);
204
+ --stl-ui-swatch-purple-base: var(--stl-ui-purple-500);
205
+ --stl-ui-swatch-purple-muted: var(--stl-ui-purple-900);
206
+ --stl-ui-swatch-purple-faint: var(--stl-ui-purple-950);
207
+ --stl-ui-swatch-cyan-base: var(--stl-ui-cyan-500);
208
+ --stl-ui-swatch-cyan-muted: var(--stl-ui-cyan-900);
209
+ --stl-ui-swatch-cyan-faint: var(--stl-ui-cyan-950);
210
+ --stl-ui-swatch-pink-base: var(--stl-ui-pink-500);
211
+ --stl-ui-swatch-pink-muted: var(--stl-ui-pink-900);
212
+ --stl-ui-swatch-pink-faint: var(--stl-ui-pink-950);
213
+ --stl-ui-swatch-yellow-base: var(--stl-ui-yellow-500);
214
+ --stl-ui-swatch-yellow-muted: var(--stl-ui-yellow-900);
215
+ --stl-ui-swatch-yellow-faint: var(--stl-ui-yellow-950);
216
+ }
217
+ }
218
+
219
+ /* Typography - Stainless */
220
+ @layer stl-ui.tokens {
221
+ :root {
222
+ --stl-ui-typography-font: 'Geist', system-ui, sans-serif;
223
+ --stl-ui-typography-font-mono: 'Geist Mono', ui-monospace, monospace;
224
+ --stl-ui-typography-line-height: 1.5;
225
+ --stl-ui-typography-line-height-headings: 1.2;
226
+
227
+ --stl-ui-typography-text-body: var(--stl-ui-type-scale-text);
228
+ --stl-ui-typography-text-body-sm: var(--stl-ui-type-scale-text-sm);
229
+ --stl-ui-typography-text-body-xs: var(--stl-ui-type-scale-text-xs);
230
+
231
+ --stl-ui-typography-text-code: var(--stl-ui-type-scale-text-sm);
232
+ --stl-ui-typography-text-code-sm: var(--stl-ui-type-scale-text-xs);
233
+
234
+ --stl-ui-typography-text-h1: var(--stl-ui-type-scale-text-5xl);
235
+ --stl-ui-typography-text-h2: var(--stl-ui-type-scale-text-4xl);
236
+ --stl-ui-typography-text-h3: var(--stl-ui-type-scale-text-3xl);
237
+ --stl-ui-typography-text-h4: var(--stl-ui-type-scale-text-2xl);
238
+ --stl-ui-typography-text-h5: var(--stl-ui-type-scale-text-xl);
239
+
240
+ --stl-ui-type-scale-text-xs: 12px;
241
+ --stl-ui-type-scale-text-sm: 14px;
242
+ --stl-ui-type-scale-text: 16px;
243
+ --stl-ui-type-scale-text-lg: 18px;
244
+ --stl-ui-type-scale-text-xl: 20px;
245
+ --stl-ui-type-scale-text-2xl: 24px;
246
+ --stl-ui-type-scale-text-3xl: 29px;
247
+ --stl-ui-type-scale-text-4xl: 35px;
248
+ --stl-ui-type-scale-text-5xl: 42px;
249
+ --stl-ui-type-scale-text-6xl: 64px;
250
+ }
251
+ }
252
+
253
+ /* Prose exists in its own sub-layer for easy reverting */
254
+ body {
255
+ font-family: var(--stl-ui-typography-font);
256
+ font-feature-settings:
257
+ 'ss01' on,
258
+ 'ss03' on,
259
+ 'ss04' on,
260
+ 'ss06' on,
261
+ 'ss08' on;
262
+ }
263
+
264
+ .stl-ui-prose {
265
+ :where(p):not(.stl-ui-not-prose *) {
266
+ color: var(--stl-ui-foreground-secondary);
267
+ font-weight: 400;
268
+ line-height: var(--stl-ui-typography-line-height);
269
+ letter-spacing: -0.01em;
270
+ font-size: var(--stl-ui-typography-text-body);
271
+ margin-top: 16px;
272
+ }
273
+
274
+ :where(p, li) {
275
+ &:not(.stl-ui-not-prose *) {
276
+ color: var(--stl-ui-foreground-secondary);
277
+ }
278
+ }
279
+
280
+ :where(strong):not(.stl-ui-not-prose *) {
281
+ color: var(--stl-ui-foreground);
282
+ }
283
+
284
+ :where(aside):not(.stl-ui-not-prose *) {
285
+ color: var(--stl-ui-foreground);
286
+ }
287
+
288
+ :is(h1, h2, h3, h4, h5, h6):not(.stl-ui-not-prose *) {
289
+ color: var(--stl-ui-foreground);
290
+ font-weight: 500;
291
+ line-height: var(--stl-ui-typography-line-height-headings);
292
+ }
293
+
294
+ h1:not(.stl-ui-not-prose *) {
295
+ /* Heading 1/Medium */
296
+ font-size: var(--stl-ui-typography-text-h1);
297
+ letter-spacing: -0.03em;
298
+
299
+ margin-top: 64px;
300
+ }
301
+
302
+ h2:not(.stl-ui-not-prose *) {
303
+ /* Heading 2/Medium */
304
+ font-size: var(--stl-ui-typography-text-h2);
305
+ letter-spacing: -0.03em;
306
+
307
+ margin-top: 48px;
308
+ }
309
+
310
+ h3:not(.stl-ui-not-prose *) {
311
+ /* Heading 3/Medium */
312
+ font-size: var(--stl-ui-typography-text-h3);
313
+ letter-spacing: -0.02em;
314
+ margin-top: 40px;
315
+ }
316
+
317
+ h4:not(.stl-ui-not-prose *) {
318
+ /* Heading 4/Medium */
319
+ font-size: var(--stl-ui-typography-text-h4);
320
+ letter-spacing: -0.02em;
321
+ margin-top: 32px;
322
+ }
323
+
324
+ h5:not(.stl-ui-not-prose *) {
325
+ /* Heading 5/Medium */
326
+ font-size: var(--stl-ui-typography-text-h5);
327
+ letter-spacing: -0.02em;
328
+ margin-top: 24px;
329
+ }
330
+
331
+ li:not(.stl-ui-not-prose *) {
332
+ &:not(:last-child) {
333
+ margin-bottom: 8px;
334
+ }
335
+
336
+ h1,
337
+ h2,
338
+ h3,
339
+ h4,
340
+ h5,
341
+ p,
342
+ a {
343
+ &:first-child {
344
+ display: inline;
345
+ }
346
+ }
347
+ }
348
+
349
+ :where(ol, ul) {
350
+ &:not(.stl-ui-not-prose *) {
351
+ padding-left: 26px;
352
+ }
353
+ }
354
+
355
+ :where(ol, ul, aside, img, figure, details) {
356
+ &:not(.stl-ui-not-prose *) {
357
+ margin-top: 16px;
358
+ }
359
+ }
360
+
361
+ :where(:not(pre) > code):not(.stl-ui-not-prose *) {
362
+ color: var(--stl-ui-foreground);
363
+ font-feature-settings:
364
+ 'ss01' on,
365
+ 'ss03' on,
366
+ 'ss04' on,
367
+ 'ss06' on;
368
+
369
+ /* Code/Regular */
370
+ font-family: var(--stl-ui-typography-font-mono);
371
+ font-size: 0.9em;
372
+ font-weight: inherit;
373
+
374
+ padding: 0 0.2em;
375
+ background-color: oklch(from var(--stl-ui-foreground) l c h / 0.1);
376
+ border-radius: 0.2em;
377
+ }
378
+ }
379
+
380
+ @layer stl-ui.tokens {
381
+ /* Layout - Stainless */
382
+ :root {
383
+ --stl-ui-layout-border-radius-xs: 4px;
384
+ --stl-ui-layout-border-radius-sml: 8px;
385
+ --stl-ui-layout-border-radius: 12px;
386
+ --stl-ui-layout-border-radius-med: 16px;
387
+ --stl-ui-layout-border-radius-max: 9999px;
388
+ --stl-ui-left-content-indent: 24px;
389
+
390
+ --stl-ui-page-padding-inline: 20px;
391
+ }
392
+ }
393
+
394
+ @layer stl-ui.tokens {
395
+ /* Swatches - Light */
396
+ :root {
397
+ --stl-ui-background: var(--stl-ui-swatch-gray-white);
398
+ --stl-ui-card-background: var(--stl-ui-swatch-gray-white);
399
+ --stl-ui-muted-background: var(--stl-ui-swatch-gray-gray-8);
400
+ --stl-ui-foreground: var(--stl-ui-swatch-gray-gray-1);
401
+ --stl-ui-foreground-secondary: var(--stl-ui-swatch-gray-gray-3);
402
+ --stl-ui-foreground-muted: var(--stl-ui-swatch-gray-gray-4);
403
+ --stl-ui-foreground-accent: var(--stl-ui-swatch-accent-base);
404
+ --stl-ui-border: var(--stl-ui-swatch-gray-gray-7);
405
+ --stl-ui-border-muted: var(--stl-ui-swatch-gray-gray-8);
406
+ --stl-ui-border-emphasis: var(--stl-ui-swatch-gray-gray-6);
407
+ --stl-ui-inverse-background: var(--stl-ui-swatch-gray-gray-1);
408
+ --stl-ui-inverse-foreground: var(--stl-ui-swatch-gray-white);
409
+ --stl-ui-accent-background: var(--stl-ui-swatch-accent-base);
410
+ --stl-ui-accent-foreground: var(--stl-ui-swatch-gray-white);
411
+ --stl-ui-accent-muted-background: var(--stl-ui-swatch-accent-faint);
412
+ --stl-ui-accent-muted-foreground: var(--stl-ui-swatch-accent-base);
413
+ --stl-ui-accent-border: var(--stl-ui-swatch-accent-muted);
414
+ --stl-ui-accent-border-muted: var(--stl-ui-swatch-accent-faint);
415
+ --stl-ui-accent-border-emphasis: var(--stl-ui-swatch-accent-base);
416
+ --stl-ui-overlay-background: #0000000d;
417
+ }
418
+
419
+ /* Swatches - Dark */
420
+ :root[data-theme='dark'] {
421
+ --stl-ui-background: var(--stl-ui-swatch-gray-black);
422
+ --stl-ui-card-background: var(--stl-ui-swatch-gray-gray-9);
423
+ --stl-ui-muted-background: var(--stl-ui-swatch-gray-gray-9);
424
+ --stl-ui-foreground: var(--stl-ui-swatch-gray-gray-1);
425
+ --stl-ui-foreground-secondary: var(--stl-ui-swatch-gray-gray-3);
426
+ --stl-ui-foreground-muted: var(--stl-ui-swatch-gray-gray-4);
427
+ --stl-ui-foreground-accent: var(--stl-ui-swatch-accent-base);
428
+ --stl-ui-border: var(--stl-ui-swatch-gray-gray-8);
429
+ --stl-ui-border-muted: var(--stl-ui-swatch-gray-gray-9);
430
+ --stl-ui-border-emphasis: var(--stl-ui-swatch-gray-gray-7);
431
+ --stl-ui-inverse-background: var(--stl-ui-swatch-gray-gray-1);
432
+ --stl-ui-inverse-foreground: var(--stl-ui-swatch-gray-black);
433
+ --stl-ui-accent-background: var(--stl-ui-swatch-accent-base);
434
+ --stl-ui-accent-foreground: var(--stl-ui-swatch-gray-white);
435
+ --stl-ui-accent-muted-background: var(--stl-ui-swatch-accent-faint);
436
+ --stl-ui-accent-muted-foreground: var(--stl-ui-swatch-accent-base);
437
+ --stl-ui-accent-border: var(--stl-ui-swatch-accent-muted);
438
+ --stl-ui-accent-border-muted: var(--stl-ui-swatch-accent-faint);
439
+ --stl-ui-accent-border-emphasis: var(--stl-ui-swatch-accent-base);
440
+ --stl-ui-overlay-background: #00000080;
441
+ }
442
+ }
443
+
444
+ :root {
445
+ /* Layout and Typography */
446
+ --sl-font: var(--stl-ui-typography-font);
447
+ --sl-font-mono: var(--stl-ui-typography-font-mono);
448
+ --sl-line-height: var(--stl-ui-typography-line-height);
449
+
450
+ /* Headings */
451
+ --sl-text-h1: var(--stl-ui-typography-text-h1);
452
+ --sl-text-h2: var(--stl-ui-typography-text-h2);
453
+ --sl-text-h3: var(--stl-ui-typography-text-h3);
454
+ --sl-text-h4: var(--stl-ui-typography-text-h4);
455
+ --sl-text-h5: var(--stl-ui-typography-text-h5);
456
+
457
+ /* Colors */
458
+ --sl-color-bg: var(--stl-ui-background);
459
+ --sl-color-bg-sidebar: var(--stl-ui-background);
460
+ --sl-color-bg-ui: var(--stl-ui-card-background);
461
+ --sl-color-bg-nav: var(--stl-ui-background);
462
+ --sl-color-bg-inline-code: var(--stl-ui-muted-background);
463
+ --sl-color-bg-accent: var(--stl-ui-accent-background);
464
+
465
+ --sl-color-text: var(--stl-ui-foreground);
466
+ --sl-color-text-secondary: var(--stl-ui-foreground-secondary);
467
+ --sl-color-text-tertiary: var(--stl-ui-foreground-muted);
468
+ --sl-color-text-accent: var(--stl-ui-foreground-accent);
469
+ --sl-color-hairline: var(--stl-ui-border);
470
+ --sl-color-hairline-light: var(--stl-ui-border-muted);
471
+ --sl-color-hairline-shade: var(--stl-ui-border-emphasis);
472
+ --sl-color-text-invert: var(--stl-ui-inverse-foreground);
473
+
474
+ /* Primary colors */
475
+ --sl-color-red-low: var(--stl-ui-swatch-red-faint);
476
+ --sl-color-red: var(--stl-ui-swatch-red-base);
477
+ --sl-color-red-high: var(--stl-ui-swatch-red-base);
478
+
479
+ --sl-color-green-low: var(--stl-ui-swatch-green-faint);
480
+ --sl-color-green: var(--stl-ui-swatch-green-base);
481
+ --sl-color-green-high: var(--stl-ui-swatch-green-base);
482
+
483
+ --sl-color-blue-low: var(--stl-ui-swatch-blue-faint);
484
+ --sl-color-blue: var(--stl-ui-swatch-blue-base);
485
+ --sl-color-blue-high: var(--stl-ui-swatch-blue-base);
486
+
487
+ --sl-color-orange-low: var(--stl-ui-swatch-orange-faint);
488
+ --sl-color-orange: var(--stl-ui-swatch-orange-base);
489
+ --sl-color-orange-high: var(--stl-ui-swatch-orange-base);
490
+
491
+ --sl-color-purple-low: var(--stl-ui-swatch-purple-faint);
492
+ --sl-color-purple: var(--stl-ui-swatch-purple-base);
493
+ --sl-color-purple-high: var(--stl-ui-swatch-purple-base);
494
+
495
+ --sl-color-teal-low: var(--stl-ui-swatch-teal-faint);
496
+ --sl-color-teal: var(--stl-ui-swatch-teal-base);
497
+ --sl-color-teal-high: var(--stl-ui-swatch-teal-base);
498
+
499
+ --sl-color-magenta-low: var(--stl-ui-swatch-pink-faint);
500
+ --sl-color-magenta: var(--stl-ui-swatch-pink-base);
501
+ --sl-color-magenta-high: var(--stl-ui-swatch-pink-base);
502
+
503
+ --sl-color-yellow-low: var(--stl-ui-swatch-yellow-faint);
504
+ --sl-color-yellow: var(--stl-ui-swatch-yellow-base);
505
+ --sl-color-yellow-high: var(--stl-ui-swatch-yellow-base);
506
+ }
507
+
508
+ /* Starlight Compatibility */
509
+ .stl-ui-prose {
510
+ /* TODO: Disable starlight headingLinks and replace with our own */
511
+ /* Duplicate styles from h1–5 in typography; TODO: move to mixins after adopting preprocessor */
512
+ .sl-heading-wrapper.level-h1 {
513
+ font-size: var(--stl-ui-typography-text-h1);
514
+ letter-spacing: -0.03em;
515
+ margin-top: 64px;
516
+ line-height: var(--stl-ui-typography-line-height-headings);
517
+ }
518
+ .sl-heading-wrapper.level-h2 {
519
+ font-size: var(--stl-ui-typography-text-h2);
520
+ letter-spacing: -0.03em;
521
+ margin-top: 48px;
522
+ line-height: var(--stl-ui-typography-line-height-headings);
523
+ }
524
+
525
+ .sl-heading-wrapper.level-h3 {
526
+ font-size: var(--stl-ui-typography-text-h3);
527
+ letter-spacing: -0.02em;
528
+ margin-top: 40px;
529
+ line-height: var(--stl-ui-typography-line-height-headings);
530
+ }
531
+ .sl-heading-wrapper.level-h4 {
532
+ font-size: var(--stl-ui-typography-text-h4);
533
+ letter-spacing: -0.02em;
534
+ margin-top: 32px;
535
+ line-height: var(--stl-ui-typography-line-height-headings);
536
+ }
537
+ .sl-heading-wrapper.level-h5 {
538
+ font-size: var(--stl-ui-typography-text-h5);
539
+ letter-spacing: -0.02em;
540
+ margin-top: 24px;
541
+ line-height: var(--stl-ui-typography-line-height-headings);
542
+ }
543
+ .sl-heading-wrapper {
544
+ --sl-anchor-icon-size: 0.8em;
545
+ }
546
+ /* TODO: replace with an icon that matches Stainless branding */
547
+ .sl-anchor-link svg {
548
+ margin-top: 0;
549
+ }
550
+ }
551
+
552
+ /* TODO: remove these */
553
+ .stl-ui-prose {
554
+ /* Tab component */
555
+ starlight-tabs {
556
+ a {
557
+ text-decoration: none;
558
+ line-height: unset;
559
+ color: var(--stl-ui-foreground);
560
+
561
+ &[aria-selected='true'] {
562
+ color: var(--stl-ui-foreground-accent);
563
+ font-weight: normal;
564
+ }
565
+ }
566
+
567
+ ol,
568
+ ul {
569
+ &:not(.stl-ui-not-prose *) {
570
+ padding-left: 0;
571
+ }
572
+ }
573
+
574
+ li:not(.stl-ui-not-prose *) {
575
+ margin-bottom: -2px;
576
+ &:not(:last-child) {
577
+ margin-bottom: -2px;
578
+ }
579
+
580
+ a:first-child {
581
+ display: flex;
582
+ }
583
+ }
584
+ }
585
+
586
+ /* Pagination Links */
587
+
588
+ .pagination-links {
589
+ a {
590
+ color: var(--stl-ui-foreground);
591
+ }
592
+ }
593
+
594
+ .starlight-aside {
595
+ svg {
596
+ margin-top: 0;
597
+ }
598
+ }
599
+ }
600
+
601
+ .stl-ui-button {
602
+ --stl-ui-button-color: var(--stl-ui-inverse-foreground);
603
+ --stl-ui-button-background-color: var(--stl-ui-inverse-background);
604
+ --stl-ui-button-background-color-hover: color-mix(
605
+ in oklch,
606
+ var(--stl-ui-inverse-background) 90%,
607
+ var(--stl-ui-background)
608
+ );
609
+
610
+ --stl-ui-button-border-color: transparent;
611
+ --stl-ui-button-border-color-hover: transparent;
612
+
613
+ --stl-ui-button-height: 32px;
614
+ --stl-ui-button-padding: 8px 10px;
615
+ --stl-ui-button-border-radius: var(--stl-ui-layout-border-radius-sml);
616
+ --stl-ui-button-line-height: 150%;
617
+ --stl-ui-button-font-weight: 500;
618
+ --stl-ui-button-font-size: var(--stl-ui-type-scale-text-sm);
619
+ --stl-ui-button-font-family: var(--stl-ui-typography-font);
620
+
621
+ cursor: pointer;
622
+ display: inline-flex;
623
+ align-items: center;
624
+ justify-content: center;
625
+ gap: 2px;
626
+ white-space: nowrap;
627
+ flex-shrink: 0;
628
+
629
+ height: var(--stl-ui-button-height);
630
+ padding: var(--stl-ui-button-padding);
631
+ border-radius: var(--stl-ui-button-border-radius);
632
+ line-height: var(--stl-ui-button-line-height);
633
+ font-weight: var(--stl-ui-button-font-weight);
634
+ font-size: var(--stl-ui-button-font-size);
635
+
636
+ border: 1px solid var(--stl-ui-button-border-color);
637
+ font-family: var(--stl-ui-button-font-family);
638
+
639
+ color: var(--stl-ui-button-color);
640
+ background-color: var(--stl-ui-button-background-color);
641
+
642
+ &:hover {
643
+ background-color: var(--stl-ui-button-background-color-hover);
644
+ border-color: var(--stl-ui-button-border-color-hover);
645
+ }
646
+ }
647
+
648
+ /* --- COLOR VARIANTS --- */
649
+ .stl-ui-button--accent {
650
+ --stl-ui-button-color: var(--stl-ui-accent-foreground);
651
+ --stl-ui-button-background-color: var(--stl-ui-accent-background);
652
+ --stl-ui-button-background-color-hover: color-mix(
653
+ in oklch,
654
+ var(--stl-ui-accent-background) 90%,
655
+ var(--stl-ui-inverse-foreground)
656
+ );
657
+ }
658
+
659
+ .stl-ui-button--accent-muted {
660
+ --stl-ui-button-color: var(--stl-ui-accent-muted-foreground);
661
+ --stl-ui-button-background-color: var(--stl-ui-accent-muted-background);
662
+ --stl-ui-button-background-color-hover: color-mix(
663
+ in oklch,
664
+ var(--stl-ui-accent-background) 10%,
665
+ var(--stl-ui-inverse-foreground)
666
+ );
667
+ }
668
+
669
+ .stl-ui-button--muted {
670
+ --stl-ui-button-color: var(--stl-ui-foreground);
671
+ --stl-ui-button-background-color: var(--stl-ui-muted-background);
672
+ --stl-ui-button-background-color-hover: color-mix(
673
+ in oklch,
674
+ var(--stl-ui-foreground) 10%,
675
+ var(--stl-ui-inverse-foreground)
676
+ );
677
+ }
678
+
679
+ .stl-ui-button--outline {
680
+ --stl-ui-button-color: var(--stl-ui-foreground);
681
+ --stl-ui-button-background-color: var(--stl-ui-card-background);
682
+ --stl-ui-button-background-color-hover: color-mix(
683
+ in oklch,
684
+ var(--stl-ui-foreground) 5%,
685
+ var(--stl-ui-inverse-foreground)
686
+ );
687
+ --stl-ui-button-border-color: var(--stl-ui-border);
688
+ --stl-ui-button-border-color-hover: var(--stl-ui-border-emphasis);
689
+ }
690
+
691
+ .stl-ui-button--ghost {
692
+ --stl-ui-button-color: var(--stl-ui-foreground);
693
+ --stl-ui-button-background-color: transparent;
694
+ --stl-ui-button-background-color-hover: color-mix(
695
+ in oklch,
696
+ var(--stl-ui-foreground) 5%,
697
+ var(--stl-ui-inverse-foreground)
698
+ );
699
+ }
700
+
701
+ .stl-ui-button--success {
702
+ --stl-ui-button-color: var(--stl-ui-swatch-gray-white);
703
+ --stl-ui-button-background-color: var(--stl-ui-swatch-green-base);
704
+ --stl-ui-button-background-color-hover: color-mix(
705
+ in oklch,
706
+ var(--stl-ui-swatch-green-base) 90%,
707
+ var(--stl-ui-inverse-foreground)
708
+ );
709
+ }
710
+
711
+ .stl-ui-button--destructive {
712
+ --stl-ui-button-color: var(--stl-ui-swatch-gray-white);
713
+ --stl-ui-button-background-color: var(--stl-ui-swatch-red-base);
714
+ --stl-ui-button-background-color-hover: color-mix(
715
+ in oklch,
716
+ var(--stl-ui-swatch-red-base) 90%,
717
+ var(--stl-ui-inverse-foreground)
718
+ );
719
+ }
720
+
721
+ /* --- SIZE VARIANTS --- */
722
+ .stl-ui-button--size-sm {
723
+ --stl-ui-button-height: 24px;
724
+ --stl-ui-button-padding: 0 6px;
725
+ --stl-ui-button-border-radius: var(--stl-ui-layout-border-radius-xs);
726
+ --stl-ui-button-line-height: 100%;
727
+ --stl-ui-button-font-weight: 500;
728
+ --stl-ui-button-font-size: var(--stl-ui-typography-text-body-xs);
729
+ }
730
+
731
+ .stl-ui-button--size-lg {
732
+ --stl-ui-button-height: 40px;
733
+ --stl-ui-button-padding: 8px 14px;
734
+ --stl-ui-button-border-radius: var(--stl-ui-layout-border-radius);
735
+ --stl-ui-button-line-height: 150%;
736
+ --stl-ui-button-font-weight: 500;
737
+ --stl-ui-button-font-size: var(--stl-ui-typography-text-body);
738
+ }
739
+
740
+ /* --- ICONS --- */
741
+ .stl-ui-button__icon {
742
+ flex-shrink: 0;
743
+ display: flex;
744
+ align-items: center;
745
+ justify-content: center;
746
+
747
+ svg {
748
+ margin-top: 0;
749
+ }
750
+ }
751
+
752
+ /* Left Icon */
753
+ .stl-ui-button:has(.stl-ui-button__icon:first-child) .stl-ui-button__icon {
754
+ margin-left: -4px;
755
+ margin-right: 4px;
756
+ }
757
+
758
+ .stl-ui-button:has(.stl-ui-button__icon:last-child) .stl-ui-button__icon {
759
+ /* Right Icon */
760
+ margin-right: -4px;
761
+ margin-left: 4px;
762
+
763
+ /* Right & Left Icon */
764
+ &:first-child {
765
+ margin-left: -4px;
766
+ margin-right: 4px;
767
+ }
768
+ }
769
+
770
+ /* Only Icon */
771
+ .stl-ui-button:not(:has(.stl-ui-button-label)):has(.stl-ui-button__icon:last-child):has(
772
+ .stl-ui-button__icon:first-child
773
+ ) {
774
+ width: var(--stl-ui-button-height);
775
+
776
+ .stl-ui-button__icon {
777
+ margin-left: -4px;
778
+ margin-right: -4px;
779
+ }
780
+ }
781
+
782
+ /* --- LINKS --- */
783
+
784
+ a.stl-ui-button {
785
+ text-decoration: none;
786
+ text-align: center;
787
+ }
788
+
789
+ .stl-ui-dropdown-button {
790
+ --stl-ui-dropdown-button-color: var(--stl-ui-foreground);
791
+ --stl-ui-dropdown-button-background-color: var(--stl-ui-card-background);
792
+ --stl-ui-dropdown-button-border-color: var(--stl-ui-border);
793
+ --stl-ui-dropdown-button-border-radius: var(--stl-ui-layout-border-radius-sml);
794
+ --stl-ui-dropdown-button-font-size: var(--stl-ui-type-scale-text-sm);
795
+
796
+ --stl-ui-dropdown-button-height: 32px;
797
+ --stl-ui-dropdown-button-padding: 8px 10px;
798
+ --stl-ui-dropdown-button-line-height: 100%;
799
+ --stl-ui-dropdown-button-font-weight: 500;
800
+
801
+ position: relative;
802
+ display: inline-flex;
803
+ align-items: center;
804
+
805
+ background-color: var(--stl-ui-dropdown-button-background-color);
806
+ border: 1px solid var(--stl-ui-dropdown-button-border-color);
807
+ border-radius: var(--stl-ui-dropdown-button-border-radius);
808
+ color: var(--stl-ui-dropdown-button-color);
809
+ gap: 0;
810
+ font-size: var(--stl-ui-dropdown-button-font-size);
811
+
812
+ .stl-ui-dropdown-button__button {
813
+ border: none;
814
+ background: none;
815
+ height: var(--stl-ui-dropdown-button-height);
816
+ padding: var(--stl-ui-dropdown-button-padding);
817
+ line-height: var(--stl-ui-dropdown-button-line-height);
818
+ font-weight: var(--stl-ui-dropdown-button-font-weight);
819
+ cursor: pointer;
820
+ display: flex;
821
+ align-items: center;
822
+ justify-content: center;
823
+
824
+ &:hover {
825
+ background-color: oklch(from var(--stl-ui-foreground) l c h / 0.05);
826
+ border-color: var(--stl-ui-border-emphasis);
827
+ }
828
+ }
829
+
830
+ .stl-ui-dropdown-button--action {
831
+ display: flex;
832
+ align-items: center;
833
+ gap: 8px;
834
+
835
+ &:hover {
836
+ background-color: oklch(from var(--stl-ui-foreground) l c h / 0.05);
837
+ border-color: var(--stl-ui-border-emphasis);
838
+ }
839
+
840
+ &.disabled {
841
+ cursor: not-allowed;
842
+ background-color: oklch(from var(--stl-ui-foreground) l c h / 0.05);
843
+ }
844
+ }
845
+
846
+ .stl-ui-dropdown-button__trigger {
847
+ border-left: 1px solid var(--stl-ui-border);
848
+ border-radius: 0;
849
+
850
+ &:hover {
851
+ background-color: oklch(from var(--stl-ui-foreground) l c h / 0.05);
852
+ border-color: var(--stl-ui-border-emphasis);
853
+ }
854
+ }
855
+
856
+ .stl-ui-dropdown-button__menu {
857
+ --stl-ui-dropdown-button__menu-background-color: var(--stl-ui-card-background);
858
+ --stl-ui-dropdown-button__menu-border-color: var(--stl-ui-border);
859
+ --stl-ui-dropdown-button__menu-box-shadow: var(--stl-ui-shadow-md);
860
+ --stl-ui-dropdown-button__menu-border-radius: var(--stl-ui-layout-border-radius-sml);
861
+
862
+ background-color: var(--stl-ui-dropdown-button__menu-background-color);
863
+ border: 1px solid var(--stl-ui-dropdown-button__menu-border-color);
864
+ box-shadow: var(--stl-ui-dropdown-button__menu-box-shadow);
865
+ border-radius: var(--stl-ui-dropdown-button__menu-border-radius);
866
+
867
+ position: absolute;
868
+ top: 100%;
869
+ right: 0;
870
+ margin-top: 4px;
871
+ z-index: 1000;
872
+ min-width: 100%;
873
+ padding: 4px;
874
+ display: none;
875
+
876
+ &[data-state='open'] {
877
+ display: block;
878
+ }
879
+ }
880
+
881
+ .stl-ui-dropdown-button__menu-item {
882
+ --stl-ui-dropdown-button__menu-item-border-radius: var(--stl-ui-dropdown-button-border-radius);
883
+ --stl-ui-dropdown-button__menu-item-height: var(--stl-ui-dropdown-button-height);
884
+ --stl-ui-dropdown-button__menu-item-line-height: var(--stl-ui-dropdown-button-line-height);
885
+ --stl-ui-dropdown-button__menu-item-hover-background-color: oklch(
886
+ from var(--stl-ui-foreground) l c h / 0.05
887
+ );
888
+
889
+ border-radius: var(--stl-ui-dropdown-button__menu-item-border-radius);
890
+ height: var(--stl-ui-dropdown-button__menu-item-height);
891
+ line-height: var(--stl-ui-dropdown-button__menu-item-line-height);
892
+
893
+ padding: 8px;
894
+ cursor: pointer;
895
+ display: flex;
896
+ align-items: center;
897
+ justify-content: space-between;
898
+ gap: 16px;
899
+
900
+ &:hover {
901
+ background-color: var(--stl-ui-dropdown-button__menu-item-hover-background-color);
902
+ }
903
+
904
+ .stl-ui-dropdown-button__menu-item-content {
905
+ display: flex;
906
+ align-items: center;
907
+ gap: 8px;
908
+ }
909
+
910
+ .stl-ui-dropdown-button__menu-item-text {
911
+ white-space: nowrap;
912
+ }
913
+
914
+ .stl-ui-dropdown-button__menu-item-text--subtle {
915
+ color: var(--stl-ui-foreground-muted);
916
+ }
917
+
918
+ strong {
919
+ color: var(--stl-ui-foreground);
920
+ font-weight: 500;
921
+ }
922
+
923
+ .stl-ui-dropdown-button__menu-item-icon {
924
+ display: flex;
925
+ align-items: center;
926
+ justify-content: center;
927
+ }
928
+
929
+ .stl-ui-dropdown-button__menu-item-external-link-icon {
930
+ --stl-ui-dropdown-button__menu-item-external-link-icon-color: oklch(
931
+ from var(--stl-ui-foreground) l c h / 0.25
932
+ );
933
+
934
+ svg {
935
+ color: var(--stl-ui-dropdown-button__menu-item-external-link-icon-color);
936
+ }
937
+ }
938
+ }
939
+
940
+ hr {
941
+ --stl-ui-dropdown-button__divider-height: 1px;
942
+ --stl-ui-dropdown-button__divider-color: var(--stl-ui-border);
943
+
944
+ height: var(--stl-ui-dropdown-button__divider-height);
945
+ background-color: var(--stl-ui-dropdown-button__divider-color);
946
+ border: none;
947
+
948
+ margin: 4px 0;
949
+ width: calc(100% + 8px);
950
+ transform: translateX(-4px);
951
+ }
952
+ }
953
+
954
+ .stl-ui-callout {
955
+ --stl-ui-callout-background-color: var(--stl-ui-muted-background);
956
+ --stl-ui-callout-border-color: var(--stl-ui-border);
957
+ --stl-ui-callout-accent-color: var(--stl-ui-foreground-muted);
958
+
959
+ border: 1px solid var(--stl-ui-callout-border-color);
960
+ background-color: var(--stl-ui-callout-background-color);
961
+ border-radius: var(--stl-ui-layout-border-radius);
962
+ padding: 12px;
963
+ line-height: var(--stl-ui-typography-line-height);
964
+ font-weight: 400;
965
+ font-size: var(--stl-ui-typography-text-body);
966
+
967
+ display: flex;
968
+ align-items: flex-start;
969
+ gap: 8px;
970
+ }
971
+
972
+ .stl-ui-callout--info {
973
+ --stl-ui-callout-background-color: var(--stl-ui-muted-background);
974
+ --stl-ui-callout-border-color: var(--stl-ui-border);
975
+ --stl-ui-callout-accent-color: var(--stl-ui-foreground-muted);
976
+ }
977
+
978
+ .stl-ui-callout--note {
979
+ --stl-ui-callout-background-color: var(--stl-ui-swatch-blue-faint);
980
+ --stl-ui-callout-border-color: var(--stl-ui-swatch-blue-muted);
981
+ --stl-ui-callout-accent-color: var(--stl-ui-swatch-blue-base);
982
+ }
983
+
984
+ .stl-ui-callout--tip {
985
+ --stl-ui-callout-background-color: var(--stl-ui-swatch-purple-faint);
986
+ --stl-ui-callout-border-color: var(--stl-ui-swatch-purple-muted);
987
+ --stl-ui-callout-accent-color: var(--stl-ui-swatch-purple-base);
988
+ }
989
+
990
+ .stl-ui-callout--success {
991
+ --stl-ui-callout-background-color: var(--stl-ui-swatch-green-faint);
992
+ --stl-ui-callout-border-color: var(--stl-ui-swatch-green-muted);
993
+ --stl-ui-callout-accent-color: var(--stl-ui-swatch-green-base);
994
+ }
995
+
996
+ .stl-ui-callout--warning {
997
+ --stl-ui-callout-background-color: var(--stl-ui-swatch-yellow-faint);
998
+ --stl-ui-callout-border-color: var(--stl-ui-swatch-yellow-muted);
999
+ --stl-ui-callout-accent-color: var(--stl-ui-swatch-yellow-base);
1000
+ }
1001
+
1002
+ .stl-ui-callout--danger {
1003
+ --stl-ui-callout-background-color: var(--stl-ui-swatch-red-faint);
1004
+ --stl-ui-callout-border-color: var(--stl-ui-swatch-red-muted);
1005
+ --stl-ui-callout-accent-color: var(--stl-ui-swatch-red-base);
1006
+ }
1007
+
1008
+ .stl-ui-callout__icon {
1009
+ color: var(--stl-ui-callout-accent-color);
1010
+ flex-shrink: 0;
1011
+ width: 1em;
1012
+ height: 1em;
1013
+ margin: calc((1lh - 1em) / 2);
1014
+ }
1015
+
1016
+ .stl-ui-callout__content {
1017
+ flex: 1;
1018
+ margin-top: 0;
1019
+
1020
+ & > :first-child {
1021
+ margin-top: 0;
1022
+ }
1023
+ }
1024
+
1025
+ /* revert starlight details styles */
1026
+ @layer starlight.content {
1027
+ /* artificially increase specificity to outcompete selectors in the same layer whose styles we want to revert */
1028
+ .stl-ui-prose .sl-markdown-content.sl-markdown-content.sl-markdown-content {
1029
+ details,
1030
+ summary,
1031
+ summary::before,
1032
+ summary::marker {
1033
+ all: revert-layer;
1034
+ }
1035
+ }
1036
+ }
1037
+
1038
+ .stl-ui-accordion {
1039
+ --stl-ui-accordion-padding: 12px;
1040
+ --stl-ui-accordion-content-padding-bottom: 4px;
1041
+ --stl-ui-accordion-marker-size: 1em;
1042
+ --stl-ui-accordion-marker-margin: calc((1lh - var(--stl-ui-accordion-marker-size)) / 2);
1043
+ --stl-ui-accordion-row-gap: 8px;
1044
+ --stl-ui-accordion-summary-column-gap: 8px;
1045
+ --stl-ui-accordion-border-radius: var(--stl-ui-layout-border-radius);
1046
+ --stl-ui-accordion-hover-film-color: oklch(from var(--stl-ui-foreground) l c h / 0.03);
1047
+ /* left inset to make content line up with summary content (after chevron) */
1048
+ --stl-ui--internal--accordion-padding-start: calc(
1049
+ var(--stl-ui-accordion-padding) + var(--stl-ui-accordion-marker-size) +
1050
+ var(--stl-ui-accordion-marker-margin) * 2 + var(--stl-ui-accordion-summary-column-gap)
1051
+ );
1052
+
1053
+ background-color: var(--stl-ui-card-background);
1054
+ border: 1px solid var(--stl-ui-border);
1055
+ border-radius: var(--stl-ui-accordion-border-radius);
1056
+ font-size: var(--stl-ui-typography-text-body);
1057
+
1058
+ padding: var(--stl-ui-accordion-padding);
1059
+ /* indent content to line up with left edge of summary content */
1060
+ padding-inline-start: var(--stl-ui--internal--accordion-padding-start);
1061
+
1062
+ & > .stl-ui-accordion__summary {
1063
+ display: block;
1064
+ list-style: none;
1065
+
1066
+ /* summary extends to the edges of the element in order to increase click target */
1067
+ padding: var(--stl-ui-accordion-padding);
1068
+ padding-inline-start: var(--stl-ui--internal--accordion-padding-start);
1069
+ margin: calc(-1 * var(--stl-ui-accordion-padding));
1070
+ margin-inline-start: calc(-1 * var(--stl-ui--internal--accordion-padding-start));
1071
+
1072
+ cursor: pointer;
1073
+ font-weight: 500;
1074
+
1075
+ border-radius: var(--stl-ui-accordion-border-radius);
1076
+
1077
+ &::before {
1078
+ content: '';
1079
+ width: var(--stl-ui-accordion-marker-size);
1080
+ height: var(--stl-ui-accordion-marker-size);
1081
+ margin: var(--stl-ui-accordion-marker-margin);
1082
+ background-color: currentColor;
1083
+ display: block;
1084
+ position: absolute;
1085
+ --stl-ui-accordion--internal--marker-width: calc(
1086
+ var(--stl-ui-accordion-marker-size) + var(--stl-ui-accordion-marker-margin) * 2
1087
+ );
1088
+ --stl-ui-accordion--internal--summary-marker-transform: translateX(
1089
+ calc(
1090
+ -1 * var(--stl-ui-accordion--internal--marker-width) - var(--stl-ui-accordion-summary-column-gap)
1091
+ )
1092
+ );
1093
+ transform: var(--stl-ui-accordion--internal--summary-marker-transform);
1094
+
1095
+ --lucide-chevron-right: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWNoZXZyb24tcmlnaHQtaWNvbiBsdWNpZGUtY2hldnJvbi1yaWdodCI+PHBhdGggZD0ibTkgMTggNi02LTYtNiIvPjwvc3ZnPg==');
1096
+ mask-image: var(--lucide-chevron-right);
1097
+ mask-size: contain;
1098
+ mask-repeat: no-repeat;
1099
+
1100
+ transition: transform 0.1s ease-out;
1101
+ }
1102
+
1103
+ & > :first-child {
1104
+ margin-top: 0;
1105
+ }
1106
+ }
1107
+
1108
+ &[open] {
1109
+ border-color: var(--stl-ui-border-emphasis);
1110
+ padding-bottom: calc(var(--stl-ui-accordion-padding) + var(--stl-ui-accordion-content-padding-bottom));
1111
+
1112
+ & > .stl-ui-accordion__summary {
1113
+ /* padding-bottom shouldn’t extend beyond the row gap while open, i.e. we shouldn’t be negative-margin-placing content overlapping summary */
1114
+ --stl-ui--internal--summary-padding-bottom: min(
1115
+ var(--stl-ui-accordion-padding),
1116
+ var(--stl-ui-accordion-row-gap)
1117
+ );
1118
+ padding-bottom: var(--stl-ui--internal--summary-padding-bottom);
1119
+ margin-bottom: calc(var(--stl-ui-accordion-row-gap) - var(--stl-ui--internal--summary-padding-bottom));
1120
+ border-bottom-left-radius: 0;
1121
+ border-bottom-right-radius: 0;
1122
+
1123
+ &::before {
1124
+ transform: var(--stl-ui-accordion--internal--summary-marker-transform) rotate(90deg);
1125
+ }
1126
+ }
1127
+ }
1128
+
1129
+ &:has(> .stl-ui-accordion__summary:hover) {
1130
+ background-image: linear-gradient(
1131
+ to bottom,
1132
+ var(--stl-ui-accordion-hover-film-color),
1133
+ var(--stl-ui-accordion-hover-film-color)
1134
+ );
1135
+ border-color: var(--stl-ui-border-emphasis);
1136
+ }
1137
+
1138
+ & > .stl-ui-accordion__summary + * {
1139
+ margin-top: 0;
1140
+ }
1141
+ }
1142
+
1143
+ .stl-ui-accordion-group {
1144
+ & > .stl-ui-accordion:has(+ .stl-ui-accordion) {
1145
+ border-bottom-left-radius: 0;
1146
+ border-bottom-right-radius: 0;
1147
+ & > .stl-ui-accordion__summary {
1148
+ border-bottom-left-radius: 0;
1149
+ border-bottom-right-radius: 0;
1150
+ }
1151
+ }
1152
+
1153
+ & > .stl-ui-accordion + .stl-ui-accordion {
1154
+ margin-top: 0;
1155
+ border-top-width: 0;
1156
+ border-top-left-radius: 0;
1157
+ border-top-right-radius: 0;
1158
+
1159
+ & > .stl-ui-accordion__summary {
1160
+ border-top-left-radius: 0;
1161
+ border-top-right-radius: 0;
1162
+ }
1163
+ }
1164
+
1165
+ .stl-ui-accordion:not(:is([open], :hover)) + .stl-ui-accordion:is([open], :hover) {
1166
+ border-top-width: 1px;
1167
+ margin-top: -1px;
1168
+ }
1169
+ }
1170
+
1171
+
1172
+