@korioinc/next-core 2.0.47 → 2.0.49

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.
@@ -2,7 +2,7 @@
2
2
  @import 'tw-animate-css';
3
3
 
4
4
  /* Include all core package components and auth modules */
5
- @source "../**/*.{ts,tsx,js,jsx}";
5
+ @source '../**/*.{ts,tsx,js,jsx}';
6
6
 
7
7
  /************************************************************/
8
8
  /* font */
@@ -47,6 +47,7 @@
47
47
  --color-accent: var(--accent);
48
48
  --color-accent-foreground: var(--accent-foreground);
49
49
  --color-destructive: var(--destructive);
50
+ --color-destructive-foreground: var(--destructive-foreground);
50
51
  --color-border: var(--border);
51
52
  --color-input: var(--input);
52
53
  --color-ring: var(--ring);
@@ -72,8 +73,9 @@
72
73
  --color-selection: var(--selection);
73
74
  --color-selection-foreground: var(--selection-foreground);
74
75
  --color-glass: var(--glass);
75
- --color-glass-tinted: var(--glass-tinted);
76
- --color-glass-glow: var(--glass-glow);
76
+ --color-glass-surface: var(--glass-surface);
77
+ --color-glass-interactive: var(--glass-interactive);
78
+ --color-glass-selected: var(--glass-selected);
77
79
  }
78
80
 
79
81
  :root {
@@ -83,8 +85,8 @@
83
85
  --card-foreground: oklch(0.145 0 0);
84
86
  --popover: oklch(1 0 0);
85
87
  --popover-foreground: oklch(0.145 0 0);
86
- --primary: oklch(0.205 0 0);
87
- --primary-foreground: oklch(0.985 0 0);
88
+ --primary: oklch(0.541 0.175 293);
89
+ --primary-foreground: oklch(1 0 0);
88
90
  --secondary: oklch(0.97 0 0);
89
91
  --secondary-foreground: oklch(0.205 0 0);
90
92
  --muted: oklch(0.97 0 0);
@@ -92,22 +94,23 @@
92
94
  --accent: oklch(0.97 0 0);
93
95
  --accent-foreground: oklch(0.205 0 0);
94
96
  --destructive: oklch(0.577 0.245 27.325);
97
+ --destructive-foreground: oklch(1 0 0);
95
98
  --border: oklch(0.922 0 0);
96
99
  --input: oklch(0.922 0 0);
97
- --ring: oklch(0.708 0 0);
98
- --chart-1: var(--color-blue-300);
99
- --chart-2: var(--color-blue-500);
100
- --chart-3: var(--color-blue-600);
101
- --chart-4: var(--color-blue-700);
102
- --chart-5: var(--color-blue-800);
100
+ --ring: oklch(0.541 0.175 293);
101
+ --chart-1: oklch(0.541 0.175 293);
102
+ --chart-2: oklch(0.623 0.18 255);
103
+ --chart-3: oklch(0.715 0.132 195);
104
+ --chart-4: oklch(0.696 0.155 163);
105
+ --chart-5: oklch(0.828 0.157 84);
103
106
  --sidebar: oklch(0.985 0 0);
104
107
  --sidebar-foreground: oklch(0.145 0 0);
105
- --sidebar-primary: oklch(0.205 0 0);
106
- --sidebar-primary-foreground: oklch(0.985 0 0);
108
+ --sidebar-primary: var(--primary);
109
+ --sidebar-primary-foreground: var(--primary-foreground);
107
110
  --sidebar-accent: oklch(0.97 0 0);
108
111
  --sidebar-accent-foreground: oklch(0.205 0 0);
109
112
  --sidebar-border: oklch(0.922 0 0);
110
- --sidebar-ring: oklch(0.708 0 0);
113
+ --sidebar-ring: var(--ring);
111
114
  --surface: oklch(0.98 0 0);
112
115
  --surface-foreground: var(--foreground);
113
116
  --code: var(--surface);
@@ -116,33 +119,61 @@
116
119
  --code-number: oklch(0.56 0 0);
117
120
  --selection: oklch(0.145 0 0);
118
121
  --selection-foreground: oklch(1 0 0);
119
- --radius: 0.625rem;
122
+ --radius: 1rem;
120
123
 
121
124
  /************************************************************/
122
- /* liquid glass (light) */
125
+ /* liquid glass surface inputs (light) */
123
126
  /************************************************************/
124
- --glass: oklch(0.8985 0.0271 250 / 0.22);
125
- --glass-tinted: oklch(0.8764 0.0271 255 / 0.32);
126
- --glass-glow: oklch(0.65 0.18 250 / 0.32);
127
- --glass-surface: oklch(0.962 0.014 250 / 0.42);
128
- --glass-surface-tinted: oklch(0.975 0.018 255 / 0.52);
129
- --glass-surface-glow: var(--glass-surface);
130
- --glass-border: oklch(0.92 0.02 250 / 0.78);
131
- --glass-border-subtle: oklch(0.88 0.015 250 / 0.5);
132
- --glass-shine: oklch(1 0 0 / 1);
133
- --glass-shine-subtle: oklch(1 0 0 / 0.88);
134
- --glass-shadow-color: oklch(0.25 0.02 250 / 0.08);
135
- --glass-shadow-ambient: oklch(0.35 0.015 250 / 0.055);
136
- --glass-blur: 8px;
137
-
138
- --mesh-1: oklch(0.6008 0.1493 249.6 / 0.251);
139
- --mesh-2: oklch(0.6498 0.1201 300.4 / 0.2);
140
- --mesh-3: oklch(0.7 0.1201 220.3 / 0.18);
141
- --mesh-4: oklch(0.5994 0.1998 320.1 / 0.302);
142
-
143
- --aurora-1: oklch(0.6496 0.1802 250.1 / 0.451);
144
- --aurora-2: oklch(0.7006 0.1494 279.7 / 0.4);
145
- --aurora-3: oklch(0.7492 0.1199 200.4 / 0.349);
127
+ --glass: oklch(0.968 0.007 247 / 0.3);
128
+ --glass-subtle: oklch(0.968 0.007 247 / 0.18);
129
+ --glass-surface: oklch(0.968 0.007 247 / 0.42);
130
+ --glass-strong: oklch(0.992 0.004 247 / 0.74);
131
+ --glass-interactive: oklch(0.92 0.006 247 / 0.35);
132
+ --glass-selected: oklch(0.93 0.006 247 / 0.5);
133
+ --glass-disabled: oklch(0.9 0.006 247 / 0.25);
134
+ --glass-border-faint: oklch(0.929 0.013 255 / 0.16);
135
+ --glass-border-subtle: oklch(0.929 0.013 255 / 0.24);
136
+ --glass-border: oklch(0.929 0.013 255 / 0.28);
137
+ --glass-border-medium: oklch(0.929 0.013 255 / 0.44);
138
+ --glass-border-strong: oklch(0.929 0.013 255 / 0.6);
139
+ --glass-rim-highlight: oklch(1 0 0 / 0.88);
140
+ --glass-edge-highlight-offset: 1.75px;
141
+ --glass-edge-highlight-spread: -0.75px;
142
+ --glass-contrast-outline: oklch(0.2 0.012 255 / 0.055);
143
+ --glass-shadow-color: oklch(0.23 0.018 255 / 0.08);
144
+ --glass-shadow-sm: 0 0.375px 0.75px oklch(0.23 0.018 255 / 0.055), 0 1.75px 3.5px var(--glass-shadow-color);
145
+ --glass-shadow-md: 0 0.5px 1px oklch(0.23 0.018 255 / 0.055), 0 4px 9px var(--glass-shadow-color);
146
+ --glass-shadow-lg: 0 1px 3px oklch(0.23 0.018 255 / 0.06), 0 6px 14px var(--glass-shadow-color);
147
+ --glass-texture-subtle:
148
+ linear-gradient(180deg, oklch(1 0 0 / 0.22) 0%, oklch(1 0 0 / 0.08) 18%, transparent 58%),
149
+ linear-gradient(115deg, oklch(1 0 0 / 0.1) 0%, transparent 36%, oklch(1 0 0 / 0.04) 100%),
150
+ radial-gradient(140% 120% at 18% 0%, oklch(1 0 0 / 0.12), transparent 46%);
151
+ --glass-texture:
152
+ linear-gradient(180deg, oklch(1 0 0 / 0.44) 0%, oklch(1 0 0 / 0.16) 18%, transparent 58%),
153
+ linear-gradient(115deg, oklch(1 0 0 / 0.18) 0%, transparent 36%, oklch(1 0 0 / 0.08) 100%),
154
+ radial-gradient(140% 120% at 18% 0%, oklch(1 0 0 / 0.22), transparent 46%);
155
+ --glass-texture-strong:
156
+ linear-gradient(180deg, oklch(1 0 0 / 0.58) 0%, oklch(1 0 0 / 0.24) 20%, transparent 60%),
157
+ linear-gradient(115deg, oklch(1 0 0 / 0.26) 0%, transparent 34%, oklch(1 0 0 / 0.12) 100%),
158
+ radial-gradient(140% 120% at 18% 0%, oklch(1 0 0 / 0.3), transparent 46%);
159
+ --glass-fallback: oklch(0.968 0.007 247 / 0.88);
160
+ --glass-subtle-fallback: oklch(0.968 0.007 247 / 0.78);
161
+ --glass-surface-fallback: oklch(0.968 0.007 247 / 0.94);
162
+ --glass-selected-fallback: oklch(0.94 0.006 247 / 0.96);
163
+ --glass-strong-fallback: oklch(0.968 0.007 247 / 0.99);
164
+ --glass-disabled-fallback: oklch(0.92 0.006 247 / 0.94);
165
+ --glass-backdrop-sm: blur(4px) saturate(180%);
166
+ --glass-backdrop-md: blur(8px) saturate(180%);
167
+ --glass-backdrop-lg: blur(16px) saturate(180%);
168
+
169
+ --mesh-1: oklch(0.6008 0.1493 249.6 / 0.1053);
170
+ --mesh-2: oklch(0.6498 0.1201 300.4 / 0.0839);
171
+ --mesh-3: oklch(0.7 0.1201 220.3 / 0.0632);
172
+ --mesh-4: oklch(0.5994 0.1998 320.1 / 0.1262);
173
+
174
+ --aurora-1: oklch(0.6496 0.1802 250.1 / 0.1682);
175
+ --aurora-2: oklch(0.7006 0.1494 279.7 / 0.1682);
176
+ --aurora-3: oklch(0.7492 0.1199 200.4 / 0.1262);
146
177
 
147
178
  --noise-opacity: 0.025;
148
179
  }
@@ -154,8 +185,8 @@
154
185
  --card-foreground: oklch(0.985 0 0);
155
186
  --popover: oklch(0.269 0 0);
156
187
  --popover-foreground: oklch(0.985 0 0);
157
- --primary: oklch(0.922 0 0);
158
- --primary-foreground: oklch(0.205 0 0);
188
+ --primary: oklch(0.666 0.159 303);
189
+ --primary-foreground: oklch(0.129 0.042 264);
159
190
  --secondary: oklch(0.269 0 0);
160
191
  --secondary-foreground: oklch(0.985 0 0);
161
192
  --muted: oklch(0.269 0 0);
@@ -163,22 +194,23 @@
163
194
  --accent: oklch(0.371 0 0);
164
195
  --accent-foreground: oklch(0.985 0 0);
165
196
  --destructive: oklch(0.704 0.191 22.216);
197
+ --destructive-foreground: oklch(0.985 0 0);
166
198
  --border: oklch(1 0 0 / 10%);
167
199
  --input: oklch(1 0 0 / 15%);
168
- --ring: oklch(0.556 0 0);
169
- --chart-1: var(--color-blue-300);
170
- --chart-2: var(--color-blue-500);
171
- --chart-3: var(--color-blue-600);
172
- --chart-4: var(--color-blue-700);
173
- --chart-5: var(--color-blue-800);
200
+ --ring: oklch(0.627 0.159 291);
201
+ --chart-1: oklch(0.666 0.159 303);
202
+ --chart-2: oklch(0.623 0.18 255);
203
+ --chart-3: oklch(0.715 0.132 195);
204
+ --chart-4: oklch(0.765 0.147 163);
205
+ --chart-5: oklch(0.828 0.157 84);
174
206
  --sidebar: oklch(0.205 0 0);
175
207
  --sidebar-foreground: oklch(0.985 0 0);
176
- --sidebar-primary: oklch(0.488 0.243 264.376);
177
- --sidebar-primary-foreground: oklch(0.985 0 0);
208
+ --sidebar-primary: var(--primary);
209
+ --sidebar-primary-foreground: var(--primary-foreground);
178
210
  --sidebar-accent: oklch(0.269 0 0);
179
211
  --sidebar-accent-foreground: oklch(0.985 0 0);
180
212
  --sidebar-border: oklch(1 0 0 / 10%);
181
- --sidebar-ring: oklch(0.439 0 0);
213
+ --sidebar-ring: var(--ring);
182
214
  --surface: oklch(0.2 0 0);
183
215
  --surface-foreground: oklch(0.708 0 0);
184
216
  --code: var(--surface);
@@ -189,32 +221,60 @@
189
221
  --selection-foreground: oklch(0.205 0 0);
190
222
 
191
223
  /************************************************************/
192
- /* liquid glass (dark) */
224
+ /* liquid glass surface inputs (dark) */
193
225
  /************************************************************/
194
- --glass: oklch(0.32 0.0198 252.2 / 0.52);
195
- --glass-tinted: oklch(0.36 0.0206 254.9 / 0.62);
196
- --glass-glow: oklch(0.6991 0.1648 249.1 / 0.302);
197
- --glass-surface: oklch(0.1792 0.0198 252.2 / 0.42);
198
- --glass-surface-tinted: oklch(0.2195 0.0206 254.9 / 0.52);
199
- --glass-surface-glow: var(--glass-surface);
200
- --glass-border: oklch(1 0 0 / 0.122);
201
- --glass-border-subtle: oklch(1 0 0 / 0.078);
202
- --glass-shine: oklch(1 0 0 / 0.149);
203
- --glass-shine-subtle: oklch(1 0 0 / 0.078);
204
- --glass-shadow-color: oklch(0 0 0 / 0.21);
205
- --glass-shadow-ambient: oklch(0 0 0 / 0.11);
206
- --glass-blur: 8px;
207
-
208
- --mesh-1: oklch(0.4035 0.121 252.1 / 0.349);
209
- --mesh-2: oklch(0.4504 0.1802 299.9 / 0.302);
210
- --mesh-3: oklch(0.5014 0.0917 220.6 / 0.251);
211
- --mesh-4: oklch(0.5016 0.2405 320.2 / 0.349);
212
-
213
- --aurora-1: oklch(0.5057 0.1589 253.6 / 0.502);
214
- --aurora-2: oklch(0.4499 0.2002 280 / 0.451);
215
- --aurora-3: oklch(0.5581 0.0949 201.4 / 0.4);
216
-
217
- --noise-opacity: 0.035;
226
+ --glass: oklch(1 0 0 / 0.03);
227
+ --glass-subtle: oklch(1 0 0 / 0.015);
228
+ --glass-surface: oklch(1 0 0 / 0.07);
229
+ --glass-strong: oklch(1 0 0 / 0.25);
230
+ --glass-interactive: oklch(1 0 0 / 0.205);
231
+ --glass-selected: oklch(1 0 0 / 0.23);
232
+ --glass-disabled: oklch(1 0 0 / 0.06);
233
+ --glass-border-faint: oklch(1 0 0 / 0.03);
234
+ --glass-border-subtle: oklch(1 0 0 / 0.06);
235
+ --glass-border: oklch(1 0 0 / 0.07);
236
+ --glass-border-medium: oklch(1 0 0 / 0.12);
237
+ --glass-border-strong: oklch(1 0 0 / 0.18);
238
+ --glass-rim-highlight: oklch(1 0 0 / 0.25);
239
+ --glass-edge-highlight-offset: 1.25px;
240
+ --glass-edge-highlight-spread: -0.25px;
241
+ --glass-contrast-outline: oklch(0 0 0 / 0.25);
242
+ --glass-shadow-color: oklch(0 0 0 / 0.2);
243
+ --glass-shadow-sm: 0 1.5px 6px var(--glass-shadow-color), 0 0.375px 0.75px var(--glass-shadow-color);
244
+ --glass-shadow-md: 0 4px 16px var(--glass-shadow-color), 0 0.5px 1px var(--glass-shadow-color);
245
+ --glass-shadow-lg: 0 6px 22px var(--glass-shadow-color), 0 1px 3px var(--glass-shadow-color);
246
+ --glass-texture-subtle:
247
+ linear-gradient(180deg, oklch(1 0 0 / 0.16) 0%, oklch(1 0 0 / 0.05) 18%, transparent 56%),
248
+ linear-gradient(115deg, oklch(1 0 0 / 0.08) 0%, transparent 38%, oklch(1 0 0 / 0.03) 100%),
249
+ radial-gradient(140% 120% at 18% 0%, oklch(1 0 0 / 0.08), transparent 48%);
250
+ --glass-texture:
251
+ linear-gradient(180deg, oklch(1 0 0 / 0.3) 0%, oklch(1 0 0 / 0.1) 18%, transparent 56%),
252
+ linear-gradient(115deg, oklch(1 0 0 / 0.16) 0%, transparent 38%, oklch(1 0 0 / 0.06) 100%),
253
+ radial-gradient(140% 120% at 18% 0%, oklch(1 0 0 / 0.16), transparent 48%);
254
+ --glass-texture-strong:
255
+ linear-gradient(180deg, oklch(1 0 0 / 0.42) 0%, oklch(1 0 0 / 0.16) 20%, transparent 58%),
256
+ linear-gradient(115deg, oklch(1 0 0 / 0.22) 0%, transparent 36%, oklch(1 0 0 / 0.08) 100%),
257
+ radial-gradient(140% 120% at 18% 0%, oklch(1 0 0 / 0.22), transparent 48%);
258
+ --glass-fallback: oklch(0.208 0.042 265 / 0.9);
259
+ --glass-subtle-fallback: oklch(0.208 0.042 265 / 0.82);
260
+ --glass-surface-fallback: oklch(0.208 0.042 265 / 0.85);
261
+ --glass-selected-fallback: oklch(0.208 0.042 265 / 0.76);
262
+ --glass-strong-fallback: oklch(0.208 0.042 265 / 0.75);
263
+ --glass-disabled-fallback: oklch(0.12 0.012 265 / 0.9);
264
+ --glass-backdrop-sm: blur(4px) saturate(180%);
265
+ --glass-backdrop-md: blur(8px) saturate(180%);
266
+ --glass-backdrop-lg: blur(16px) saturate(180%);
267
+
268
+ --mesh-1: oklch(0.4035 0.121 252.1 / 0.1109);
269
+ --mesh-2: oklch(0.4504 0.1802 299.9 / 0.0884);
270
+ --mesh-3: oklch(0.5014 0.0917 220.6 / 0.0664);
271
+ --mesh-4: oklch(0.5016 0.2405 320.2 / 0.0221);
272
+
273
+ --aurora-1: oklch(0.5057 0.1589 253.6 / 0.1109);
274
+ --aurora-2: oklch(0.4499 0.2002 280 / 0.1109);
275
+ --aurora-3: oklch(0.5581 0.0949 201.4 / 0.0884);
276
+
277
+ --noise-opacity: 0.02;
218
278
  }
219
279
 
220
280
  @layer base {
@@ -225,6 +285,7 @@
225
285
  @apply bg-selection text-selection-foreground;
226
286
  }
227
287
  body {
288
+ @apply bg-background text-foreground;
228
289
  font-synthesis-weight: none;
229
290
  text-rendering: optimizeLegibility;
230
291
  }
@@ -275,132 +336,400 @@
275
336
  }
276
337
 
277
338
  /************************************************************/
278
- /* liquid glass */
339
+ /* liquid glass effect utilities */
279
340
  /************************************************************/
280
- @utility glass {
281
- background:
282
- linear-gradient(
283
- 135deg,
284
- color-mix(in oklab, var(--glass-shine) 12%, transparent) 0%,
285
- color-mix(in oklab, var(--glass-shine) 8%, transparent) 30%,
286
- color-mix(in oklab, var(--glass-shine) 4%, transparent) 70%,
287
- color-mix(in oklab, var(--glass-shine) 6%, transparent) 100%
288
- ),
289
- var(--glass-surface-slot, var(--glass-surface));
290
- box-shadow:
291
- 0 1px 2px var(--glass-shadow-ambient),
292
- 0 5px 10px var(--glass-shadow-color),
293
- inset 0 1px 0 var(--glass-shine-subtle);
294
- }
295
-
296
- @utility glass-overlay {
297
- backdrop-filter: blur(var(--glass-blur)) saturate(1.15);
298
- background-image:
299
- linear-gradient(
300
- 135deg,
301
- color-mix(in oklab, white 30%, transparent) 0%,
302
- color-mix(in oklab, white 18%, transparent) 30%,
303
- color-mix(in oklab, white 8%, transparent) 70%,
304
- color-mix(in oklab, white 22%, transparent) 100%
305
- ),
306
- radial-gradient(
307
- 120% 120% at 18% 0%,
308
- color-mix(in oklab, white 26%, transparent) 0%,
309
- transparent 48%
310
- );
341
+ @property --glass-border-slot {
342
+ syntax: '<color>';
343
+ inherits: false;
344
+ initial-value: transparent;
345
+ }
346
+
347
+ @property --glass-border-top-slot {
348
+ syntax: '<color>';
349
+ inherits: false;
350
+ initial-value: transparent;
351
+ }
352
+
353
+ @property --glass-edge-highlight {
354
+ syntax: '<color>';
355
+ inherits: false;
356
+ initial-value: transparent;
357
+ }
358
+
359
+ @property --glass-edge-outline {
360
+ syntax: '<color>';
361
+ inherits: false;
362
+ initial-value: transparent;
363
+ }
364
+
365
+ @property --glass-shadow-slot {
366
+ syntax: '*';
367
+ inherits: false;
368
+ initial-value: 0 0 #0000;
369
+ }
370
+
371
+ @utility glass-transparent {
372
+ background-clip: padding-box;
373
+ border-color: var(--glass-border-slot, transparent);
374
+ border-top-color: var(--glass-border-top-slot, var(--glass-border-slot, transparent));
311
375
  box-shadow:
312
- 0 1px 2px color-mix(in oklab, var(--glass-shadow-ambient) 60%, transparent),
313
- 0 6px 12px color-mix(in oklab, var(--glass-shadow-color) 55%, transparent),
314
- inset 0 1px 0 color-mix(in oklab, white 38%, transparent),
315
- inset 0 -1px 0 color-mix(in oklab, black 10%, transparent);
316
- filter: saturate(1.04) brightness(1.03);
376
+ var(--glass-shadow-slot, 0 0 #0000),
377
+ inset 0 var(--glass-edge-highlight-offset, 1.75px) 0 var(--glass-edge-highlight-spread, -0.75px)
378
+ var(--glass-edge-highlight, transparent),
379
+ inset 0 var(--glass-edge-outline-offset-slot, -0.5px) 0 var(--glass-edge-outline, transparent);
380
+ }
381
+
382
+ /* Surface utilities are glass entry points with owned background color. */
383
+ @utility glass {
384
+ @apply glass-transparent;
385
+ background-color: var(--glass);
386
+ }
387
+
388
+ @utility glass-subtle {
389
+ @apply glass-transparent;
390
+ background-color: var(--glass-subtle);
391
+ }
392
+
393
+ @utility glass-surface {
394
+ @apply glass-transparent;
395
+ background-color: var(--glass-surface);
396
+ }
397
+
398
+ @utility glass-strong {
399
+ @apply glass-transparent;
400
+ background-color: var(--glass-strong);
401
+ }
402
+
403
+ @utility glass-selected {
404
+ @apply glass-transparent;
405
+ background-color: var(--glass-selected);
406
+ }
407
+
408
+ @utility glass-disabled {
409
+ @apply glass-transparent;
410
+ background-color: var(--glass-disabled);
411
+ }
412
+
413
+ @utility glass-texture-subtle {
414
+ background-clip: padding-box;
415
+ background-image: var(--glass-texture-subtle);
416
+ background-blend-mode: screen, soft-light, screen;
417
+ }
418
+
419
+ @utility glass-texture {
420
+ background-clip: padding-box;
421
+ background-image: var(--glass-texture);
422
+ background-blend-mode: screen, soft-light, screen;
423
+ }
424
+
425
+ @utility glass-texture-strong {
426
+ background-clip: padding-box;
427
+ background-image: var(--glass-texture-strong);
428
+ background-blend-mode: screen, soft-light, screen;
429
+ }
430
+
431
+ @utility glass-border {
432
+ --glass-border-slot: var(--glass-border);
433
+ --glass-border-top-slot: var(--glass-border-slot);
434
+ --glass-edge-highlight: color-mix(in oklab, var(--glass-rim-highlight) 48%, transparent);
435
+ --glass-edge-outline: color-mix(in oklab, var(--glass-contrast-outline) 38%, transparent);
436
+ border-width: 1px;
437
+ border-style: solid;
438
+ border-color: var(--glass-border-slot);
439
+ border-top-color: var(--glass-border-top-slot);
317
440
 
318
441
  .dark & {
319
- background-image:
320
- linear-gradient(
321
- 180deg,
322
- color-mix(in oklab, black 22%, transparent) 0%,
323
- color-mix(in oklab, black 16%, transparent) 100%
324
- ),
325
- linear-gradient(
326
- 135deg,
327
- color-mix(in oklab, white 28%, transparent) 0%,
328
- color-mix(in oklab, white 16%, transparent) 30%,
329
- color-mix(in oklab, white 7%, transparent) 70%,
330
- color-mix(in oklab, white 20%, transparent) 100%
331
- ),
332
- radial-gradient(
333
- 120% 120% at 18% 0%,
334
- color-mix(in oklab, white 22%, transparent) 0%,
335
- transparent 44%
336
- );
337
- background-blend-mode: multiply, normal, normal;
338
- box-shadow:
339
- 0 2px 6px color-mix(in oklab, var(--glass-shadow-ambient) 65%, transparent),
340
- 0 10px 18px color-mix(in oklab, var(--glass-shadow-color) 65%, transparent),
341
- inset 0 1px 0 color-mix(in oklab, white 24%, transparent),
342
- inset 0 -1px 0 color-mix(in oklab, black 18%, transparent);
343
- filter: saturate(1.04) brightness(1.03);
442
+ --glass-border-top-slot: color-mix(in oklab, var(--glass-rim-highlight) 42%, transparent);
443
+ --glass-edge-highlight: color-mix(in oklab, var(--glass-rim-highlight) 42%, transparent);
444
+ --glass-edge-outline: var(--glass-border);
344
445
  }
345
446
  }
346
447
 
347
- @utility glass-tinted {
348
- --glass-surface-slot: var(--glass-surface-tinted);
349
- @apply glass;
448
+ @utility glass-border-faint {
449
+ --glass-border-slot: var(--glass-border-faint);
450
+ --glass-border-top-slot: var(--glass-border-slot);
451
+ --glass-edge-highlight: color-mix(in oklab, var(--glass-rim-highlight) 18%, transparent);
452
+ --glass-edge-outline: color-mix(in oklab, var(--glass-contrast-outline) 18%, transparent);
453
+ border-width: 1px;
454
+ border-style: solid;
455
+ border-color: var(--glass-border-slot);
456
+ border-top-color: var(--glass-border-top-slot);
457
+
458
+ .dark & {
459
+ --glass-border-top-slot: color-mix(in oklab, var(--glass-rim-highlight) 16%, transparent);
460
+ --glass-edge-highlight: color-mix(in oklab, var(--glass-rim-highlight) 16%, transparent);
461
+ --glass-edge-outline: var(--glass-border-faint);
462
+ }
350
463
  }
351
464
 
352
- @utility glass-glow {
353
- --glass-surface-slot: var(--glass-surface-glow);
354
- @apply glass;
465
+ @utility glass-border-subtle {
466
+ --glass-border-slot: var(--glass-border-subtle);
467
+ --glass-border-top-slot: var(--glass-border-slot);
468
+ --glass-edge-highlight: color-mix(in oklab, var(--glass-rim-highlight) 40%, transparent);
469
+ --glass-edge-outline: color-mix(in oklab, var(--glass-contrast-outline) 35%, transparent);
470
+ border-width: 1px;
471
+ border-style: solid;
472
+ border-color: var(--glass-border-slot);
473
+ border-top-color: var(--glass-border-top-slot);
474
+
475
+ .dark & {
476
+ --glass-border-top-slot: color-mix(in oklab, var(--glass-rim-highlight) 38%, transparent);
477
+ --glass-edge-highlight: color-mix(in oklab, var(--glass-rim-highlight) 38%, transparent);
478
+ --glass-edge-outline: var(--glass-border-subtle);
479
+ }
355
480
  }
356
481
 
357
- @utility glass-backdrop {
358
- backdrop-filter: blur(var(--glass-blur)) saturate(1.2);
482
+ @utility glass-border-medium {
483
+ --glass-border-slot: var(--glass-border-medium);
484
+ --glass-border-top-slot: var(--glass-border-slot);
485
+ --glass-edge-highlight: color-mix(in oklab, var(--glass-rim-highlight) 52%, transparent);
486
+ --glass-edge-outline: color-mix(in oklab, var(--glass-contrast-outline) 40%, transparent);
487
+ border-width: 1px;
488
+ border-right-width: 0.75px;
489
+ border-left-width: 0.75px;
490
+ border-style: solid;
491
+ border-color: var(--glass-border-slot);
492
+ border-top-color: var(--glass-border-top-slot);
493
+
494
+ .dark & {
495
+ --glass-border-top-slot: color-mix(in oklab, var(--glass-rim-highlight) 44%, transparent);
496
+ --glass-edge-highlight: color-mix(in oklab, var(--glass-rim-highlight) 44%, transparent);
497
+ --glass-edge-outline: var(--glass-border-medium);
498
+ }
359
499
  }
360
500
 
361
- @utility border-glass-soft {
362
- border-color: color-mix(in oklab, var(--glass-border) 70%, transparent);
363
- position: relative;
501
+ @utility glass-border-strong {
502
+ --glass-border-slot: var(--glass-border-strong);
503
+ --glass-border-top-slot: var(--glass-border-slot);
504
+ --glass-edge-highlight: color-mix(in oklab, var(--glass-rim-highlight) 64%, transparent);
505
+ --glass-edge-outline: color-mix(in oklab, var(--glass-contrast-outline) 42%, transparent);
506
+ border-width: 1px;
507
+ border-right-width: 0.75px;
508
+ border-left-width: 0.75px;
509
+ border-style: solid;
510
+ border-color: var(--glass-border-slot);
511
+ border-top-color: var(--glass-border-top-slot);
364
512
 
365
513
  .dark & {
366
- border-color: color-mix(in oklab, var(--glass-border) 45%, transparent);
514
+ --glass-border-top-slot: color-mix(in oklab, var(--glass-rim-highlight) 48%, transparent);
515
+ --glass-edge-highlight: color-mix(in oklab, var(--glass-rim-highlight) 48%, transparent);
516
+ --glass-edge-outline: var(--glass-border-strong);
367
517
  }
518
+ }
519
+
520
+ @utility glass-shadow-sm {
521
+ --glass-shadow-slot: var(--glass-shadow-sm);
522
+ }
368
523
 
369
- &::after {
370
- content: '';
371
- position: absolute;
372
- inset: 0;
373
- border-radius: inherit;
374
- pointer-events: none;
375
- box-shadow: inset 0 1px 0 var(--glass-shine-subtle);
376
- transform: translateY(-0.3px);
524
+ @utility glass-shadow-md {
525
+ --glass-shadow-slot: var(--glass-shadow-md);
526
+ }
527
+
528
+ @utility glass-shadow-lg {
529
+ --glass-shadow-slot: var(--glass-shadow-lg);
530
+ }
531
+
532
+ @utility glass-backdrop-sm {
533
+ --glass-backdrop-slot: var(--glass-backdrop-sm);
534
+ -webkit-backdrop-filter: var(--glass-backdrop-slot);
535
+ backdrop-filter: var(--glass-backdrop-slot);
536
+ }
537
+
538
+ @utility glass-backdrop-md {
539
+ --glass-backdrop-slot: var(--glass-backdrop-md);
540
+ -webkit-backdrop-filter: var(--glass-backdrop-slot);
541
+ backdrop-filter: var(--glass-backdrop-slot);
542
+ }
543
+
544
+ @utility glass-backdrop-lg {
545
+ --glass-backdrop-slot: var(--glass-backdrop-lg);
546
+ -webkit-backdrop-filter: var(--glass-backdrop-slot);
547
+ backdrop-filter: var(--glass-backdrop-slot);
548
+ }
549
+
550
+ @supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
551
+ .glass-backdrop-sm,
552
+ .glass-backdrop-md,
553
+ .glass-backdrop-lg {
554
+ -webkit-backdrop-filter: none;
555
+ backdrop-filter: none;
556
+ }
557
+
558
+ .glass {
559
+ background: var(--glass-fallback);
560
+ }
561
+
562
+ .glass-subtle {
563
+ background: var(--glass-subtle-fallback);
564
+ }
565
+
566
+ .glass-surface {
567
+ background: var(--glass-surface-fallback);
377
568
  }
378
569
 
379
- .dark &::after {
380
- transform: translateY(0);
570
+ .glass-selected {
571
+ background: var(--glass-selected-fallback);
572
+ }
573
+
574
+ .glass-strong {
575
+ background: var(--glass-strong-fallback);
576
+ }
577
+
578
+ .glass-disabled {
579
+ background: var(--glass-disabled-fallback);
580
+ }
581
+
582
+ .glass-texture-subtle,
583
+ .glass-texture,
584
+ .glass-texture-strong {
585
+ background-image: none;
586
+ filter: none;
381
587
  }
382
588
  }
383
589
 
384
- @utility border-glass-strong {
385
- border-color: color-mix(in oklab, var(--glass-border) 90%, transparent);
386
- position: relative;
590
+ @media (prefers-reduced-transparency: reduce) {
591
+ .glass-backdrop-sm,
592
+ .glass-backdrop-md,
593
+ .glass-backdrop-lg {
594
+ -webkit-backdrop-filter: none;
595
+ backdrop-filter: none;
596
+ }
387
597
 
388
- .dark & {
389
- border-color: color-mix(in oklab, var(--glass-border) 65%, transparent);
598
+ :is(.glass-transparent, .glass-surface, .glass, .glass-subtle, .glass-selected, .glass-strong, .glass-disabled):is(
599
+ .glass-shadow-sm,
600
+ .glass-shadow-md,
601
+ .glass-shadow-lg
602
+ ) {
603
+ box-shadow:
604
+ 0 1px 2px var(--glass-shadow-color),
605
+ inset 0 0 0 1px var(--glass-contrast-outline);
606
+ }
607
+
608
+ .glass {
609
+ background: var(--glass-fallback);
610
+ }
611
+
612
+ .glass-subtle {
613
+ background: var(--glass-subtle-fallback);
614
+ }
615
+
616
+ .glass-surface {
617
+ background: var(--glass-surface-fallback);
618
+ }
619
+
620
+ .glass-selected {
621
+ background: var(--glass-selected-fallback);
622
+ }
623
+
624
+ .glass-strong {
625
+ background: var(--glass-strong-fallback);
626
+ }
627
+
628
+ .glass-disabled {
629
+ background: var(--glass-disabled-fallback);
630
+ }
631
+
632
+ .glass-texture-subtle,
633
+ .glass-texture,
634
+ .glass-texture-strong {
635
+ background-image: none;
636
+ filter: none;
637
+ }
638
+ }
639
+
640
+ @media (prefers-contrast: more) {
641
+ .glass-backdrop-sm,
642
+ .glass-backdrop-md,
643
+ .glass-backdrop-lg {
644
+ -webkit-backdrop-filter: none;
645
+ backdrop-filter: none;
646
+ }
647
+
648
+ :is(.glass-transparent, .glass-surface, .glass, .glass-subtle, .glass-selected, .glass-strong, .glass-disabled):is(
649
+ .glass-shadow-sm,
650
+ .glass-shadow-md,
651
+ .glass-shadow-lg
652
+ ) {
653
+ box-shadow: inset 0 0 0 1px var(--glass-contrast-outline);
654
+ }
655
+
656
+ .glass {
657
+ background: var(--glass-fallback);
658
+ }
659
+
660
+ .glass-subtle {
661
+ background: var(--glass-subtle-fallback);
662
+ }
663
+
664
+ .glass-surface {
665
+ background: var(--glass-surface-fallback);
666
+ }
667
+
668
+ .glass-selected {
669
+ background: var(--glass-selected-fallback);
670
+ }
671
+
672
+ .glass-strong {
673
+ background: var(--glass-strong-fallback);
674
+ }
675
+
676
+ .glass-disabled {
677
+ background: var(--glass-disabled-fallback);
678
+ }
679
+
680
+ .glass-texture-subtle,
681
+ .glass-texture,
682
+ .glass-texture-strong {
683
+ background-image: none;
684
+ filter: none;
685
+ }
686
+
687
+ .glass-border,
688
+ .glass-border-faint,
689
+ .glass-border-subtle,
690
+ .glass-border-medium,
691
+ .glass-border-strong {
692
+ border-color: currentColor;
693
+ }
694
+ }
695
+
696
+ @media (forced-colors: active) {
697
+ .glass-transparent,
698
+ .glass,
699
+ .glass-subtle,
700
+ .glass-surface,
701
+ .glass-selected,
702
+ .glass-strong,
703
+ .glass-disabled,
704
+ .glass-texture-subtle,
705
+ .glass-texture,
706
+ .glass-texture-strong,
707
+ .glass-backdrop-sm,
708
+ .glass-backdrop-md,
709
+ .glass-backdrop-lg {
710
+ background-image: none;
711
+ box-shadow: none;
712
+ filter: none;
713
+ -webkit-backdrop-filter: none;
714
+ backdrop-filter: none;
390
715
  }
391
716
 
392
- &::after {
393
- content: '';
394
- position: absolute;
395
- inset: 0;
396
- border-radius: inherit;
397
- pointer-events: none;
398
- box-shadow: inset 0 1px 0 var(--glass-shine-subtle);
399
- transform: translateY(-0.3px);
717
+ .glass,
718
+ .glass-subtle,
719
+ .glass-surface,
720
+ .glass-selected,
721
+ .glass-strong,
722
+ .glass-disabled {
723
+ background: Canvas;
724
+ color: CanvasText;
400
725
  }
401
726
 
402
- .dark &::after {
403
- transform: translateY(0);
727
+ .glass-border,
728
+ .glass-border-faint,
729
+ .glass-border-subtle,
730
+ .glass-border-medium,
731
+ .glass-border-strong {
732
+ border-color: ButtonText;
404
733
  }
405
734
  }
406
735
 
@@ -506,6 +835,8 @@
506
835
  }
507
836
 
508
837
  [data-line] span {
838
+ --shiki-light: var(--color-code-foreground);
839
+ --shiki-dark: var(--color-code-foreground);
509
840
  color: var(--shiki-light);
510
841
 
511
842
  @variant dark {