@stainless-api/ui-primitives 0.1.0-beta.26 → 0.1.0-beta.28

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,6 @@ body {
333
126
  &:where(:not(:last-child)) {
334
127
  margin-bottom: 8px;
335
128
  }
336
-
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
- }
349
129
  }
350
130
 
351
131
  :where(
@@ -373,29 +153,48 @@ body {
373
153
  margin-top: 16px;
374
154
  }
375
155
 
376
- :where(:not(pre) > code):where(:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose *) {
377
- 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);
378
159
  font-feature-settings:
379
160
  'ss01' on,
380
161
  'ss03' on,
381
162
  'ss04' on,
382
163
  'ss06' on;
383
164
 
384
- /* Code/Regular */
385
- font-family: var(--stl-ui-typography-font-mono);
386
- font-size: var(--stl-ui-typography-text-body-sm);
165
+ font-size: var(--stl-typography-text-code);
387
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
+ }
388
176
 
389
- padding: 0 0.2em;
390
- background-color: oklch(from var(--stl-ui-foreground) l c h / 0.1);
391
- border-radius: 0.2em;
177
+ /* code blocks */
178
+ &:where(pre > &) {
179
+ font-size: var(--stl-typography-text-body-sm);
180
+ }
392
181
  }
182
+ }
393
183
 
394
- :where(pre > code):where(:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose *) {
395
- font-size: var(--stl-ui-typography-text-body-sm);
184
+ @layer starlight.content {
185
+ .stl-ui-prose .sl-markdown-content {
186
+ a,
187
+ a:hover {
188
+ color: revert-layer;
189
+ }
396
190
  }
397
191
  }
398
192
 
193
+ ::selection {
194
+ background-color: var(--stl-typography-selection-background);
195
+ color: var(--stl-typography-selection-foreground);
196
+ }
197
+
399
198
  @layer stl-ui.tokens {
400
199
  /* Layout - Stainless */
401
200
  :root {
@@ -411,261 +210,168 @@ body {
411
210
  }
412
211
 
413
212
  @layer stl-ui.tokens {
414
- /* Swatches - Light */
415
213
  :root {
416
- --stl-ui-background: var(--stl-ui-swatch-gray-white);
417
- --stl-ui-card-background: var(--stl-ui-swatch-gray-white);
418
- --stl-ui-muted-background: var(--stl-ui-swatch-gray-gray-8);
419
- --stl-ui-foreground: var(--stl-ui-swatch-gray-gray-1);
420
- --stl-ui-foreground-secondary: var(--stl-ui-swatch-gray-gray-3);
421
- --stl-ui-foreground-muted: var(--stl-ui-swatch-gray-gray-4);
422
- --stl-ui-foreground-accent: var(--stl-ui-swatch-accent-base);
423
- --stl-ui-border: var(--stl-ui-swatch-gray-gray-7);
424
- --stl-ui-border-muted: var(--stl-ui-swatch-gray-gray-8);
425
- --stl-ui-border-emphasis: var(--stl-ui-swatch-gray-gray-6);
426
- --stl-ui-inverse-background: var(--stl-ui-swatch-gray-gray-1);
427
- --stl-ui-inverse-foreground: var(--stl-ui-swatch-gray-white);
428
- --stl-ui-accent-background: var(--stl-ui-swatch-accent-base);
429
- --stl-ui-accent-foreground: var(--stl-ui-swatch-gray-white);
430
- --stl-ui-accent-muted-background: var(--stl-ui-swatch-accent-faint);
431
- --stl-ui-accent-muted-foreground: var(--stl-ui-swatch-accent-base);
432
- --stl-ui-accent-border: var(--stl-ui-swatch-accent-muted);
433
- --stl-ui-accent-border-muted: var(--stl-ui-swatch-accent-faint);
434
- --stl-ui-accent-border-emphasis: var(--stl-ui-swatch-accent-base);
435
- --stl-ui-overlay-background: #0000000d;
436
- }
437
-
438
- /* Swatches - Dark */
439
- :root[data-theme='dark'] {
440
- --stl-ui-background: var(--stl-ui-swatch-gray-black);
441
- --stl-ui-card-background: var(--stl-ui-swatch-gray-gray-9);
442
- --stl-ui-muted-background: var(--stl-ui-swatch-gray-gray-9);
443
- --stl-ui-foreground: var(--stl-ui-swatch-gray-gray-1);
444
- --stl-ui-foreground-secondary: var(--stl-ui-swatch-gray-gray-3);
445
- --stl-ui-foreground-muted: var(--stl-ui-swatch-gray-gray-4);
446
- --stl-ui-foreground-accent: var(--stl-ui-swatch-accent-base);
447
- --stl-ui-border: var(--stl-ui-swatch-gray-gray-8);
448
- --stl-ui-border-muted: var(--stl-ui-swatch-gray-gray-9);
449
- --stl-ui-border-emphasis: var(--stl-ui-swatch-gray-gray-7);
450
- --stl-ui-inverse-background: var(--stl-ui-swatch-gray-gray-1);
451
- --stl-ui-inverse-foreground: var(--stl-ui-swatch-gray-black);
452
- --stl-ui-accent-background: var(--stl-ui-swatch-accent-base);
453
- --stl-ui-accent-foreground: var(--stl-ui-swatch-gray-white);
454
- --stl-ui-accent-muted-background: var(--stl-ui-swatch-accent-faint);
455
- --stl-ui-accent-muted-foreground: var(--stl-ui-swatch-accent-base);
456
- --stl-ui-accent-border: var(--stl-ui-swatch-accent-muted);
457
- --stl-ui-accent-border-muted: var(--stl-ui-swatch-accent-faint);
458
- --stl-ui-accent-border-emphasis: var(--stl-ui-swatch-accent-base);
459
- --stl-ui-overlay-background: #00000080;
460
- }
461
- }
462
-
463
- :root {
464
- /* Layout and Typography */
465
- --sl-font: var(--stl-ui-typography-font);
466
- --sl-font-mono: var(--stl-ui-typography-font-mono);
467
- --sl-line-height: var(--stl-ui-typography-line-height);
468
-
469
- /* Headings */
470
- --sl-text-h1: var(--stl-ui-typography-text-h1);
471
- --sl-text-h2: var(--stl-ui-typography-text-h2);
472
- --sl-text-h3: var(--stl-ui-typography-text-h3);
473
- --sl-text-h4: var(--stl-ui-typography-text-h4);
474
- --sl-text-h5: var(--stl-ui-typography-text-h5);
475
-
476
- /* Colors */
477
- --sl-color-bg: var(--stl-ui-background);
478
- --sl-color-bg-sidebar: var(--stl-ui-background);
479
- --sl-color-bg-ui: var(--stl-ui-card-background);
480
- --sl-color-bg-nav: var(--stl-ui-background);
481
- --sl-color-bg-inline-code: var(--stl-ui-muted-background);
482
- --sl-color-bg-accent: var(--stl-ui-accent-background);
483
-
484
- --sl-color-text: var(--stl-ui-foreground);
485
- --sl-color-text-secondary: var(--stl-ui-foreground-secondary);
486
- --sl-color-text-tertiary: var(--stl-ui-foreground-muted);
487
- --sl-color-text-accent: var(--stl-ui-foreground-accent);
488
- --sl-color-hairline: var(--stl-ui-border);
489
- --sl-color-hairline-light: var(--stl-ui-border-muted);
490
- --sl-color-hairline-shade: var(--stl-ui-border-emphasis);
491
- --sl-color-text-invert: var(--stl-ui-inverse-foreground);
492
-
493
- /* Grayscale */
494
-
495
- --sl-color-gray-1: var(--stl-ui-gray-800);
496
- --sl-color-gray-2: var(--stl-ui-gray-700);
497
- --sl-color-gray-3: var(--stl-ui-gray-600);
498
- --sl-color-gray-4: var(--stl-ui-gray-500);
499
- --sl-color-gray-5: var(--stl-ui-gray-400);
500
- --sl-color-gray-6: var(--stl-ui-gray-300);
501
- --sl-color-gray-7: var(--stl-ui-gray-200);
502
- --sl-color-gray-8: var(--stl-ui-gray-100);
503
- --sl-color-gray-9: var(--stl-ui-gray-50);
504
-
505
- /* Accent colors */
506
-
507
- --sl-color-accent-low: var(--stl-ui-swatch-accent-faint);
508
- --sl-color-accent: var(--stl-ui-swatch-accent-base);
509
- --sl-color-accent-high: var(--stl-ui-swatch-accent-base);
510
-
511
- /* Primary colors */
512
- --sl-color-red-low: var(--stl-ui-swatch-red-faint);
513
- --sl-color-red: var(--stl-ui-swatch-red-base);
514
- --sl-color-red-high: var(--stl-ui-swatch-red-base);
515
-
516
- --sl-color-green-low: var(--stl-ui-swatch-green-faint);
517
- --sl-color-green: var(--stl-ui-swatch-green-base);
518
- --sl-color-green-high: var(--stl-ui-swatch-green-base);
519
-
520
- --sl-color-blue-low: var(--stl-ui-swatch-blue-faint);
521
- --sl-color-blue: var(--stl-ui-swatch-blue-base);
522
- --sl-color-blue-high: var(--stl-ui-swatch-blue-base);
523
-
524
- --sl-color-orange-low: var(--stl-ui-swatch-orange-faint);
525
- --sl-color-orange: var(--stl-ui-swatch-orange-base);
526
- --sl-color-orange-high: var(--stl-ui-swatch-orange-base);
527
-
528
- --sl-color-purple-low: var(--stl-ui-swatch-purple-faint);
529
- --sl-color-purple: var(--stl-ui-swatch-purple-base);
530
- --sl-color-purple-high: var(--stl-ui-swatch-purple-base);
531
-
532
- --sl-color-teal-low: var(--stl-ui-swatch-teal-faint);
533
- --sl-color-teal: var(--stl-ui-swatch-teal-base);
534
- --sl-color-teal-high: var(--stl-ui-swatch-teal-base);
535
-
536
- --sl-color-magenta-low: var(--stl-ui-swatch-pink-faint);
537
- --sl-color-magenta: var(--stl-ui-swatch-pink-base);
538
- --sl-color-magenta-high: var(--stl-ui-swatch-pink-base);
539
-
540
- --sl-color-yellow-low: var(--stl-ui-swatch-yellow-faint);
541
- --sl-color-yellow: var(--stl-ui-swatch-yellow-base);
542
- --sl-color-yellow-high: var(--stl-ui-swatch-yellow-base);
543
- }
544
-
545
- :root[data-theme='dark'] {
546
- --sl-color-gray-1: var(--stl-ui-gray-100);
547
- --sl-color-gray-2: var(--stl-ui-gray-200);
548
- --sl-color-gray-3: var(--stl-ui-gray-300);
549
- --sl-color-gray-4: var(--stl-ui-gray-400);
550
- --sl-color-gray-5: var(--stl-ui-gray-500);
551
- --sl-color-gray-6: var(--stl-ui-gray-600);
552
- --sl-color-gray-7: var(--stl-ui-gray-700);
553
- --sl-color-gray-8: var(--stl-ui-gray-800);
554
- --sl-color-gray-9: var(--stl-ui-gray-900);
555
- }
556
-
557
- /* Starlight Compatibility */
558
- .stl-ui-prose {
559
- /* TODO: Disable starlight headingLinks and replace with our own */
560
- /* Duplicate styles from h1–5 in typography; TODO: move to mixins after adopting preprocessor */
561
- .sl-heading-wrapper.level-h1 {
562
- font-size: var(--stl-ui-typography-text-h1);
563
- letter-spacing: -0.03em;
564
- margin-top: 64px;
565
- line-height: var(--stl-ui-typography-line-height-headings);
566
- }
567
- .sl-heading-wrapper.level-h2 {
568
- font-size: var(--stl-ui-typography-text-h2);
569
- letter-spacing: -0.03em;
570
- margin-top: 48px;
571
- line-height: var(--stl-ui-typography-line-height-headings);
572
- }
573
-
574
- .sl-heading-wrapper.level-h3 {
575
- font-size: var(--stl-ui-typography-text-h3);
576
- letter-spacing: -0.02em;
577
- margin-top: 40px;
578
- line-height: var(--stl-ui-typography-line-height-headings);
579
- }
580
- .sl-heading-wrapper.level-h4 {
581
- font-size: var(--stl-ui-typography-text-h4);
582
- letter-spacing: -0.02em;
583
- margin-top: 32px;
584
- line-height: var(--stl-ui-typography-line-height-headings);
585
- }
586
- .sl-heading-wrapper.level-h5 {
587
- font-size: var(--stl-ui-typography-text-h5);
588
- letter-spacing: -0.02em;
589
- margin-top: 24px;
590
- line-height: var(--stl-ui-typography-line-height-headings);
591
- }
592
- .sl-heading-wrapper {
593
- --sl-anchor-icon-size: 0.8em;
594
- }
595
- /* TODO: replace with an icon that matches Stainless branding */
596
- .sl-anchor-link svg {
597
- margin-top: 0;
598
- }
599
- }
600
-
601
- /* TODO: remove these */
602
- .stl-ui-prose {
603
- /* Tab component */
604
- starlight-tabs {
605
- a {
606
- text-decoration: none;
607
- line-height: unset;
608
- color: var(--stl-ui-foreground);
609
-
610
- &[aria-selected='true'] {
611
- color: var(--stl-ui-foreground-accent);
612
- font-weight: normal;
613
- }
614
- }
615
-
616
- ol,
617
- ul {
618
- &:not(.stl-ui-not-prose *) {
619
- padding-left: 0;
620
- }
621
- }
622
-
623
- li:not(.stl-ui-not-prose *) {
624
- margin-bottom: -2px;
625
- &:not(:last-child) {
626
- margin-bottom: -2px;
627
- }
628
-
629
- a:first-child {
630
- display: flex;
631
- }
632
- }
633
- }
634
-
635
- /* Pagination Links */
636
-
637
- .pagination-links {
638
- a {
639
- color: var(--stl-ui-foreground);
640
- }
641
- }
642
-
643
- .starlight-aside {
644
- svg {
645
- margin-top: 0;
646
- }
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);
647
365
  }
648
366
  }
649
-
650
367
  .stl-ui-button {
651
- --stl-ui-button-color: var(--stl-ui-inverse-foreground);
652
- --stl-ui-button-background-color: var(--stl-ui-inverse-background);
653
- --stl-ui-button-background-color-hover: color-mix(
654
- in oklch,
655
- var(--stl-ui-inverse-background) 90%,
656
- var(--stl-ui-background)
657
- );
658
-
659
- --stl-ui-button-border-color: transparent;
660
- --stl-ui-button-border-color-hover: transparent;
661
-
662
- --stl-ui-button-height: 32px;
663
- --stl-ui-button-padding: 8px 10px;
664
- --stl-ui-button-border-radius: var(--stl-ui-layout-border-radius-sml);
665
- --stl-ui-button-line-height: 150%;
666
- --stl-ui-button-font-weight: 500;
667
- --stl-ui-button-font-size: var(--stl-ui-type-scale-text-sm);
668
- --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);
669
375
 
670
376
  cursor: pointer;
671
377
  display: inline-flex;
@@ -675,22 +381,12 @@ body {
675
381
  white-space: nowrap;
676
382
  flex-shrink: 0;
677
383
 
678
- height: var(--stl-ui-button-height);
679
- padding: var(--stl-ui-button-padding);
680
- border-radius: var(--stl-ui-button-border-radius);
681
- line-height: var(--stl-ui-button-line-height);
682
- font-weight: var(--stl-ui-button-font-weight);
683
- font-size: var(--stl-ui-button-font-size);
684
-
685
- border: 1px solid var(--stl-ui-button-border-color);
686
- font-family: var(--stl-ui-button-font-family);
687
-
688
- color: var(--stl-ui-button-color);
689
- 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);
690
387
 
691
388
  &:hover {
692
- background-color: var(--stl-ui-button-background-color-hover);
693
- border-color: var(--stl-ui-button-border-color-hover);
389
+ background-color: var(--stl-color-inverse-background-hover);
694
390
  }
695
391
 
696
392
  &[hidden] {
@@ -700,94 +396,79 @@ body {
700
396
 
701
397
  /* --- COLOR VARIANTS --- */
702
398
  .stl-ui-button--accent {
703
- --stl-ui-button-color: var(--stl-ui-accent-foreground);
704
- --stl-ui-button-background-color: var(--stl-ui-accent-background);
705
- --stl-ui-button-background-color-hover: color-mix(
706
- in oklch,
707
- var(--stl-ui-accent-background) 90%,
708
- var(--stl-ui-inverse-foreground)
709
- );
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
+ }
710
404
  }
711
405
 
712
406
  .stl-ui-button--accent-muted {
713
- --stl-ui-button-color: var(--stl-ui-accent-muted-foreground);
714
- --stl-ui-button-background-color: var(--stl-ui-accent-muted-background);
715
- --stl-ui-button-background-color-hover: color-mix(
716
- in oklch,
717
- var(--stl-ui-accent-background) 10%,
718
- var(--stl-ui-inverse-foreground)
719
- );
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
+ }
720
412
  }
721
413
 
722
414
  .stl-ui-button--muted {
723
- --stl-ui-button-color: var(--stl-ui-foreground);
724
- --stl-ui-button-background-color: var(--stl-ui-muted-background);
725
- --stl-ui-button-background-color-hover: color-mix(
726
- in oklch,
727
- var(--stl-ui-foreground) 10%,
728
- var(--stl-ui-inverse-foreground)
729
- );
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
+ }
730
420
  }
731
421
 
732
422
  .stl-ui-button--outline {
733
- --stl-ui-button-color: var(--stl-ui-foreground);
734
- --stl-ui-button-background-color: var(--stl-ui-card-background);
735
- --stl-ui-button-background-color-hover: color-mix(
736
- in oklch,
737
- var(--stl-ui-foreground) 5%,
738
- var(--stl-ui-inverse-foreground)
739
- );
740
- --stl-ui-button-border-color: var(--stl-ui-border);
741
- --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
+ }
742
429
  }
743
430
 
744
431
  .stl-ui-button--ghost {
745
- --stl-ui-button-color: var(--stl-ui-foreground);
746
- --stl-ui-button-background-color: transparent;
747
- --stl-ui-button-background-color-hover: color-mix(
748
- in oklch,
749
- var(--stl-ui-foreground) 5%,
750
- var(--stl-ui-inverse-foreground)
751
- );
432
+ color: var(--stl-color-foreground);
433
+ background-color: transparent;
434
+ &:hover {
435
+ background-color: var(--stl-color-background-hover);
436
+ }
752
437
  }
753
438
 
754
439
  .stl-ui-button--success {
755
- --stl-ui-button-color: var(--stl-ui-swatch-gray-white);
756
- --stl-ui-button-background-color: var(--stl-ui-swatch-green-base);
757
- --stl-ui-button-background-color-hover: color-mix(
758
- in oklch,
759
- var(--stl-ui-swatch-green-base) 90%,
760
- var(--stl-ui-inverse-foreground)
761
- );
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
+ }
762
445
  }
763
446
 
764
447
  .stl-ui-button--destructive {
765
- --stl-ui-button-color: var(--stl-ui-swatch-gray-white);
766
- --stl-ui-button-background-color: var(--stl-ui-swatch-red-base);
767
- --stl-ui-button-background-color-hover: color-mix(
768
- in oklch,
769
- var(--stl-ui-swatch-red-base) 90%,
770
- var(--stl-ui-inverse-foreground)
771
- );
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
+ }
772
453
  }
773
454
 
774
455
  /* --- SIZE VARIANTS --- */
775
456
  .stl-ui-button--size-sm {
776
- --stl-ui-button-height: 24px;
777
- --stl-ui-button-padding: 0 6px;
778
- --stl-ui-button-border-radius: var(--stl-ui-layout-border-radius-xs);
779
- --stl-ui-button-line-height: 100%;
780
- --stl-ui-button-font-weight: 500;
781
- --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);
782
463
  }
783
464
 
784
465
  .stl-ui-button--size-lg {
785
- --stl-ui-button-height: 40px;
786
- --stl-ui-button-padding: 8px 14px;
787
- --stl-ui-button-border-radius: var(--stl-ui-layout-border-radius);
788
- --stl-ui-button-line-height: 150%;
789
- --stl-ui-button-font-weight: 500;
790
- --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);
791
472
  }
792
473
 
793
474
  /* --- ICONS --- */
@@ -824,7 +505,7 @@ body {
824
505
  .stl-ui-button:not(:has(.stl-ui-button-label)):has(.stl-ui-button__icon:last-child):has(
825
506
  .stl-ui-button__icon:first-child
826
507
  ) {
827
- width: var(--stl-ui-button-height);
508
+ aspect-ratio: 1 / 1;
828
509
 
829
510
  .stl-ui-button__icon {
830
511
  margin-left: -4px;
@@ -840,11 +521,12 @@ a.stl-ui-button {
840
521
  }
841
522
 
842
523
  .stl-ui-dropdown {
843
- --stl-ui-dropdown-button-color: var(--stl-ui-foreground);
844
- --stl-ui-dropdown-button-background-color: var(--stl-ui-card-background);
845
- --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
+
846
528
  --stl-ui-dropdown-button-border-radius: var(--stl-ui-layout-border-radius-sml);
847
- --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);
848
530
 
849
531
  --stl-ui-dropdown-button-height: 32px;
850
532
  --stl-ui-dropdown-button-padding: 0 10px;
@@ -861,7 +543,7 @@ a.stl-ui-button {
861
543
 
862
544
  hr {
863
545
  --stl-ui-dropdown-button__divider-height: 1px;
864
- --stl-ui-dropdown-button__divider-color: var(--stl-ui-border);
546
+ --stl-ui-dropdown-button__divider-color: var(--stl-color-border);
865
547
 
866
548
  height: var(--stl-ui-dropdown-button__divider-height);
867
549
  background-color: var(--stl-ui-dropdown-button__divider-color);
@@ -892,8 +574,7 @@ a.stl-ui-button {
892
574
  }
893
575
 
894
576
  &:hover {
895
- background-color: oklch(from var(--stl-ui-foreground) l c h / 0.05);
896
- border-color: var(--stl-ui-border-emphasis);
577
+ background-color: var(--stl-color-ui-background-hover);
897
578
  }
898
579
 
899
580
  .stl-ui-dropdown__trigger-icon {
@@ -925,29 +606,30 @@ a.stl-ui-button {
925
606
  gap: 8px;
926
607
  border-top-right-radius: 0;
927
608
  border-bottom-right-radius: 0;
928
- margin-right: -1px;
609
+ border-right-width: 0;
929
610
 
930
611
  &:hover {
931
- background-color: oklch(from var(--stl-ui-foreground) l c h / 0.05);
932
- border-color: var(--stl-ui-border-emphasis);
612
+ background-color: var(--stl-color-ui-background-hover);
933
613
  z-index: 1;
614
+ border-right-width: 1px;
615
+ & + .stl-ui-dropdown-button__trigger {
616
+ border-left-width: 0;
617
+ }
934
618
  }
935
619
 
936
620
  &.disabled {
937
621
  cursor: not-allowed;
938
- background-color: oklch(from var(--stl-ui-foreground) l c h / 0.05);
622
+ background-color: var(--stl-color-ui-background);
939
623
  }
940
624
  }
941
625
 
942
626
  .stl-ui-dropdown-button__trigger {
943
- border-left: 1px solid var(--stl-ui-border);
944
627
  border-radius: 0;
945
628
  border-top-right-radius: var(--stl-ui-dropdown-button-border-radius);
946
629
  border-bottom-right-radius: var(--stl-ui-dropdown-button-border-radius);
947
630
 
948
631
  &:hover {
949
- background-color: oklch(from var(--stl-ui-foreground) l c h / 0.05);
950
- border-color: var(--stl-ui-border-emphasis);
632
+ background-color: var(--stl-color-ui-background-hover);
951
633
  }
952
634
  }
953
635
 
@@ -961,12 +643,19 @@ a.stl-ui-button {
961
643
  * Dropdown Menu
962
644
  */
963
645
  .stl-ui-dropdown-menu {
964
- --stl-ui-dropdown-menu-background-color: var(--stl-ui-card-background);
965
- --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);
966
648
  --stl-ui-dropdown-menu-box-shadow: var(--stl-ui-shadow-md);
967
649
  --stl-ui-dropdown-menu-border-radius: var(--stl-ui-layout-border-radius-sml);
968
650
 
969
- 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
+
970
659
  border: 1px solid var(--stl-ui-dropdown-menu-border-color);
971
660
  box-shadow: var(--stl-ui-dropdown-menu-box-shadow);
972
661
  border-radius: var(--stl-ui-dropdown-menu-border-radius);
@@ -998,7 +687,7 @@ a.stl-ui-button {
998
687
  --stl-ui-dropdown-menu__item-border-radius: var(--stl-ui-dropdown-button-border-radius);
999
688
  --stl-ui-dropdown-menu__item-height: var(--stl-ui-dropdown-button-height);
1000
689
  --stl-ui-dropdown-menu__item-line-height: var(--stl-ui-dropdown-button-line-height);
1001
- --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);
1002
691
 
1003
692
  border-radius: var(--stl-ui-dropdown-menu__item-border-radius);
1004
693
  height: var(--stl-ui-dropdown-menu__item-height);
@@ -1023,7 +712,7 @@ a.stl-ui-button {
1023
712
  &:hover,
1024
713
  &:focus-visible,
1025
714
  &:focus {
1026
- color: var(--stl-ui-foreground);
715
+ color: var(--stl-color-foreground);
1027
716
  }
1028
717
 
1029
718
  &.stl-ui-dropdown-menu__item-link {
@@ -1034,7 +723,7 @@ a.stl-ui-button {
1034
723
  width: 100%;
1035
724
 
1036
725
  &:hover {
1037
- color: var(--stl-ui-foreground);
726
+ color: var(--stl-color-foreground);
1038
727
  }
1039
728
  }
1040
729
 
@@ -1053,16 +742,16 @@ a.stl-ui-button {
1053
742
  }
1054
743
 
1055
744
  .stl-ui-dropdown-menu__item-text--subtle {
1056
- color: var(--stl-ui-foreground-muted);
745
+ color: var(--stl-color-foreground-muted);
1057
746
  }
1058
747
 
1059
748
  strong {
1060
- color: var(--stl-ui-foreground);
749
+ color: var(--stl-color-foreground);
1061
750
  font-weight: 500;
1062
751
  }
1063
752
 
1064
753
  .stl-ui-dropdown-menu__item-subtle-icon {
1065
- --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);
1066
755
 
1067
756
  svg {
1068
757
  color: var(--stl-ui-dropdown-menu__item-subtle-icon-color);
@@ -1073,26 +762,25 @@ a.stl-ui-button {
1073
762
  }
1074
763
 
1075
764
  .stl-ui-callout {
1076
- --stl-ui-callout-background-color: var(--stl-ui-muted-background);
1077
- --stl-ui-callout-border-color: var(--stl-ui-border);
1078
- --stl-ui-callout-accent-color: var(--stl-ui-foreground-muted);
1079
- --stl-ui-callout-strong-color: var(--stl-ui-callout-accent-color);
1080
- --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);
1081
768
 
1082
769
  border: 1px solid var(--stl-ui-callout-border-color);
1083
770
  background-color: var(--stl-ui-callout-background-color);
1084
771
  border-radius: var(--stl-ui-layout-border-radius);
1085
772
  padding: 12px;
1086
- line-height: var(--stl-ui-typography-line-height);
773
+ line-height: var(--stl-typography-line-height);
1087
774
  font-weight: 400;
1088
- font-size: var(--stl-ui-typography-text-body);
775
+ font-size: var(--stl-typography-text-body);
776
+ color: var(--stl-color-foreground);
1089
777
 
1090
778
  display: flex;
1091
779
  align-items: flex-start;
1092
780
  gap: 8px;
1093
781
 
1094
782
  :where(a) {
1095
- color: var(--stl-ui-callout-strong-color);
783
+ color: var(--stl-ui-callout-strong-color, var(--stl-ui-callout-accent-color));
1096
784
  text-decoration-color: rgba(from currentColor r g b / 0.4);
1097
785
  transition: text-decoration-color 0.1s ease;
1098
786
  &:hover {
@@ -1101,52 +789,49 @@ a.stl-ui-button {
1101
789
  }
1102
790
 
1103
791
  ::selection {
1104
- background-color: var(--stl-ui-callout-selection-background);
1105
- 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);
1106
797
  }
1107
798
  }
1108
799
 
1109
800
  .stl-ui-callout--info {
1110
- --stl-ui-callout-background-color: var(--stl-ui-muted-background);
1111
- --stl-ui-callout-border-color: var(--stl-ui-border);
1112
- --stl-ui-callout-accent-color: var(--stl-ui-foreground-muted);
1113
- --stl-ui-callout-strong-color: var(--stl-ui-foreground);
1114
- --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);
1115
805
  }
1116
806
 
1117
807
  .stl-ui-callout--note {
1118
- --stl-ui-callout-background-color: var(--stl-ui-swatch-blue-faint);
1119
- --stl-ui-callout-border-color: var(--stl-ui-swatch-blue-muted);
1120
- --stl-ui-callout-accent-color: var(--stl-ui-swatch-blue-base);
1121
- --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);
1122
811
  }
1123
812
 
1124
813
  .stl-ui-callout--tip {
1125
- --stl-ui-callout-background-color: var(--stl-ui-swatch-purple-faint);
1126
- --stl-ui-callout-border-color: var(--stl-ui-swatch-purple-muted);
1127
- --stl-ui-callout-accent-color: var(--stl-ui-swatch-purple-base);
1128
- --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);
1129
817
  }
1130
818
 
1131
819
  .stl-ui-callout--success {
1132
- --stl-ui-callout-background-color: var(--stl-ui-swatch-green-faint);
1133
- --stl-ui-callout-border-color: var(--stl-ui-swatch-green-muted);
1134
- --stl-ui-callout-accent-color: var(--stl-ui-swatch-green-base);
1135
- --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);
1136
823
  }
1137
824
 
1138
825
  .stl-ui-callout--warning {
1139
- --stl-ui-callout-background-color: var(--stl-ui-swatch-yellow-faint);
1140
- --stl-ui-callout-border-color: var(--stl-ui-swatch-yellow-muted);
1141
- --stl-ui-callout-accent-color: var(--stl-ui-swatch-yellow-base);
1142
- --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);
1143
829
  }
1144
830
 
1145
831
  .stl-ui-callout--danger {
1146
- --stl-ui-callout-background-color: var(--stl-ui-swatch-red-faint);
1147
- --stl-ui-callout-border-color: var(--stl-ui-swatch-red-muted);
1148
- --stl-ui-callout-accent-color: var(--stl-ui-swatch-red-base);
1149
- --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);
1150
835
  }
1151
836
 
1152
837
  .stl-ui-callout__icon {
@@ -1184,20 +869,20 @@ a.stl-ui-button {
1184
869
  --stl-ui-accordion-content-padding-bottom: 4px;
1185
870
  --stl-ui-accordion-marker-size: 1em;
1186
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);
1187
873
  --stl-ui-accordion-row-gap: 8px;
1188
874
  --stl-ui-accordion-summary-column-gap: 8px;
1189
875
  --stl-ui-accordion-border-radius: var(--stl-ui-layout-border-radius);
1190
- --stl-ui-accordion-hover-film-color: oklch(from var(--stl-ui-foreground) l c h / 0.03);
1191
876
  /* left inset to make content line up with summary content (after chevron) */
1192
877
  --stl-ui--internal--accordion-padding-start: calc(
1193
878
  var(--stl-ui-accordion-padding) + var(--stl-ui-accordion-marker-size) +
1194
879
  var(--stl-ui-accordion-marker-margin) * 2 + var(--stl-ui-accordion-summary-column-gap)
1195
880
  );
1196
881
 
1197
- background-color: var(--stl-ui-card-background);
1198
- border: 1px solid var(--stl-ui-border);
882
+ background-color: var(--stl-color-ui-background);
883
+ border: 1px solid var(--stl-color-border);
1199
884
  border-radius: var(--stl-ui-accordion-border-radius);
1200
- font-size: var(--stl-ui-typography-text-body);
885
+ font-size: var(--stl-typography-text-body);
1201
886
 
1202
887
  padding: var(--stl-ui-accordion-padding);
1203
888
  /* indent content to line up with left edge of summary content */
@@ -1223,7 +908,7 @@ a.stl-ui-button {
1223
908
  width: var(--stl-ui-accordion-marker-size);
1224
909
  height: var(--stl-ui-accordion-marker-size);
1225
910
  margin: var(--stl-ui-accordion-marker-margin);
1226
- background-color: currentColor;
911
+ background-color: var(--stl-ui-accordion-marker-color);
1227
912
  display: block;
1228
913
  position: absolute;
1229
914
  --stl-ui-accordion--internal--marker-width: calc(
@@ -1250,7 +935,7 @@ a.stl-ui-button {
1250
935
  }
1251
936
 
1252
937
  &[open] {
1253
- border-color: var(--stl-ui-border-emphasis);
938
+ border-color: var(--stl-color-border-strong);
1254
939
  padding-bottom: calc(var(--stl-ui-accordion-padding) + var(--stl-ui-accordion-content-padding-bottom));
1255
940
 
1256
941
  & > .stl-ui-accordion__summary {
@@ -1271,12 +956,7 @@ a.stl-ui-button {
1271
956
  }
1272
957
 
1273
958
  &:has(> .stl-ui-accordion__summary:hover) {
1274
- background-image: linear-gradient(
1275
- to bottom,
1276
- var(--stl-ui-accordion-hover-film-color),
1277
- var(--stl-ui-accordion-hover-film-color)
1278
- );
1279
- border-color: var(--stl-ui-border-emphasis);
959
+ background-color: var(--stl-color-ui-background-hover);
1280
960
  }
1281
961
 
1282
962
  & > .stl-ui-accordion__summary + * {
@@ -1284,6 +964,8 @@ a.stl-ui-button {
1284
964
  }
1285
965
  }
1286
966
 
967
+ /* Groups */
968
+
1287
969
  .stl-ui-accordion-group {
1288
970
  & > .stl-ui-accordion:has(+ .stl-ui-accordion) {
1289
971
  border-bottom-left-radius: 0;
@@ -1306,11 +988,25 @@ a.stl-ui-button {
1306
988
  }
1307
989
  }
1308
990
 
1309
- .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] {
1310
1005
  border-top-width: 1px;
1311
- margin-top: -1px;
1312
1006
  }
1313
1007
  }
1314
1008
 
1009
+ /* design system variables */
1315
1010
 
1011
+ /* components */
1316
1012