@stainless-api/ui-primitives 0.1.0-beta.25 → 0.1.0-beta.27

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,258 +1,46 @@
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
1
  /* Typography - Stainless */
220
2
  @layer stl-ui.tokens {
221
3
  :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;
4
+ --stl-typography-font: 'Geist', system-ui, sans-serif;
5
+ --stl-typography-font-mono: 'Geist Mono', ui-monospace, monospace;
6
+ --stl-typography-line-height: 1.5;
7
+ --stl-typography-line-height-headings: 1.2;
8
+
9
+ --stl-typography-text-body: var(--stl-typography-scale-base);
10
+ --stl-typography-text-body-sm: var(--stl-typography-scale-sm);
11
+ --stl-typography-text-body-xs: var(--stl-typography-scale-xs);
12
+
13
+ --stl-typography-text-code: max(0.875em, var(--stl-typography-scale-sm));
14
+
15
+ --stl-typography-text-h1: var(--stl-typography-scale-5xl);
16
+ --stl-typography-text-h2: var(--stl-typography-scale-4xl);
17
+ --stl-typography-text-h3: var(--stl-typography-scale-3xl);
18
+ --stl-typography-text-h4: var(--stl-typography-scale-2xl);
19
+ --stl-typography-text-h5: var(--stl-typography-scale-xl);
20
+
21
+ --stl-typography-scale-xs: 12px;
22
+ --stl-typography-scale-sm: 14px;
23
+ --stl-typography-scale-base: 16px;
24
+ --stl-typography-scale-lg: 18px;
25
+ --stl-typography-scale-xl: 20px;
26
+ --stl-typography-scale-2xl: 24px;
27
+ --stl-typography-scale-3xl: 29px;
28
+ --stl-typography-scale-4xl: 35px;
29
+ --stl-typography-scale-5xl: 42px;
30
+ --stl-typography-scale-6xl: 64px;
31
+
32
+ --stl-typography-selection-base: var(--stl-color-accent-background);
33
+ --stl-typography-selection-foreground: /* unset by default; text colors are unchanged */;
34
+ --stl-typography-selection-background: light-dark(
35
+ rgb(from var(--stl-typography-selection-base) r g b / calc(alpha * 0.2)),
36
+ rgb(from var(--stl-typography-selection-base) r g b / calc(alpha * 0.35))
37
+ );
250
38
  }
251
39
  }
252
40
 
253
41
  /* Prose exists in its own sub-layer for easy reverting */
254
42
  body {
255
- font-family: var(--stl-ui-typography-font);
43
+ font-family: var(--stl-typography-font);
256
44
  font-feature-settings:
257
45
  'ss01' on,
258
46
  'ss03' on,
@@ -264,9 +52,9 @@ body {
264
52
  .stl-ui-prose {
265
53
  letter-spacing: -0.01em;
266
54
  font-weight: 400;
267
- line-height: var(--stl-ui-typography-line-height);
268
- font-size: var(--stl-ui-typography-text-body);
269
- color: var(--stl-ui-foreground-secondary);
55
+ line-height: var(--stl-typography-line-height);
56
+ font-size: var(--stl-typography-text-body);
57
+ color: var(--stl-color-foreground-reduced);
270
58
 
271
59
  :where(.stl-ui-not-prose) {
272
60
  letter-spacing: initial;
@@ -281,50 +69,55 @@ body {
281
69
  }
282
70
 
283
71
  :where(strong:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose strong) {
284
- color: var(--stl-ui-foreground);
72
+ color: var(--stl-color-foreground);
285
73
  }
286
74
 
287
- :where(aside:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose aside) {
288
- color: var(--stl-ui-foreground);
75
+ :where(a:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose a) {
76
+ color: var(--stl-color-foreground-accent);
77
+ text-decoration-color: rgb(from currentColor r g b / calc(alpha * var(--stl-opacity-level-040)));
78
+ transition: text-decoration-color 0.1s ease-out;
79
+ &:hover {
80
+ text-decoration-color: currentColor;
81
+ }
289
82
  }
290
83
 
291
84
  :where(h1, h2, h3, h4, h5, h6):where(:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose *) {
292
- color: var(--stl-ui-foreground);
85
+ color: var(--stl-color-foreground);
293
86
  font-weight: 500;
294
- line-height: var(--stl-ui-typography-line-height-headings);
87
+ line-height: var(--stl-typography-line-height-headings);
295
88
  }
296
89
 
297
90
  :where(h1:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose h1) {
298
91
  /* Heading 1/Medium */
299
- font-size: var(--stl-ui-typography-text-h1);
92
+ font-size: var(--stl-typography-text-h1);
300
93
  letter-spacing: -0.03em;
301
94
  margin-top: 64px;
302
95
  }
303
96
 
304
97
  :where(h2:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose h2) {
305
98
  /* Heading 2/Medium */
306
- font-size: var(--stl-ui-typography-text-h2);
99
+ font-size: var(--stl-typography-text-h2);
307
100
  letter-spacing: -0.03em;
308
101
  margin-top: 48px;
309
102
  }
310
103
 
311
104
  :where(h3:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose h3) {
312
105
  /* Heading 3/Medium */
313
- font-size: var(--stl-ui-typography-text-h3);
106
+ font-size: var(--stl-typography-text-h3);
314
107
  letter-spacing: -0.02em;
315
108
  margin-top: 40px;
316
109
  }
317
110
 
318
111
  :where(h4:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose h4) {
319
112
  /* Heading 4/Medium */
320
- font-size: var(--stl-ui-typography-text-h4);
113
+ font-size: var(--stl-typography-text-h4);
321
114
  letter-spacing: -0.02em;
322
115
  margin-top: 32px;
323
116
  }
324
117
 
325
118
  :where(h5:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose h5) {
326
119
  /* Heading 5/Medium */
327
- font-size: var(--stl-ui-typography-text-h5);
120
+ font-size: var(--stl-typography-text-h5);
328
121
  letter-spacing: -0.02em;
329
122
  margin-top: 24px;
330
123
  }
@@ -333,19 +126,18 @@ body {
333
126
  &:where(:not(:last-child)) {
334
127
  margin-bottom: 8px;
335
128
  }
129
+ }
336
130
 
337
- /* TODO: do we want this */
338
- h1,
339
- h2,
340
- h3,
341
- h4,
342
- h5,
343
- p,
344
- a {
345
- &:first-child {
346
- display: inline;
347
- }
348
- }
131
+ :where(
132
+ pre:not(.stl-ui-not-prose *, .expressive-code *),
133
+ .stl-ui-not-prose .stl-ui-prose pre:not(.expressive-code *)
134
+ ) {
135
+ padding: 12px 20px;
136
+ border-radius: var(--stl-ui-layout-border-radius-sml);
137
+ border: 1px solid var(--stl-ui-border);
138
+ background-color: var(--stl-ui-muted-background);
139
+ overflow: scroll;
140
+ margin-bottom: 1rem;
349
141
  }
350
142
 
351
143
  :where(ol, ul) {
@@ -361,25 +153,48 @@ body {
361
153
  margin-top: 16px;
362
154
  }
363
155
 
364
- :where(:not(pre) > code):where(:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose *) {
365
- color: var(--stl-ui-foreground);
156
+ /* all code (inline + block) */
157
+ :where(code):where(:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose *) {
158
+ font-family: var(--stl-typography-font-mono);
366
159
  font-feature-settings:
367
160
  'ss01' on,
368
161
  'ss03' on,
369
162
  'ss04' on,
370
163
  'ss06' on;
371
164
 
372
- /* Code/Regular */
373
- font-family: var(--stl-ui-typography-font-mono);
374
- font-size: 0.9em;
165
+ font-size: var(--stl-typography-text-code);
375
166
  font-weight: inherit;
167
+ letter-spacing: normal;
168
+
169
+ /* inline code */
170
+ &:where(:not(pre > &)) {
171
+ color: var(--stl-color-foreground);
172
+ padding: 0 0.2em;
173
+ background-color: rgb(from var(--stl-color-foreground) r g b / 0.1);
174
+ border-radius: 0.2em;
175
+ }
176
+
177
+ /* code blocks */
178
+ &:where(pre > &) {
179
+ font-size: var(--stl-typography-text-body-sm);
180
+ }
181
+ }
182
+ }
376
183
 
377
- padding: 0 0.2em;
378
- background-color: oklch(from var(--stl-ui-foreground) l c h / 0.1);
379
- border-radius: 0.2em;
184
+ @layer starlight.content {
185
+ .stl-ui-prose .sl-markdown-content {
186
+ a,
187
+ a:hover {
188
+ color: revert-layer;
189
+ }
380
190
  }
381
191
  }
382
192
 
193
+ ::selection {
194
+ background-color: var(--stl-typography-selection-background);
195
+ color: var(--stl-typography-selection-foreground);
196
+ }
197
+
383
198
  @layer stl-ui.tokens {
384
199
  /* Layout - Stainless */
385
200
  :root {
@@ -395,261 +210,168 @@ body {
395
210
  }
396
211
 
397
212
  @layer stl-ui.tokens {
398
- /* Swatches - Light */
399
213
  :root {
400
- --stl-ui-background: var(--stl-ui-swatch-gray-white);
401
- --stl-ui-card-background: var(--stl-ui-swatch-gray-white);
402
- --stl-ui-muted-background: var(--stl-ui-swatch-gray-gray-8);
403
- --stl-ui-foreground: var(--stl-ui-swatch-gray-gray-1);
404
- --stl-ui-foreground-secondary: var(--stl-ui-swatch-gray-gray-3);
405
- --stl-ui-foreground-muted: var(--stl-ui-swatch-gray-gray-4);
406
- --stl-ui-foreground-accent: var(--stl-ui-swatch-accent-base);
407
- --stl-ui-border: var(--stl-ui-swatch-gray-gray-7);
408
- --stl-ui-border-muted: var(--stl-ui-swatch-gray-gray-8);
409
- --stl-ui-border-emphasis: var(--stl-ui-swatch-gray-gray-6);
410
- --stl-ui-inverse-background: var(--stl-ui-swatch-gray-gray-1);
411
- --stl-ui-inverse-foreground: var(--stl-ui-swatch-gray-white);
412
- --stl-ui-accent-background: var(--stl-ui-swatch-accent-base);
413
- --stl-ui-accent-foreground: var(--stl-ui-swatch-gray-white);
414
- --stl-ui-accent-muted-background: var(--stl-ui-swatch-accent-faint);
415
- --stl-ui-accent-muted-foreground: var(--stl-ui-swatch-accent-base);
416
- --stl-ui-accent-border: var(--stl-ui-swatch-accent-muted);
417
- --stl-ui-accent-border-muted: var(--stl-ui-swatch-accent-faint);
418
- --stl-ui-accent-border-emphasis: var(--stl-ui-swatch-accent-base);
419
- --stl-ui-overlay-background: #0000000d;
420
- }
421
-
422
- /* Swatches - Dark */
423
- :root[data-theme='dark'] {
424
- --stl-ui-background: var(--stl-ui-swatch-gray-black);
425
- --stl-ui-card-background: var(--stl-ui-swatch-gray-gray-9);
426
- --stl-ui-muted-background: var(--stl-ui-swatch-gray-gray-9);
427
- --stl-ui-foreground: var(--stl-ui-swatch-gray-gray-1);
428
- --stl-ui-foreground-secondary: var(--stl-ui-swatch-gray-gray-3);
429
- --stl-ui-foreground-muted: var(--stl-ui-swatch-gray-gray-4);
430
- --stl-ui-foreground-accent: var(--stl-ui-swatch-accent-base);
431
- --stl-ui-border: var(--stl-ui-swatch-gray-gray-8);
432
- --stl-ui-border-muted: var(--stl-ui-swatch-gray-gray-9);
433
- --stl-ui-border-emphasis: var(--stl-ui-swatch-gray-gray-7);
434
- --stl-ui-inverse-background: var(--stl-ui-swatch-gray-gray-1);
435
- --stl-ui-inverse-foreground: var(--stl-ui-swatch-gray-black);
436
- --stl-ui-accent-background: var(--stl-ui-swatch-accent-base);
437
- --stl-ui-accent-foreground: var(--stl-ui-swatch-gray-white);
438
- --stl-ui-accent-muted-background: var(--stl-ui-swatch-accent-faint);
439
- --stl-ui-accent-muted-foreground: var(--stl-ui-swatch-accent-base);
440
- --stl-ui-accent-border: var(--stl-ui-swatch-accent-muted);
441
- --stl-ui-accent-border-muted: var(--stl-ui-swatch-accent-faint);
442
- --stl-ui-accent-border-emphasis: var(--stl-ui-swatch-accent-base);
443
- --stl-ui-overlay-background: #00000080;
444
- }
445
- }
446
-
447
- :root {
448
- /* Layout and Typography */
449
- --sl-font: var(--stl-ui-typography-font);
450
- --sl-font-mono: var(--stl-ui-typography-font-mono);
451
- --sl-line-height: var(--stl-ui-typography-line-height);
452
-
453
- /* Headings */
454
- --sl-text-h1: var(--stl-ui-typography-text-h1);
455
- --sl-text-h2: var(--stl-ui-typography-text-h2);
456
- --sl-text-h3: var(--stl-ui-typography-text-h3);
457
- --sl-text-h4: var(--stl-ui-typography-text-h4);
458
- --sl-text-h5: var(--stl-ui-typography-text-h5);
459
-
460
- /* Colors */
461
- --sl-color-bg: var(--stl-ui-background);
462
- --sl-color-bg-sidebar: var(--stl-ui-background);
463
- --sl-color-bg-ui: var(--stl-ui-card-background);
464
- --sl-color-bg-nav: var(--stl-ui-background);
465
- --sl-color-bg-inline-code: var(--stl-ui-muted-background);
466
- --sl-color-bg-accent: var(--stl-ui-accent-background);
467
-
468
- --sl-color-text: var(--stl-ui-foreground);
469
- --sl-color-text-secondary: var(--stl-ui-foreground-secondary);
470
- --sl-color-text-tertiary: var(--stl-ui-foreground-muted);
471
- --sl-color-text-accent: var(--stl-ui-foreground-accent);
472
- --sl-color-hairline: var(--stl-ui-border);
473
- --sl-color-hairline-light: var(--stl-ui-border-muted);
474
- --sl-color-hairline-shade: var(--stl-ui-border-emphasis);
475
- --sl-color-text-invert: var(--stl-ui-inverse-foreground);
476
-
477
- /* Grayscale */
478
-
479
- --sl-color-gray-1: var(--stl-ui-gray-800);
480
- --sl-color-gray-2: var(--stl-ui-gray-700);
481
- --sl-color-gray-3: var(--stl-ui-gray-600);
482
- --sl-color-gray-4: var(--stl-ui-gray-500);
483
- --sl-color-gray-5: var(--stl-ui-gray-400);
484
- --sl-color-gray-6: var(--stl-ui-gray-300);
485
- --sl-color-gray-7: var(--stl-ui-gray-200);
486
- --sl-color-gray-8: var(--stl-ui-gray-100);
487
- --sl-color-gray-9: var(--stl-ui-gray-50);
488
-
489
- /* Accent colors */
490
-
491
- --sl-color-accent-low: var(--stl-ui-swatch-accent-faint);
492
- --sl-color-accent: var(--stl-ui-swatch-accent-base);
493
- --sl-color-accent-high: var(--stl-ui-swatch-accent-base);
494
-
495
- /* Primary colors */
496
- --sl-color-red-low: var(--stl-ui-swatch-red-faint);
497
- --sl-color-red: var(--stl-ui-swatch-red-base);
498
- --sl-color-red-high: var(--stl-ui-swatch-red-base);
499
-
500
- --sl-color-green-low: var(--stl-ui-swatch-green-faint);
501
- --sl-color-green: var(--stl-ui-swatch-green-base);
502
- --sl-color-green-high: var(--stl-ui-swatch-green-base);
503
-
504
- --sl-color-blue-low: var(--stl-ui-swatch-blue-faint);
505
- --sl-color-blue: var(--stl-ui-swatch-blue-base);
506
- --sl-color-blue-high: var(--stl-ui-swatch-blue-base);
507
-
508
- --sl-color-orange-low: var(--stl-ui-swatch-orange-faint);
509
- --sl-color-orange: var(--stl-ui-swatch-orange-base);
510
- --sl-color-orange-high: var(--stl-ui-swatch-orange-base);
511
-
512
- --sl-color-purple-low: var(--stl-ui-swatch-purple-faint);
513
- --sl-color-purple: var(--stl-ui-swatch-purple-base);
514
- --sl-color-purple-high: var(--stl-ui-swatch-purple-base);
515
-
516
- --sl-color-teal-low: var(--stl-ui-swatch-teal-faint);
517
- --sl-color-teal: var(--stl-ui-swatch-teal-base);
518
- --sl-color-teal-high: var(--stl-ui-swatch-teal-base);
519
-
520
- --sl-color-magenta-low: var(--stl-ui-swatch-pink-faint);
521
- --sl-color-magenta: var(--stl-ui-swatch-pink-base);
522
- --sl-color-magenta-high: var(--stl-ui-swatch-pink-base);
523
-
524
- --sl-color-yellow-low: var(--stl-ui-swatch-yellow-faint);
525
- --sl-color-yellow: var(--stl-ui-swatch-yellow-base);
526
- --sl-color-yellow-high: var(--stl-ui-swatch-yellow-base);
527
- }
528
-
529
- :root[data-theme='dark'] {
530
- --sl-color-gray-1: var(--stl-ui-gray-100);
531
- --sl-color-gray-2: var(--stl-ui-gray-200);
532
- --sl-color-gray-3: var(--stl-ui-gray-300);
533
- --sl-color-gray-4: var(--stl-ui-gray-400);
534
- --sl-color-gray-5: var(--stl-ui-gray-500);
535
- --sl-color-gray-6: var(--stl-ui-gray-600);
536
- --sl-color-gray-7: var(--stl-ui-gray-700);
537
- --sl-color-gray-8: var(--stl-ui-gray-800);
538
- --sl-color-gray-9: var(--stl-ui-gray-900);
539
- }
540
-
541
- /* Starlight Compatibility */
542
- .stl-ui-prose {
543
- /* TODO: Disable starlight headingLinks and replace with our own */
544
- /* Duplicate styles from h1–5 in typography; TODO: move to mixins after adopting preprocessor */
545
- .sl-heading-wrapper.level-h1 {
546
- font-size: var(--stl-ui-typography-text-h1);
547
- letter-spacing: -0.03em;
548
- margin-top: 64px;
549
- line-height: var(--stl-ui-typography-line-height-headings);
550
- }
551
- .sl-heading-wrapper.level-h2 {
552
- font-size: var(--stl-ui-typography-text-h2);
553
- letter-spacing: -0.03em;
554
- margin-top: 48px;
555
- line-height: var(--stl-ui-typography-line-height-headings);
556
- }
557
-
558
- .sl-heading-wrapper.level-h3 {
559
- font-size: var(--stl-ui-typography-text-h3);
560
- letter-spacing: -0.02em;
561
- margin-top: 40px;
562
- line-height: var(--stl-ui-typography-line-height-headings);
563
- }
564
- .sl-heading-wrapper.level-h4 {
565
- font-size: var(--stl-ui-typography-text-h4);
566
- letter-spacing: -0.02em;
567
- margin-top: 32px;
568
- line-height: var(--stl-ui-typography-line-height-headings);
569
- }
570
- .sl-heading-wrapper.level-h5 {
571
- font-size: var(--stl-ui-typography-text-h5);
572
- letter-spacing: -0.02em;
573
- margin-top: 24px;
574
- line-height: var(--stl-ui-typography-line-height-headings);
575
- }
576
- .sl-heading-wrapper {
577
- --sl-anchor-icon-size: 0.8em;
578
- }
579
- /* TODO: replace with an icon that matches Stainless branding */
580
- .sl-anchor-link svg {
581
- margin-top: 0;
582
- }
583
- }
584
-
585
- /* TODO: remove these */
586
- .stl-ui-prose {
587
- /* Tab component */
588
- starlight-tabs {
589
- a {
590
- text-decoration: none;
591
- line-height: unset;
592
- color: var(--stl-ui-foreground);
593
-
594
- &[aria-selected='true'] {
595
- color: var(--stl-ui-foreground-accent);
596
- font-weight: normal;
597
- }
598
- }
599
-
600
- ol,
601
- ul {
602
- &:not(.stl-ui-not-prose *) {
603
- padding-left: 0;
604
- }
605
- }
606
-
607
- li:not(.stl-ui-not-prose *) {
608
- margin-bottom: -2px;
609
- &:not(:last-child) {
610
- margin-bottom: -2px;
611
- }
612
-
613
- a:first-child {
614
- display: flex;
615
- }
616
- }
617
- }
618
-
619
- /* Pagination Links */
620
-
621
- .pagination-links {
622
- a {
623
- color: var(--stl-ui-foreground);
624
- }
625
- }
626
-
627
- .starlight-aside {
628
- svg {
629
- margin-top: 0;
630
- }
214
+ --stl-opacity-level-080: 0.80;
215
+ --stl-opacity-level-040: 0.40;
216
+ --stl-opacity-level-016: 0.16;
217
+ --stl-opacity-level-008: 0.08;
218
+ --stl-opacity-level-004: 0.04;
219
+ /* background */
220
+ --stl-color-background: light-dark(rgb(255 255 255), rgb(10 10 10));
221
+ --stl-color-background-hover: light-dark(
222
+ rgb(from var(--stl-color-foreground) r g b / var(--stl-opacity-level-004)),
223
+ rgb(from var(--stl-color-foreground) r g b / var(--stl-opacity-level-008))
224
+ );
225
+ /* background shades */
226
+ --stl-color-muted-background: rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-008)));
227
+ --stl-color-muted-background-hover: rgb(from var(--stl-color-muted-background) r g b/var(--stl-opacity-level-016));
228
+ --stl-color-faint-background: rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-004)));
229
+ --stl-color-faint-background-hover: rgb(from var(--stl-color-faint-background) r g b/var(--stl-opacity-level-008));
230
+ /* ui elements like cards and buttons have faint-background in dark mode */
231
+ --stl-color-ui-background: light-dark(var(--stl-color-background), var(--stl-color-faint-background));
232
+ --stl-color-ui-background-hover: light-dark(var(--stl-color-background-hover), var(--stl-color-faint-background-hover));
233
+ /* foreground */
234
+ --stl-color-foreground: light-dark(rgb(38 38 38), rgb(245 245 245));
235
+ --stl-color-foreground-reduced: rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
236
+ --stl-color-foreground-muted: rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
237
+ /* inverse */
238
+ --stl-color-inverse-background: var(--stl-color-foreground);
239
+ --stl-color-inverse-background-hover: rgb(from var(--stl-color-inverse-background) r g b/calc(alpha * 0.9));
240
+ --stl-color-inverse-foreground: var(--stl-color-background);
241
+ /* default border (“foreground border”) */
242
+ --stl-color-border: rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-016)));
243
+ --stl-color-border-faint: rgb(from var(--stl-color-border) r g b/var(--stl-opacity-level-008));
244
+ --stl-color-border-strong: rgb(from var(--stl-color-border) r g b/var(--stl-opacity-level-040));
245
+ /* accent */
246
+ --stl-color-accent: light-dark(#155dfc, #2b7fff);
247
+ --stl-color-foreground-accent: var(--stl-color-accent);
248
+ --stl-color-accent-background: var(--stl-color-accent);
249
+ --stl-color-accent-background-hover: rgb(from var(--stl-color-accent) r g b/calc(alpha * var(--stl-opacity-level-080)));
250
+ --stl-color-accent-foreground: rgb(255, 255, 255);
251
+ --stl-color-accent-muted-background: light-dark(rgb(from var(--stl-color-accent) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-accent) r g b/calc(alpha * var(--stl-opacity-level-016))));
252
+ --stl-color-accent-muted-background-hover: rgb(from var(--stl-color-accent-muted-background) r g b/calc(alpha * 2));
253
+ --stl-color-accent-muted-foreground: var(--stl-color-foreground-accent);
254
+ --stl-color-accent-border: rgb(from var(--stl-color-accent) r g b/calc(alpha * var(--stl-opacity-level-016)));
255
+ --stl-color-accent-border-faint: rgb(from var(--stl-color-accent-border) r g b/var(--stl-opacity-level-008));
256
+ --stl-color-accent-border-strong: rgb(from var(--stl-color-accent) r g b/1);
257
+ /* red */
258
+ --stl-color-red: light-dark(#D01E22, #E34041);
259
+ --stl-color-foreground-red: var(--stl-color-red);
260
+ --stl-color-red-background: var(--stl-color-red);
261
+ --stl-color-red-background-hover: rgb(from var(--stl-color-red) r g b/calc(alpha * var(--stl-opacity-level-080)));
262
+ --stl-color-red-foreground: rgb(255, 255, 255);
263
+ --stl-color-red-muted-background: light-dark(rgb(from var(--stl-color-red) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-red) r g b/calc(alpha * var(--stl-opacity-level-016))));
264
+ --stl-color-red-muted-background-hover: rgb(from var(--stl-color-red-muted-background) r g b/calc(alpha * 2));
265
+ --stl-color-red-muted-foreground: var(--stl-color-foreground-red);
266
+ --stl-color-red-border: rgb(from var(--stl-color-red) r g b/calc(alpha * var(--stl-opacity-level-016)));
267
+ --stl-color-red-border-faint: rgb(from var(--stl-color-red-border) r g b/var(--stl-opacity-level-008));
268
+ --stl-color-red-border-strong: rgb(from var(--stl-color-red) r g b/1);
269
+ /* green */
270
+ --stl-color-green: light-dark(#16A34A, #22C55E);
271
+ --stl-color-foreground-green: var(--stl-color-green);
272
+ --stl-color-green-background: var(--stl-color-green);
273
+ --stl-color-green-background-hover: rgb(from var(--stl-color-green) r g b/calc(alpha * var(--stl-opacity-level-080)));
274
+ --stl-color-green-foreground: rgb(255, 255, 255);
275
+ --stl-color-green-muted-background: light-dark(rgb(from var(--stl-color-green) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-green) r g b/calc(alpha * var(--stl-opacity-level-016))));
276
+ --stl-color-green-muted-background-hover: rgb(from var(--stl-color-green-muted-background) r g b/calc(alpha * 2));
277
+ --stl-color-green-muted-foreground: var(--stl-color-foreground-green);
278
+ --stl-color-green-border: rgb(from var(--stl-color-green) r g b/calc(alpha * var(--stl-opacity-level-016)));
279
+ --stl-color-green-border-faint: rgb(from var(--stl-color-green-border) r g b/var(--stl-opacity-level-008));
280
+ --stl-color-green-border-strong: rgb(from var(--stl-color-green) r g b/1);
281
+ /* blue */
282
+ --stl-color-blue: light-dark(#155DFC, #2B7FFF);
283
+ --stl-color-foreground-blue: var(--stl-color-blue);
284
+ --stl-color-blue-background: var(--stl-color-blue);
285
+ --stl-color-blue-background-hover: rgb(from var(--stl-color-blue) r g b/calc(alpha * var(--stl-opacity-level-080)));
286
+ --stl-color-blue-foreground: rgb(255, 255, 255);
287
+ --stl-color-blue-muted-background: light-dark(rgb(from var(--stl-color-blue) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-blue) r g b/calc(alpha * var(--stl-opacity-level-016))));
288
+ --stl-color-blue-muted-background-hover: rgb(from var(--stl-color-blue-muted-background) r g b/calc(alpha * 2));
289
+ --stl-color-blue-muted-foreground: var(--stl-color-foreground-blue);
290
+ --stl-color-blue-border: rgb(from var(--stl-color-blue) r g b/calc(alpha * var(--stl-opacity-level-016)));
291
+ --stl-color-blue-border-faint: rgb(from var(--stl-color-blue-border) r g b/var(--stl-opacity-level-008));
292
+ --stl-color-blue-border-strong: rgb(from var(--stl-color-blue) r g b/1);
293
+ /* orange */
294
+ --stl-color-orange: light-dark(#EA580C, #F97316);
295
+ --stl-color-foreground-orange: var(--stl-color-orange);
296
+ --stl-color-orange-background: var(--stl-color-orange);
297
+ --stl-color-orange-background-hover: rgb(from var(--stl-color-orange) r g b/calc(alpha * var(--stl-opacity-level-080)));
298
+ --stl-color-orange-foreground: rgb(255, 255, 255);
299
+ --stl-color-orange-muted-background: light-dark(rgb(from var(--stl-color-orange) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-orange) r g b/calc(alpha * var(--stl-opacity-level-016))));
300
+ --stl-color-orange-muted-background-hover: rgb(from var(--stl-color-orange-muted-background) r g b/calc(alpha * 2));
301
+ --stl-color-orange-muted-foreground: var(--stl-color-foreground-orange);
302
+ --stl-color-orange-border: rgb(from var(--stl-color-orange) r g b/calc(alpha * var(--stl-opacity-level-016)));
303
+ --stl-color-orange-border-faint: rgb(from var(--stl-color-orange-border) r g b/var(--stl-opacity-level-008));
304
+ --stl-color-orange-border-strong: rgb(from var(--stl-color-orange) r g b/1);
305
+ /* purple */
306
+ --stl-color-purple: light-dark(#9333EA, #A855F7);
307
+ --stl-color-foreground-purple: var(--stl-color-purple);
308
+ --stl-color-purple-background: var(--stl-color-purple);
309
+ --stl-color-purple-background-hover: rgb(from var(--stl-color-purple) r g b/calc(alpha * var(--stl-opacity-level-080)));
310
+ --stl-color-purple-foreground: rgb(255, 255, 255);
311
+ --stl-color-purple-muted-background: light-dark(rgb(from var(--stl-color-purple) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-purple) r g b/calc(alpha * var(--stl-opacity-level-016))));
312
+ --stl-color-purple-muted-background-hover: rgb(from var(--stl-color-purple-muted-background) r g b/calc(alpha * 2));
313
+ --stl-color-purple-muted-foreground: var(--stl-color-foreground-purple);
314
+ --stl-color-purple-border: rgb(from var(--stl-color-purple) r g b/calc(alpha * var(--stl-opacity-level-016)));
315
+ --stl-color-purple-border-faint: rgb(from var(--stl-color-purple-border) r g b/var(--stl-opacity-level-008));
316
+ --stl-color-purple-border-strong: rgb(from var(--stl-color-purple) r g b/1);
317
+ /* cyan */
318
+ --stl-color-cyan: light-dark(#0891B2, #06B6D4);
319
+ --stl-color-foreground-cyan: var(--stl-color-cyan);
320
+ --stl-color-cyan-background: var(--stl-color-cyan);
321
+ --stl-color-cyan-background-hover: rgb(from var(--stl-color-cyan) r g b/calc(alpha * var(--stl-opacity-level-080)));
322
+ --stl-color-cyan-foreground: rgb(255, 255, 255);
323
+ --stl-color-cyan-muted-background: light-dark(rgb(from var(--stl-color-cyan) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-cyan) r g b/calc(alpha * var(--stl-opacity-level-016))));
324
+ --stl-color-cyan-muted-background-hover: rgb(from var(--stl-color-cyan-muted-background) r g b/calc(alpha * 2));
325
+ --stl-color-cyan-muted-foreground: var(--stl-color-foreground-cyan);
326
+ --stl-color-cyan-border: rgb(from var(--stl-color-cyan) r g b/calc(alpha * var(--stl-opacity-level-016)));
327
+ --stl-color-cyan-border-faint: rgb(from var(--stl-color-cyan-border) r g b/var(--stl-opacity-level-008));
328
+ --stl-color-cyan-border-strong: rgb(from var(--stl-color-cyan) r g b/1);
329
+ /* pink */
330
+ --stl-color-pink: light-dark(#EC4899, #EC4899);
331
+ --stl-color-foreground-pink: var(--stl-color-pink);
332
+ --stl-color-pink-background: var(--stl-color-pink);
333
+ --stl-color-pink-background-hover: rgb(from var(--stl-color-pink) r g b/calc(alpha * var(--stl-opacity-level-080)));
334
+ --stl-color-pink-foreground: rgb(255, 255, 255);
335
+ --stl-color-pink-muted-background: light-dark(rgb(from var(--stl-color-pink) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-pink) r g b/calc(alpha * var(--stl-opacity-level-016))));
336
+ --stl-color-pink-muted-background-hover: rgb(from var(--stl-color-pink-muted-background) r g b/calc(alpha * 2));
337
+ --stl-color-pink-muted-foreground: var(--stl-color-foreground-pink);
338
+ --stl-color-pink-border: rgb(from var(--stl-color-pink) r g b/calc(alpha * var(--stl-opacity-level-016)));
339
+ --stl-color-pink-border-faint: rgb(from var(--stl-color-pink-border) r g b/var(--stl-opacity-level-008));
340
+ --stl-color-pink-border-strong: rgb(from var(--stl-color-pink) r g b/1);
341
+ /* yellow */
342
+ --stl-color-yellow: light-dark(#CA8A04, #EAB308);
343
+ --stl-color-foreground-yellow: var(--stl-color-yellow);
344
+ --stl-color-yellow-background: var(--stl-color-yellow);
345
+ --stl-color-yellow-background-hover: rgb(from var(--stl-color-yellow) r g b/calc(alpha * var(--stl-opacity-level-080)));
346
+ --stl-color-yellow-foreground: rgb(255, 255, 255);
347
+ --stl-color-yellow-muted-background: light-dark(rgb(from var(--stl-color-yellow) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-yellow) r g b/calc(alpha * var(--stl-opacity-level-016))));
348
+ --stl-color-yellow-muted-background-hover: rgb(from var(--stl-color-yellow-muted-background) r g b/calc(alpha * 2));
349
+ --stl-color-yellow-muted-foreground: var(--stl-color-foreground-yellow);
350
+ --stl-color-yellow-border: rgb(from var(--stl-color-yellow) r g b/calc(alpha * var(--stl-opacity-level-016)));
351
+ --stl-color-yellow-border-faint: rgb(from var(--stl-color-yellow-border) r g b/var(--stl-opacity-level-008));
352
+ --stl-color-yellow-border-strong: rgb(from var(--stl-color-yellow) r g b/1);
353
+ }
354
+ :root[data-theme=dark],
355
+ .stl-theme-dark {
356
+ color-scheme: dark;
357
+ background: var(--stl-color-background);
358
+ color: var(--stl-color-foreground);
359
+ }
360
+ :root[data-theme=light],
361
+ .stl-theme-light {
362
+ color-scheme: light;
363
+ background: var(--stl-color-background);
364
+ color: var(--stl-color-foreground);
631
365
  }
632
366
  }
633
-
634
367
  .stl-ui-button {
635
- --stl-ui-button-color: var(--stl-ui-inverse-foreground);
636
- --stl-ui-button-background-color: var(--stl-ui-inverse-background);
637
- --stl-ui-button-background-color-hover: color-mix(
638
- in oklch,
639
- var(--stl-ui-inverse-background) 90%,
640
- var(--stl-ui-background)
641
- );
642
-
643
- --stl-ui-button-border-color: transparent;
644
- --stl-ui-button-border-color-hover: transparent;
645
-
646
- --stl-ui-button-height: 32px;
647
- --stl-ui-button-padding: 8px 10px;
648
- --stl-ui-button-border-radius: var(--stl-ui-layout-border-radius-sml);
649
- --stl-ui-button-line-height: 150%;
650
- --stl-ui-button-font-weight: 500;
651
- --stl-ui-button-font-size: var(--stl-ui-type-scale-text-sm);
652
- --stl-ui-button-font-family: var(--stl-ui-typography-font);
368
+ height: 32px;
369
+ padding: 8px 10px;
370
+ border-radius: var(--stl-ui-layout-border-radius-sml);
371
+ line-height: 150%;
372
+ font-weight: 500;
373
+ font-size: var(--stl-typography-text-body-sm);
374
+ font-family: var(--stl-typography-font);
653
375
 
654
376
  cursor: pointer;
655
377
  display: inline-flex;
@@ -659,115 +381,94 @@ body {
659
381
  white-space: nowrap;
660
382
  flex-shrink: 0;
661
383
 
662
- height: var(--stl-ui-button-height);
663
- padding: var(--stl-ui-button-padding);
664
- border-radius: var(--stl-ui-button-border-radius);
665
- line-height: var(--stl-ui-button-line-height);
666
- font-weight: var(--stl-ui-button-font-weight);
667
- font-size: var(--stl-ui-button-font-size);
668
-
669
- border: 1px solid var(--stl-ui-button-border-color);
670
- font-family: var(--stl-ui-button-font-family);
671
-
672
- color: var(--stl-ui-button-color);
673
- background-color: var(--stl-ui-button-background-color);
384
+ border: 1px solid transparent;
385
+ color: var(--stl-color-inverse-foreground);
386
+ background-color: var(--stl-color-inverse-background);
674
387
 
675
388
  &:hover {
676
- background-color: var(--stl-ui-button-background-color-hover);
677
- border-color: var(--stl-ui-button-border-color-hover);
389
+ background-color: var(--stl-color-inverse-background-hover);
390
+ }
391
+
392
+ &[hidden] {
393
+ display: none;
678
394
  }
679
395
  }
680
396
 
681
397
  /* --- COLOR VARIANTS --- */
682
398
  .stl-ui-button--accent {
683
- --stl-ui-button-color: var(--stl-ui-accent-foreground);
684
- --stl-ui-button-background-color: var(--stl-ui-accent-background);
685
- --stl-ui-button-background-color-hover: color-mix(
686
- in oklch,
687
- var(--stl-ui-accent-background) 90%,
688
- var(--stl-ui-inverse-foreground)
689
- );
399
+ color: var(--stl-color-accent-foreground);
400
+ background-color: var(--stl-color-accent-background);
401
+ &:hover {
402
+ background-color: var(--stl-color-accent-background-hover);
403
+ }
690
404
  }
691
405
 
692
406
  .stl-ui-button--accent-muted {
693
- --stl-ui-button-color: var(--stl-ui-accent-muted-foreground);
694
- --stl-ui-button-background-color: var(--stl-ui-accent-muted-background);
695
- --stl-ui-button-background-color-hover: color-mix(
696
- in oklch,
697
- var(--stl-ui-accent-background) 10%,
698
- var(--stl-ui-inverse-foreground)
699
- );
407
+ color: var(--stl-color-accent-muted-foreground);
408
+ background-color: var(--stl-color-accent-muted-background);
409
+ &:hover {
410
+ background-color: var(--stl-color-accent-muted-background-hover);
411
+ }
700
412
  }
701
413
 
702
414
  .stl-ui-button--muted {
703
- --stl-ui-button-color: var(--stl-ui-foreground);
704
- --stl-ui-button-background-color: var(--stl-ui-muted-background);
705
- --stl-ui-button-background-color-hover: color-mix(
706
- in oklch,
707
- var(--stl-ui-foreground) 10%,
708
- var(--stl-ui-inverse-foreground)
709
- );
415
+ color: var(--stl-color-foreground);
416
+ background-color: var(--stl-color-muted-background);
417
+ &:hover {
418
+ background-color: var(--stl-color-muted-background-hover);
419
+ }
710
420
  }
711
421
 
712
422
  .stl-ui-button--outline {
713
- --stl-ui-button-color: var(--stl-ui-foreground);
714
- --stl-ui-button-background-color: var(--stl-ui-card-background);
715
- --stl-ui-button-background-color-hover: color-mix(
716
- in oklch,
717
- var(--stl-ui-foreground) 5%,
718
- var(--stl-ui-inverse-foreground)
719
- );
720
- --stl-ui-button-border-color: var(--stl-ui-border);
721
- --stl-ui-button-border-color-hover: var(--stl-ui-border-emphasis);
423
+ color: var(--stl-color-foreground);
424
+ background-color: var(--stl-color-ui-background);
425
+ border-color: var(--stl-color-border);
426
+ &:hover {
427
+ background-color: var(--stl-color-ui-background-hover);
428
+ }
722
429
  }
723
430
 
724
431
  .stl-ui-button--ghost {
725
- --stl-ui-button-color: var(--stl-ui-foreground);
726
- --stl-ui-button-background-color: transparent;
727
- --stl-ui-button-background-color-hover: color-mix(
728
- in oklch,
729
- var(--stl-ui-foreground) 5%,
730
- var(--stl-ui-inverse-foreground)
731
- );
432
+ color: var(--stl-color-foreground);
433
+ background-color: transparent;
434
+ &:hover {
435
+ background-color: var(--stl-color-background-hover);
436
+ }
732
437
  }
733
438
 
734
439
  .stl-ui-button--success {
735
- --stl-ui-button-color: var(--stl-ui-swatch-gray-white);
736
- --stl-ui-button-background-color: var(--stl-ui-swatch-green-base);
737
- --stl-ui-button-background-color-hover: color-mix(
738
- in oklch,
739
- var(--stl-ui-swatch-green-base) 90%,
740
- var(--stl-ui-inverse-foreground)
741
- );
440
+ color: var(--stl-color-green-foreground);
441
+ background-color: var(--stl-color-green-background);
442
+ &:hover {
443
+ background-color: var(--stl-color-green-background-hover);
444
+ }
742
445
  }
743
446
 
744
447
  .stl-ui-button--destructive {
745
- --stl-ui-button-color: var(--stl-ui-swatch-gray-white);
746
- --stl-ui-button-background-color: var(--stl-ui-swatch-red-base);
747
- --stl-ui-button-background-color-hover: color-mix(
748
- in oklch,
749
- var(--stl-ui-swatch-red-base) 90%,
750
- var(--stl-ui-inverse-foreground)
751
- );
448
+ color: var(--stl-color-red-foreground);
449
+ background-color: var(--stl-color-red-background);
450
+ &:hover {
451
+ background-color: var(--stl-color-red-background-hover);
452
+ }
752
453
  }
753
454
 
754
455
  /* --- SIZE VARIANTS --- */
755
456
  .stl-ui-button--size-sm {
756
- --stl-ui-button-height: 24px;
757
- --stl-ui-button-padding: 0 6px;
758
- --stl-ui-button-border-radius: var(--stl-ui-layout-border-radius-xs);
759
- --stl-ui-button-line-height: 100%;
760
- --stl-ui-button-font-weight: 500;
761
- --stl-ui-button-font-size: var(--stl-ui-typography-text-body-xs);
457
+ height: 24px;
458
+ padding: 0 6px;
459
+ border-radius: var(--stl-ui-layout-border-radius-xs);
460
+ line-height: 100%;
461
+ font-weight: 500;
462
+ font-size: var(--stl-typography-text-body-xs);
762
463
  }
763
464
 
764
465
  .stl-ui-button--size-lg {
765
- --stl-ui-button-height: 40px;
766
- --stl-ui-button-padding: 8px 14px;
767
- --stl-ui-button-border-radius: var(--stl-ui-layout-border-radius);
768
- --stl-ui-button-line-height: 150%;
769
- --stl-ui-button-font-weight: 500;
770
- --stl-ui-button-font-size: var(--stl-ui-typography-text-body);
466
+ height: 40px;
467
+ padding: 8px 14px;
468
+ border-radius: var(--stl-ui-layout-border-radius);
469
+ line-height: 150%;
470
+ font-weight: 500;
471
+ font-size: var(--stl-typography-text-body);
771
472
  }
772
473
 
773
474
  /* --- ICONS --- */
@@ -804,7 +505,7 @@ body {
804
505
  .stl-ui-button:not(:has(.stl-ui-button-label)):has(.stl-ui-button__icon:last-child):has(
805
506
  .stl-ui-button__icon:first-child
806
507
  ) {
807
- width: var(--stl-ui-button-height);
508
+ aspect-ratio: 1 / 1;
808
509
 
809
510
  .stl-ui-button__icon {
810
511
  margin-left: -4px;
@@ -820,11 +521,12 @@ a.stl-ui-button {
820
521
  }
821
522
 
822
523
  .stl-ui-dropdown {
823
- --stl-ui-dropdown-button-color: var(--stl-ui-foreground);
824
- --stl-ui-dropdown-button-background-color: var(--stl-ui-card-background);
825
- --stl-ui-dropdown-button-border-color: var(--stl-ui-border);
524
+ --stl-ui-dropdown-button-color: var(--stl-color-foreground);
525
+ --stl-ui-dropdown-button-background-color: var(--stl-color-ui-background);
526
+ --stl-ui-dropdown-button-border-color: var(--stl-color-border);
527
+
826
528
  --stl-ui-dropdown-button-border-radius: var(--stl-ui-layout-border-radius-sml);
827
- --stl-ui-dropdown-button-font-size: var(--stl-ui-type-scale-text-sm);
529
+ --stl-ui-dropdown-button-font-size: var(--stl-typography-scale-sm);
828
530
 
829
531
  --stl-ui-dropdown-button-height: 32px;
830
532
  --stl-ui-dropdown-button-padding: 0 10px;
@@ -841,7 +543,7 @@ a.stl-ui-button {
841
543
 
842
544
  hr {
843
545
  --stl-ui-dropdown-button__divider-height: 1px;
844
- --stl-ui-dropdown-button__divider-color: var(--stl-ui-border);
546
+ --stl-ui-dropdown-button__divider-color: var(--stl-color-border);
845
547
 
846
548
  height: var(--stl-ui-dropdown-button__divider-height);
847
549
  background-color: var(--stl-ui-dropdown-button__divider-color);
@@ -872,8 +574,7 @@ a.stl-ui-button {
872
574
  }
873
575
 
874
576
  &:hover {
875
- background-color: oklch(from var(--stl-ui-foreground) l c h / 0.05);
876
- border-color: var(--stl-ui-border-emphasis);
577
+ background-color: var(--stl-color-ui-background-hover);
877
578
  }
878
579
 
879
580
  .stl-ui-dropdown__trigger-icon {
@@ -905,29 +606,30 @@ a.stl-ui-button {
905
606
  gap: 8px;
906
607
  border-top-right-radius: 0;
907
608
  border-bottom-right-radius: 0;
908
- margin-right: -1px;
609
+ border-right-width: 0;
909
610
 
910
611
  &:hover {
911
- background-color: oklch(from var(--stl-ui-foreground) l c h / 0.05);
912
- border-color: var(--stl-ui-border-emphasis);
612
+ background-color: var(--stl-color-ui-background-hover);
913
613
  z-index: 1;
614
+ border-right-width: 1px;
615
+ & + .stl-ui-dropdown-button__trigger {
616
+ border-left-width: 0;
617
+ }
914
618
  }
915
619
 
916
620
  &.disabled {
917
621
  cursor: not-allowed;
918
- background-color: oklch(from var(--stl-ui-foreground) l c h / 0.05);
622
+ background-color: var(--stl-color-ui-background);
919
623
  }
920
624
  }
921
625
 
922
626
  .stl-ui-dropdown-button__trigger {
923
- border-left: 1px solid var(--stl-ui-border);
924
627
  border-radius: 0;
925
628
  border-top-right-radius: var(--stl-ui-dropdown-button-border-radius);
926
629
  border-bottom-right-radius: var(--stl-ui-dropdown-button-border-radius);
927
630
 
928
631
  &:hover {
929
- background-color: oklch(from var(--stl-ui-foreground) l c h / 0.05);
930
- border-color: var(--stl-ui-border-emphasis);
632
+ background-color: var(--stl-color-ui-background-hover);
931
633
  }
932
634
  }
933
635
 
@@ -941,12 +643,19 @@ a.stl-ui-button {
941
643
  * Dropdown Menu
942
644
  */
943
645
  .stl-ui-dropdown-menu {
944
- --stl-ui-dropdown-menu-background-color: var(--stl-ui-card-background);
945
- --stl-ui-dropdown-menu-border-color: var(--stl-ui-border);
646
+ --stl-ui-dropdown-menu-background-color: var(--stl-color-ui-background);
647
+ --stl-ui-dropdown-menu-border-color: var(--stl-color-border);
946
648
  --stl-ui-dropdown-menu-box-shadow: var(--stl-ui-shadow-md);
947
649
  --stl-ui-dropdown-menu-border-radius: var(--stl-ui-layout-border-radius-sml);
948
650
 
949
- background-color: var(--stl-ui-dropdown-menu-background-color);
651
+ /* opaque background with sometimes-transparent color on top in image layer*/
652
+ background-color: var(--stl-color-background);
653
+ background-image: linear-gradient(
654
+ to right,
655
+ var(--stl-ui-dropdown-menu-background-color),
656
+ var(--stl-ui-dropdown-menu-background-color)
657
+ );
658
+
950
659
  border: 1px solid var(--stl-ui-dropdown-menu-border-color);
951
660
  box-shadow: var(--stl-ui-dropdown-menu-box-shadow);
952
661
  border-radius: var(--stl-ui-dropdown-menu-border-radius);
@@ -978,7 +687,7 @@ a.stl-ui-button {
978
687
  --stl-ui-dropdown-menu__item-border-radius: var(--stl-ui-dropdown-button-border-radius);
979
688
  --stl-ui-dropdown-menu__item-height: var(--stl-ui-dropdown-button-height);
980
689
  --stl-ui-dropdown-menu__item-line-height: var(--stl-ui-dropdown-button-line-height);
981
- --stl-ui-dropdown-menu__item-hover-background-color: oklch(from var(--stl-ui-foreground) l c h / 0.05);
690
+ --stl-ui-dropdown-menu__item-hover-background-color: var(--stl-color-ui-background-hover);
982
691
 
983
692
  border-radius: var(--stl-ui-dropdown-menu__item-border-radius);
984
693
  height: var(--stl-ui-dropdown-menu__item-height);
@@ -1003,7 +712,7 @@ a.stl-ui-button {
1003
712
  &:hover,
1004
713
  &:focus-visible,
1005
714
  &:focus {
1006
- color: var(--stl-ui-foreground);
715
+ color: var(--stl-color-foreground);
1007
716
  }
1008
717
 
1009
718
  &.stl-ui-dropdown-menu__item-link {
@@ -1014,7 +723,7 @@ a.stl-ui-button {
1014
723
  width: 100%;
1015
724
 
1016
725
  &:hover {
1017
- color: var(--stl-ui-foreground);
726
+ color: var(--stl-color-foreground);
1018
727
  }
1019
728
  }
1020
729
 
@@ -1033,16 +742,16 @@ a.stl-ui-button {
1033
742
  }
1034
743
 
1035
744
  .stl-ui-dropdown-menu__item-text--subtle {
1036
- color: var(--stl-ui-foreground-muted);
745
+ color: var(--stl-color-foreground-muted);
1037
746
  }
1038
747
 
1039
748
  strong {
1040
- color: var(--stl-ui-foreground);
749
+ color: var(--stl-color-foreground);
1041
750
  font-weight: 500;
1042
751
  }
1043
752
 
1044
753
  .stl-ui-dropdown-menu__item-subtle-icon {
1045
- --stl-ui-dropdown-menu__item-subtle-icon-color: oklch(from var(--stl-ui-foreground) l c h / 0.25);
754
+ --stl-ui-dropdown-menu__item-subtle-icon-color: rgb(from var(--stl-color-foreground) r g b / 0.25);
1046
755
 
1047
756
  svg {
1048
757
  color: var(--stl-ui-dropdown-menu__item-subtle-icon-color);
@@ -1053,26 +762,25 @@ a.stl-ui-button {
1053
762
  }
1054
763
 
1055
764
  .stl-ui-callout {
1056
- --stl-ui-callout-background-color: var(--stl-ui-muted-background);
1057
- --stl-ui-callout-border-color: var(--stl-ui-border);
1058
- --stl-ui-callout-accent-color: var(--stl-ui-foreground-muted);
1059
- --stl-ui-callout-strong-color: var(--stl-ui-callout-accent-color);
1060
- --stl-ui-callout-selection-background: var(--stl-ui-swatch-gray-gray-6);
765
+ --stl-ui-callout-background-color: var(--stl-color-muted-background);
766
+ --stl-ui-callout-border-color: var(--stl-color-border);
767
+ --stl-ui-callout-accent-color: var(--stl-color-foreground);
1061
768
 
1062
769
  border: 1px solid var(--stl-ui-callout-border-color);
1063
770
  background-color: var(--stl-ui-callout-background-color);
1064
771
  border-radius: var(--stl-ui-layout-border-radius);
1065
772
  padding: 12px;
1066
- line-height: var(--stl-ui-typography-line-height);
773
+ line-height: var(--stl-typography-line-height);
1067
774
  font-weight: 400;
1068
- font-size: var(--stl-ui-typography-text-body);
775
+ font-size: var(--stl-typography-text-body);
776
+ color: var(--stl-color-foreground);
1069
777
 
1070
778
  display: flex;
1071
779
  align-items: flex-start;
1072
780
  gap: 8px;
1073
781
 
1074
782
  :where(a) {
1075
- color: var(--stl-ui-callout-strong-color);
783
+ color: var(--stl-ui-callout-strong-color, var(--stl-ui-callout-accent-color));
1076
784
  text-decoration-color: rgba(from currentColor r g b / 0.4);
1077
785
  transition: text-decoration-color 0.1s ease;
1078
786
  &:hover {
@@ -1081,52 +789,49 @@ a.stl-ui-button {
1081
789
  }
1082
790
 
1083
791
  ::selection {
1084
- background-color: var(--stl-ui-callout-selection-background);
1085
- color: var(--stl-ui-foreground);
792
+ background-color: light-dark(
793
+ rgb(from var(--stl-ui-callout-background-color) r g b / 0.2),
794
+ rgb(from var(--stl-ui-callout-background-color) r g b / 0.35)
795
+ );
796
+ color: var(--stl-color-foreground);
1086
797
  }
1087
798
  }
1088
799
 
1089
800
  .stl-ui-callout--info {
1090
- --stl-ui-callout-background-color: var(--stl-ui-muted-background);
1091
- --stl-ui-callout-border-color: var(--stl-ui-border);
1092
- --stl-ui-callout-accent-color: var(--stl-ui-foreground-muted);
1093
- --stl-ui-callout-strong-color: var(--stl-ui-foreground);
1094
- --stl-ui-callout-selection-background: var(--stl-ui-swatch-gray-gray-6);
801
+ --stl-ui-callout-background-color: var(--stl-color-muted-background);
802
+ --stl-ui-callout-border-color: var(--stl-color-border);
803
+ --stl-ui-callout-accent-color: var(--stl-color-foreground-reduced);
804
+ --stl-ui-callout-strong-color: var(--stl-color-foreground);
1095
805
  }
1096
806
 
1097
807
  .stl-ui-callout--note {
1098
- --stl-ui-callout-background-color: var(--stl-ui-swatch-blue-faint);
1099
- --stl-ui-callout-border-color: var(--stl-ui-swatch-blue-muted);
1100
- --stl-ui-callout-accent-color: var(--stl-ui-swatch-blue-base);
1101
- --stl-ui-callout-selection-background: var(--stl-ui-swatch-blue-muted);
808
+ --stl-ui-callout-background-color: var(--stl-color-blue-muted-background);
809
+ --stl-ui-callout-border-color: var(--stl-color-blue-border);
810
+ --stl-ui-callout-accent-color: var(--stl-color-blue);
1102
811
  }
1103
812
 
1104
813
  .stl-ui-callout--tip {
1105
- --stl-ui-callout-background-color: var(--stl-ui-swatch-purple-faint);
1106
- --stl-ui-callout-border-color: var(--stl-ui-swatch-purple-muted);
1107
- --stl-ui-callout-accent-color: var(--stl-ui-swatch-purple-base);
1108
- --stl-ui-callout-selection-background: var(--stl-ui-swatch-purple-muted);
814
+ --stl-ui-callout-background-color: var(--stl-color-purple-muted-background);
815
+ --stl-ui-callout-border-color: var(--stl-color-purple-border);
816
+ --stl-ui-callout-accent-color: var(--stl-color-purple);
1109
817
  }
1110
818
 
1111
819
  .stl-ui-callout--success {
1112
- --stl-ui-callout-background-color: var(--stl-ui-swatch-green-faint);
1113
- --stl-ui-callout-border-color: var(--stl-ui-swatch-green-muted);
1114
- --stl-ui-callout-accent-color: var(--stl-ui-swatch-green-base);
1115
- --stl-ui-callout-selection-background: var(--stl-ui-swatch-green-muted);
820
+ --stl-ui-callout-background-color: var(--stl-color-green-muted-background);
821
+ --stl-ui-callout-border-color: var(--stl-color-green-border);
822
+ --stl-ui-callout-accent-color: var(--stl-color-green);
1116
823
  }
1117
824
 
1118
825
  .stl-ui-callout--warning {
1119
- --stl-ui-callout-background-color: var(--stl-ui-swatch-yellow-faint);
1120
- --stl-ui-callout-border-color: var(--stl-ui-swatch-yellow-muted);
1121
- --stl-ui-callout-accent-color: var(--stl-ui-swatch-yellow-base);
1122
- --stl-ui-callout-selection-background: var(--stl-ui-swatch-yellow-muted);
826
+ --stl-ui-callout-background-color: var(--stl-color-yellow-muted-background);
827
+ --stl-ui-callout-border-color: var(--stl-color-yellow-border);
828
+ --stl-ui-callout-accent-color: var(--stl-color-yellow);
1123
829
  }
1124
830
 
1125
831
  .stl-ui-callout--danger {
1126
- --stl-ui-callout-background-color: var(--stl-ui-swatch-red-faint);
1127
- --stl-ui-callout-border-color: var(--stl-ui-swatch-red-muted);
1128
- --stl-ui-callout-accent-color: var(--stl-ui-swatch-red-base);
1129
- --stl-ui-callout-selection-background: var(--stl-ui-swatch-red-muted);
832
+ --stl-ui-callout-background-color: var(--stl-color-red-muted-background);
833
+ --stl-ui-callout-border-color: var(--stl-color-red-border);
834
+ --stl-ui-callout-accent-color: var(--stl-color-red);
1130
835
  }
1131
836
 
1132
837
  .stl-ui-callout__icon {
@@ -1164,20 +869,20 @@ a.stl-ui-button {
1164
869
  --stl-ui-accordion-content-padding-bottom: 4px;
1165
870
  --stl-ui-accordion-marker-size: 1em;
1166
871
  --stl-ui-accordion-marker-margin: calc((1lh - var(--stl-ui-accordion-marker-size)) / 2);
872
+ --stl-ui-accordion-marker-color: var(--stl-color-border-strong);
1167
873
  --stl-ui-accordion-row-gap: 8px;
1168
874
  --stl-ui-accordion-summary-column-gap: 8px;
1169
875
  --stl-ui-accordion-border-radius: var(--stl-ui-layout-border-radius);
1170
- --stl-ui-accordion-hover-film-color: oklch(from var(--stl-ui-foreground) l c h / 0.03);
1171
876
  /* left inset to make content line up with summary content (after chevron) */
1172
877
  --stl-ui--internal--accordion-padding-start: calc(
1173
878
  var(--stl-ui-accordion-padding) + var(--stl-ui-accordion-marker-size) +
1174
879
  var(--stl-ui-accordion-marker-margin) * 2 + var(--stl-ui-accordion-summary-column-gap)
1175
880
  );
1176
881
 
1177
- background-color: var(--stl-ui-card-background);
1178
- border: 1px solid var(--stl-ui-border);
882
+ background-color: var(--stl-color-ui-background);
883
+ border: 1px solid var(--stl-color-border);
1179
884
  border-radius: var(--stl-ui-accordion-border-radius);
1180
- font-size: var(--stl-ui-typography-text-body);
885
+ font-size: var(--stl-typography-text-body);
1181
886
 
1182
887
  padding: var(--stl-ui-accordion-padding);
1183
888
  /* indent content to line up with left edge of summary content */
@@ -1203,7 +908,7 @@ a.stl-ui-button {
1203
908
  width: var(--stl-ui-accordion-marker-size);
1204
909
  height: var(--stl-ui-accordion-marker-size);
1205
910
  margin: var(--stl-ui-accordion-marker-margin);
1206
- background-color: currentColor;
911
+ background-color: var(--stl-ui-accordion-marker-color);
1207
912
  display: block;
1208
913
  position: absolute;
1209
914
  --stl-ui-accordion--internal--marker-width: calc(
@@ -1230,7 +935,7 @@ a.stl-ui-button {
1230
935
  }
1231
936
 
1232
937
  &[open] {
1233
- border-color: var(--stl-ui-border-emphasis);
938
+ border-color: var(--stl-color-border-strong);
1234
939
  padding-bottom: calc(var(--stl-ui-accordion-padding) + var(--stl-ui-accordion-content-padding-bottom));
1235
940
 
1236
941
  & > .stl-ui-accordion__summary {
@@ -1251,12 +956,7 @@ a.stl-ui-button {
1251
956
  }
1252
957
 
1253
958
  &:has(> .stl-ui-accordion__summary:hover) {
1254
- background-image: linear-gradient(
1255
- to bottom,
1256
- var(--stl-ui-accordion-hover-film-color),
1257
- var(--stl-ui-accordion-hover-film-color)
1258
- );
1259
- border-color: var(--stl-ui-border-emphasis);
959
+ background-color: var(--stl-color-ui-background-hover);
1260
960
  }
1261
961
 
1262
962
  & > .stl-ui-accordion__summary + * {
@@ -1264,6 +964,8 @@ a.stl-ui-button {
1264
964
  }
1265
965
  }
1266
966
 
967
+ /* Groups */
968
+
1267
969
  .stl-ui-accordion-group {
1268
970
  & > .stl-ui-accordion:has(+ .stl-ui-accordion) {
1269
971
  border-bottom-left-radius: 0;
@@ -1286,11 +988,25 @@ a.stl-ui-button {
1286
988
  }
1287
989
  }
1288
990
 
1289
- .stl-ui-accordion:not(:is([open], :hover)) + .stl-ui-accordion:is([open], :hover) {
991
+ /* Ensure the darker border always extends all the way around the active element, instead of
992
+ * leaving an inactive border-top */
993
+
994
+ .stl-ui-accordion:not(:hover, [open]):has(+ .stl-ui-accordion:hover) {
995
+ border-bottom-width: 0;
996
+ }
997
+ .stl-ui-accordion:not(:hover, [open]) + .stl-ui-accordion:hover {
998
+ border-top-width: 1px;
999
+ }
1000
+
1001
+ .stl-ui-accordion:not([open]):has(+ .stl-ui-accordion[open]) {
1002
+ border-bottom-width: 0;
1003
+ }
1004
+ .stl-ui-accordion:not([open]) + .stl-ui-accordion[open] {
1290
1005
  border-top-width: 1px;
1291
- margin-top: -1px;
1292
1006
  }
1293
1007
  }
1294
1008
 
1009
+ /* design system variables */
1295
1010
 
1011
+ /* components */
1296
1012