@reopt-ai/opt-ui 1.4.1

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.
Files changed (64) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/COMPONENT_CATALOG.md +3000 -0
  3. package/LICENSE +21 -0
  4. package/README.md +244 -0
  5. package/dist/chunk-3GWWZKX7.js +38 -0
  6. package/dist/chunk-AFF2HPE5.cjs +5008 -0
  7. package/dist/chunk-ELWICXYY.js +4745 -0
  8. package/dist/chunk-N4NDU5ET.cjs +4745 -0
  9. package/dist/chunk-ONE3C5RV.cjs +38 -0
  10. package/dist/chunk-QWBHD54V.js +3218 -0
  11. package/dist/chunk-RBM2RNC2.js +5008 -0
  12. package/dist/chunk-X5WCXJAF.cjs +3218 -0
  13. package/dist/core/index.cjs +324 -0
  14. package/dist/core/index.d.cts +5 -0
  15. package/dist/core/index.d.ts +5 -0
  16. package/dist/core/index.js +324 -0
  17. package/dist/docs/01-getting-started.md +129 -0
  18. package/dist/docs/02-components/01-core.md +1841 -0
  19. package/dist/docs/02-components/02-visuals.md +11 -0
  20. package/dist/docs/02-components/03-shells.md +1361 -0
  21. package/dist/docs/02-components/04-surfaces.md +11 -0
  22. package/dist/docs/02-components/index.md +106 -0
  23. package/dist/docs/03-recipes/01-forms.md +471 -0
  24. package/dist/docs/03-recipes/02-dashboards.md +397 -0
  25. package/dist/docs/03-recipes/03-layouts.md +424 -0
  26. package/dist/docs/04-theming.md +232 -0
  27. package/dist/docs/05-migration/01-breaking-changes.md +117 -0
  28. package/dist/docs/05-migration/02-formstore.md +336 -0
  29. package/dist/docs/06-troubleshooting.md +119 -0
  30. package/dist/docs/index.md +71 -0
  31. package/dist/id-registry.cjs +1875 -0
  32. package/dist/id-registry.d.cts +27 -0
  33. package/dist/id-registry.d.ts +27 -0
  34. package/dist/id-registry.js +1875 -0
  35. package/dist/id-registry.json +3799 -0
  36. package/dist/index-BZ_lBlO1.d.ts +474 -0
  37. package/dist/index-BuvxoWHf.d.cts +474 -0
  38. package/dist/index-DlAcuvQp.d.cts +1686 -0
  39. package/dist/index-Slu5hOj1.d.ts +1686 -0
  40. package/dist/index.cjs +9959 -0
  41. package/dist/index.d.cts +2351 -0
  42. package/dist/index.d.ts +2351 -0
  43. package/dist/index.js +9959 -0
  44. package/dist/meta.cjs +6898 -0
  45. package/dist/meta.d.cts +36 -0
  46. package/dist/meta.d.ts +36 -0
  47. package/dist/meta.js +6869 -0
  48. package/dist/shells/index.cjs +65 -0
  49. package/dist/shells/index.d.cts +5 -0
  50. package/dist/shells/index.d.ts +5 -0
  51. package/dist/shells/index.js +65 -0
  52. package/dist/tailwind.css +401 -0
  53. package/dist/theme/presets/default.css +355 -0
  54. package/dist/theme/presets/minimal.css +354 -0
  55. package/dist/theme/presets/mono-dark.css +354 -0
  56. package/dist/theme/presets/natural.css +181 -0
  57. package/dist/theme/presets/pro.css +354 -0
  58. package/dist/types-D4-0lwaE.d.cts +298 -0
  59. package/dist/types-D4-0lwaE.d.ts +298 -0
  60. package/dist/visuals/index.cjs +4 -0
  61. package/dist/visuals/index.d.cts +1 -0
  62. package/dist/visuals/index.d.ts +1 -0
  63. package/dist/visuals/index.js +4 -0
  64. package/package.json +165 -0
@@ -0,0 +1,355 @@
1
+ /* AUTOGENERATED by scripts/gen-theme-css.ts — DO NOT EDIT.
2
+ Edit the source token map in presets/tokens.ts and re-run:
3
+ bun run --filter @reopt-ai/opt-ui gen:theme-css
4
+ */
5
+
6
+ /* ── Default Theme ── */
7
+
8
+ :root,
9
+ [data-theme="default"] {
10
+ /* Surface */
11
+ --opt-surface: #ffffff;
12
+ --opt-surface-raised: #ffffff;
13
+ --opt-surface-overlay: #ffffff;
14
+ --opt-surface-input: hsl(204 20% 94%);
15
+ --opt-surface-input-hover: hsl(204 20% 91%);
16
+ --opt-surface-inset: rgba(0, 0, 0, 0.02);
17
+
18
+ /* Accent */
19
+ --opt-accent: hsl(221 83% 53%);
20
+ --opt-accent-hover: hsl(221 83% 46%);
21
+ --opt-accent-active: hsl(221 83% 39%);
22
+ --opt-accent-subtle: hsl(221 83% 53% / 0.08);
23
+ --opt-accent-fg: #ffffff;
24
+
25
+ /* Text */
26
+ --opt-text-body-size: var(--opt-font-size-sm);
27
+ --opt-text-body-weight: var(--opt-font-weight-normal);
28
+ --opt-text-body-leading: 1.5;
29
+ --opt-text-label-size: var(--opt-font-size-sm);
30
+ --opt-text-label-weight: var(--opt-font-weight-medium);
31
+ --opt-text-label-leading: 1.25;
32
+ --opt-text-supporting-size: var(--opt-font-size-xs);
33
+ --opt-text-supporting-weight: var(--opt-font-weight-normal);
34
+ --opt-text-supporting-leading: 1.5;
35
+ --opt-text-code-size: var(--opt-font-size-sm);
36
+ --opt-text-code-weight: var(--opt-font-weight-normal);
37
+ --opt-text-code-leading: 1.5;
38
+ --opt-text-heading-1-size: var(--opt-font-size-3xl);
39
+ --opt-text-heading-1-weight: var(--opt-font-weight-semibold);
40
+ --opt-text-heading-1-leading: 1.2;
41
+ --opt-text-heading-2-size: var(--opt-font-size-2xl);
42
+ --opt-text-heading-2-weight: var(--opt-font-weight-semibold);
43
+ --opt-text-heading-2-leading: 1.25;
44
+ --opt-text-heading-3-size: var(--opt-font-size-xl);
45
+ --opt-text-heading-3-weight: var(--opt-font-weight-semibold);
46
+ --opt-text-heading-3-leading: 1.3;
47
+ --opt-text-heading-4-size: var(--opt-font-size-lg);
48
+ --opt-text-heading-4-weight: var(--opt-font-weight-semibold);
49
+ --opt-text-heading-4-leading: 1.35;
50
+ --opt-text-heading-5-size: var(--opt-font-size-base);
51
+ --opt-text-heading-5-weight: var(--opt-font-weight-semibold);
52
+ --opt-text-heading-5-leading: 1.4;
53
+ --opt-text-heading-6-size: var(--opt-font-size-sm);
54
+ --opt-text-heading-6-weight: var(--opt-font-weight-semibold);
55
+ --opt-text-heading-6-leading: 1.5;
56
+ --opt-text-display-1-size: var(--opt-font-size-4xl);
57
+ --opt-text-display-1-weight: var(--opt-font-weight-normal);
58
+ --opt-text-display-1-leading: 1.1;
59
+ --opt-text-display-2-size: var(--opt-font-size-3xl);
60
+ --opt-text-display-2-weight: var(--opt-font-weight-normal);
61
+ --opt-text-display-2-leading: 1.15;
62
+ --opt-text-display-3-size: var(--opt-font-size-2xl);
63
+ --opt-text-display-3-weight: var(--opt-font-weight-normal);
64
+ --opt-text-display-3-leading: 1.2;
65
+ --opt-text: hsl(0 0% 20%);
66
+ --opt-text-secondary: hsl(0 0% 40%);
67
+ --opt-text-tertiary: hsl(0 0% 55%);
68
+
69
+ /* Border */
70
+ --opt-border-width: 1px;
71
+ --opt-border: rgba(0, 0, 0, 0.13);
72
+ --opt-border-hover: rgba(0, 0, 0, 0.33);
73
+ --opt-border-subtle: rgba(0, 0, 0, 0.08);
74
+
75
+ /* Focus */
76
+ --opt-ring: hsl(221 83% 53%);
77
+ --opt-ring-offset: #ffffff;
78
+
79
+ /* Background */
80
+ --opt-bg: #ffffff;
81
+ --opt-bg-subtle: rgba(0, 0, 0, 0.04);
82
+ --opt-bg-muted: rgba(0, 0, 0, 0.08);
83
+
84
+ /* Status */
85
+ --opt-success: hsl(142 71% 45%);
86
+ --opt-success-subtle: hsl(142 76% 95%);
87
+ --opt-success-fg: hsl(142 71% 29%);
88
+ --opt-warning: hsl(38 92% 50%);
89
+ --opt-warning-subtle: hsl(48 96% 93%);
90
+ --opt-warning-fg: hsl(38 92% 33%);
91
+ --opt-danger: hsl(0 84% 60%);
92
+ --opt-danger-subtle: hsl(0 93% 95%);
93
+ --opt-danger-fg: hsl(0 84% 40%);
94
+ --opt-info: hsl(221 83% 53%);
95
+ --opt-info-subtle: hsl(214 95% 95%);
96
+ --opt-info-fg: hsl(221 83% 40%);
97
+
98
+ /* Chart */
99
+ --opt-chart-6: color-mix(in oklch, var(--opt-chart-1) 62%, var(--opt-chart-2));
100
+ --opt-chart-7: color-mix(in oklch, var(--opt-chart-2) 62%, var(--opt-chart-3));
101
+ --opt-chart-8: color-mix(in oklch, var(--opt-chart-3) 62%, var(--opt-chart-4));
102
+ --opt-chart-9: color-mix(in oklch, var(--opt-chart-4) 62%, var(--opt-chart-5));
103
+ --opt-chart-10: color-mix(in oklch, var(--opt-chart-5) 62%, var(--opt-chart-1));
104
+ --opt-chart-11: color-mix(in oklch, var(--opt-chart-1) 55%, var(--opt-chart-3));
105
+ --opt-chart-12: color-mix(in oklch, var(--opt-chart-2) 55%, var(--opt-chart-4));
106
+ --opt-chart-13: color-mix(in oklch, var(--opt-chart-3) 55%, var(--opt-chart-5));
107
+ --opt-chart-14: color-mix(in oklch, var(--opt-chart-4) 55%, var(--opt-chart-1));
108
+ --opt-chart-15: color-mix(in oklch, var(--opt-chart-5) 55%, var(--opt-chart-2));
109
+ --opt-chart-16: color-mix(in oklch, var(--opt-chart-1) 35%, var(--opt-chart-4));
110
+ --opt-chart-sequential-1: color-mix(in oklch, var(--opt-chart-1) 18%, var(--opt-surface));
111
+ --opt-chart-sequential-2: color-mix(in oklch, var(--opt-chart-1) 36%, var(--opt-surface));
112
+ --opt-chart-sequential-3: color-mix(in oklch, var(--opt-chart-1) 54%, var(--opt-surface));
113
+ --opt-chart-sequential-4: color-mix(in oklch, var(--opt-chart-1) 76%, var(--opt-surface));
114
+ --opt-chart-sequential-5: var(--opt-chart-1);
115
+ --opt-chart-diverging-negative: var(--opt-danger);
116
+ --opt-chart-diverging-neutral: var(--opt-text-tertiary);
117
+ --opt-chart-diverging-positive: var(--opt-success);
118
+ --opt-chart-1: hsl(221 83% 53%);
119
+ --opt-chart-2: hsl(142 71% 45%);
120
+ --opt-chart-3: hsl(38 92% 50%);
121
+ --opt-chart-4: hsl(280 67% 54%);
122
+ --opt-chart-5: hsl(349 89% 60%);
123
+
124
+ /* Radius */
125
+ --opt-radius-sm: 0.25rem;
126
+ --opt-radius-md: 0.5rem;
127
+ --opt-radius-lg: 0.75rem;
128
+ --opt-radius-xl: 1rem;
129
+
130
+ /* Shadow */
131
+ --opt-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
132
+ --opt-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.07);
133
+ --opt-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
134
+
135
+ /* Spacing */
136
+ --opt-space-0: 0px;
137
+ --opt-space-0-5: 0.125rem;
138
+ --opt-space-1: 0.25rem;
139
+ --opt-space-1-5: 0.375rem;
140
+ --opt-space-2: 0.5rem;
141
+ --opt-space-3: 0.75rem;
142
+ --opt-space-4: 1rem;
143
+ --opt-space-5: 1.25rem;
144
+ --opt-space-6: 1.5rem;
145
+ --opt-space-8: 2rem;
146
+ --opt-space-section: 1.5rem;
147
+ --opt-space-group: 1rem;
148
+ --opt-space-element: 0.5rem;
149
+
150
+ /* Typography */
151
+ --opt-font-code: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
152
+ --opt-font-size-xs: 0.75rem;
153
+ --opt-font-size-sm: 0.875rem;
154
+ --opt-font-size-base: 1rem;
155
+ --opt-font-size-lg: 1.125rem;
156
+ --opt-font-size-xl: 1.25rem;
157
+ --opt-font-size-2xl: 1.5rem;
158
+ --opt-font-size-3xl: 1.875rem;
159
+ --opt-font-size-4xl: 2.25rem;
160
+ --opt-font-weight-normal: 400;
161
+ --opt-font-weight-medium: 500;
162
+ --opt-font-weight-semibold: 600;
163
+ --opt-font-weight-bold: 700;
164
+ --opt-font-heading: var(--font-geist-sans), system-ui, sans-serif;
165
+ --opt-font-body: var(--font-geist-sans), system-ui, sans-serif;
166
+ --opt-tracking-heading: -0.015em;
167
+ --opt-weight-heading: 600;
168
+
169
+ /* Other */
170
+ --opt-control-sm: 2rem;
171
+ --opt-control-md: 2.5rem;
172
+ --opt-control-lg: 3rem;
173
+ --opt-control-padding-sm: 0.75rem;
174
+ --opt-control-padding-md: 1rem;
175
+ --opt-control-padding-lg: 1.5rem;
176
+ --opt-duration-fast: 150ms;
177
+ --opt-duration-medium: 250ms;
178
+ --opt-duration-slow: 400ms;
179
+ --opt-ease-standard: cubic-bezier(0.2, 0, 0, 1);
180
+ --opt-ease-emphasized: cubic-bezier(0.2, 0.8, 0.2, 1);
181
+ }
182
+
183
+ [data-theme="default-dark"] {
184
+ /* Surface */
185
+ --opt-surface: hsl(204 4% 16%);
186
+ --opt-surface-raised: hsl(204 4% 16%);
187
+ --opt-surface-overlay: hsl(204 4% 16%);
188
+ --opt-surface-input: hsl(204 4% 10%);
189
+ --opt-surface-input-hover: hsl(204 4% 8%);
190
+ --opt-surface-inset: rgba(255, 255, 255, 0.04);
191
+
192
+ /* Accent */
193
+ --opt-accent: hsl(221 83% 53%);
194
+ --opt-accent-hover: hsl(221 83% 60%);
195
+ --opt-accent-active: hsl(221 83% 67%);
196
+ --opt-accent-subtle: hsl(221 83% 53% / 0.12);
197
+ --opt-accent-fg: #ffffff;
198
+
199
+ /* Text */
200
+ --opt-text-body-size: var(--opt-font-size-sm);
201
+ --opt-text-body-weight: var(--opt-font-weight-normal);
202
+ --opt-text-body-leading: 1.5;
203
+ --opt-text-label-size: var(--opt-font-size-sm);
204
+ --opt-text-label-weight: var(--opt-font-weight-medium);
205
+ --opt-text-label-leading: 1.25;
206
+ --opt-text-supporting-size: var(--opt-font-size-xs);
207
+ --opt-text-supporting-weight: var(--opt-font-weight-normal);
208
+ --opt-text-supporting-leading: 1.5;
209
+ --opt-text-code-size: var(--opt-font-size-sm);
210
+ --opt-text-code-weight: var(--opt-font-weight-normal);
211
+ --opt-text-code-leading: 1.5;
212
+ --opt-text-heading-1-size: var(--opt-font-size-3xl);
213
+ --opt-text-heading-1-weight: var(--opt-font-weight-semibold);
214
+ --opt-text-heading-1-leading: 1.2;
215
+ --opt-text-heading-2-size: var(--opt-font-size-2xl);
216
+ --opt-text-heading-2-weight: var(--opt-font-weight-semibold);
217
+ --opt-text-heading-2-leading: 1.25;
218
+ --opt-text-heading-3-size: var(--opt-font-size-xl);
219
+ --opt-text-heading-3-weight: var(--opt-font-weight-semibold);
220
+ --opt-text-heading-3-leading: 1.3;
221
+ --opt-text-heading-4-size: var(--opt-font-size-lg);
222
+ --opt-text-heading-4-weight: var(--opt-font-weight-semibold);
223
+ --opt-text-heading-4-leading: 1.35;
224
+ --opt-text-heading-5-size: var(--opt-font-size-base);
225
+ --opt-text-heading-5-weight: var(--opt-font-weight-semibold);
226
+ --opt-text-heading-5-leading: 1.4;
227
+ --opt-text-heading-6-size: var(--opt-font-size-sm);
228
+ --opt-text-heading-6-weight: var(--opt-font-weight-semibold);
229
+ --opt-text-heading-6-leading: 1.5;
230
+ --opt-text-display-1-size: var(--opt-font-size-4xl);
231
+ --opt-text-display-1-weight: var(--opt-font-weight-normal);
232
+ --opt-text-display-1-leading: 1.1;
233
+ --opt-text-display-2-size: var(--opt-font-size-3xl);
234
+ --opt-text-display-2-weight: var(--opt-font-weight-normal);
235
+ --opt-text-display-2-leading: 1.15;
236
+ --opt-text-display-3-size: var(--opt-font-size-2xl);
237
+ --opt-text-display-3-weight: var(--opt-font-weight-normal);
238
+ --opt-text-display-3-leading: 1.2;
239
+ --opt-text: hsl(0 0% 82%);
240
+ --opt-text-secondary: hsl(0 0% 58%);
241
+ --opt-text-tertiary: hsl(0 0% 38%);
242
+
243
+ /* Border */
244
+ --opt-border-width: 1px;
245
+ --opt-border: rgba(255, 255, 255, 0.1);
246
+ --opt-border-hover: rgba(255, 255, 255, 0.25);
247
+ --opt-border-subtle: rgba(255, 255, 255, 0.08);
248
+
249
+ /* Focus */
250
+ --opt-ring: hsl(221 83% 53%);
251
+ --opt-ring-offset: hsl(204 4% 16%);
252
+
253
+ /* Background */
254
+ --opt-bg: #0a0a0a;
255
+ --opt-bg-subtle: rgba(255, 255, 255, 0.06);
256
+ --opt-bg-muted: rgba(255, 255, 255, 0.08);
257
+
258
+ /* Status */
259
+ --opt-success: hsl(142 71% 45%);
260
+ --opt-success-subtle: hsl(142 71% 45% / 0.2);
261
+ --opt-success-fg: hsl(142 76% 73%);
262
+ --opt-warning: hsl(38 92% 50%);
263
+ --opt-warning-subtle: hsl(38 92% 50% / 0.2);
264
+ --opt-warning-fg: hsl(48 96% 73%);
265
+ --opt-danger: hsl(0 84% 60%);
266
+ --opt-danger-subtle: hsl(0 84% 60% / 0.2);
267
+ --opt-danger-fg: hsl(0 84% 73%);
268
+ --opt-info: hsl(221 83% 53%);
269
+ --opt-info-subtle: hsl(221 83% 53% / 0.2);
270
+ --opt-info-fg: hsl(221 83% 73%);
271
+
272
+ /* Chart */
273
+ --opt-chart-6: color-mix(in oklch, var(--opt-chart-1) 62%, var(--opt-chart-2));
274
+ --opt-chart-7: color-mix(in oklch, var(--opt-chart-2) 62%, var(--opt-chart-3));
275
+ --opt-chart-8: color-mix(in oklch, var(--opt-chart-3) 62%, var(--opt-chart-4));
276
+ --opt-chart-9: color-mix(in oklch, var(--opt-chart-4) 62%, var(--opt-chart-5));
277
+ --opt-chart-10: color-mix(in oklch, var(--opt-chart-5) 62%, var(--opt-chart-1));
278
+ --opt-chart-11: color-mix(in oklch, var(--opt-chart-1) 55%, var(--opt-chart-3));
279
+ --opt-chart-12: color-mix(in oklch, var(--opt-chart-2) 55%, var(--opt-chart-4));
280
+ --opt-chart-13: color-mix(in oklch, var(--opt-chart-3) 55%, var(--opt-chart-5));
281
+ --opt-chart-14: color-mix(in oklch, var(--opt-chart-4) 55%, var(--opt-chart-1));
282
+ --opt-chart-15: color-mix(in oklch, var(--opt-chart-5) 55%, var(--opt-chart-2));
283
+ --opt-chart-16: color-mix(in oklch, var(--opt-chart-1) 35%, var(--opt-chart-4));
284
+ --opt-chart-sequential-1: color-mix(in oklch, var(--opt-chart-1) 18%, var(--opt-surface));
285
+ --opt-chart-sequential-2: color-mix(in oklch, var(--opt-chart-1) 36%, var(--opt-surface));
286
+ --opt-chart-sequential-3: color-mix(in oklch, var(--opt-chart-1) 54%, var(--opt-surface));
287
+ --opt-chart-sequential-4: color-mix(in oklch, var(--opt-chart-1) 76%, var(--opt-surface));
288
+ --opt-chart-sequential-5: var(--opt-chart-1);
289
+ --opt-chart-diverging-negative: var(--opt-danger);
290
+ --opt-chart-diverging-neutral: var(--opt-text-tertiary);
291
+ --opt-chart-diverging-positive: var(--opt-success);
292
+ --opt-chart-1: hsl(221 83% 53%);
293
+ --opt-chart-2: hsl(142 71% 45%);
294
+ --opt-chart-3: hsl(38 92% 50%);
295
+ --opt-chart-4: hsl(280 67% 54%);
296
+ --opt-chart-5: hsl(349 89% 60%);
297
+
298
+ /* Radius */
299
+ --opt-radius-sm: 0.25rem;
300
+ --opt-radius-md: 0.5rem;
301
+ --opt-radius-lg: 0.75rem;
302
+ --opt-radius-xl: 1rem;
303
+
304
+ /* Shadow */
305
+ --opt-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
306
+ --opt-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.4);
307
+ --opt-shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.5);
308
+
309
+ /* Spacing */
310
+ --opt-space-0: 0px;
311
+ --opt-space-0-5: 0.125rem;
312
+ --opt-space-1: 0.25rem;
313
+ --opt-space-1-5: 0.375rem;
314
+ --opt-space-2: 0.5rem;
315
+ --opt-space-3: 0.75rem;
316
+ --opt-space-4: 1rem;
317
+ --opt-space-5: 1.25rem;
318
+ --opt-space-6: 1.5rem;
319
+ --opt-space-8: 2rem;
320
+ --opt-space-section: 1.5rem;
321
+ --opt-space-group: 1rem;
322
+ --opt-space-element: 0.5rem;
323
+
324
+ /* Typography */
325
+ --opt-font-code: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
326
+ --opt-font-size-xs: 0.75rem;
327
+ --opt-font-size-sm: 0.875rem;
328
+ --opt-font-size-base: 1rem;
329
+ --opt-font-size-lg: 1.125rem;
330
+ --opt-font-size-xl: 1.25rem;
331
+ --opt-font-size-2xl: 1.5rem;
332
+ --opt-font-size-3xl: 1.875rem;
333
+ --opt-font-size-4xl: 2.25rem;
334
+ --opt-font-weight-normal: 400;
335
+ --opt-font-weight-medium: 500;
336
+ --opt-font-weight-semibold: 600;
337
+ --opt-font-weight-bold: 700;
338
+ --opt-font-heading: var(--font-geist-sans), system-ui, sans-serif;
339
+ --opt-font-body: var(--font-geist-sans), system-ui, sans-serif;
340
+ --opt-tracking-heading: -0.015em;
341
+ --opt-weight-heading: 600;
342
+
343
+ /* Other */
344
+ --opt-control-sm: 2rem;
345
+ --opt-control-md: 2.5rem;
346
+ --opt-control-lg: 3rem;
347
+ --opt-control-padding-sm: 0.75rem;
348
+ --opt-control-padding-md: 1rem;
349
+ --opt-control-padding-lg: 1.5rem;
350
+ --opt-duration-fast: 150ms;
351
+ --opt-duration-medium: 250ms;
352
+ --opt-duration-slow: 400ms;
353
+ --opt-ease-standard: cubic-bezier(0.2, 0, 0, 1);
354
+ --opt-ease-emphasized: cubic-bezier(0.2, 0.8, 0.2, 1);
355
+ }