@abuzareal/contour-ui 0.3.0 → 0.5.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.
Files changed (147) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/COMPOSITION.md +28 -28
  3. package/CONTRACTS.md +9 -3
  4. package/FORMS.md +94 -0
  5. package/NEXTJS.md +6 -2
  6. package/OVERLAYS.md +52 -0
  7. package/PUBLIC-API.md +181 -162
  8. package/README.md +44 -28
  9. package/RELEASING.md +1 -1
  10. package/SIZE.md +45 -0
  11. package/STYLING.md +68 -0
  12. package/dist/actions.css +7 -0
  13. package/dist/components/hero/Sculpture.js +2 -1
  14. package/dist/components/three/ObjectStudy.js +2 -1
  15. package/dist/components/ui/Alert.d.ts +2 -1
  16. package/dist/components/ui/Alert.js +3 -3
  17. package/dist/components/ui/Avatar.d.ts +3 -1
  18. package/dist/components/ui/Avatar.js +3 -3
  19. package/dist/components/ui/Badge.js +2 -2
  20. package/dist/components/ui/BrandMark.js +2 -1
  21. package/dist/components/ui/Breadcrumbs.d.ts +2 -1
  22. package/dist/components/ui/Breadcrumbs.js +3 -2
  23. package/dist/components/ui/Button.d.ts +2 -0
  24. package/dist/components/ui/Button.js +3 -2
  25. package/dist/components/ui/Card.js +2 -2
  26. package/dist/components/ui/Checkbox.d.ts +2 -2
  27. package/dist/components/ui/Checkbox.js +14 -5
  28. package/dist/components/ui/CountUp.d.ts +2 -1
  29. package/dist/components/ui/CountUp.js +6 -3
  30. package/dist/components/ui/DataTable.d.ts +1 -0
  31. package/dist/components/ui/DataTable.js +12 -8
  32. package/dist/components/ui/DepthButton.js +2 -2
  33. package/dist/components/ui/Dialog.d.ts +5 -1
  34. package/dist/components/ui/Dialog.js +49 -18
  35. package/dist/components/ui/Disclosure.js +2 -1
  36. package/dist/components/ui/Divider.js +3 -2
  37. package/dist/components/ui/DropdownMenu.d.ts +11 -4
  38. package/dist/components/ui/DropdownMenu.js +109 -66
  39. package/dist/components/ui/EmptyState.js +2 -1
  40. package/dist/components/ui/Field.js +2 -2
  41. package/dist/components/ui/FlipCard.js +2 -2
  42. package/dist/components/ui/FloatingPortal.d.ts +10 -0
  43. package/dist/components/ui/FloatingPortal.js +51 -0
  44. package/dist/components/ui/IconButton.js +2 -2
  45. package/dist/components/ui/Kbd.js +2 -1
  46. package/dist/components/ui/Magnetic.js +2 -1
  47. package/dist/components/ui/Marquee.js +3 -2
  48. package/dist/components/ui/OverlayTrigger.d.ts +11 -0
  49. package/dist/components/ui/OverlayTrigger.js +5 -0
  50. package/dist/components/ui/Pagination.d.ts +5 -1
  51. package/dist/components/ui/Pagination.js +3 -2
  52. package/dist/components/ui/Popover.d.ts +18 -8
  53. package/dist/components/ui/Popover.js +58 -17
  54. package/dist/components/ui/ProgressBar.js +2 -2
  55. package/dist/components/ui/RadioGroup.d.ts +13 -5
  56. package/dist/components/ui/RadioGroup.js +36 -9
  57. package/dist/components/ui/Reveal.d.ts +0 -1
  58. package/dist/components/ui/Reveal.js +4 -3
  59. package/dist/components/ui/RevealHeading.js +2 -1
  60. package/dist/components/ui/ScrollProgress.js +2 -1
  61. package/dist/components/ui/SectionLabel.js +2 -1
  62. package/dist/components/ui/SegmentedControl.js +6 -3
  63. package/dist/components/ui/SelectField.js +18 -3
  64. package/dist/components/ui/Skeleton.js +2 -2
  65. package/dist/components/ui/Slider.d.ts +23 -7
  66. package/dist/components/ui/Slider.js +43 -6
  67. package/dist/components/ui/Spinner.js +2 -2
  68. package/dist/components/ui/Stat.js +2 -1
  69. package/dist/components/ui/Stepper.js +3 -3
  70. package/dist/components/ui/Switch.d.ts +27 -5
  71. package/dist/components/ui/Switch.js +51 -5
  72. package/dist/components/ui/Tabs.js +7 -5
  73. package/dist/components/ui/Tag.d.ts +2 -1
  74. package/dist/components/ui/Tag.js +4 -3
  75. package/dist/components/ui/TextArea.js +4 -1
  76. package/dist/components/ui/TextField.js +8 -3
  77. package/dist/components/ui/ThemeScope.d.ts +13 -0
  78. package/dist/components/ui/ThemeScope.js +10 -0
  79. package/dist/components/ui/ThemeToggle.d.ts +3 -0
  80. package/dist/components/ui/ThemeToggle.js +4 -3
  81. package/dist/components/ui/TiltCard.js +3 -2
  82. package/dist/components/ui/Timeline.js +2 -2
  83. package/dist/components/ui/ToastProvider.d.ts +5 -2
  84. package/dist/components/ui/ToastProvider.js +5 -5
  85. package/dist/components/ui/Tooltip.d.ts +4 -4
  86. package/dist/components/ui/Tooltip.js +70 -10
  87. package/dist/data-display.css +5 -0
  88. package/dist/effects.css +6 -0
  89. package/dist/feedback.css +5 -0
  90. package/dist/fonts-latin.css +10 -4
  91. package/dist/fonts.css +8 -0
  92. package/dist/forms.css +5 -0
  93. package/dist/hooks/useDismiss.d.ts +12 -3
  94. package/dist/hooks/useDismiss.js +5 -21
  95. package/dist/hooks/useFloatingPanel.d.ts +14 -0
  96. package/dist/hooks/useFloatingPanel.js +157 -0
  97. package/dist/hooks/useFormReset.d.ts +1 -1
  98. package/dist/hooks/useLayerDismiss.d.ts +4 -0
  99. package/dist/hooks/useLayerDismiss.js +48 -0
  100. package/dist/hooks/useMobileMenu.d.ts +0 -1
  101. package/dist/hooks/useMobileMenu.js +11 -16
  102. package/dist/hooks/usePanelFocus.d.ts +10 -0
  103. package/dist/hooks/usePanelFocus.js +60 -0
  104. package/dist/hooks/useTheme.d.ts +1 -0
  105. package/dist/hooks/useTheme.js +18 -5
  106. package/dist/index.d.ts +5 -0
  107. package/dist/index.js +1 -0
  108. package/dist/kit/forms.css +11 -2
  109. package/dist/kit/navigation.css +4 -0
  110. package/dist/kit/overlays.css +8 -4
  111. package/dist/lib/classNames.d.ts +2 -0
  112. package/dist/lib/classNames.js +16 -1
  113. package/dist/lib/componentClasses.d.ts +1 -0
  114. package/dist/lib/componentClasses.js +2 -0
  115. package/dist/lib/keyboard.d.ts +1 -1
  116. package/dist/lib/keyboard.js +5 -2
  117. package/dist/lib/layers.d.ts +18 -0
  118. package/dist/lib/layers.js +128 -0
  119. package/dist/lib/themeScope.d.ts +5 -0
  120. package/dist/lib/themeScope.js +3 -0
  121. package/dist/minimal-reset.css +6 -0
  122. package/dist/navigation.css +5 -0
  123. package/dist/overlays.css +5 -0
  124. package/dist/scoped/base.css +183 -0
  125. package/dist/scoped/kit/actions.css +209 -0
  126. package/dist/scoped/kit/data-display.css +492 -0
  127. package/dist/scoped/kit/effects.css +140 -0
  128. package/dist/scoped/kit/feedback.css +309 -0
  129. package/dist/scoped/kit/forms.css +370 -0
  130. package/dist/scoped/kit/navigation.css +266 -0
  131. package/dist/scoped/kit/overlays.css +299 -0
  132. package/dist/scoped/marquee.css +58 -0
  133. package/dist/scoped/spinner.css +20 -0
  134. package/dist/scoped/theme-toggle.css +38 -0
  135. package/dist/scoped/tokens.css +119 -0
  136. package/dist/scoped/ui.css +127 -0
  137. package/dist/scoped/utilities.css +17 -0
  138. package/dist/scoped-tokens.css +1 -0
  139. package/dist/scoped.css +12 -0
  140. package/dist/theme-toggle.css +2 -2
  141. package/dist/tokens.json +710 -0
  142. package/examples/forms/HookFormSettingsForm.tsx +176 -0
  143. package/examples/forms/ManualSettingsForm-0.3.0.tsx +102 -0
  144. package/examples/forms/NativeSettingsForm.tsx +119 -0
  145. package/examples/forms/settings.ts +61 -0
  146. package/examples/forms/useSubmission.ts +77 -0
  147. package/package.json +30 -6
@@ -0,0 +1,710 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "prefix": "--contour-",
4
+ "source": "Manual semantic roles reviewed against 0.4.0; generated isolated CSS",
5
+ "categories": [
6
+ "color",
7
+ "typography",
8
+ "spacing",
9
+ "shape",
10
+ "motion",
11
+ "elevation",
12
+ "layer"
13
+ ],
14
+ "tokens": [
15
+ {
16
+ "name": "--contour-ink",
17
+ "legacy": "--ink",
18
+ "category": "color",
19
+ "role": "ink",
20
+ "themeable": false,
21
+ "values": {
22
+ "light": "#171817",
23
+ "dark": "#171817"
24
+ },
25
+ "legacyStatus": "compatibility; no removal in 0.5"
26
+ },
27
+ {
28
+ "name": "--contour-paper",
29
+ "legacy": "--paper",
30
+ "category": "color",
31
+ "role": "paper",
32
+ "themeable": false,
33
+ "values": {
34
+ "light": "#f2f3ee",
35
+ "dark": "#f2f3ee"
36
+ },
37
+ "legacyStatus": "compatibility; no removal in 0.5"
38
+ },
39
+ {
40
+ "name": "--contour-white",
41
+ "legacy": "--white",
42
+ "category": "color",
43
+ "role": "white",
44
+ "themeable": false,
45
+ "values": {
46
+ "light": "#fcfcf9",
47
+ "dark": "#fcfcf9"
48
+ },
49
+ "legacyStatus": "compatibility; no removal in 0.5"
50
+ },
51
+ {
52
+ "name": "--contour-acid",
53
+ "legacy": "--acid",
54
+ "category": "color",
55
+ "role": "acid",
56
+ "themeable": false,
57
+ "values": {
58
+ "light": "#d0f344",
59
+ "dark": "#d0f344"
60
+ },
61
+ "legacyStatus": "compatibility; no removal in 0.5"
62
+ },
63
+ {
64
+ "name": "--contour-ease",
65
+ "legacy": "--ease",
66
+ "category": "motion",
67
+ "role": "ease",
68
+ "themeable": false,
69
+ "values": {
70
+ "light": "cubic-bezier(0.22, 1, 0.36, 1)",
71
+ "dark": "cubic-bezier(0.22, 1, 0.36, 1)"
72
+ },
73
+ "legacyStatus": "compatibility; no removal in 0.5"
74
+ },
75
+ {
76
+ "name": "--contour-font-sans",
77
+ "legacy": "--font-sans",
78
+ "category": "typography",
79
+ "role": "font sans",
80
+ "themeable": false,
81
+ "values": {
82
+ "light": "system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif",
83
+ "dark": "system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif"
84
+ },
85
+ "legacyStatus": "compatibility; no removal in 0.5"
86
+ },
87
+ {
88
+ "name": "--contour-font-display",
89
+ "legacy": "--font-display",
90
+ "category": "typography",
91
+ "role": "font display",
92
+ "themeable": false,
93
+ "values": {
94
+ "light": "system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif",
95
+ "dark": "system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif"
96
+ },
97
+ "legacyStatus": "compatibility; no removal in 0.5"
98
+ },
99
+ {
100
+ "name": "--contour-font-mono",
101
+ "legacy": "--font-mono",
102
+ "category": "typography",
103
+ "role": "font mono",
104
+ "themeable": false,
105
+ "values": {
106
+ "light": "ui-monospace, \"SFMono-Regular\", Consolas, monospace",
107
+ "dark": "ui-monospace, \"SFMono-Regular\", Consolas, monospace"
108
+ },
109
+ "legacyStatus": "compatibility; no removal in 0.5"
110
+ },
111
+ {
112
+ "name": "--contour-radius-sm",
113
+ "legacy": "--radius-sm",
114
+ "category": "shape",
115
+ "role": "radius sm",
116
+ "themeable": false,
117
+ "values": {
118
+ "light": "4px",
119
+ "dark": "4px"
120
+ },
121
+ "legacyStatus": "compatibility; no removal in 0.5"
122
+ },
123
+ {
124
+ "name": "--contour-radius-md",
125
+ "legacy": "--radius-md",
126
+ "category": "shape",
127
+ "role": "radius md",
128
+ "themeable": false,
129
+ "values": {
130
+ "light": "8px",
131
+ "dark": "8px"
132
+ },
133
+ "legacyStatus": "compatibility; no removal in 0.5"
134
+ },
135
+ {
136
+ "name": "--contour-radius-pill",
137
+ "legacy": "--radius-pill",
138
+ "category": "shape",
139
+ "role": "radius pill",
140
+ "themeable": false,
141
+ "values": {
142
+ "light": "999px",
143
+ "dark": "999px"
144
+ },
145
+ "legacyStatus": "compatibility; no removal in 0.5"
146
+ },
147
+ {
148
+ "name": "--contour-duration-fast",
149
+ "legacy": "--duration-fast",
150
+ "category": "motion",
151
+ "role": "duration fast",
152
+ "themeable": false,
153
+ "values": {
154
+ "light": "160ms",
155
+ "dark": "160ms"
156
+ },
157
+ "legacyStatus": "compatibility; no removal in 0.5"
158
+ },
159
+ {
160
+ "name": "--contour-duration-base",
161
+ "legacy": "--duration-base",
162
+ "category": "motion",
163
+ "role": "duration base",
164
+ "themeable": false,
165
+ "values": {
166
+ "light": "300ms",
167
+ "dark": "300ms"
168
+ },
169
+ "legacyStatus": "compatibility; no removal in 0.5"
170
+ },
171
+ {
172
+ "name": "--contour-duration-slow",
173
+ "legacy": "--duration-slow",
174
+ "category": "motion",
175
+ "role": "duration slow",
176
+ "themeable": false,
177
+ "values": {
178
+ "light": "700ms",
179
+ "dark": "700ms"
180
+ },
181
+ "legacyStatus": "compatibility; no removal in 0.5"
182
+ },
183
+ {
184
+ "name": "--contour-bg",
185
+ "legacy": "--bg",
186
+ "category": "color",
187
+ "role": "bg",
188
+ "themeable": true,
189
+ "values": {
190
+ "light": "var(--contour-paper)",
191
+ "dark": "#0f100d"
192
+ },
193
+ "legacyStatus": "compatibility; no removal in 0.5"
194
+ },
195
+ {
196
+ "name": "--contour-fg",
197
+ "legacy": "--fg",
198
+ "category": "color",
199
+ "role": "fg",
200
+ "themeable": true,
201
+ "values": {
202
+ "light": "var(--contour-ink)",
203
+ "dark": "#eef0e6"
204
+ },
205
+ "legacyStatus": "compatibility; no removal in 0.5"
206
+ },
207
+ {
208
+ "name": "--contour-muted",
209
+ "legacy": "--muted",
210
+ "category": "color",
211
+ "role": "muted",
212
+ "themeable": true,
213
+ "values": {
214
+ "light": "#63665f",
215
+ "dark": "#9a9e90"
216
+ },
217
+ "legacyStatus": "compatibility; no removal in 0.5"
218
+ },
219
+ {
220
+ "name": "--contour-line",
221
+ "legacy": "--line",
222
+ "category": "color",
223
+ "role": "line",
224
+ "themeable": true,
225
+ "values": {
226
+ "light": "#d6d8d0",
227
+ "dark": "#2a2d24"
228
+ },
229
+ "legacyStatus": "compatibility; no removal in 0.5"
230
+ },
231
+ {
232
+ "name": "--contour-line-strong",
233
+ "legacy": "--line-strong",
234
+ "category": "color",
235
+ "role": "line strong",
236
+ "themeable": true,
237
+ "values": {
238
+ "light": "#b4b8ac",
239
+ "dark": "#444939"
240
+ },
241
+ "legacyStatus": "compatibility; no removal in 0.5"
242
+ },
243
+ {
244
+ "name": "--contour-surface",
245
+ "legacy": "--surface",
246
+ "category": "color",
247
+ "role": "surface",
248
+ "themeable": true,
249
+ "values": {
250
+ "light": "#fbfbf8",
251
+ "dark": "#171913"
252
+ },
253
+ "legacyStatus": "compatibility; no removal in 0.5"
254
+ },
255
+ {
256
+ "name": "--contour-surface-sunken",
257
+ "legacy": "--surface-sunken",
258
+ "category": "color",
259
+ "role": "surface sunken",
260
+ "themeable": true,
261
+ "values": {
262
+ "light": "#e8e9e1",
263
+ "dark": "#0a0b09"
264
+ },
265
+ "legacyStatus": "compatibility; no removal in 0.5"
266
+ },
267
+ {
268
+ "name": "--contour-overlay",
269
+ "legacy": "--overlay",
270
+ "category": "color",
271
+ "role": "overlay",
272
+ "themeable": true,
273
+ "values": {
274
+ "light": "#171817b8",
275
+ "dark": "#050605cc"
276
+ },
277
+ "legacyStatus": "compatibility; no removal in 0.5"
278
+ },
279
+ {
280
+ "name": "--contour-shadow-raised",
281
+ "legacy": "--shadow-raised",
282
+ "category": "elevation",
283
+ "role": "shadow raised",
284
+ "themeable": true,
285
+ "values": {
286
+ "light": "0 1px 2px #1718170d, 0 10px 28px #17181712",
287
+ "dark": "0 1px 2px #0000004d, 0 10px 28px #00000059"
288
+ },
289
+ "legacyStatus": "compatibility; no removal in 0.5"
290
+ },
291
+ {
292
+ "name": "--contour-shadow-floating",
293
+ "legacy": "--shadow-floating",
294
+ "category": "elevation",
295
+ "role": "shadow floating",
296
+ "themeable": true,
297
+ "values": {
298
+ "light": "0 24px 56px #1718172e",
299
+ "dark": "0 24px 56px #00000099"
300
+ },
301
+ "legacyStatus": "compatibility; no removal in 0.5"
302
+ },
303
+ {
304
+ "name": "--contour-olive",
305
+ "legacy": "--olive",
306
+ "category": "color",
307
+ "role": "olive",
308
+ "themeable": true,
309
+ "values": {
310
+ "light": "#75901a",
311
+ "dark": "#c2e042"
312
+ },
313
+ "legacyStatus": "compatibility; no removal in 0.5"
314
+ },
315
+ {
316
+ "name": "--contour-signal",
317
+ "legacy": "--signal",
318
+ "category": "color",
319
+ "role": "signal",
320
+ "themeable": true,
321
+ "values": {
322
+ "light": "#4d7522",
323
+ "dark": "var(--contour-acid)"
324
+ },
325
+ "legacyStatus": "compatibility; no removal in 0.5"
326
+ },
327
+ {
328
+ "name": "--contour-success",
329
+ "legacy": "--success",
330
+ "category": "color",
331
+ "role": "success",
332
+ "themeable": true,
333
+ "values": {
334
+ "light": "#3f6119",
335
+ "dark": "#b5d33f"
336
+ },
337
+ "legacyStatus": "compatibility; no removal in 0.5"
338
+ },
339
+ {
340
+ "name": "--contour-success-soft",
341
+ "legacy": "--success-soft",
342
+ "category": "color",
343
+ "role": "success soft",
344
+ "themeable": true,
345
+ "values": {
346
+ "light": "#e4ecc9",
347
+ "dark": "#222914"
348
+ },
349
+ "legacyStatus": "compatibility; no removal in 0.5"
350
+ },
351
+ {
352
+ "name": "--contour-info",
353
+ "legacy": "--info",
354
+ "category": "color",
355
+ "role": "info",
356
+ "themeable": true,
357
+ "values": {
358
+ "light": "#2f6a82",
359
+ "dark": "#8fc0d6"
360
+ },
361
+ "legacyStatus": "compatibility; no removal in 0.5"
362
+ },
363
+ {
364
+ "name": "--contour-info-soft",
365
+ "legacy": "--info-soft",
366
+ "category": "color",
367
+ "role": "info soft",
368
+ "themeable": true,
369
+ "values": {
370
+ "light": "#dbe8ec",
371
+ "dark": "#152227"
372
+ },
373
+ "legacyStatus": "compatibility; no removal in 0.5"
374
+ },
375
+ {
376
+ "name": "--contour-warning",
377
+ "legacy": "--warning",
378
+ "category": "color",
379
+ "role": "warning",
380
+ "themeable": true,
381
+ "values": {
382
+ "light": "#7a5100",
383
+ "dark": "#f0c063"
384
+ },
385
+ "legacyStatus": "compatibility; no removal in 0.5"
386
+ },
387
+ {
388
+ "name": "--contour-warning-soft",
389
+ "legacy": "--warning-soft",
390
+ "category": "color",
391
+ "role": "warning soft",
392
+ "themeable": true,
393
+ "values": {
394
+ "light": "#f5e6c3",
395
+ "dark": "#2b2311"
396
+ },
397
+ "legacyStatus": "compatibility; no removal in 0.5"
398
+ },
399
+ {
400
+ "name": "--contour-danger",
401
+ "legacy": "--danger",
402
+ "category": "color",
403
+ "role": "danger",
404
+ "themeable": true,
405
+ "values": {
406
+ "light": "#a8321c",
407
+ "dark": "#ff8a70"
408
+ },
409
+ "legacyStatus": "compatibility; no removal in 0.5"
410
+ },
411
+ {
412
+ "name": "--contour-danger-soft",
413
+ "legacy": "--danger-soft",
414
+ "category": "color",
415
+ "role": "danger soft",
416
+ "themeable": true,
417
+ "values": {
418
+ "light": "#f7dcd3",
419
+ "dark": "#2f1914"
420
+ },
421
+ "legacyStatus": "compatibility; no removal in 0.5"
422
+ },
423
+ {
424
+ "name": "--contour-invert-bg",
425
+ "legacy": "--invert-bg",
426
+ "category": "color",
427
+ "role": "invert bg",
428
+ "themeable": true,
429
+ "values": {
430
+ "light": "var(--contour-ink)",
431
+ "dark": "var(--contour-paper)"
432
+ },
433
+ "legacyStatus": "compatibility; no removal in 0.5"
434
+ },
435
+ {
436
+ "name": "--contour-invert-fg",
437
+ "legacy": "--invert-fg",
438
+ "category": "color",
439
+ "role": "invert fg",
440
+ "themeable": true,
441
+ "values": {
442
+ "light": "var(--contour-paper)",
443
+ "dark": "var(--contour-ink)"
444
+ },
445
+ "legacyStatus": "compatibility; no removal in 0.5"
446
+ },
447
+ {
448
+ "name": "--contour-menu-shadow",
449
+ "legacy": "--menu-shadow",
450
+ "category": "color",
451
+ "role": "menu shadow",
452
+ "themeable": true,
453
+ "values": {
454
+ "light": "#00000012",
455
+ "dark": "#00000066"
456
+ },
457
+ "legacyStatus": "compatibility; no removal in 0.5"
458
+ },
459
+ {
460
+ "name": "--contour-space-4",
461
+ "legacy": "--space-4",
462
+ "category": "spacing",
463
+ "role": "space 4",
464
+ "themeable": false,
465
+ "values": {
466
+ "light": "4px",
467
+ "dark": "4px"
468
+ },
469
+ "legacyStatus": "compatibility; no removal in 0.5"
470
+ },
471
+ {
472
+ "name": "--contour-space-8",
473
+ "legacy": "--space-8",
474
+ "category": "spacing",
475
+ "role": "space 8",
476
+ "themeable": false,
477
+ "values": {
478
+ "light": "8px",
479
+ "dark": "8px"
480
+ },
481
+ "legacyStatus": "compatibility; no removal in 0.5"
482
+ },
483
+ {
484
+ "name": "--contour-space-12",
485
+ "legacy": "--space-12",
486
+ "category": "spacing",
487
+ "role": "space 12",
488
+ "themeable": false,
489
+ "values": {
490
+ "light": "12px",
491
+ "dark": "12px"
492
+ },
493
+ "legacyStatus": "compatibility; no removal in 0.5"
494
+ },
495
+ {
496
+ "name": "--contour-space-16",
497
+ "legacy": "--space-16",
498
+ "category": "spacing",
499
+ "role": "space 16",
500
+ "themeable": false,
501
+ "values": {
502
+ "light": "16px",
503
+ "dark": "16px"
504
+ },
505
+ "legacyStatus": "compatibility; no removal in 0.5"
506
+ },
507
+ {
508
+ "name": "--contour-space-24",
509
+ "legacy": "--space-24",
510
+ "category": "spacing",
511
+ "role": "space 24",
512
+ "themeable": false,
513
+ "values": {
514
+ "light": "24px",
515
+ "dark": "24px"
516
+ },
517
+ "legacyStatus": "compatibility; no removal in 0.5"
518
+ },
519
+ {
520
+ "name": "--contour-space-32",
521
+ "legacy": "--space-32",
522
+ "category": "spacing",
523
+ "role": "space 32",
524
+ "themeable": false,
525
+ "values": {
526
+ "light": "32px",
527
+ "dark": "32px"
528
+ },
529
+ "legacyStatus": "compatibility; no removal in 0.5"
530
+ },
531
+ {
532
+ "name": "--contour-space-48",
533
+ "legacy": "--space-48",
534
+ "category": "spacing",
535
+ "role": "space 48",
536
+ "themeable": false,
537
+ "values": {
538
+ "light": "48px",
539
+ "dark": "48px"
540
+ },
541
+ "legacyStatus": "compatibility; no removal in 0.5"
542
+ },
543
+ {
544
+ "name": "--contour-space-64",
545
+ "legacy": "--space-64",
546
+ "category": "spacing",
547
+ "role": "space 64",
548
+ "themeable": false,
549
+ "values": {
550
+ "light": "64px",
551
+ "dark": "64px"
552
+ },
553
+ "legacyStatus": "compatibility; no removal in 0.5"
554
+ },
555
+ {
556
+ "name": "--contour-space-104",
557
+ "legacy": "--space-104",
558
+ "category": "spacing",
559
+ "role": "space 104",
560
+ "themeable": false,
561
+ "values": {
562
+ "light": "104px",
563
+ "dark": "104px"
564
+ },
565
+ "legacyStatus": "compatibility; no removal in 0.5"
566
+ },
567
+ {
568
+ "name": "--contour-text-body",
569
+ "legacy": "--text-body",
570
+ "category": "typography",
571
+ "role": "text body",
572
+ "themeable": false,
573
+ "values": {
574
+ "light": "15px",
575
+ "dark": "15px"
576
+ },
577
+ "legacyStatus": "compatibility; no removal in 0.5"
578
+ },
579
+ {
580
+ "name": "--contour-text-small",
581
+ "legacy": "--text-small",
582
+ "category": "typography",
583
+ "role": "text small",
584
+ "themeable": false,
585
+ "values": {
586
+ "light": "13px",
587
+ "dark": "13px"
588
+ },
589
+ "legacyStatus": "compatibility; no removal in 0.5"
590
+ },
591
+ {
592
+ "name": "--contour-text-label",
593
+ "legacy": "--text-label",
594
+ "category": "typography",
595
+ "role": "text label",
596
+ "themeable": false,
597
+ "values": {
598
+ "light": "11px",
599
+ "dark": "11px"
600
+ },
601
+ "legacyStatus": "compatibility; no removal in 0.5"
602
+ },
603
+ {
604
+ "name": "--contour-text-lead",
605
+ "legacy": "--text-lead",
606
+ "category": "typography",
607
+ "role": "text lead",
608
+ "themeable": false,
609
+ "values": {
610
+ "light": "24px",
611
+ "dark": "24px"
612
+ },
613
+ "legacyStatus": "compatibility; no removal in 0.5"
614
+ },
615
+ {
616
+ "name": "--contour-text-display",
617
+ "legacy": "--text-display",
618
+ "category": "typography",
619
+ "role": "text display",
620
+ "themeable": false,
621
+ "values": {
622
+ "light": "clamp(48px, 8vw, 116px)",
623
+ "dark": "clamp(48px, 8vw, 116px)"
624
+ },
625
+ "legacyStatus": "compatibility; no removal in 0.5"
626
+ },
627
+ {
628
+ "name": "--contour-z-overlay",
629
+ "legacy": null,
630
+ "category": "layer",
631
+ "role": "nonmodal floating layer base; native modal top-layer ordering remains browser-owned",
632
+ "themeable": false,
633
+ "values": {
634
+ "light": "30",
635
+ "dark": "30"
636
+ },
637
+ "legacyStatus": "new in 0.5"
638
+ },
639
+ {
640
+ "name": "--contour-inverse-accent",
641
+ "legacy": null,
642
+ "category": "color",
643
+ "role": "Accent on the inverse surface",
644
+ "themeable": true,
645
+ "values": {
646
+ "light": "var(--contour-acid)",
647
+ "dark": "#5a7210"
648
+ },
649
+ "legacyStatus": "New scoped role; legacy CSS unchanged"
650
+ },
651
+ {
652
+ "name": "--contour-inverse-mark",
653
+ "legacy": null,
654
+ "category": "color",
655
+ "role": "High contrast mark on the inverse surface",
656
+ "themeable": true,
657
+ "values": {
658
+ "light": "var(--contour-acid)",
659
+ "dark": "var(--contour-ink)"
660
+ },
661
+ "legacyStatus": "New scoped role; legacy CSS unchanged"
662
+ },
663
+ {
664
+ "name": "--contour-depth-base",
665
+ "legacy": null,
666
+ "category": "color",
667
+ "role": "Base below a raised accent control",
668
+ "themeable": true,
669
+ "values": {
670
+ "light": "var(--contour-ink)",
671
+ "dark": "#5a7210"
672
+ },
673
+ "legacyStatus": "New scoped role; legacy CSS unchanged"
674
+ },
675
+ {
676
+ "name": "--contour-floating-outline",
677
+ "legacy": null,
678
+ "category": "color",
679
+ "role": "Outline of floating ink feedback",
680
+ "themeable": true,
681
+ "values": {
682
+ "light": "transparent",
683
+ "dark": "#353733"
684
+ },
685
+ "legacyStatus": "New scoped role; legacy CSS unchanged"
686
+ }
687
+ ],
688
+ "legacyProductTokens": [
689
+ "header-bg",
690
+ "header-bg-scrolled",
691
+ "header-fg",
692
+ "header-link",
693
+ "header-line",
694
+ "header-dot",
695
+ "header-underline",
696
+ "focus-band-bg",
697
+ "focus-band-fg",
698
+ "focus-band-line",
699
+ "focus-band-icon",
700
+ "about-bg",
701
+ "experience-bg",
702
+ "expertise-bg",
703
+ "work-bg",
704
+ "footer-bg"
705
+ ],
706
+ "density": {
707
+ "default": "comfortable",
708
+ "compact": "deferred: no application requirement; preserve current target sizes"
709
+ }
710
+ }