@codecademy/gamut 68.7.1-alpha.f618c1.0 → 68.7.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 (87) hide show
  1. package/agent-tools/DESIGN.Codecademy.md +90 -120
  2. package/agent-tools/DESIGN.LXStudio.md +127 -132
  3. package/agent-tools/DESIGN.Percipio.md +129 -134
  4. package/agent-tools/DESIGN.md +12 -1
  5. package/bin/lib/claude.mjs +5 -14
  6. package/bin/lib/cursor.mjs +1 -4
  7. package/dist/AccordionButtonDeprecated/ButtonDeprecated/index.d.ts +2 -2
  8. package/dist/AccordionButtonDeprecated/ButtonDeprecated/index.js +1 -1
  9. package/dist/AccordionButtonDeprecated/ButtonDeprecated/styles/index.module.scss +5 -5
  10. package/dist/AccordionButtonDeprecated/ButtonDeprecated/styles/mixins.scss +5 -5
  11. package/dist/AccordionButtonDeprecated/ButtonDeprecated/styles/variables.scss +22 -23
  12. package/dist/AccordionButtonDeprecated/styles.module.scss +8 -6
  13. package/dist/Alert/elements.d.ts +2 -2
  14. package/dist/Anchor/index.d.ts +9 -19
  15. package/dist/Anchor/index.js +6 -9
  16. package/dist/BarChart/BarRow/elements.d.ts +45 -47
  17. package/dist/BarChart/utils/hooks.d.ts +2 -2
  18. package/dist/BarChart/utils/hooks.js +1 -3
  19. package/dist/Box/GridBox.d.ts +0 -1
  20. package/dist/Box/GridBox.js +1 -1
  21. package/dist/Box/props.d.ts +1 -1
  22. package/dist/Breadcrumbs/index.d.ts +5 -5
  23. package/dist/Breadcrumbs/index.js +2 -2
  24. package/dist/Button/CTAButton.d.ts +2 -2
  25. package/dist/Button/FillButton.d.ts +4 -4
  26. package/dist/Button/IconButton.d.ts +4 -4
  27. package/dist/Button/StrokeButton.d.ts +4 -4
  28. package/dist/Button/TextButton.d.ts +4 -4
  29. package/dist/Button/shared/InlineIconButton.d.ts +2 -2
  30. package/dist/Button/shared/styles.d.ts +3 -3
  31. package/dist/Button/shared/types.d.ts +1 -1
  32. package/dist/ButtonBase/ButtonBase.d.ts +4 -9
  33. package/dist/ButtonBase/ButtonBase.js +4 -11
  34. package/dist/Card/elements.d.ts +103 -109
  35. package/dist/Card/styles.d.ts +8 -8
  36. package/dist/Coachmark/index.d.ts +1 -1
  37. package/dist/ConnectedForm/ConnectedForm.d.ts +1 -1
  38. package/dist/ConnectedForm/ConnectedFormGroup.js +3 -4
  39. package/dist/ConnectedForm/utils.d.ts +1 -1
  40. package/dist/ConnectedForm/utils.js +1 -1
  41. package/dist/DatePicker/DatePickerInput/index.d.ts +1 -1
  42. package/dist/Disclosure/elements.d.ts +12 -18
  43. package/dist/FeatureShimmer/index.js +1 -1
  44. package/dist/Form/SelectDropdown/SelectDropdown.js +1 -1
  45. package/dist/Form/SelectDropdown/elements/containers.js +1 -1
  46. package/dist/Form/SelectDropdown/elements/controls.js +2 -2
  47. package/dist/Form/SelectDropdown/elements/multi-value.js +2 -2
  48. package/dist/Form/SelectDropdown/types/internal.d.ts +2 -2
  49. package/dist/Form/SelectDropdown/utils.js +1 -2
  50. package/dist/Form/elements/Form.d.ts +15 -15
  51. package/dist/Form/elements/FormGroup.d.ts +1 -1
  52. package/dist/Form/styles/Checkbox-styles.d.ts +1 -1
  53. package/dist/GridForm/GridFormButtons/index.d.ts +4 -4
  54. package/dist/List/ListProvider.d.ts +1 -1
  55. package/dist/List/elements.d.ts +42 -44
  56. package/dist/Menu/MenuItem.js +6 -10
  57. package/dist/Menu/elements.d.ts +2 -2
  58. package/dist/Modals/Dialog.js +2 -6
  59. package/dist/Modals/Modal.js +2 -5
  60. package/dist/Modals/elements.d.ts +1 -1
  61. package/dist/Pagination/AnimatedPaginationButtons.d.ts +29 -31
  62. package/dist/Pagination/EllipsisButton.d.ts +2 -2
  63. package/dist/Pagination/PaginationButton.d.ts +6 -6
  64. package/dist/Pagination/utils.d.ts +29 -31
  65. package/dist/Pagination/utils.js +11 -14
  66. package/dist/Popover/Popover.js +6 -6
  67. package/dist/Popover/types.d.ts +3 -4
  68. package/dist/PopoverContainer/PopoverContainer.js +9 -9
  69. package/dist/PopoverContainer/hooks.d.ts +4 -16
  70. package/dist/PopoverContainer/hooks.js +27 -50
  71. package/dist/PopoverContainer/types.d.ts +1 -2
  72. package/dist/Tabs/TabButton.d.ts +2 -2
  73. package/dist/Tabs/TabNavLink.d.ts +2 -2
  74. package/dist/Tag/elements.d.ts +8 -14
  75. package/dist/Tag/index.js +1 -1
  76. package/dist/Tip/InfoTip/InfoTipButton.d.ts +4 -4
  77. package/dist/Tip/PreviewTip/elements.d.ts +6 -12
  78. package/dist/Tip/__tests__/helpers.d.ts +1 -1
  79. package/dist/Tip/shared/FloatingTip.js +2 -2
  80. package/dist/Tip/shared/types.d.ts +2 -2
  81. package/dist/Tip/shared/utils.js +1 -1
  82. package/dist/Typography/styles/_variables.scss +54 -0
  83. package/dist/Video/styles/vds_base_theme.scss +3 -1
  84. package/dist/utils/react.js +2 -4
  85. package/package.json +10 -10
  86. package/dist/utils/nullish.d.ts +0 -10
  87. package/dist/utils/nullish.js +0 -11
@@ -8,12 +8,13 @@ colors:
8
8
  hyper-400: '#5533FF'
9
9
  navy-900: '#0A0D1C'
10
10
  navy-800: '#10162F'
11
- navy-700: '#31374C'
12
- navy-600: '#4C5063'
13
- navy-500: '#686C7C'
14
- navy-300: '#BCBEC5'
15
- navy-200: '#E2E3E6'
16
- navy-100: '#F5F6F7'
11
+ navy-700: 'rgba(16, 22, 47, 0.86)'
12
+ navy-600: 'rgba(16, 22, 47, 0.75)'
13
+ navy-500: 'rgba(16, 22, 47, 0.63)'
14
+ navy-400: 'rgba(16, 22, 47, 0.47)'
15
+ navy-300: 'rgba(16, 22, 47, 0.28)'
16
+ navy-200: 'rgba(16, 22, 47, 0.12)'
17
+ navy-100: 'rgba(16, 22, 47, 0.04)'
17
18
  yellow-500: '#FFD300'
18
19
  yellow-400: '#CCA900'
19
20
  yellow-0: '#FFFAE5'
@@ -77,8 +78,6 @@ typography:
77
78
  fontSize: '2.125rem'
78
79
  fontWeight: '700'
79
80
  lineHeight: '1.2'
80
- hankenGrotesk:
81
- fontFamily: '"Hanken Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif'
82
81
  monospace:
83
82
  fontFamily: 'Monaco, Menlo, "Ubuntu Mono", "Droid Sans Mono", Consolas, monospace'
84
83
  rounded:
@@ -181,6 +180,8 @@ This file defines the visual design tokens for codecademy.com, implemented using
181
180
  **Figma file**: https://www.figma.com/design/ReGfRNillGABAj5SlITalN/📐-Gamut
182
181
  **Storybook**: https://gamut.codecademy.com
183
182
 
183
+ > **Other Gamut themes:** This document covers **Codecademy** (Core, Admin, Platform) only. For Percipio or LX Studio, install that product's `DESIGN.md` instead: `gamut plugin install cursor --theme percipio` or `--theme lxstudio` (see `DESIGN.Percipio.md` / `DESIGN.LXStudio.md` in agent-tools).
184
+
184
185
  ---
185
186
 
186
187
  ## Visual Theme & Atmosphere
@@ -192,7 +193,7 @@ Codecademy communicates **logic with personality** — structured and trustworth
192
193
  **Design philosophy**:
193
194
 
194
195
  - Components are color mode–aware by default — never hardcode hex values for adaptive UI
195
- - Every component works across all themes without modification
196
+ - Every component works across Core, Admin, and Platform without modification
196
197
  - Mobile-first responsive design built on a 12-column grid
197
198
  - Accessibility is guaranteed by design: semantic color tokens meet contrast requirements per mode automatically
198
199
 
@@ -200,46 +201,17 @@ Codecademy communicates **logic with personality** — structured and trustworth
200
201
 
201
202
  ## Themes
202
203
 
203
- Codecademy products use one of four Gamut themes, all sharing the same core visual identity. Token aliases resolve to the right values per theme automatically components require no modification.
204
-
205
- | Theme | Use case | Base font | Dark mode |
206
- | ------------- | ------------------------------- | -------------- | -------------- |
207
- | **Core** | Codecademy (default) | Apercu | ✓ light + dark |
208
- | **Admin** | Codecademy admin tools | Apercu | ✓ light + dark |
209
- | **Platform** | Codecademy learning environment | Apercu | ✓ light + dark |
210
- | **LX Studio** | LX Studio application | Hanken Grotesk | light only |
211
-
212
- The active theme is set at the app root via `<GamutProvider>`. When designing, know which theme your screen targets — it affects primary colors, font families, and available color weights.
213
-
214
- **Font licensing**: Apercu is licensed for codecademy.com only. LX Studio uses Hanken Grotesk.
215
-
216
- For Percipio projects, use `DESIGN.Percipio.md` from the same package instead.
217
-
218
- ### LX Studio theme overrides
219
-
220
- LX Studio extends Core with these differences:
204
+ Codecademy products use **Core**, **Admin**, or **Platform** the same visual identity with theme-specific palette additions on Platform. Token aliases resolve per theme automatically; components require no modification.
221
205
 
222
- **Font**: All families `"Hanken Grotesk"` (no Apercu, no Suisse).
206
+ | Theme | Use case | Base font | Dark mode |
207
+ | ------------ | ------------------------------- | --------- | -------------- |
208
+ | **Core** | Codecademy (default) | Apercu | ✓ light + dark |
209
+ | **Admin** | Codecademy admin tools | Apercu | ✓ light + dark |
210
+ | **Platform** | Codecademy learning environment | Apercu | ✓ light + dark |
223
211
 
224
- **Border radii** (all values shift up one step):
212
+ Set the active theme at the app root via `<GamutProvider theme={coreTheme | adminTheme | platformTheme}>`.
225
213
 
226
- | Token | Core | LX Studio |
227
- | ----- | ---- | --------- |
228
- | `sm` | 2px | 4px |
229
- | `md` | 4px | 8px |
230
- | `lg` | 8px | 12px |
231
-
232
- **Semantic color overrides (light mode)**:
233
-
234
- | Token | Core value | LX Studio value |
235
- | -------------------- | ------------------- | ------------------------------- |
236
- | `primary` | hyper-500 `#3A10E5` | `#5628FE` (lxStudioPurple) |
237
- | `primary-hover` | hyper-400 `#5533FF` | `#7955FC` (lxStudioPurpleHover) |
238
- | `feedback-success` | green-700 `#008A27` | `#06844F` (lxStudioSuccess) |
239
- | `background-primary` | beige `#FFF0E5` | `#FAFBFC` (lxStudioBgPrimary) |
240
- | `shadow-primary` | navy-800 | navy-200 |
241
- | `border-primary` | navy-800 | navy-400 |
242
- | `border-disabled` | navy-500 | navy-300 |
214
+ **Font licensing:** Apercu is licensed for codecademy.com only.
243
215
 
244
216
  ---
245
217
 
@@ -249,55 +221,55 @@ Use these token names when specifying colors in designs. They resolve to the cor
249
221
 
250
222
  ### Text
251
223
 
252
- | Token | Light | Dark | Use for |
253
- | ---------------- | -------------------------- | --------------- | --------------------------- |
254
- | `text` | navy-800 `#10162F` at 100% | white `#ffffff` | Default body and UI text |
255
- | `text-accent` | navy-900 `#0A0D1C` | beige `#FFF0E5` | Stronger emphasis text |
256
- | `text-secondary` | navy-800 at 75% | white at 65% | Supporting / secondary copy |
257
- | `text-disabled` | navy-800 at 63% | white at 50% | Disabled state labels |
224
+ | Token | Light | Dark | Use for |
225
+ | ---------------- | --------------- | ------------ | --------------------------- |
226
+ | `text` | `navy-800` | `white` | Default body and UI text |
227
+ | `text-accent` | `navy-900` | `beige` | Stronger emphasis text |
228
+ | `text-secondary` | navy-800 at 75% | white at 65% | Supporting / secondary copy |
229
+ | `text-disabled` | navy-800 at 63% | white at 50% | Disabled state labels |
258
230
 
259
231
  ### Background
260
232
 
261
- | Token | Light | Dark | Use for |
262
- | --------------------- | ------------------ | -------------------- | --------------------------------- |
263
- | `background` | white `#ffffff` | navy-800 `#10162F` | Default page/component background |
264
- | `background-primary` | beige `#FFF0E5` | navy-900 `#0A0D1C` | Slightly elevated surfaces |
265
- | `background-contrast` | white | black `#000000` | Maximum contrast surface |
266
- | `background-selected` | navy-800 at 4% | white at 4% | Selected row / item |
267
- | `background-hover` | navy-800 at 12% | white at 9% | Hover state overlay |
268
- | `background-disabled` | navy-800 at 12% | white at 9% | Disabled surface |
269
- | `background-success` | green-0 `#F5FFE3` | green-900 `#151C07` | Success state container |
270
- | `background-warning` | yellow-0 `#FFFAE5` | yellow-900 `#211B00` | Warning state container |
271
- | `background-error` | red-0 `#FBF1F0` | red-900 `#280503` | Error state container |
233
+ | Token | Light | Dark | Use for |
234
+ | --------------------- | --------------- | ------------ | --------------------------------- |
235
+ | `background` | `white` | `navy-800` | Default page/component background |
236
+ | `background-primary` | `beige` | `navy-900` | Slightly elevated surfaces |
237
+ | `background-contrast` | `white` | `black` | Maximum contrast surface |
238
+ | `background-selected` | navy-800 at 4% | white at 4% | Selected row / item |
239
+ | `background-hover` | navy-800 at 12% | white at 9% | Hover state overlay |
240
+ | `background-disabled` | navy-800 at 12% | white at 9% | Disabled surface |
241
+ | `background-success` | `green-0` | `green-900` | Success state container |
242
+ | `background-warning` | `yellow-0` | `yellow-900` | Warning state container |
243
+ | `background-error` | `red-0` | `red-900` | Error state container |
272
244
 
273
245
  ### Interactive
274
246
 
275
- | Token | Light | Dark | Use for |
276
- | ----------------- | -------------------- | -------------------- | ------------------------------------ |
277
- | `primary` | hyper-500 `#3A10E5` | yellow-500 `#FFD300` | Primary CTA, links, focus rings |
278
- | `primary-hover` | hyper-400 `#5533FF` | yellow-400 `#CCA900` | Hover state of primary interactive |
279
- | `primary-inverse` | yellow-500 `#FFD300` | hyper-500 `#3A10E5` | Primary on a colored background |
280
- | `secondary` | navy-800 `#10162F` | white `#ffffff` | Secondary CTA, ghost buttons |
281
- | `secondary-hover` | navy-800 at 86% | white at 80% | Hover state of secondary interactive |
282
- | `danger` | red-500 `#E91C11` | red-300 `#E85D7F` | Destructive actions, error states |
283
- | `danger-hover` | red-600 `#BE1809` | red-400 `#DC5879` | Hover on danger interactive |
247
+ | Token | Light | Dark | Use for |
248
+ | ----------------- | --------------- | ------------ | ------------------------------------ |
249
+ | `primary` | `hyper-500` | `yellow-500` | Primary CTA, links, focus rings |
250
+ | `primary-hover` | `hyper-400` | `yellow-400` | Hover state of primary interactive |
251
+ | `primary-inverse` | `yellow-500` | `hyper-500` | Primary on a colored background |
252
+ | `secondary` | `navy-800` | `white` | Secondary CTA, ghost buttons |
253
+ | `secondary-hover` | navy-800 at 86% | white at 80% | Hover state of secondary interactive |
254
+ | `danger` | `red-500` | `red-300` | Destructive actions, error states |
255
+ | `danger-hover` | `red-600` | `red-400` | Hover on danger interactive |
284
256
 
285
257
  ### Border
286
258
 
287
- | Token | Light | Dark | Use for |
288
- | ------------------ | ------------------ | --------------- | -------------------------- |
289
- | `border-primary` | navy-800 `#10162F` | white `#ffffff` | Strong borders, dividers |
290
- | `border-secondary` | navy-800 at 75% | white at 65% | Medium-weight borders |
291
- | `border-tertiary` | navy-800 at 28% | white at 20% | Subtle borders, separators |
292
- | `border-disabled` | navy-800 at 63% | white at 50% | Disabled input borders |
259
+ | Token | Light | Dark | Use for |
260
+ | ------------------ | --------------- | ------------ | -------------------------- |
261
+ | `border-primary` | `navy-800` | `white` | Strong borders, dividers |
262
+ | `border-secondary` | navy-800 at 75% | white at 65% | Medium-weight borders |
263
+ | `border-tertiary` | navy-800 at 28% | white at 20% | Subtle borders, separators |
264
+ | `border-disabled` | navy-800 at 63% | white at 50% | Disabled input borders |
293
265
 
294
266
  ### Feedback
295
267
 
296
- | Token | Light | Dark | Use for |
297
- | ------------------ | ------------------- | ------------------- | -------------------------------- |
298
- | `feedback-error` | red-600 `#BE1809` | red-300 `#E85D7F` | Error messages, validation |
299
- | `feedback-success` | green-700 `#008A27` | green-400 `#AEE938` | Success messages, confirmations |
300
- | `feedback-warning` | yellow `#FFD300` | yellow-0 `#FFFAE5` | Warning messages, caution states |
268
+ | Token | Light | Dark | Use for |
269
+ | ------------------ | ----------- | ----------- | -------------------------------- |
270
+ | `feedback-error` | `red-600` | `red-300` | Error messages, validation |
271
+ | `feedback-success` | `green-700` | `green-400` | Success messages, confirmations |
272
+ | `feedback-warning` | `yellow` | `yellow-0` | Warning messages, caution states |
301
273
 
302
274
  ### Shadow
303
275
 
@@ -314,32 +286,28 @@ All colors available as static tokens regardless of color mode. Use these only w
314
286
 
315
287
  ### Core Palette
316
288
 
317
- | Name | Weights available | Notes |
318
- | --------------- | ---------------------------- | --------------------------------------------------------------------------------- |
319
- | `navy` | 100–900 | 100–700 are rgba transparencies of `#10162F`; 800 = `#10162F`; 900 = `#0A0D1C` |
320
- | `white` | 100–700 | rgba transparencies of `#ffffff` (no solid white weight — use `white` for `#fff`) |
321
- | `blue` | 0, 100, 300, 400, 500, 800 | 500 = `#1557FF` |
322
- | `hyper` | 400, 500 | 500 = `#3A10E5` (purple-blue), 400 = `#5533FF` |
323
- | `green` | 0, 100, 400, 700, 900 | 700 = `#008A27` |
324
- | `yellow` | 0, 400, 500, 900 | 500 = `#FFD300` |
325
- | `red` | 0, 300, 400, 500, 600, 900 | 500 = `#E91C11` |
326
- | `gray` | 100, 200, 300, 600, 800, 900 | |
327
- | `pink` | 0, 400 | 400 = `#F966FF` |
328
- | `orange` | 100, 500 | 500 = `#FF8C00` |
329
- | `beige` | 100 (alias: `beige`) | `#FFF0E5` |
330
- | `black` | — | `#000000` |
331
- | `white` (solid) | — | `#ffffff` |
289
+ | Name | Weights available | Notes |
290
+ | --------------- | ---------------------------- | -------------------------------------------------------------------------- |
291
+ | `navy` | 100–900 | 100–700 are rgba transparencies of `navy-800`; 800 and 900 are solid |
292
+ | `white` | 100–700 | rgba transparencies of `white` (no solid white weight — use `white` token) |
293
+ | `blue` | 0, 100, 300, 400, 500, 800 | named alias `blue` maps to `blue-500` |
294
+ | `hyper` | 400, 500 | named alias `hyper` maps to `hyper-500` |
295
+ | `green` | 0, 100, 400, 700, 900 | named alias `green` maps to `green-700` |
296
+ | `yellow` | 0, 400, 500, 900 | named alias `yellow` maps to `yellow-500` |
297
+ | `red` | 0, 300, 400, 500, 600, 900 | named alias `red` maps to `red-500` |
298
+ | `gray` | 100, 200, 300, 600, 800, 900 | |
299
+ | `pink` | 0, 400 | named alias `pink` maps to `pink-400` |
300
+ | `orange` | 100, 500 | named alias `orange` maps to `orange-500` |
301
+ | `beige` | 100 (alias: `beige`) | solid `beige` token |
302
+ | `black` | — | `black` token |
303
+ | `white` (solid) | — | `white` token |
332
304
 
333
305
  **Named aliases** (shorthand for common weights):
334
306
  `beige`, `blue`, `green`, `hyper`, `lightBlue`, `lightGreen`, `navy`, `orange`, `paleBlue`, `paleGreen`, `palePink`, `paleRed`, `paleYellow`, `pink`, `red`, `yellow`, `black`, `white`
335
307
 
336
308
  ### Platform-only additions
337
309
 
338
- `lightBeige` (`#FFFBF8`), `gold` (`#8A7300`), `teal` (`#006D82`), `purple` (`#B3CCFF`)
339
-
340
- ### LX Studio additions
341
-
342
- `lxStudioPurple` (`#5628FE`), `lxStudioPurpleHover` (`#7955FC`), `lxStudioSuccess` (`#06844F`)
310
+ `lightBeige`, `gold`, `teal`, `purple` (Platform theme palette)
343
311
 
344
312
  ---
345
313
 
@@ -347,14 +315,14 @@ All colors available as static tokens regardless of color mode. Use these only w
347
315
 
348
316
  ### Typefaces
349
317
 
350
- | Token | Core / Admin / Platform | LX Studio | Use for |
351
- | ----------- | -------------------------------------------------------- | ----------------------------------------------------- | ------------------------------------------------ |
352
- | `base` | Apercu Pro (CSS: `Apercu`) | Hanken Grotesk | All default UI text, headlines, body copy |
353
- | `accent` | Suisse Intl Mono (CSS: `Suisse`); falls back to `Apercu` | Hanken Grotesk | Code, captions, labels, lists, technical context |
354
- | `monospace` | Monaco, Menlo, Ubuntu Mono, Droid Sans Mono, Consolas | Monaco, Menlo, Ubuntu Mono, Droid Sans Mono, Consolas | Code editor contexts |
355
- | `system` | System UI fonts | System UI fonts | Performance-critical surfaces |
318
+ | Token | Font stack | Use for |
319
+ | ----------- | -------------------------------------------------------- | ------------------------------------------------ |
320
+ | `base` | Apercu Pro (CSS: `Apercu`) | All default UI text, headlines, body copy |
321
+ | `accent` | Suisse Intl Mono (CSS: `Suisse`); falls back to `Apercu` | Code, captions, labels, lists, technical context |
322
+ | `monospace` | Monaco, Menlo, Ubuntu Mono, Droid Sans Mono, Consolas | Code editor contexts |
323
+ | `system` | System UI fonts | Performance-critical surfaces |
356
324
 
357
- **Apercu is licensed for codecademy.com only.** LX Studio uses Hanken Grotesk for both `base` and `accent`.
325
+ **Apercu is licensed for codecademy.com only.**
358
326
 
359
327
  ### Rules
360
328
 
@@ -454,14 +422,16 @@ Interactive cards (`isInteractive` prop) gain a shadow on hover and `borderRadiu
454
422
 
455
423
  ## Border Radius Scale
456
424
 
457
- | Token | Value | Use |
458
- | ------ | ----- | ------------------------------------------ |
459
- | `none` | 0px | Square / non-interactive elements |
460
- | `sm` | 2px | Subtle rounding, tags |
461
- | `md` | 4px | Default buttons, inputs, interactive cards |
462
- | `lg` | 8px | Cards, panels |
463
- | `xl` | 16px | Large cards, modals |
464
- | `full` | 999px | Pills, avatars, circular elements |
425
+ | Token | Value | Use |
426
+ | ------ | ----- | ------------------------ |
427
+ | `none` | 0px | Non-interactive elements |
428
+ | `sm` | 2px | Overlays |
429
+ | `md` | 4px | Interactive elements |
430
+ | `lg` | 8px | Non-interactive elements |
431
+ | `xl` | 16px | Non-interactive elements |
432
+ | `full` | 999px | Toggles, badges |
433
+
434
+ ---
465
435
 
466
436
  ---
467
437
 
@@ -603,8 +573,8 @@ Quick color/token reference for generating or specifying UI:
603
573
 
604
574
  | Scenario | Tokens |
605
575
  | ---------------------- | ----------------------------------------------------------------------------------------------------- |
606
- | Primary button (light) | `bg: primary (#3A10E5)`, `color: white`, `hover: primary-hover (#5533FF)` |
607
- | Primary button (dark) | `bg: primary (#FFD300)`, `color: navy-800`, `hover: primary-hover (#CCA900)` |
576
+ | Primary button (light) | `bg: primary`, `color: white`, `hover: primary-hover` |
577
+ | Primary button (dark) | `bg: primary`, `color: text`, `hover: primary-hover` |
608
578
  | Body text | `color: text`, `font: base (Apercu Pro)`, `size: 16px`, `weight: 400`, `lineHeight: base (1.5)` |
609
579
  | Headline | `color: text-accent`, `font: base`, `size: 34–64px`, `weight: title (700)`, `lineHeight: title (1.2)` |
610
580
  | Caption / label | `color: text-secondary`, `font: accent (Suisse Int'l Mono)`, `size: 14px` |