@bubble-design-system/ui 1.0.0 → 1.1.0

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/tokens.css CHANGED
@@ -13,140 +13,140 @@
13
13
 
14
14
  :root {
15
15
  /* ── neutrals: cool slate (default) ─────────────────── */
16
- --slate-50: #F8FAFC;
17
- --slate-100: #F1F5F9;
18
- --slate-200: #E2E8F0;
19
- --slate-300: #CBD5E1;
20
- --slate-400: #94A3B8;
21
- --slate-500: #64748B;
16
+ --slate-50: #f8fafc;
17
+ --slate-100: #f1f5f9;
18
+ --slate-200: #e2e8f0;
19
+ --slate-300: #cbd5e1;
20
+ --slate-400: #94a3b8;
21
+ --slate-500: #64748b;
22
22
  --slate-600: #475569;
23
23
  --slate-700: #334155;
24
- --slate-800: #1E293B;
25
- --slate-900: #0F172A;
24
+ --slate-800: #1e293b;
25
+ --slate-900: #0f172a;
26
26
  --slate-950: #020617;
27
27
 
28
28
  /* ── neutrals: true neutral ─────────────────────────── */
29
- --neutral-50: #FAFAFA;
30
- --neutral-100: #F5F5F5;
31
- --neutral-200: #E5E5E5;
32
- --neutral-300: #D4D4D4;
33
- --neutral-400: #A3A3A3;
29
+ --neutral-50: #fafafa;
30
+ --neutral-100: #f5f5f5;
31
+ --neutral-200: #e5e5e5;
32
+ --neutral-300: #d4d4d4;
33
+ --neutral-400: #a3a3a3;
34
34
  --neutral-500: #737373;
35
35
  --neutral-600: #525252;
36
36
  --neutral-700: #404040;
37
37
  --neutral-800: #262626;
38
38
  --neutral-900: #171717;
39
- --neutral-950: #0A0A0A;
39
+ --neutral-950: #0a0a0a;
40
40
 
41
41
  /* ── neutrals: warm stone ───────────────────────────── */
42
- --stone-50: #FAFAF9;
43
- --stone-100: #F5F5F4;
44
- --stone-200: #E7E5E4;
45
- --stone-300: #D6D3D1;
46
- --stone-400: #A8A29E;
47
- --stone-500: #78716C;
48
- --stone-600: #57534E;
49
- --stone-700: #44403C;
42
+ --stone-50: #fafaf9;
43
+ --stone-100: #f5f5f4;
44
+ --stone-200: #e7e5e4;
45
+ --stone-300: #d6d3d1;
46
+ --stone-400: #a8a29e;
47
+ --stone-500: #78716c;
48
+ --stone-600: #57534e;
49
+ --stone-700: #44403c;
50
50
  --stone-800: #292524;
51
- --stone-900: #1C1917;
52
- --stone-950: #0C0A09;
51
+ --stone-900: #1c1917;
52
+ --stone-950: #0c0a09;
53
53
 
54
54
  /* ── brand: blue (default, anchored on #1D4ED8) ─────── */
55
- --blue-50: #EFF6FF;
56
- --blue-100: #DBEAFE;
57
- --blue-200: #BFDBFE;
58
- --blue-300: #93C5FD;
59
- --blue-400: #60A5FA;
60
- --blue-500: #3B82F6;
61
- --blue-600: #1D4ED8;
62
- --blue-700: #1E40AF;
63
- --blue-800: #1E3A8A;
55
+ --blue-50: #eff6ff;
56
+ --blue-100: #dbeafe;
57
+ --blue-200: #bfdbfe;
58
+ --blue-300: #93c5fd;
59
+ --blue-400: #60a5fa;
60
+ --blue-500: #3b82f6;
61
+ --blue-600: #1d4ed8;
62
+ --blue-700: #1e40af;
63
+ --blue-800: #1e3a8a;
64
64
  --blue-900: #172554;
65
- --blue-950: #0B1336;
65
+ --blue-950: #0b1336;
66
66
 
67
67
  /* ── brand: violet ──────────────────────────────────── */
68
- --violet-50: #F5F3FF;
69
- --violet-100: #EDE9FE;
70
- --violet-200: #DDD6FE;
71
- --violet-300: #C4B5FD;
72
- --violet-400: #A78BFA;
73
- --violet-500: #8B5CF6;
74
- --violet-600: #6D28D9;
75
- --violet-700: #5B21B6;
76
- --violet-800: #4C1D95;
77
- --violet-900: #3B0764;
78
- --violet-950: #2A0556;
68
+ --violet-50: #f5f3ff;
69
+ --violet-100: #ede9fe;
70
+ --violet-200: #ddd6fe;
71
+ --violet-300: #c4b5fd;
72
+ --violet-400: #a78bfa;
73
+ --violet-500: #8b5cf6;
74
+ --violet-600: #6d28d9;
75
+ --violet-700: #5b21b6;
76
+ --violet-800: #4c1d95;
77
+ --violet-900: #3b0764;
78
+ --violet-950: #2a0556;
79
79
 
80
80
  /* ── brand: emerald ─────────────────────────────────── */
81
- --emerald-50: #ECFDF5;
82
- --emerald-100: #D1FAE5;
83
- --emerald-200: #A7F3D0;
84
- --emerald-300: #6EE7B7;
85
- --emerald-400: #34D399;
86
- --emerald-500: #10B981;
81
+ --emerald-50: #ecfdf5;
82
+ --emerald-100: #d1fae5;
83
+ --emerald-200: #a7f3d0;
84
+ --emerald-300: #6ee7b7;
85
+ --emerald-400: #34d399;
86
+ --emerald-500: #10b981;
87
87
  --emerald-600: #047857;
88
- --emerald-700: #065F46;
89
- --emerald-800: #064E3B;
90
- --emerald-900: #022C22;
91
- --emerald-950: #011D18;
88
+ --emerald-700: #065f46;
89
+ --emerald-800: #064e3b;
90
+ --emerald-900: #022c22;
91
+ --emerald-950: #011d18;
92
92
 
93
93
  /* ── brand: orange ──────────────────────────────────── */
94
- --orange-50: #FFF7ED;
95
- --orange-100: #FFEDD5;
96
- --orange-200: #FED7AA;
97
- --orange-300: #FDBA74;
98
- --orange-400: #FB923C;
99
- --orange-500: #F97316;
100
- --orange-600: #C2410C;
101
- --orange-700: #9A3412;
102
- --orange-800: #7C2D12;
94
+ --orange-50: #fff7ed;
95
+ --orange-100: #ffedd5;
96
+ --orange-200: #fed7aa;
97
+ --orange-300: #fdba74;
98
+ --orange-400: #fb923c;
99
+ --orange-500: #f97316;
100
+ --orange-600: #c2410c;
101
+ --orange-700: #9a3412;
102
+ --orange-800: #7c2d12;
103
103
  --orange-900: #431407;
104
- --orange-950: #2A0D04;
104
+ --orange-950: #2a0d04;
105
105
 
106
106
  /* ── brand: mono (uses neutrals) ────────────────────── */
107
107
  /* mono-* are aliased per gray family below */
108
108
 
109
109
  /* ── semantic palette: green ────────────────────────── */
110
- --green-50: #F0FDF4;
111
- --green-100: #DCFCE7;
112
- --green-200: #BBF7D0;
113
- --green-300: #86EFAC;
114
- --green-400: #4ADE80;
115
- --green-500: #22C55E;
116
- --green-600: #16A34A;
117
- --green-700: #15803D;
110
+ --green-50: #f0fdf4;
111
+ --green-100: #dcfce7;
112
+ --green-200: #bbf7d0;
113
+ --green-300: #86efac;
114
+ --green-400: #4ade80;
115
+ --green-500: #22c55e;
116
+ --green-600: #16a34a;
117
+ --green-700: #15803d;
118
118
  --green-800: #166534;
119
- --green-900: #14532D;
120
- --green-950: #052E16;
119
+ --green-900: #14532d;
120
+ --green-950: #052e16;
121
121
 
122
122
  /* ── semantic palette: amber ────────────────────────── */
123
- --amber-50: #FFFBEB;
124
- --amber-100: #FEF3C7;
125
- --amber-200: #FDE68A;
126
- --amber-300: #FCD34D;
127
- --amber-400: #FBBF24;
128
- --amber-500: #F59E0B;
129
- --amber-600: #D97706;
130
- --amber-700: #B45309;
131
- --amber-800: #92400E;
132
- --amber-900: #78350F;
133
- --amber-950: #451A03;
123
+ --amber-50: #fffbeb;
124
+ --amber-100: #fef3c7;
125
+ --amber-200: #fde68a;
126
+ --amber-300: #fcd34d;
127
+ --amber-400: #fbbf24;
128
+ --amber-500: #f59e0b;
129
+ --amber-600: #d97706;
130
+ --amber-700: #b45309;
131
+ --amber-800: #92400e;
132
+ --amber-900: #78350f;
133
+ --amber-950: #451a03;
134
134
 
135
135
  /* ── semantic palette: red ──────────────────────────── */
136
- --red-50: #FEF2F2;
137
- --red-100: #FEE2E2;
138
- --red-200: #FECACA;
139
- --red-300: #FCA5A5;
140
- --red-400: #F87171;
141
- --red-500: #EF4444;
142
- --red-600: #DC2626;
143
- --red-700: #B91C1C;
144
- --red-800: #991B1B;
145
- --red-900: #7F1D1D;
146
- --red-950: #450A0A;
136
+ --red-50: #fef2f2;
137
+ --red-100: #fee2e2;
138
+ --red-200: #fecaca;
139
+ --red-300: #fca5a5;
140
+ --red-400: #f87171;
141
+ --red-500: #ef4444;
142
+ --red-600: #dc2626;
143
+ --red-700: #b91c1c;
144
+ --red-800: #991b1b;
145
+ --red-900: #7f1d1d;
146
+ --red-950: #450a0a;
147
147
 
148
148
  /* ── pure ───────────────────────────────────────────── */
149
- --white: #FFFFFF;
149
+ --white: #ffffff;
150
150
  --black: #000000;
151
151
  }
152
152
 
@@ -155,7 +155,7 @@
155
155
  ───────────────────────────────────────────────────────── */
156
156
  :root,
157
157
  [data-gray="slate"] {
158
- --gray-50: var(--slate-50);
158
+ --gray-50: var(--slate-50);
159
159
  --gray-100: var(--slate-100);
160
160
  --gray-200: var(--slate-200);
161
161
  --gray-300: var(--slate-300);
@@ -168,7 +168,7 @@
168
168
  --gray-950: var(--slate-950);
169
169
  }
170
170
  [data-gray="neutral"] {
171
- --gray-50: var(--neutral-50);
171
+ --gray-50: var(--neutral-50);
172
172
  --gray-100: var(--neutral-100);
173
173
  --gray-200: var(--neutral-200);
174
174
  --gray-300: var(--neutral-300);
@@ -181,7 +181,7 @@
181
181
  --gray-950: var(--neutral-950);
182
182
  }
183
183
  [data-gray="stone"] {
184
- --gray-50: var(--stone-50);
184
+ --gray-50: var(--stone-50);
185
185
  --gray-100: var(--stone-100);
186
186
  --gray-200: var(--stone-200);
187
187
  --gray-300: var(--stone-300);
@@ -199,7 +199,7 @@
199
199
  ───────────────────────────────────────────────────────── */
200
200
  :root,
201
201
  [data-brand="blue"] {
202
- --brand-50: var(--blue-50);
202
+ --brand-50: var(--blue-50);
203
203
  --brand-100: var(--blue-100);
204
204
  --brand-200: var(--blue-200);
205
205
  --brand-300: var(--blue-300);
@@ -212,7 +212,7 @@
212
212
  --brand-950: var(--blue-950);
213
213
  }
214
214
  [data-brand="violet"] {
215
- --brand-50: var(--violet-50);
215
+ --brand-50: var(--violet-50);
216
216
  --brand-100: var(--violet-100);
217
217
  --brand-200: var(--violet-200);
218
218
  --brand-300: var(--violet-300);
@@ -225,7 +225,7 @@
225
225
  --brand-950: var(--violet-950);
226
226
  }
227
227
  [data-brand="emerald"] {
228
- --brand-50: var(--emerald-50);
228
+ --brand-50: var(--emerald-50);
229
229
  --brand-100: var(--emerald-100);
230
230
  --brand-200: var(--emerald-200);
231
231
  --brand-300: var(--emerald-300);
@@ -238,7 +238,7 @@
238
238
  --brand-950: var(--emerald-950);
239
239
  }
240
240
  [data-brand="orange"] {
241
- --brand-50: var(--orange-50);
241
+ --brand-50: var(--orange-50);
242
242
  --brand-100: var(--orange-100);
243
243
  --brand-200: var(--orange-200);
244
244
  --brand-300: var(--orange-300);
@@ -251,7 +251,7 @@
251
251
  --brand-950: var(--orange-950);
252
252
  }
253
253
  [data-brand="mono"] {
254
- --brand-50: var(--gray-50);
254
+ --brand-50: var(--gray-50);
255
255
  --brand-100: var(--gray-100);
256
256
  --brand-200: var(--gray-200);
257
257
  --brand-300: var(--gray-300);
@@ -264,16 +264,16 @@
264
264
  --brand-950: var(--black);
265
265
  }
266
266
  [data-brand="teal"] {
267
- --brand-50: #E2FBFA;
268
- --brand-100: #B8F4F1;
269
- --brand-200: #8AECE7;
270
- --brand-300: #4DDFD9;
271
- --brand-400: #14D2CB;
272
- --brand-500: #00CEC8;
273
- --brand-600: #00CEC8;
274
- --brand-700: #009E99;
267
+ --brand-50: #e2fbfa;
268
+ --brand-100: #b8f4f1;
269
+ --brand-200: #8aece7;
270
+ --brand-300: #4ddfd9;
271
+ --brand-400: #14d2cb;
272
+ --brand-500: #00cec8;
273
+ --brand-600: #00cec8;
274
+ --brand-700: #009e99;
275
275
  --brand-800: #007570;
276
- --brand-900: #004B48;
276
+ --brand-900: #004b48;
277
277
  --brand-950: #002523;
278
278
  }
279
279
 
@@ -282,62 +282,68 @@
282
282
  ───────────────────────────────────────────────────────── */
283
283
  :root {
284
284
  /* background */
285
- --color-bg-page: var(--color-bg-primary);
286
- --color-bg-primary: var(--white);
287
- --color-bg-secondary: var(--gray-50);
288
- --color-bg-tertiary: var(--gray-100);
289
- --color-bg-inverse: var(--gray-900);
290
-
291
- --color-bg-brand: var(--brand-600);
292
- --color-bg-brand-hover: var(--brand-700);
293
- --color-bg-brand-active: var(--brand-800);
294
- --color-bg-brand-subtle: var(--brand-50);
295
-
296
- --color-bg-success: var(--green-50);
285
+ --color-bg-page: var(--color-bg-primary);
286
+ --color-bg-primary: var(--white);
287
+ --color-bg-secondary: var(--gray-50);
288
+ --color-bg-tertiary: var(--gray-100);
289
+ --color-bg-inverse: var(--gray-900);
290
+
291
+ --color-bg-brand: var(--brand-600);
292
+ --color-bg-brand-hover: var(--brand-700);
293
+ --color-bg-brand-active: var(--brand-800);
294
+ --color-bg-brand-subtle: var(--brand-50);
295
+
296
+ --color-bg-success: var(--green-50);
297
297
  --color-bg-success-strong: var(--green-600);
298
- --color-bg-warning: var(--amber-50);
298
+ --color-bg-warning: var(--amber-50);
299
299
  --color-bg-warning-strong: var(--amber-500);
300
- --color-bg-danger: var(--red-50);
301
- --color-bg-danger-strong: var(--red-600);
302
- --color-bg-danger-hover: var(--red-700);
303
- --color-bg-info: var(--brand-50);
300
+ --color-bg-danger: var(--red-50);
301
+ --color-bg-danger-strong: var(--red-600);
302
+ --color-bg-danger-hover: var(--red-700);
303
+ --color-bg-info: var(--brand-50);
304
304
 
305
- --color-bg-hover: var(--gray-100);
306
- --color-bg-pressed: var(--gray-200);
307
- --color-bg-disabled: var(--gray-100);
305
+ --color-bg-hover: var(--gray-100);
306
+ --color-bg-pressed: var(--gray-200);
307
+ --color-bg-disabled: var(--gray-100);
308
308
 
309
309
  /* text */
310
- --color-text-primary: var(--gray-900);
311
- --color-text-secondary: var(--gray-600);
312
- --color-text-tertiary: var(--gray-400);
313
- --color-text-disabled: var(--gray-300);
314
- --color-text-inverse: var(--white);
310
+ --color-text-primary: var(--gray-900);
311
+ --color-text-secondary: var(--gray-600);
312
+ --color-text-tertiary: var(--gray-400);
313
+ --color-text-disabled: var(--gray-300);
314
+ --color-text-inverse: var(--white);
315
315
 
316
- --color-text-brand: var(--brand-700);
317
- --color-text-success: var(--green-700);
318
- --color-text-warning: var(--amber-700);
319
- --color-text-danger: var(--red-700);
316
+ --color-text-brand: var(--brand-700);
317
+ --color-text-success: var(--green-700);
318
+ --color-text-warning: var(--amber-700);
319
+ --color-text-danger: var(--red-700);
320
320
 
321
- --color-text-on-brand: var(--white);
322
- --color-text-on-danger: var(--white);
323
- --color-text-on-success: var(--white);
321
+ --color-text-on-brand: var(--white);
322
+ --color-text-on-danger: var(--white);
323
+ --color-text-on-success: var(--white);
324
324
 
325
325
  /* border */
326
- --color-border-primary: var(--gray-300);
327
- --color-border-secondary: var(--gray-200);
328
- --color-border-tertiary: var(--gray-100);
329
- --color-border-brand: var(--brand-600);
330
- --color-border-success: var(--green-200);
331
- --color-border-warning: var(--amber-200);
332
- --color-border-danger: var(--red-200);
333
- --color-border-focus: var(--brand-600);
326
+ --color-border-primary: var(--gray-300);
327
+ --color-border-secondary: var(--gray-200);
328
+ --color-border-tertiary: var(--gray-100);
329
+ --color-border-brand: var(--brand-600);
330
+ --color-border-success: var(--green-200);
331
+ --color-border-warning: var(--amber-200);
332
+ --color-border-danger: var(--red-200);
333
+ --color-border-focus: var(--brand-600);
334
334
 
335
335
  /* shadow */
336
336
  --shadow-xs: 0 1px 2px 0 rgba(15, 23, 42, 0.04);
337
- --shadow-sm: 0 1px 2px 0 rgba(15, 23, 42, 0.05), 0 1px 1px -1px rgba(15, 23, 42, 0.04);
338
- --shadow-md: 0 4px 6px -1px rgba(15, 23, 42, 0.06), 0 2px 4px -2px rgba(15, 23, 42, 0.04);
339
- --shadow-lg: 0 10px 15px -3px rgba(15, 23, 42, 0.08), 0 4px 6px -4px rgba(15, 23, 42, 0.04);
340
- --shadow-xl: 0 20px 25px -5px rgba(15, 23, 42, 0.10), 0 8px 10px -6px rgba(15, 23, 42, 0.04);
337
+ --shadow-sm:
338
+ 0 1px 2px 0 rgba(15, 23, 42, 0.05), 0 1px 1px -1px rgba(15, 23, 42, 0.04);
339
+ --shadow-md:
340
+ 0 4px 6px -1px rgba(15, 23, 42, 0.06), 0 2px 4px -2px rgba(15, 23, 42, 0.04);
341
+ --shadow-lg:
342
+ 0 10px 15px -3px rgba(15, 23, 42, 0.08),
343
+ 0 4px 6px -4px rgba(15, 23, 42, 0.04);
344
+ --shadow-xl:
345
+ 0 20px 25px -5px rgba(15, 23, 42, 0.1),
346
+ 0 8px 10px -6px rgba(15, 23, 42, 0.04);
341
347
  --shadow-focus: 0 0 0 3px var(--brand-100);
342
348
 
343
349
  /* code surface */
@@ -347,15 +353,19 @@
347
353
 
348
354
  /* signature gradient — used for the brand blob + AI/featured accents.
349
355
  Always present regardless of tone; soft tone leans on it most. */
350
- --gradient-accent: linear-gradient(135deg,
351
- #FF8A9E 0%,
352
- #FF6BA5 25%,
353
- #C760D9 55%,
354
- #8B6BE8 100%);
355
- --gradient-accent-soft: linear-gradient(135deg,
356
+ --gradient-accent: linear-gradient(
357
+ 135deg,
358
+ #ff8a9e 0%,
359
+ #ff6ba5 25%,
360
+ #c760d9 55%,
361
+ #8b6be8 100%
362
+ );
363
+ --gradient-accent-soft: linear-gradient(
364
+ 135deg,
356
365
  rgba(255, 138, 158, 0.18) 0%,
357
366
  rgba(199, 96, 217, 0.16) 50%,
358
- rgba(139, 107, 232, 0.18) 100%);
367
+ rgba(139, 107, 232, 0.18) 100%
368
+ );
359
369
 
360
370
  /* control radius — pill-first in soft, default otherwise */
361
371
  --ctrl-radius: var(--radius-md);
@@ -365,59 +375,68 @@
365
375
  Semantic tokens — DARK
366
376
  ───────────────────────────────────────────────────────── */
367
377
  [data-theme="dark"] {
368
- --color-bg-primary: var(--gray-950);
369
- --color-bg-secondary: var(--gray-900);
370
- --color-bg-tertiary: var(--gray-800);
371
- --color-bg-inverse: var(--gray-50);
378
+ --color-bg-primary: var(--gray-950);
379
+ --color-bg-secondary: var(--gray-900);
380
+ --color-bg-tertiary: var(--gray-800);
381
+ --color-bg-inverse: var(--gray-50);
372
382
 
373
- --color-bg-brand: var(--brand-500);
374
- --color-bg-brand-hover: var(--brand-400);
375
- --color-bg-brand-active: var(--brand-300);
376
- --color-bg-brand-subtle: color-mix(in srgb, var(--brand-500) 14%, transparent);
383
+ --color-bg-brand: var(--brand-500);
384
+ --color-bg-brand-hover: var(--brand-400);
385
+ --color-bg-brand-active: var(--brand-300);
386
+ --color-bg-brand-subtle: color-mix(
387
+ in srgb,
388
+ var(--brand-500) 14%,
389
+ transparent
390
+ );
377
391
 
378
- --color-bg-success: color-mix(in srgb, var(--green-500) 14%, transparent);
392
+ --color-bg-success: color-mix(in srgb, var(--green-500) 14%, transparent);
379
393
  --color-bg-success-strong: var(--green-500);
380
- --color-bg-warning: color-mix(in srgb, var(--amber-500) 14%, transparent);
394
+ --color-bg-warning: color-mix(in srgb, var(--amber-500) 14%, transparent);
381
395
  --color-bg-warning-strong: var(--amber-400);
382
- --color-bg-danger: color-mix(in srgb, var(--red-500) 14%, transparent);
383
- --color-bg-danger-strong: var(--red-500);
384
- --color-bg-danger-hover: var(--red-400);
385
- --color-bg-info: color-mix(in srgb, var(--brand-500) 14%, transparent);
386
-
387
- --color-bg-hover: var(--gray-800);
388
- --color-bg-pressed: var(--gray-700);
389
- --color-bg-disabled: var(--gray-800);
390
-
391
- --color-text-primary: var(--gray-50);
392
- --color-text-secondary: var(--gray-400);
393
- --color-text-tertiary: var(--gray-500);
394
- --color-text-disabled: var(--gray-700);
395
- --color-text-inverse: var(--gray-950);
396
-
397
- --color-text-brand: var(--brand-400);
398
- --color-text-success: var(--green-400);
399
- --color-text-warning: var(--amber-400);
400
- --color-text-danger: var(--red-400);
401
-
402
- --color-text-on-brand: var(--gray-950);
403
- --color-text-on-danger: var(--white);
404
- --color-text-on-success: var(--gray-950);
405
-
406
- --color-border-primary: var(--gray-700);
407
- --color-border-secondary: var(--gray-800);
408
- --color-border-tertiary: var(--gray-800);
409
- --color-border-brand: var(--brand-400);
410
- --color-border-success: color-mix(in srgb, var(--green-500) 30%, transparent);
411
- --color-border-warning: color-mix(in srgb, var(--amber-500) 30%, transparent);
412
- --color-border-danger: color-mix(in srgb, var(--red-500) 30%, transparent);
413
- --color-border-focus: var(--brand-400);
396
+ --color-bg-danger: color-mix(in srgb, var(--red-500) 14%, transparent);
397
+ --color-bg-danger-strong: var(--red-500);
398
+ --color-bg-danger-hover: var(--red-400);
399
+ --color-bg-info: color-mix(in srgb, var(--brand-500) 14%, transparent);
400
+
401
+ --color-bg-hover: var(--gray-800);
402
+ --color-bg-pressed: var(--gray-700);
403
+ --color-bg-disabled: var(--gray-800);
404
+
405
+ --color-text-primary: var(--gray-50);
406
+ --color-text-secondary: var(--gray-400);
407
+ --color-text-tertiary: var(--gray-500);
408
+ --color-text-disabled: var(--gray-700);
409
+ --color-text-inverse: var(--gray-950);
410
+
411
+ --color-text-brand: var(--brand-400);
412
+ --color-text-success: var(--green-400);
413
+ --color-text-warning: var(--amber-400);
414
+ --color-text-danger: var(--red-400);
415
+
416
+ --color-text-on-brand: var(--gray-950);
417
+ --color-text-on-danger: var(--white);
418
+ --color-text-on-success: var(--gray-950);
419
+
420
+ --color-border-primary: var(--gray-700);
421
+ --color-border-secondary: var(--gray-800);
422
+ --color-border-tertiary: var(--gray-800);
423
+ --color-border-brand: var(--brand-400);
424
+ --color-border-success: color-mix(in srgb, var(--green-500) 30%, transparent);
425
+ --color-border-warning: color-mix(in srgb, var(--amber-500) 30%, transparent);
426
+ --color-border-danger: color-mix(in srgb, var(--red-500) 30%, transparent);
427
+ --color-border-focus: var(--brand-400);
414
428
 
415
429
  --shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, 0.5);
416
- --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.6), 0 1px 1px -1px rgba(0, 0, 0, 0.5);
417
- --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.5), 0 2px 4px -2px rgba(0, 0, 0, 0.4);
418
- --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.6), 0 4px 6px -4px rgba(0, 0, 0, 0.4);
419
- --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.7), 0 8px 10px -6px rgba(0, 0, 0, 0.4);
420
- --shadow-focus: 0 0 0 3px color-mix(in srgb, var(--brand-400) 35%, transparent);
430
+ --shadow-sm:
431
+ 0 1px 2px 0 rgba(0, 0, 0, 0.6), 0 1px 1px -1px rgba(0, 0, 0, 0.5);
432
+ --shadow-md:
433
+ 0 4px 6px -1px rgba(0, 0, 0, 0.5), 0 2px 4px -2px rgba(0, 0, 0, 0.4);
434
+ --shadow-lg:
435
+ 0 10px 15px -3px rgba(0, 0, 0, 0.6), 0 4px 6px -4px rgba(0, 0, 0, 0.4);
436
+ --shadow-xl:
437
+ 0 20px 25px -5px rgba(0, 0, 0, 0.7), 0 8px 10px -6px rgba(0, 0, 0, 0.4);
438
+ --shadow-focus: 0 0 0 3px
439
+ color-mix(in srgb, var(--brand-400) 35%, transparent);
421
440
 
422
441
  --color-code-bg: var(--gray-900);
423
442
  --color-code-border: var(--gray-800);
@@ -426,12 +445,12 @@
426
445
 
427
446
  /* "mono" brand needs special treatment in dark so it stays visible */
428
447
  [data-theme="dark"][data-brand="mono"] {
429
- --color-bg-brand: var(--gray-50);
430
- --color-bg-brand-hover: var(--gray-100);
431
- --color-bg-brand-active: var(--gray-200);
432
- --color-text-on-brand: var(--gray-950);
433
- --color-text-brand: var(--gray-50);
434
- --color-border-brand: var(--gray-50);
448
+ --color-bg-brand: var(--gray-50);
449
+ --color-bg-brand-hover: var(--gray-100);
450
+ --color-bg-brand-active: var(--gray-200);
451
+ --color-text-on-brand: var(--gray-950);
452
+ --color-text-brand: var(--gray-50);
453
+ --color-border-brand: var(--gray-50);
435
454
  }
436
455
 
437
456
  /* "teal" anchor (#00CEC8) is too light for white text — force dark text on brand */
@@ -439,12 +458,12 @@
439
458
  --color-text-on-brand: var(--gray-950);
440
459
  }
441
460
  [data-theme="dark"][data-brand="teal"] {
442
- --color-bg-brand: var(--brand-500);
443
- --color-bg-brand-hover: var(--brand-400);
461
+ --color-bg-brand: var(--brand-500);
462
+ --color-bg-brand-hover: var(--brand-400);
444
463
  --color-bg-brand-active: var(--brand-300);
445
- --color-text-on-brand: var(--gray-950);
446
- --color-text-brand: var(--brand-400);
447
- --color-border-brand: var(--brand-500);
464
+ --color-text-on-brand: var(--gray-950);
465
+ --color-text-brand: var(--brand-400);
466
+ --color-border-brand: var(--brand-500);
448
467
  }
449
468
 
450
469
  /* ═════════════════════════════════════════════════════════
@@ -458,66 +477,132 @@
458
477
 
459
478
  /* ─── pastel ─────────────────────────────────────────────── */
460
479
  [data-tone="pastel"] {
461
- --slate-50: #F6F7F9; --slate-100: #EBEEF3; --slate-200: #DDE1E9;
462
- --slate-300: #C1C7D3; --slate-400: #8E96A7; --slate-500: #686F82;
463
- --slate-600: #4E5667; --slate-700: #3C4250; --slate-800: #272C38;
464
- --slate-900: #161A24; --slate-950: #0A0D14;
465
-
466
- --neutral-50: #F8F7F5; --neutral-100: #EFEDEA; --neutral-200: #E0DDD9;
467
- --neutral-300: #C8C5BF; --neutral-400: #9D9A93; --neutral-500: #757269;
468
- --neutral-600: #56544D; --neutral-700: #41403A; --neutral-800: #2A2926;
469
- --neutral-900: #1A1A18; --neutral-950: #0D0D0B;
470
-
471
- --stone-50: #F8F6F2; --stone-100: #EFECE5; --stone-200: #E1DBD0;
472
- --stone-300: #CAC2B3; --stone-400: #A19888; --stone-500: #7A7263;
473
- --stone-600: #5A5447; --stone-700: #443F35; --stone-800: #2B2822;
474
- --stone-900: #1A1814; --stone-950: #0D0B09;
475
-
476
- --green-50: #EEF6EF; --green-500: #66A26F; --green-600: #568D5E; --green-700: #45724B;
477
- --amber-50: #FBF4E1; --amber-400: #D5A741; --amber-500: #C19234; --amber-700: #855F23;
478
- --red-50: #FAEBEA; --red-500: #BE584F; --red-600: #A8463F; --red-700: #883831;
480
+ --slate-50: #f6f7f9;
481
+ --slate-100: #ebeef3;
482
+ --slate-200: #dde1e9;
483
+ --slate-300: #c1c7d3;
484
+ --slate-400: #8e96a7;
485
+ --slate-500: #686f82;
486
+ --slate-600: #4e5667;
487
+ --slate-700: #3c4250;
488
+ --slate-800: #272c38;
489
+ --slate-900: #161a24;
490
+ --slate-950: #0a0d14;
491
+
492
+ --neutral-50: #f8f7f5;
493
+ --neutral-100: #efedea;
494
+ --neutral-200: #e0ddd9;
495
+ --neutral-300: #c8c5bf;
496
+ --neutral-400: #9d9a93;
497
+ --neutral-500: #757269;
498
+ --neutral-600: #56544d;
499
+ --neutral-700: #41403a;
500
+ --neutral-800: #2a2926;
501
+ --neutral-900: #1a1a18;
502
+ --neutral-950: #0d0d0b;
503
+
504
+ --stone-50: #f8f6f2;
505
+ --stone-100: #efece5;
506
+ --stone-200: #e1dbd0;
507
+ --stone-300: #cac2b3;
508
+ --stone-400: #a19888;
509
+ --stone-500: #7a7263;
510
+ --stone-600: #5a5447;
511
+ --stone-700: #443f35;
512
+ --stone-800: #2b2822;
513
+ --stone-900: #1a1814;
514
+ --stone-950: #0d0b09;
515
+
516
+ --green-50: #eef6ef;
517
+ --green-500: #66a26f;
518
+ --green-600: #568d5e;
519
+ --green-700: #45724b;
520
+ --amber-50: #fbf4e1;
521
+ --amber-400: #d5a741;
522
+ --amber-500: #c19234;
523
+ --amber-700: #855f23;
524
+ --red-50: #faebea;
525
+ --red-500: #be584f;
526
+ --red-600: #a8463f;
527
+ --red-700: #883831;
479
528
  }
480
529
 
481
530
  /* pastel · light — warm off-white surfaces, softer shadows */
482
531
  [data-tone="pastel"]:not([data-theme="dark"]) {
483
- --color-bg-primary: #FBFAF7;
484
- --color-bg-secondary: #F4F2EC;
485
- --color-bg-tertiary: #EBE8DF;
486
- --color-bg-page: var(--color-bg-primary);
532
+ --color-bg-primary: #fbfaf7;
533
+ --color-bg-secondary: #f4f2ec;
534
+ --color-bg-tertiary: #ebe8df;
535
+ --color-bg-page: var(--color-bg-primary);
487
536
 
488
537
  --shadow-xs: 0 1px 2px 0 rgba(50, 47, 38, 0.04);
489
- --shadow-sm: 0 1px 2px 0 rgba(50, 47, 38, 0.05), 0 1px 1px -1px rgba(50, 47, 38, 0.04);
490
- --shadow-md: 0 4px 8px -2px rgba(50, 47, 38, 0.06), 0 2px 4px -2px rgba(50, 47, 38, 0.04);
491
- --shadow-lg: 0 10px 18px -4px rgba(50, 47, 38, 0.08), 0 4px 6px -4px rgba(50, 47, 38, 0.04);
492
- --shadow-xl: 0 20px 28px -6px rgba(50, 47, 38, 0.10), 0 8px 10px -6px rgba(50, 47, 38, 0.04);
538
+ --shadow-sm:
539
+ 0 1px 2px 0 rgba(50, 47, 38, 0.05), 0 1px 1px -1px rgba(50, 47, 38, 0.04);
540
+ --shadow-md:
541
+ 0 4px 8px -2px rgba(50, 47, 38, 0.06), 0 2px 4px -2px rgba(50, 47, 38, 0.04);
542
+ --shadow-lg:
543
+ 0 10px 18px -4px rgba(50, 47, 38, 0.08),
544
+ 0 4px 6px -4px rgba(50, 47, 38, 0.04);
545
+ --shadow-xl:
546
+ 0 20px 28px -6px rgba(50, 47, 38, 0.1),
547
+ 0 8px 10px -6px rgba(50, 47, 38, 0.04);
493
548
  }
494
549
  [data-tone="pastel"][data-gray="stone"]:not([data-theme="dark"]) {
495
- --color-bg-primary: #FBF9F4;
496
- --color-bg-secondary: #F3EFE5;
497
- --color-bg-tertiary: #E9E3D4;
550
+ --color-bg-primary: #fbf9f4;
551
+ --color-bg-secondary: #f3efe5;
552
+ --color-bg-tertiary: #e9e3d4;
498
553
  }
499
554
 
500
555
  /* ─── soft (signature look) ──────────────────────────────── */
501
556
  [data-tone="soft"] {
502
- --slate-50: #F6F7F8; --slate-100: #ECEDF0; --slate-200: #DCDEE3;
503
- --slate-300: #BCC0C9; --slate-400: #8C92A0; --slate-500: #666C7B;
504
- --slate-600: #4C5263; --slate-700: #3A3F4D; --slate-800: #262A35;
505
- --slate-900: #181B23; --slate-950: #0C0E13;
506
-
507
- --neutral-50: #F7F7F6; --neutral-100: #EDEDEB; --neutral-200: #DEDDDA;
508
- --neutral-300: #C5C4BF; --neutral-400: #99988F; --neutral-500: #71706A;
509
- --neutral-600: #555450; --neutral-700: #41403D; --neutral-800: #2A2A28;
510
- --neutral-900: #1A1A18; --neutral-950: #0D0D0C;
511
-
512
- --stone-50: #F8F6F2; --stone-100: #F0EDE6; --stone-200: #E2DDD2;
513
- --stone-300: #CDC5B4; --stone-400: #A09683; --stone-500: #777060;
514
- --stone-600: #595348; --stone-700: #443F37; --stone-800: #2B2823;
515
- --stone-900: #1A1815; --stone-950: #0E0C0A;
557
+ --slate-50: #f6f7f8;
558
+ --slate-100: #ecedf0;
559
+ --slate-200: #dcdee3;
560
+ --slate-300: #bcc0c9;
561
+ --slate-400: #8c92a0;
562
+ --slate-500: #666c7b;
563
+ --slate-600: #4c5263;
564
+ --slate-700: #3a3f4d;
565
+ --slate-800: #262a35;
566
+ --slate-900: #181b23;
567
+ --slate-950: #0c0e13;
568
+
569
+ --neutral-50: #f7f7f6;
570
+ --neutral-100: #ededeb;
571
+ --neutral-200: #deddda;
572
+ --neutral-300: #c5c4bf;
573
+ --neutral-400: #99988f;
574
+ --neutral-500: #71706a;
575
+ --neutral-600: #555450;
576
+ --neutral-700: #41403d;
577
+ --neutral-800: #2a2a28;
578
+ --neutral-900: #1a1a18;
579
+ --neutral-950: #0d0d0c;
580
+
581
+ --stone-50: #f8f6f2;
582
+ --stone-100: #f0ede6;
583
+ --stone-200: #e2ddd2;
584
+ --stone-300: #cdc5b4;
585
+ --stone-400: #a09683;
586
+ --stone-500: #777060;
587
+ --stone-600: #595348;
588
+ --stone-700: #443f37;
589
+ --stone-800: #2b2823;
590
+ --stone-900: #1a1815;
591
+ --stone-950: #0e0c0a;
516
592
 
517
593
  /* soft status ramps — vivid but warm */
518
- --green-50: #E8F8EF; --green-500: #46B47C; --green-600: #38A06A; --green-700: #2A8054;
519
- --amber-50: #FFF8E0; --amber-400: #F5BC2E; --amber-500: #E8A716; --amber-700: #9C6E0E;
520
- --red-50: #FFEDEC; --red-500: #ED5E5B; --red-600: #D6443F; --red-700: #AB3531;
594
+ --green-50: #e8f8ef;
595
+ --green-500: #46b47c;
596
+ --green-600: #38a06a;
597
+ --green-700: #2a8054;
598
+ --amber-50: #fff8e0;
599
+ --amber-400: #f5bc2e;
600
+ --amber-500: #e8a716;
601
+ --amber-700: #9c6e0e;
602
+ --red-50: #ffedec;
603
+ --red-500: #ed5e5b;
604
+ --red-600: #d6443f;
605
+ --red-700: #ab3531;
521
606
 
522
607
  /* pill controls */
523
608
  --ctrl-radius: 9999px;
@@ -525,114 +610,115 @@
525
610
 
526
611
  /* soft · light — gray page, white floating pills, layered shadow w/ inset highlight */
527
612
  [data-tone="soft"]:not([data-theme="dark"]) {
528
- --color-bg-primary: #FFFFFF;
529
- --color-bg-secondary: #ECEDEF;
530
- --color-bg-tertiary: #E1E2E6;
531
- --color-bg-page: #ECEDEF;
613
+ --color-bg-primary: #ffffff;
614
+ --color-bg-secondary: #ecedef;
615
+ --color-bg-tertiary: #e1e2e6;
616
+ --color-bg-page: #ecedef;
532
617
 
533
618
  --color-bg-brand-subtle: color-mix(in srgb, var(--brand-500) 14%, white);
534
- --color-bg-success: #E8F6EE;
535
- --color-bg-warning: #FFF6DC;
536
- --color-bg-danger: #FFE8E6;
537
- --color-bg-info: #ECF1FF;
619
+ --color-bg-success: #e8f6ee;
620
+ --color-bg-warning: #fff6dc;
621
+ --color-bg-danger: #ffe8e6;
622
+ --color-bg-info: #ecf1ff;
538
623
 
539
- --color-border-primary: #DCDEE3;
540
- --color-border-secondary: #E6E8EB;
541
- --color-border-tertiary: #EFF0F2;
624
+ --color-border-primary: #dcdee3;
625
+ --color-border-secondary: #e6e8eb;
626
+ --color-border-tertiary: #eff0f2;
542
627
 
543
628
  /* the signature layered shadows — md/lg/xl carry an inset white top-highlight */
544
629
  --shadow-xs: 0 1px 2px 0 rgba(20, 24, 34, 0.04);
545
- --shadow-sm: 0 1px 2px 0 rgba(20, 24, 34, 0.05),
546
- 0 1px 3px 0 rgba(20, 24, 34, 0.04);
547
- --shadow-md: 0 2px 4px -1px rgba(20, 24, 34, 0.05),
548
- 0 6px 16px -4px rgba(20, 24, 34, 0.08),
549
- 0 1px 1px 0 rgba(255, 255, 255, 0.65) inset;
550
- --shadow-lg: 0 4px 6px -2px rgba(20, 24, 34, 0.06),
551
- 0 12px 24px -8px rgba(20, 24, 34, 0.10),
552
- 0 1px 1px 0 rgba(255, 255, 255, 0.70) inset;
553
- --shadow-xl: 0 6px 10px -2px rgba(20, 24, 34, 0.07),
554
- 0 20px 40px -12px rgba(20, 24, 34, 0.14),
555
- 0 1px 1px 0 rgba(255, 255, 255, 0.70) inset;
556
- --shadow-focus: 0 0 0 4px color-mix(in srgb, var(--brand-500) 18%, transparent);
630
+ --shadow-sm:
631
+ 0 1px 2px 0 rgba(20, 24, 34, 0.05), 0 1px 3px 0 rgba(20, 24, 34, 0.04);
632
+ --shadow-md:
633
+ 0 2px 4px -1px rgba(20, 24, 34, 0.05),
634
+ 0 6px 16px -4px rgba(20, 24, 34, 0.08),
635
+ 0 1px 1px 0 rgba(255, 255, 255, 0.65) inset;
636
+ --shadow-lg:
637
+ 0 4px 6px -2px rgba(20, 24, 34, 0.06),
638
+ 0 12px 24px -8px rgba(20, 24, 34, 0.1),
639
+ 0 1px 1px 0 rgba(255, 255, 255, 0.7) inset;
640
+ --shadow-xl:
641
+ 0 6px 10px -2px rgba(20, 24, 34, 0.07),
642
+ 0 20px 40px -12px rgba(20, 24, 34, 0.14),
643
+ 0 1px 1px 0 rgba(255, 255, 255, 0.7) inset;
644
+ --shadow-focus: 0 0 0 4px
645
+ color-mix(in srgb, var(--brand-500) 18%, transparent);
557
646
  }
558
647
 
559
648
  [data-tone="soft"][data-theme="dark"] {
560
- --color-bg-primary: var(--gray-900);
649
+ --color-bg-primary: var(--gray-900);
561
650
  --color-bg-secondary: var(--gray-950);
562
- --color-bg-tertiary: var(--gray-800);
563
- --color-bg-page: var(--gray-950);
651
+ --color-bg-tertiary: var(--gray-800);
652
+ --color-bg-page: var(--gray-950);
564
653
 
565
- --shadow-md: 0 2px 4px -1px rgba(0, 0, 0, 0.40),
566
- 0 6px 16px -4px rgba(0, 0, 0, 0.50),
567
- 0 1px 0 0 rgba(255, 255, 255, 0.04) inset;
568
- --shadow-lg: 0 4px 6px -2px rgba(0, 0, 0, 0.45),
569
- 0 12px 24px -8px rgba(0, 0, 0, 0.60),
570
- 0 1px 0 0 rgba(255, 255, 255, 0.05) inset;
654
+ --shadow-md:
655
+ 0 2px 4px -1px rgba(0, 0, 0, 0.4), 0 6px 16px -4px rgba(0, 0, 0, 0.5),
656
+ 0 1px 0 0 rgba(255, 255, 255, 0.04) inset;
657
+ --shadow-lg:
658
+ 0 4px 6px -2px rgba(0, 0, 0, 0.45), 0 12px 24px -8px rgba(0, 0, 0, 0.6),
659
+ 0 1px 0 0 rgba(255, 255, 255, 0.05) inset;
571
660
  }
572
661
 
573
662
  /* ─────────────────────────────────────────────────────────
574
663
  Typography scale (rem-based, root = 16px)
575
664
  ───────────────────────────────────────────────────────── */
576
665
  :root {
577
- --font-size-xs: 0.75rem; /* 12 */
578
- --font-size-sm: 0.875rem; /* 14 */
579
- --font-size-md: 1rem; /* 16 */
580
- --font-size-lg: 1.125rem; /* 18 */
581
- --font-size-xl: 1.25rem; /* 20 */
582
- --font-size-2xl: 1.5rem; /* 24 */
583
- --font-size-3xl: 1.875rem; /* 30 */
584
- --font-size-4xl: 2.25rem; /* 36 */
585
- --font-size-5xl: 3rem; /* 48 */
586
- --font-size-6xl: 3.75rem; /* 60 */
587
-
588
- --line-height-tight: 1.15;
589
- --line-height-snug: 1.3;
590
- --line-height-normal: 1.5;
666
+ --font-size-xs: 0.75rem; /* 12 */
667
+ --font-size-sm: 0.875rem; /* 14 */
668
+ --font-size-md: 1rem; /* 16 */
669
+ --font-size-lg: 1.125rem; /* 18 */
670
+ --font-size-xl: 1.25rem; /* 20 */
671
+ --font-size-2xl: 1.5rem; /* 24 */
672
+ --font-size-3xl: 1.875rem; /* 30 */
673
+ --font-size-4xl: 2.25rem; /* 36 */
674
+ --font-size-5xl: 3rem; /* 48 */
675
+ --font-size-6xl: 3.75rem; /* 60 */
676
+
677
+ --line-height-tight: 1.15;
678
+ --line-height-snug: 1.3;
679
+ --line-height-normal: 1.5;
591
680
  --line-height-relaxed: 1.65;
592
681
 
593
682
  --font-weight-regular: 400;
594
- --font-weight-medium: 500;
683
+ --font-weight-medium: 500;
595
684
  --font-weight-semibold: 600;
596
- --font-weight-bold: 700;
685
+ --font-weight-bold: 700;
597
686
 
598
- --letter-tight: -0.022em;
599
- --letter-snug: -0.012em;
687
+ --letter-tight: -0.022em;
688
+ --letter-snug: -0.012em;
600
689
  --letter-normal: 0;
601
- --letter-wide: 0.04em;
690
+ --letter-wide: 0.04em;
602
691
  }
603
692
 
604
693
  /* font pairs — selected via [data-font] */
605
694
  :root,
606
- [data-font="geist"] {
607
- --font-sans: 'Geist', 'Anuphan', ui-sans-serif, system-ui, -apple-system, sans-serif;
608
- --font-mono: 'Geist Mono', ui-monospace, 'SF Mono', Menlo, monospace;
609
- }
610
- [data-font="plex"] {
611
- --font-sans: 'IBM Plex Sans', 'IBM Plex Sans Thai Looped', ui-sans-serif, system-ui, sans-serif;
612
- --font-mono: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, monospace;
695
+ [data-font="roboto"] {
696
+ --font-sans: "Roboto", ui-sans-serif, system-ui, -apple-system, sans-serif;
697
+ --font-mono: "Roboto Mono", ui-monospace, "SF Mono", Menlo, monospace;
613
698
  }
614
699
  [data-font="system"] {
615
- --font-sans: ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
616
- --font-mono: ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
700
+ --font-sans:
701
+ ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
702
+ --font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
617
703
  }
618
704
 
619
705
  /* ─────────────────────────────────────────────────────────
620
706
  Spacing scale — base 4px (8px after 4)
621
707
  ───────────────────────────────────────────────────────── */
622
708
  :root {
623
- --space-0: 0;
624
- --space-1: 0.25rem; /* 4 */
625
- --space-2: 0.5rem; /* 8 */
626
- --space-3: 0.75rem; /* 12 */
627
- --space-4: 1rem; /* 16 */
628
- --space-5: 1.25rem; /* 20 */
629
- --space-6: 1.5rem; /* 24 */
630
- --space-8: 2rem; /* 32 */
631
- --space-10: 2.5rem; /* 40 */
632
- --space-12: 3rem; /* 48 */
633
- --space-16: 4rem; /* 64 */
634
- --space-20: 5rem; /* 80 */
635
- --space-24: 6rem; /* 96 */
709
+ --space-0: 0;
710
+ --space-1: 0.25rem; /* 4 */
711
+ --space-2: 0.5rem; /* 8 */
712
+ --space-3: 0.75rem; /* 12 */
713
+ --space-4: 1rem; /* 16 */
714
+ --space-5: 1.25rem; /* 20 */
715
+ --space-6: 1.5rem; /* 24 */
716
+ --space-8: 2rem; /* 32 */
717
+ --space-10: 2.5rem; /* 40 */
718
+ --space-12: 3rem; /* 48 */
719
+ --space-16: 4rem; /* 64 */
720
+ --space-20: 5rem; /* 80 */
721
+ --space-24: 6rem; /* 96 */
636
722
  }
637
723
 
638
724
  /* ─────────────────────────────────────────────────────────
@@ -640,38 +726,38 @@
640
726
  ───────────────────────────────────────────────────────── */
641
727
  :root,
642
728
  [data-radius="default"] {
643
- --radius-xs: 2px;
644
- --radius-sm: 4px;
645
- --radius-md: 6px;
646
- --radius-lg: 8px;
647
- --radius-xl: 12px;
729
+ --radius-xs: 2px;
730
+ --radius-sm: 4px;
731
+ --radius-md: 6px;
732
+ --radius-lg: 8px;
733
+ --radius-xl: 12px;
648
734
  --radius-2xl: 16px;
649
735
  --radius-full: 9999px;
650
736
  }
651
737
  [data-radius="sharp"] {
652
- --radius-xs: 0px;
653
- --radius-sm: 1px;
654
- --radius-md: 2px;
655
- --radius-lg: 3px;
656
- --radius-xl: 4px;
738
+ --radius-xs: 0px;
739
+ --radius-sm: 1px;
740
+ --radius-md: 2px;
741
+ --radius-lg: 3px;
742
+ --radius-xl: 4px;
657
743
  --radius-2xl: 6px;
658
744
  --radius-full: 9999px;
659
745
  }
660
746
  [data-radius="soft"] {
661
- --radius-xs: 4px;
662
- --radius-sm: 8px;
663
- --radius-md: 12px;
664
- --radius-lg: 14px;
665
- --radius-xl: 18px;
747
+ --radius-xs: 4px;
748
+ --radius-sm: 8px;
749
+ --radius-md: 12px;
750
+ --radius-lg: 14px;
751
+ --radius-xl: 18px;
666
752
  --radius-2xl: 24px;
667
753
  --radius-full: 9999px;
668
754
  }
669
755
  [data-radius="pill"] {
670
- --radius-xs: 4px;
671
- --radius-sm: 9999px;
672
- --radius-md: 9999px;
673
- --radius-lg: 9999px;
674
- --radius-xl: 18px;
756
+ --radius-xs: 4px;
757
+ --radius-sm: 9999px;
758
+ --radius-md: 9999px;
759
+ --radius-lg: 9999px;
760
+ --radius-xl: 18px;
675
761
  --radius-2xl: 22px;
676
762
  --radius-full: 9999px;
677
763
  }
@@ -687,8 +773,8 @@
687
773
  --control-px-sm: 10px;
688
774
  --control-px-md: 14px;
689
775
  --control-px-lg: 18px;
690
- --card-p: 24px;
691
- --row-gap: 16px;
776
+ --card-p: 24px;
777
+ --row-gap: 16px;
692
778
  }
693
779
  [data-density="compact"] {
694
780
  --control-h-sm: 24px;
@@ -697,8 +783,8 @@
697
783
  --control-px-sm: 8px;
698
784
  --control-px-md: 12px;
699
785
  --control-px-lg: 16px;
700
- --card-p: 16px;
701
- --row-gap: 12px;
786
+ --card-p: 16px;
787
+ --row-gap: 12px;
702
788
  }
703
789
  [data-density="comfortable"] {
704
790
  --control-h-sm: 32px;
@@ -707,29 +793,29 @@
707
793
  --control-px-sm: 12px;
708
794
  --control-px-md: 18px;
709
795
  --control-px-lg: 22px;
710
- --card-p: 32px;
711
- --row-gap: 20px;
796
+ --card-p: 32px;
797
+ --row-gap: 20px;
712
798
  }
713
799
 
714
800
  /* ─────────────────────────────────────────────────────────
715
801
  Layout — 12-column grid, breakpoints, container widths
716
802
  ───────────────────────────────────────────────────────── */
717
803
  :root {
718
- --grid-columns: 12;
719
- --grid-gutter: var(--space-6); /* 24 */
720
- --grid-gutter-tight: var(--space-4); /* 16 — used below sm */
721
- --grid-margin: var(--space-6); /* 24 */
722
- --grid-margin-lg: var(--space-10); /* 40 */
804
+ --grid-columns: 12;
805
+ --grid-gutter: var(--space-6); /* 24 */
806
+ --grid-gutter-tight: var(--space-4); /* 16 — used below sm */
807
+ --grid-margin: var(--space-6); /* 24 */
808
+ --grid-margin-lg: var(--space-10); /* 40 */
723
809
 
724
810
  --breakpoint-sm: 640px;
725
811
  --breakpoint-md: 768px;
726
812
  --breakpoint-lg: 1024px;
727
813
  --breakpoint-xl: 1280px;
728
814
 
729
- --container-sm: 640px;
730
- --container-md: 768px;
731
- --container-lg: 1024px;
732
- --container-xl: 1140px;
815
+ --container-sm: 640px;
816
+ --container-md: 768px;
817
+ --container-lg: 1024px;
818
+ --container-xl: 1140px;
733
819
  --container-prose: 1080px;
734
820
  }
735
821
 
@@ -738,13 +824,13 @@
738
824
  ───────────────────────────────────────────────────────── */
739
825
  :root {
740
826
  --duration-instant: 50ms;
741
- --duration-fast: 120ms;
742
- --duration-normal: 200ms;
743
- --duration-slow: 320ms;
744
- --duration-slower: 500ms;
745
-
746
- --ease-linear: linear;
747
- --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
748
- --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
749
- --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
827
+ --duration-fast: 120ms;
828
+ --duration-normal: 200ms;
829
+ --duration-slow: 320ms;
830
+ --duration-slower: 500ms;
831
+
832
+ --ease-linear: linear;
833
+ --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
834
+ --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
835
+ --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
750
836
  }