@bubble-design-system/ui 1.0.1 → 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,110 +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
695
  [data-font="roboto"] {
607
- --font-sans: 'Roboto', ui-sans-serif, system-ui, -apple-system, sans-serif;
608
- --font-mono: 'Roboto Mono', ui-monospace, 'SF Mono', Menlo, monospace;
696
+ --font-sans: "Roboto", ui-sans-serif, system-ui, -apple-system, sans-serif;
697
+ --font-mono: "Roboto Mono", ui-monospace, "SF Mono", Menlo, monospace;
609
698
  }
610
699
  [data-font="system"] {
611
- --font-sans: ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
612
- --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;
613
703
  }
614
704
 
615
705
  /* ─────────────────────────────────────────────────────────
616
706
  Spacing scale — base 4px (8px after 4)
617
707
  ───────────────────────────────────────────────────────── */
618
708
  :root {
619
- --space-0: 0;
620
- --space-1: 0.25rem; /* 4 */
621
- --space-2: 0.5rem; /* 8 */
622
- --space-3: 0.75rem; /* 12 */
623
- --space-4: 1rem; /* 16 */
624
- --space-5: 1.25rem; /* 20 */
625
- --space-6: 1.5rem; /* 24 */
626
- --space-8: 2rem; /* 32 */
627
- --space-10: 2.5rem; /* 40 */
628
- --space-12: 3rem; /* 48 */
629
- --space-16: 4rem; /* 64 */
630
- --space-20: 5rem; /* 80 */
631
- --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 */
632
722
  }
633
723
 
634
724
  /* ─────────────────────────────────────────────────────────
@@ -636,38 +726,38 @@
636
726
  ───────────────────────────────────────────────────────── */
637
727
  :root,
638
728
  [data-radius="default"] {
639
- --radius-xs: 2px;
640
- --radius-sm: 4px;
641
- --radius-md: 6px;
642
- --radius-lg: 8px;
643
- --radius-xl: 12px;
729
+ --radius-xs: 2px;
730
+ --radius-sm: 4px;
731
+ --radius-md: 6px;
732
+ --radius-lg: 8px;
733
+ --radius-xl: 12px;
644
734
  --radius-2xl: 16px;
645
735
  --radius-full: 9999px;
646
736
  }
647
737
  [data-radius="sharp"] {
648
- --radius-xs: 0px;
649
- --radius-sm: 1px;
650
- --radius-md: 2px;
651
- --radius-lg: 3px;
652
- --radius-xl: 4px;
738
+ --radius-xs: 0px;
739
+ --radius-sm: 1px;
740
+ --radius-md: 2px;
741
+ --radius-lg: 3px;
742
+ --radius-xl: 4px;
653
743
  --radius-2xl: 6px;
654
744
  --radius-full: 9999px;
655
745
  }
656
746
  [data-radius="soft"] {
657
- --radius-xs: 4px;
658
- --radius-sm: 8px;
659
- --radius-md: 12px;
660
- --radius-lg: 14px;
661
- --radius-xl: 18px;
747
+ --radius-xs: 4px;
748
+ --radius-sm: 8px;
749
+ --radius-md: 12px;
750
+ --radius-lg: 14px;
751
+ --radius-xl: 18px;
662
752
  --radius-2xl: 24px;
663
753
  --radius-full: 9999px;
664
754
  }
665
755
  [data-radius="pill"] {
666
- --radius-xs: 4px;
667
- --radius-sm: 9999px;
668
- --radius-md: 9999px;
669
- --radius-lg: 9999px;
670
- --radius-xl: 18px;
756
+ --radius-xs: 4px;
757
+ --radius-sm: 9999px;
758
+ --radius-md: 9999px;
759
+ --radius-lg: 9999px;
760
+ --radius-xl: 18px;
671
761
  --radius-2xl: 22px;
672
762
  --radius-full: 9999px;
673
763
  }
@@ -683,8 +773,8 @@
683
773
  --control-px-sm: 10px;
684
774
  --control-px-md: 14px;
685
775
  --control-px-lg: 18px;
686
- --card-p: 24px;
687
- --row-gap: 16px;
776
+ --card-p: 24px;
777
+ --row-gap: 16px;
688
778
  }
689
779
  [data-density="compact"] {
690
780
  --control-h-sm: 24px;
@@ -693,8 +783,8 @@
693
783
  --control-px-sm: 8px;
694
784
  --control-px-md: 12px;
695
785
  --control-px-lg: 16px;
696
- --card-p: 16px;
697
- --row-gap: 12px;
786
+ --card-p: 16px;
787
+ --row-gap: 12px;
698
788
  }
699
789
  [data-density="comfortable"] {
700
790
  --control-h-sm: 32px;
@@ -703,29 +793,29 @@
703
793
  --control-px-sm: 12px;
704
794
  --control-px-md: 18px;
705
795
  --control-px-lg: 22px;
706
- --card-p: 32px;
707
- --row-gap: 20px;
796
+ --card-p: 32px;
797
+ --row-gap: 20px;
708
798
  }
709
799
 
710
800
  /* ─────────────────────────────────────────────────────────
711
801
  Layout — 12-column grid, breakpoints, container widths
712
802
  ───────────────────────────────────────────────────────── */
713
803
  :root {
714
- --grid-columns: 12;
715
- --grid-gutter: var(--space-6); /* 24 */
716
- --grid-gutter-tight: var(--space-4); /* 16 — used below sm */
717
- --grid-margin: var(--space-6); /* 24 */
718
- --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 */
719
809
 
720
810
  --breakpoint-sm: 640px;
721
811
  --breakpoint-md: 768px;
722
812
  --breakpoint-lg: 1024px;
723
813
  --breakpoint-xl: 1280px;
724
814
 
725
- --container-sm: 640px;
726
- --container-md: 768px;
727
- --container-lg: 1024px;
728
- --container-xl: 1140px;
815
+ --container-sm: 640px;
816
+ --container-md: 768px;
817
+ --container-lg: 1024px;
818
+ --container-xl: 1140px;
729
819
  --container-prose: 1080px;
730
820
  }
731
821
 
@@ -734,13 +824,13 @@
734
824
  ───────────────────────────────────────────────────────── */
735
825
  :root {
736
826
  --duration-instant: 50ms;
737
- --duration-fast: 120ms;
738
- --duration-normal: 200ms;
739
- --duration-slow: 320ms;
740
- --duration-slower: 500ms;
741
-
742
- --ease-linear: linear;
743
- --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
744
- --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
745
- --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);
746
836
  }