@codecademy/gamut 68.7.1-alpha.29afd9.0 → 68.7.1-alpha.510665.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/agent-tools/DESIGN.Codecademy.md +90 -120
- package/agent-tools/DESIGN.LXStudio.md +127 -132
- package/agent-tools/DESIGN.Percipio.md +129 -134
- package/agent-tools/DESIGN.md +12 -1
- package/bin/lib/claude.mjs +5 -14
- package/bin/lib/cursor.mjs +1 -4
- package/dist/AccordionButtonDeprecated/ButtonDeprecated/index.d.ts +2 -2
- package/dist/AccordionButtonDeprecated/ButtonDeprecated/index.js +1 -1
- package/dist/Alert/elements.d.ts +2 -2
- package/dist/Anchor/index.d.ts +9 -19
- package/dist/Anchor/index.js +6 -9
- package/dist/BarChart/BarRow/elements.d.ts +45 -47
- package/dist/BarChart/utils/hooks.d.ts +2 -2
- package/dist/BarChart/utils/hooks.js +1 -3
- package/dist/Box/GridBox.d.ts +0 -1
- package/dist/Box/GridBox.js +1 -1
- package/dist/Box/props.d.ts +1 -1
- package/dist/Breadcrumbs/index.d.ts +5 -5
- package/dist/Breadcrumbs/index.js +2 -2
- package/dist/Button/CTAButton.d.ts +2 -2
- package/dist/Button/FillButton.d.ts +4 -4
- package/dist/Button/IconButton.d.ts +4 -4
- package/dist/Button/StrokeButton.d.ts +4 -4
- package/dist/Button/TextButton.d.ts +4 -4
- package/dist/Button/shared/InlineIconButton.d.ts +2 -2
- package/dist/Button/shared/styles.d.ts +3 -3
- package/dist/Button/shared/types.d.ts +1 -1
- package/dist/ButtonBase/ButtonBase.d.ts +4 -9
- package/dist/ButtonBase/ButtonBase.js +4 -11
- package/dist/Card/elements.d.ts +103 -109
- package/dist/Card/styles.d.ts +8 -8
- package/dist/Coachmark/index.d.ts +1 -1
- package/dist/ConnectedForm/ConnectedForm.d.ts +1 -1
- package/dist/ConnectedForm/ConnectedFormGroup.js +3 -4
- package/dist/ConnectedForm/utils.d.ts +1 -1
- package/dist/ConnectedForm/utils.js +1 -1
- package/dist/DatePicker/DatePickerInput/index.d.ts +1 -1
- package/dist/Disclosure/elements.d.ts +12 -18
- package/dist/FeatureShimmer/index.js +1 -1
- package/dist/Form/SelectDropdown/SelectDropdown.js +1 -1
- package/dist/Form/SelectDropdown/elements/containers.js +1 -1
- package/dist/Form/SelectDropdown/elements/controls.js +2 -2
- package/dist/Form/SelectDropdown/elements/multi-value.js +2 -2
- package/dist/Form/SelectDropdown/types/internal.d.ts +2 -2
- package/dist/Form/SelectDropdown/utils.js +1 -2
- package/dist/Form/elements/Form.d.ts +15 -15
- package/dist/Form/elements/FormGroup.d.ts +1 -1
- package/dist/Form/styles/Checkbox-styles.d.ts +1 -1
- package/dist/GridForm/GridFormButtons/index.d.ts +4 -4
- package/dist/List/ListProvider.d.ts +1 -1
- package/dist/List/elements.d.ts +42 -44
- package/dist/Menu/MenuItem.js +6 -10
- package/dist/Menu/elements.d.ts +2 -2
- package/dist/Modals/Dialog.js +2 -6
- package/dist/Modals/Modal.js +2 -5
- package/dist/Modals/elements.d.ts +1 -1
- package/dist/Pagination/AnimatedPaginationButtons.d.ts +29 -31
- package/dist/Pagination/EllipsisButton.d.ts +2 -2
- package/dist/Pagination/PaginationButton.d.ts +6 -6
- package/dist/Pagination/utils.d.ts +29 -31
- package/dist/Pagination/utils.js +11 -14
- package/dist/Popover/Popover.js +6 -6
- package/dist/Popover/types.d.ts +3 -4
- package/dist/PopoverContainer/PopoverContainer.js +9 -9
- package/dist/PopoverContainer/hooks.d.ts +4 -16
- package/dist/PopoverContainer/hooks.js +27 -50
- package/dist/PopoverContainer/types.d.ts +1 -2
- package/dist/Tabs/TabButton.d.ts +2 -2
- package/dist/Tabs/TabNavLink.d.ts +2 -2
- package/dist/Tag/elements.d.ts +8 -14
- package/dist/Tag/index.js +1 -1
- package/dist/Tip/InfoTip/InfoTipButton.d.ts +4 -4
- package/dist/Tip/PreviewTip/elements.d.ts +6 -12
- package/dist/Tip/__tests__/helpers.d.ts +1 -1
- package/dist/Tip/shared/FloatingTip.js +2 -2
- package/dist/Tip/shared/types.d.ts +2 -2
- package/dist/Tip/shared/utils.js +1 -1
- package/dist/utils/react.js +2 -4
- package/package.json +10 -10
- package/dist/utils/nullish.d.ts +0 -10
- 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: '
|
|
12
|
-
navy-600: '
|
|
13
|
-
navy-500: '
|
|
14
|
-
navy-
|
|
15
|
-
navy-
|
|
16
|
-
navy-
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
212
|
+
Set the active theme at the app root via `<GamutProvider theme={coreTheme | adminTheme | platformTheme}>`.
|
|
225
213
|
|
|
226
|
-
|
|
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
|
|
253
|
-
| ---------------- |
|
|
254
|
-
| `text` | navy-800
|
|
255
|
-
| `text-accent` | navy-900
|
|
256
|
-
| `text-secondary` | navy-800 at 75%
|
|
257
|
-
| `text-disabled` | navy-800 at 63%
|
|
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
|
|
262
|
-
| --------------------- |
|
|
263
|
-
| `background` | white
|
|
264
|
-
| `background-primary` | beige
|
|
265
|
-
| `background-contrast` | white
|
|
266
|
-
| `background-selected` | navy-800 at 4%
|
|
267
|
-
| `background-hover` | navy-800 at 12%
|
|
268
|
-
| `background-disabled` | navy-800 at 12%
|
|
269
|
-
| `background-success` | green-0
|
|
270
|
-
| `background-warning` | yellow-0
|
|
271
|
-
| `background-error` | red-0
|
|
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
|
|
276
|
-
| ----------------- |
|
|
277
|
-
| `primary` | hyper-500
|
|
278
|
-
| `primary-hover` | hyper-400
|
|
279
|
-
| `primary-inverse` | yellow-500
|
|
280
|
-
| `secondary` | navy-800
|
|
281
|
-
| `secondary-hover` | navy-800 at 86%
|
|
282
|
-
| `danger` | red-500
|
|
283
|
-
| `danger-hover` | red-600
|
|
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
|
|
288
|
-
| ------------------ |
|
|
289
|
-
| `border-primary` | navy-800
|
|
290
|
-
| `border-secondary` | navy-800 at 75%
|
|
291
|
-
| `border-tertiary` | navy-800 at 28%
|
|
292
|
-
| `border-disabled` | navy-800 at 63%
|
|
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
|
|
297
|
-
| ------------------ |
|
|
298
|
-
| `feedback-error` | red-600
|
|
299
|
-
| `feedback-success` | green-700
|
|
300
|
-
| `feedback-warning` | yellow
|
|
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
|
|
320
|
-
| `white` | 100–700 | rgba transparencies of
|
|
321
|
-
| `blue` | 0, 100, 300, 400, 500, 800 |
|
|
322
|
-
| `hyper` | 400, 500 |
|
|
323
|
-
| `green` | 0, 100, 400, 700, 900 |
|
|
324
|
-
| `yellow` | 0, 400, 500, 900 |
|
|
325
|
-
| `red` | 0, 300, 400, 500, 600, 900 |
|
|
326
|
-
| `gray` | 100, 200, 300, 600, 800, 900 |
|
|
327
|
-
| `pink` | 0, 400 |
|
|
328
|
-
| `orange` | 100, 500 |
|
|
329
|
-
| `beige` | 100 (alias: `beige`) |
|
|
330
|
-
| `black` | — |
|
|
331
|
-
| `white` (solid) | — |
|
|
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
|
|
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 |
|
|
351
|
-
| ----------- | -------------------------------------------------------- |
|
|
352
|
-
| `base` | Apercu Pro (CSS: `Apercu`) |
|
|
353
|
-
| `accent` | Suisse Intl Mono (CSS: `Suisse`); falls back to `Apercu` |
|
|
354
|
-
| `monospace` | Monaco, Menlo, Ubuntu Mono, Droid Sans Mono, Consolas |
|
|
355
|
-
| `system` | System UI fonts |
|
|
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.**
|
|
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 |
|
|
460
|
-
| `sm` | 2px |
|
|
461
|
-
| `md` | 4px |
|
|
462
|
-
| `lg` | 8px |
|
|
463
|
-
| `xl` | 16px |
|
|
464
|
-
| `full` | 999px |
|
|
425
|
+
| Token | Value | Use |
|
|
426
|
+
| ------ | ----- | ------------------------ |
|
|
427
|
+
| `none` | 0px | Non-interactive elements |
|
|
428
|
+
| `sm` | 2px | Interactive elements |
|
|
429
|
+
| `md` | 4px | Overlays |
|
|
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
|
|
607
|
-
| Primary button (dark) | `bg: primary
|
|
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` |
|