@discourser/design-system 0.22.2 → 0.22.4

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 (75) hide show
  1. package/dist/figma-codex.json +2 -2
  2. package/docs/CSS_USAGE.md +235 -0
  3. package/docs/FIGMA_MAKE_SETUP.md +339 -0
  4. package/docs/GUIDELINES_REVIEW.md +728 -0
  5. package/docs/MAINTAINER_CHECKLIST.md +265 -0
  6. package/docs/TESTING_QUICK_REFERENCE.md +159 -0
  7. package/docs/TESTING_TOKENS.md +340 -0
  8. package/docs/active-stories/README.md +29 -0
  9. package/docs/active-stories/STORY-006a-figma-translation-foundations.md +324 -0
  10. package/docs/active-stories/STORY-006b-figma-translation-components.md +201 -0
  11. package/docs/active-stories/STORY-006c-figma-translation-layout-extension.md +258 -0
  12. package/docs/active-stories/STORY-008-kai-sidecar-fragments.md +137 -0
  13. package/docs/active-stories/STORY-011-verify-translation-docs.md +182 -0
  14. package/docs/archive/ARCHITECTURE-discourser-design-system.md +448 -0
  15. package/docs/claude-feed-back/ARCHITECTURE_DIAGRAM.md +243 -0
  16. package/docs/claude-feed-back/STYLING_VERIFICATION.md +89 -0
  17. package/docs/claude-feed-back/TEST_RESULTS.md +182 -0
  18. package/docs/context-share/ELEVATION_FIX_PLAN.md +903 -0
  19. package/docs/context-share/STORY-001-VALIDATION-PASSED.md +192 -0
  20. package/docs/context-share/STORY-002-IMPLEMENTATION-COMPLETE.md +161 -0
  21. package/docs/context-share/STORYBOOK_MCP_STRATEGY.md +867 -0
  22. package/docs/context-share/TESTING_GAPS_FILLED.md +353 -0
  23. package/docs/context-share/TOKEN_TESTING_SUMMARY.md +388 -0
  24. package/docs/context-share/code-connect-prompt.md +90 -0
  25. package/docs/context-share/dds-autonomous-pipeline.md +765 -0
  26. package/docs/context-share/fix-checkbox-radio-tokens.md +145 -0
  27. package/docs/context-share/icon-component-prompt.md +154 -0
  28. package/docs/context-share/icons/Audience.svg +3 -0
  29. package/docs/context-share/icons/AudioSpeaker.svg +3 -0
  30. package/docs/context-share/icons/BookmarkPlus.svg +3 -0
  31. package/docs/context-share/icons/ClipBoard.svg +8 -0
  32. package/docs/context-share/icons/DiscourserLogo.svg +4 -0
  33. package/docs/context-share/icons/ExitStudio.svg +4 -0
  34. package/docs/context-share/icons/Microphone.svg +5 -0
  35. package/docs/context-share/icons/NotebookPen.svg +3 -0
  36. package/docs/context-share/icons/PausePlay.svg +5 -0
  37. package/docs/context-share/icons/Play.svg +4 -0
  38. package/docs/context-share/icons/Record.svg +6 -0
  39. package/docs/context-share/icons/RepeatQuestion.svg +3 -0
  40. package/docs/context-share/icons/ScrollText.svg +3 -0
  41. package/docs/context-share/icons/Sparkles.svg +3 -0
  42. package/docs/context-share/icons/Speech.svg +3 -0
  43. package/docs/context-share/icons/StopPlay.svg +4 -0
  44. package/docs/context-share/icons/Timer.svg +3 -0
  45. package/docs/context-share/icons/UserProfile.svg +3 -0
  46. package/docs/context-share/m3-token-pipeline-audit.md +125 -0
  47. package/docs/context-share/storybook-mcp-kai-agent-revised-summary.md +211 -0
  48. package/docs/discourser-design-system-prd.md +3698 -0
  49. package/docs/figma-captures/01-typography.png +0 -0
  50. package/docs/figma-captures/02-button-iconbutton.png +0 -0
  51. package/docs/figma-captures/03-form-inputs.png +0 -0
  52. package/docs/figma-captures/04-form-controls.png +0 -0
  53. package/docs/figma-captures/05-data-display.png +0 -0
  54. package/docs/figma-captures/06-feedback.png +0 -0
  55. package/docs/figma-captures/07-overlays.png +0 -0
  56. package/docs/figma-captures/08-navigation-layout.png +0 -0
  57. package/docs/figma-captures/09-custom-components.png +0 -0
  58. package/docs/figma-captures/10-scenario-queue.png +0 -0
  59. package/docs/figma-captures/11-icon-library.png +0 -0
  60. package/docs/figma-make-docs/01-understanding-templates.md +235 -0
  61. package/docs/figma-make-docs/02-prerequisites.md +266 -0
  62. package/docs/figma-make-docs/03-creating-template.md +306 -0
  63. package/docs/figma-make-docs/04-adding-guidelines.md +448 -0
  64. package/docs/figma-make-docs/05-example-starter-code.md +590 -0
  65. package/docs/figma-make-docs/06-publishing-template.md +417 -0
  66. package/docs/figma-make-docs/07-maintenance.md +536 -0
  67. package/docs/figma-make-docs/08-faq.md +490 -0
  68. package/docs/figma-make-docs/README.md +95 -0
  69. package/docs/material-theme.json +418 -0
  70. package/docs/plans/2026-03-12-figma-token-export-rewrite.md +504 -0
  71. package/docs/plans/2026-03-12-step7-panda-token-resolution-design.md +119 -0
  72. package/docs/plans/2026-03-12-step7-panda-token-resolution.md +993 -0
  73. package/docs/token-name-mapping.json +850 -0
  74. package/docs/token-name-mapping.md +251 -0
  75. package/package.json +3 -2
@@ -0,0 +1,850 @@
1
+ {
2
+ "version": "0.22.0",
3
+ "generatedFrom": [
4
+ "dist/figma-variables.json",
5
+ "dist/figma-effect-styles.json",
6
+ "dist/figma-text-styles.json",
7
+ "src/preset/semantic-tokens.ts",
8
+ "src/preset/colors/create-palette-bridge.ts"
9
+ ],
10
+ "semantic": [
11
+ {
12
+ "figmaPath": "Semantic/primary",
13
+ "pandaToken": "primary",
14
+ "cssProperty": "--colors-primary",
15
+ "exampleUsage": "color: 'primary'"
16
+ },
17
+ {
18
+ "figmaPath": "Semantic/onPrimary",
19
+ "pandaToken": "onPrimary",
20
+ "cssProperty": "--colors-on-primary",
21
+ "exampleUsage": "color: 'onPrimary'"
22
+ },
23
+ {
24
+ "figmaPath": "Semantic/primary/container",
25
+ "pandaToken": "primary.container",
26
+ "cssProperty": "--colors-primary-container",
27
+ "exampleUsage": "bg: 'primary.container'"
28
+ },
29
+ {
30
+ "figmaPath": "Semantic/onPrimary/container",
31
+ "pandaToken": "onPrimary.container",
32
+ "cssProperty": "--colors-on-primary-container",
33
+ "exampleUsage": "color: 'onPrimary.container'"
34
+ },
35
+ {
36
+ "figmaPath": "Semantic/secondary",
37
+ "pandaToken": "secondary",
38
+ "cssProperty": "--colors-secondary",
39
+ "exampleUsage": "color: 'secondary'"
40
+ },
41
+ {
42
+ "figmaPath": "Semantic/onSecondary",
43
+ "pandaToken": "onSecondary",
44
+ "cssProperty": "--colors-on-secondary",
45
+ "exampleUsage": "color: 'onSecondary'"
46
+ },
47
+ {
48
+ "figmaPath": "Semantic/secondary/container",
49
+ "pandaToken": "secondary.container",
50
+ "cssProperty": "--colors-secondary-container",
51
+ "exampleUsage": "bg: 'secondary.container'"
52
+ },
53
+ {
54
+ "figmaPath": "Semantic/onSecondary/container",
55
+ "pandaToken": "onSecondary.container",
56
+ "cssProperty": "--colors-on-secondary-container",
57
+ "exampleUsage": "color: 'onSecondary.container'"
58
+ },
59
+ {
60
+ "figmaPath": "Semantic/tertiary",
61
+ "pandaToken": "tertiary",
62
+ "cssProperty": "--colors-tertiary",
63
+ "exampleUsage": "color: 'tertiary'"
64
+ },
65
+ {
66
+ "figmaPath": "Semantic/onTertiary",
67
+ "pandaToken": "onTertiary",
68
+ "cssProperty": "--colors-on-tertiary",
69
+ "exampleUsage": "color: 'onTertiary'"
70
+ },
71
+ {
72
+ "figmaPath": "Semantic/tertiary/container",
73
+ "pandaToken": "tertiary.container",
74
+ "cssProperty": "--colors-tertiary-container",
75
+ "exampleUsage": "bg: 'tertiary.container'"
76
+ },
77
+ {
78
+ "figmaPath": "Semantic/onTertiary/container",
79
+ "pandaToken": "onTertiary.container",
80
+ "cssProperty": "--colors-on-tertiary-container",
81
+ "exampleUsage": "color: 'onTertiary.container'"
82
+ },
83
+ {
84
+ "figmaPath": "Semantic/error",
85
+ "pandaToken": "error",
86
+ "cssProperty": "--colors-error",
87
+ "exampleUsage": "color: 'error'"
88
+ },
89
+ {
90
+ "figmaPath": "Semantic/onError",
91
+ "pandaToken": "onError",
92
+ "cssProperty": "--colors-on-error",
93
+ "exampleUsage": "color: 'onError'"
94
+ },
95
+ {
96
+ "figmaPath": "Semantic/error/container",
97
+ "pandaToken": "error.container",
98
+ "cssProperty": "--colors-error-container",
99
+ "exampleUsage": "bg: 'error.container'"
100
+ },
101
+ {
102
+ "figmaPath": "Semantic/onError/container",
103
+ "pandaToken": "onError.container",
104
+ "cssProperty": "--colors-on-error-container",
105
+ "exampleUsage": "color: 'onError.container'"
106
+ },
107
+ {
108
+ "figmaPath": "Semantic/surface",
109
+ "pandaToken": "surface",
110
+ "cssProperty": "--colors-surface",
111
+ "exampleUsage": "bg: 'surface'"
112
+ },
113
+ {
114
+ "figmaPath": "Semantic/onSurface",
115
+ "pandaToken": "onSurface",
116
+ "cssProperty": "--colors-on-surface",
117
+ "exampleUsage": "color: 'onSurface'"
118
+ },
119
+ {
120
+ "figmaPath": "Semantic/surface/variant",
121
+ "pandaToken": "surfaceVariant",
122
+ "cssProperty": "--colors-surface-variant",
123
+ "exampleUsage": "bg: 'surfaceVariant'",
124
+ "mismatch": true,
125
+ "mismatchNote": "Figma path 'surface/variant' maps to flat camelCase 'surfaceVariant', NOT 'surface.variant'. Defined at semantic-tokens.ts:114."
126
+ },
127
+ {
128
+ "figmaPath": "Semantic/onSurface/variant",
129
+ "pandaToken": "onSurface.variant",
130
+ "cssProperty": "--colors-on-surface-variant",
131
+ "exampleUsage": "color: 'onSurface.variant'",
132
+ "mismatch": true,
133
+ "mismatchNote": "Unlike 'surface/variant' which is flat, 'onSurface/variant' IS nested as 'onSurface.variant'. Inconsistent convention between these two analogous tokens."
134
+ },
135
+ {
136
+ "figmaPath": "Semantic/surface/container/lowest",
137
+ "pandaToken": "surface.container.lowest",
138
+ "cssProperty": "--colors-surface-container-lowest",
139
+ "exampleUsage": "bg: 'surface.container.lowest'"
140
+ },
141
+ {
142
+ "figmaPath": "Semantic/surface/container/low",
143
+ "pandaToken": "surface.container.low",
144
+ "cssProperty": "--colors-surface-container-low",
145
+ "exampleUsage": "bg: 'surface.container.low'"
146
+ },
147
+ {
148
+ "figmaPath": "Semantic/surface/container",
149
+ "pandaToken": "surface.container",
150
+ "cssProperty": "--colors-surface-container",
151
+ "exampleUsage": "bg: 'surface.container'"
152
+ },
153
+ {
154
+ "figmaPath": "Semantic/surface/container/high",
155
+ "pandaToken": "surface.container.high",
156
+ "cssProperty": "--colors-surface-container-high",
157
+ "exampleUsage": "bg: 'surface.container.high'"
158
+ },
159
+ {
160
+ "figmaPath": "Semantic/surface/container/highest",
161
+ "pandaToken": "surface.container.highest",
162
+ "cssProperty": "--colors-surface-container-highest",
163
+ "exampleUsage": "bg: 'surface.container.highest'"
164
+ },
165
+ {
166
+ "figmaPath": "Semantic/outline",
167
+ "pandaToken": "outline",
168
+ "cssProperty": "--colors-outline",
169
+ "exampleUsage": "borderColor: 'outline'"
170
+ },
171
+ {
172
+ "figmaPath": "Semantic/outline/variant",
173
+ "pandaToken": "outline.variant",
174
+ "cssProperty": "--colors-outline-variant",
175
+ "exampleUsage": "borderColor: 'outline.variant'"
176
+ },
177
+ {
178
+ "figmaPath": "Semantic/inverse/surface",
179
+ "pandaToken": "inverseSurface",
180
+ "cssProperty": "--colors-inverse-surface",
181
+ "exampleUsage": "bg: 'inverseSurface'",
182
+ "mismatch": true,
183
+ "mismatchNote": "Figma 'inverse/surface' → Panda 'inverseSurface' (flat camelCase, not dot-notation nested token)"
184
+ },
185
+ {
186
+ "figmaPath": "Semantic/inverse/onSurface",
187
+ "pandaToken": "inverseOnSurface",
188
+ "cssProperty": "--colors-inverse-on-surface",
189
+ "exampleUsage": "color: 'inverseOnSurface'",
190
+ "mismatch": true,
191
+ "mismatchNote": "Figma 'inverse/onSurface' → Panda 'inverseOnSurface' (flat camelCase, not dot-notation nested token)"
192
+ },
193
+ {
194
+ "figmaPath": "Semantic/inverse/primary",
195
+ "pandaToken": "inversePrimary",
196
+ "cssProperty": "--colors-inverse-primary",
197
+ "exampleUsage": "color: 'inversePrimary'",
198
+ "mismatch": true,
199
+ "mismatchNote": "Figma 'inverse/primary' → Panda 'inversePrimary' (flat camelCase, not dot-notation nested token)"
200
+ },
201
+ {
202
+ "figmaPath": "Semantic/background",
203
+ "pandaToken": "background",
204
+ "cssProperty": "--colors-background",
205
+ "exampleUsage": "bg: 'background'"
206
+ },
207
+ {
208
+ "figmaPath": "Semantic/onBackground",
209
+ "pandaToken": "onBackground",
210
+ "cssProperty": "--colors-on-background",
211
+ "exampleUsage": "color: 'onBackground'"
212
+ },
213
+ {
214
+ "figmaPath": "Semantic/scrim",
215
+ "pandaToken": "scrim",
216
+ "cssProperty": "--colors-scrim",
217
+ "exampleUsage": "bg: 'scrim'"
218
+ },
219
+ {
220
+ "figmaPath": "Semantic/shadow",
221
+ "pandaToken": "shadow",
222
+ "cssProperty": "--colors-shadow",
223
+ "exampleUsage": "color: 'shadow'"
224
+ }
225
+ ],
226
+ "semanticPandaOnly": [
227
+ {
228
+ "pandaToken": "surface.dim",
229
+ "cssProperty": "--colors-surface-dim",
230
+ "notes": "Aliased from surfaceContainerLow. No Figma variable equivalent.",
231
+ "exampleUsage": "bg: 'surface.dim'"
232
+ },
233
+ {
234
+ "pandaToken": "surface.bright",
235
+ "cssProperty": "--colors-surface-bright",
236
+ "notes": "Aliased from surfaceContainerHigh. No Figma variable equivalent.",
237
+ "exampleUsage": "bg: 'surface.bright'"
238
+ },
239
+ {
240
+ "pandaToken": "inverseSecondary",
241
+ "cssProperty": "--colors-inverse-secondary",
242
+ "notes": "Non-standard M3 token following inversePrimary pattern. No Figma variable equivalent.",
243
+ "exampleUsage": "color: 'inverseSecondary'"
244
+ },
245
+ {
246
+ "pandaToken": "inverseTertiary",
247
+ "cssProperty": "--colors-inverse-tertiary",
248
+ "notes": "Non-standard M3 token following inversePrimary pattern. No Figma variable equivalent.",
249
+ "exampleUsage": "color: 'inverseTertiary'"
250
+ }
251
+ ],
252
+ "bridge": {
253
+ "description": "Radix-scale bridge tokens generated by src/preset/colors/create-palette-bridge.ts. Applies to all five palettes: primary, secondary, tertiary, error, neutral.",
254
+ "palettes": ["primary", "secondary", "tertiary", "error", "neutral"],
255
+ "baseScale": [
256
+ {
257
+ "pattern": "{palette}.1 through {palette}.12",
258
+ "cssPattern": "--colors-{palette}-1 through --colors-{palette}-12",
259
+ "notes": "1-2: app background; 3-4: subtle backgrounds; 5-6: UI element backgrounds; 7-8: borders; 9: solid action color; 10: hover state; 11: low-contrast text; 12: high-contrast text",
260
+ "exampleUsage": "bg: 'primary.3'",
261
+ "tokenKeys": [
262
+ "1",
263
+ "2",
264
+ "3",
265
+ "4",
266
+ "5",
267
+ "6",
268
+ "7",
269
+ "8",
270
+ "9",
271
+ "10",
272
+ "11",
273
+ "12"
274
+ ]
275
+ }
276
+ ],
277
+ "alphaScale": [
278
+ {
279
+ "pattern": "{palette}.a1 through {palette}.a12",
280
+ "cssPattern": "--colors-{palette}-a1 through --colors-{palette}-a12",
281
+ "notes": "Transparency variants for overlays. Hex opacity suffix: a1=~3%, a6=~50%, a12=~94%",
282
+ "exampleUsage": "bg: 'primary.a3'",
283
+ "tokenKeys": [
284
+ "a1",
285
+ "a2",
286
+ "a3",
287
+ "a4",
288
+ "a5",
289
+ "a6",
290
+ "a7",
291
+ "a8",
292
+ "a9",
293
+ "a10",
294
+ "a11",
295
+ "a12"
296
+ ]
297
+ }
298
+ ],
299
+ "semanticVariants": [
300
+ {
301
+ "tokenPattern": "{palette}.solid.bg",
302
+ "cssPattern": "--colors-{palette}-solid-bg",
303
+ "purpose": "Primary action background",
304
+ "exampleUsage": "bg: 'primary.solid.bg'"
305
+ },
306
+ {
307
+ "tokenPattern": "{palette}.solid.bg.hover",
308
+ "cssPattern": "--colors-{palette}-solid-bg-hover",
309
+ "purpose": "Hovered solid background",
310
+ "exampleUsage": "— (hover state)"
311
+ },
312
+ {
313
+ "tokenPattern": "{palette}.solid.fg",
314
+ "cssPattern": "--colors-{palette}-solid-fg",
315
+ "purpose": "Foreground on solid bg",
316
+ "exampleUsage": "color: 'primary.solid.fg'"
317
+ },
318
+ {
319
+ "tokenPattern": "{palette}.subtle.bg",
320
+ "cssPattern": "--colors-{palette}-subtle-bg",
321
+ "purpose": "Subtle tinted background",
322
+ "exampleUsage": "bg: 'primary.subtle.bg'"
323
+ },
324
+ {
325
+ "tokenPattern": "{palette}.subtle.bg.hover",
326
+ "cssPattern": "--colors-{palette}-subtle-bg-hover",
327
+ "purpose": "Hovered subtle background",
328
+ "exampleUsage": "— (hover state)"
329
+ },
330
+ {
331
+ "tokenPattern": "{palette}.subtle.bg.active",
332
+ "cssPattern": "--colors-{palette}-subtle-bg-active",
333
+ "purpose": "Active subtle background",
334
+ "exampleUsage": "— (active state)"
335
+ },
336
+ {
337
+ "tokenPattern": "{palette}.subtle.fg",
338
+ "cssPattern": "--colors-{palette}-subtle-fg",
339
+ "purpose": "Foreground on subtle bg",
340
+ "exampleUsage": "color: 'primary.subtle.fg'"
341
+ },
342
+ {
343
+ "tokenPattern": "{palette}.surface.bg",
344
+ "cssPattern": "--colors-{palette}-surface-bg",
345
+ "purpose": "Low-tint surface background",
346
+ "exampleUsage": "bg: 'primary.surface.bg'"
347
+ },
348
+ {
349
+ "tokenPattern": "{palette}.surface.bg.active",
350
+ "cssPattern": "--colors-{palette}-surface-bg-active",
351
+ "purpose": "Active surface background",
352
+ "exampleUsage": "— (active state)"
353
+ },
354
+ {
355
+ "tokenPattern": "{palette}.surface.border",
356
+ "cssPattern": "--colors-{palette}-surface-border",
357
+ "purpose": "Surface border",
358
+ "exampleUsage": "borderColor: 'primary.surface.border'"
359
+ },
360
+ {
361
+ "tokenPattern": "{palette}.surface.border.hover",
362
+ "cssPattern": "--colors-{palette}-surface-border-hover",
363
+ "purpose": "Hovered surface border",
364
+ "exampleUsage": "— (hover state)"
365
+ },
366
+ {
367
+ "tokenPattern": "{palette}.surface.fg",
368
+ "cssPattern": "--colors-{palette}-surface-fg",
369
+ "purpose": "Foreground on surface",
370
+ "exampleUsage": "color: 'primary.surface.fg'"
371
+ },
372
+ {
373
+ "tokenPattern": "{palette}.outline.bg",
374
+ "cssPattern": "--colors-{palette}-outline-bg",
375
+ "purpose": "Transparent outline background",
376
+ "exampleUsage": "bg: 'primary.outline.bg'"
377
+ },
378
+ {
379
+ "tokenPattern": "{palette}.outline.bg.hover",
380
+ "cssPattern": "--colors-{palette}-outline-bg-hover",
381
+ "purpose": "Hovered outline background",
382
+ "exampleUsage": "— (hover state)"
383
+ },
384
+ {
385
+ "tokenPattern": "{palette}.outline.bg.active",
386
+ "cssPattern": "--colors-{palette}-outline-bg-active",
387
+ "purpose": "Active outline background",
388
+ "exampleUsage": "— (active state)"
389
+ },
390
+ {
391
+ "tokenPattern": "{palette}.outline.border",
392
+ "cssPattern": "--colors-{palette}-outline-border",
393
+ "purpose": "Outline border",
394
+ "exampleUsage": "borderColor: 'primary.outline.border'"
395
+ },
396
+ {
397
+ "tokenPattern": "{palette}.outline.fg",
398
+ "cssPattern": "--colors-{palette}-outline-fg",
399
+ "purpose": "Foreground for outline variant",
400
+ "exampleUsage": "color: 'primary.outline.fg'"
401
+ },
402
+ {
403
+ "tokenPattern": "{palette}.plain.bg",
404
+ "cssPattern": "--colors-{palette}-plain-bg",
405
+ "purpose": "No-chrome background (transparent)",
406
+ "exampleUsage": "bg: 'primary.plain.bg'"
407
+ },
408
+ {
409
+ "tokenPattern": "{palette}.plain.bg.hover",
410
+ "cssPattern": "--colors-{palette}-plain-bg-hover",
411
+ "purpose": "Hovered plain background",
412
+ "exampleUsage": "— (hover state)"
413
+ },
414
+ {
415
+ "tokenPattern": "{palette}.plain.bg.active",
416
+ "cssPattern": "--colors-{palette}-plain-bg-active",
417
+ "purpose": "Active plain background",
418
+ "exampleUsage": "— (active state)"
419
+ },
420
+ {
421
+ "tokenPattern": "{palette}.plain.fg",
422
+ "cssPattern": "--colors-{palette}-plain-fg",
423
+ "purpose": "Foreground for plain variant",
424
+ "exampleUsage": "color: 'primary.plain.fg'"
425
+ }
426
+ ],
427
+ "specialCases": [
428
+ {
429
+ "palette": "error",
430
+ "note": "The error bridge also includes a DEFAULT key at root level (includeDefault: true in create-palette-bridge.ts:148). 'error' resolves to m3[40] (light) / m3[80] (dark) in addition to the Radix 1-12 scale."
431
+ }
432
+ ]
433
+ },
434
+ "spacingAndShape": [
435
+ {
436
+ "figmaPath": "Spacing & Shape/spacing/none",
437
+ "pandaToken": "none",
438
+ "pandaCategory": "spacing",
439
+ "cssProperty": "--spacing-none",
440
+ "exampleUsage": "p: 'none'"
441
+ },
442
+ {
443
+ "figmaPath": "Spacing & Shape/spacing/xxs",
444
+ "pandaToken": "xxs",
445
+ "pandaCategory": "spacing",
446
+ "cssProperty": "--spacing-xxs",
447
+ "exampleUsage": "p: 'xxs'"
448
+ },
449
+ {
450
+ "figmaPath": "Spacing & Shape/spacing/xs",
451
+ "pandaToken": "xs",
452
+ "pandaCategory": "spacing",
453
+ "cssProperty": "--spacing-xs",
454
+ "exampleUsage": "p: 'xs'"
455
+ },
456
+ {
457
+ "figmaPath": "Spacing & Shape/spacing/sm",
458
+ "pandaToken": "sm",
459
+ "pandaCategory": "spacing",
460
+ "cssProperty": "--spacing-sm",
461
+ "exampleUsage": "p: 'sm'"
462
+ },
463
+ {
464
+ "figmaPath": "Spacing & Shape/spacing/md",
465
+ "pandaToken": "md",
466
+ "pandaCategory": "spacing",
467
+ "cssProperty": "--spacing-md",
468
+ "exampleUsage": "p: 'md', gap: 'md'"
469
+ },
470
+ {
471
+ "figmaPath": "Spacing & Shape/spacing/lg",
472
+ "pandaToken": "lg",
473
+ "pandaCategory": "spacing",
474
+ "cssProperty": "--spacing-lg",
475
+ "exampleUsage": "p: 'lg'"
476
+ },
477
+ {
478
+ "figmaPath": "Spacing & Shape/spacing/xl",
479
+ "pandaToken": "xl",
480
+ "pandaCategory": "spacing",
481
+ "cssProperty": "--spacing-xl",
482
+ "exampleUsage": "p: 'xl'"
483
+ },
484
+ {
485
+ "figmaPath": "Spacing & Shape/spacing/xxl",
486
+ "pandaToken": "xxl",
487
+ "pandaCategory": "spacing",
488
+ "cssProperty": "--spacing-xxl",
489
+ "exampleUsage": "p: 'xxl'"
490
+ },
491
+ {
492
+ "figmaPath": "Spacing & Shape/spacing/xxxl",
493
+ "pandaToken": "xxxl",
494
+ "pandaCategory": "spacing",
495
+ "cssProperty": "--spacing-xxxl",
496
+ "exampleUsage": "p: 'xxxl'"
497
+ },
498
+ {
499
+ "figmaPath": "Spacing & Shape/radii/none",
500
+ "pandaToken": "none",
501
+ "pandaCategory": "radii",
502
+ "cssProperty": "--radii-none",
503
+ "exampleUsage": "borderRadius: 'none'"
504
+ },
505
+ {
506
+ "figmaPath": "Spacing & Shape/radii/extraSmall",
507
+ "pandaToken": "extraSmall",
508
+ "pandaCategory": "radii",
509
+ "cssProperty": "--radii-extra-small",
510
+ "exampleUsage": "borderRadius: 'extraSmall'"
511
+ },
512
+ {
513
+ "figmaPath": "Spacing & Shape/radii/small",
514
+ "pandaToken": "small",
515
+ "pandaCategory": "radii",
516
+ "cssProperty": "--radii-small",
517
+ "exampleUsage": "borderRadius: 'small'"
518
+ },
519
+ {
520
+ "figmaPath": "Spacing & Shape/radii/medium",
521
+ "pandaToken": "medium",
522
+ "pandaCategory": "radii",
523
+ "cssProperty": "--radii-medium",
524
+ "exampleUsage": "borderRadius: 'medium'"
525
+ },
526
+ {
527
+ "figmaPath": "Spacing & Shape/radii/large",
528
+ "pandaToken": "large",
529
+ "pandaCategory": "radii",
530
+ "cssProperty": "--radii-large",
531
+ "exampleUsage": "borderRadius: 'large'"
532
+ },
533
+ {
534
+ "figmaPath": "Spacing & Shape/radii/extraLarge",
535
+ "pandaToken": "extraLarge",
536
+ "pandaCategory": "radii",
537
+ "cssProperty": "--radii-extra-large",
538
+ "exampleUsage": "borderRadius: 'extraLarge'"
539
+ },
540
+ {
541
+ "figmaPath": "Spacing & Shape/radii/full",
542
+ "pandaToken": "full",
543
+ "pandaCategory": "radii",
544
+ "cssProperty": "--radii-full",
545
+ "exampleUsage": "borderRadius: 'full'"
546
+ },
547
+ {
548
+ "figmaPath": "Spacing & Shape/border/thin",
549
+ "pandaToken": "thin",
550
+ "pandaCategory": "borderWidths",
551
+ "cssProperty": "--border-widths-thin",
552
+ "exampleUsage": "borderWidth: 'thin'"
553
+ },
554
+ {
555
+ "figmaPath": "Spacing & Shape/border/medium",
556
+ "pandaToken": "medium",
557
+ "pandaCategory": "borderWidths",
558
+ "cssProperty": "--border-widths-medium",
559
+ "exampleUsage": "borderWidth: 'medium'"
560
+ },
561
+ {
562
+ "figmaPath": "Spacing & Shape/border/thick",
563
+ "pandaToken": "thick",
564
+ "pandaCategory": "borderWidths",
565
+ "cssProperty": "--border-widths-thick",
566
+ "exampleUsage": "borderWidth: 'thick'"
567
+ },
568
+ {
569
+ "figmaPath": "Spacing & Shape/duration/instant",
570
+ "pandaToken": "instant",
571
+ "pandaCategory": "durations",
572
+ "cssProperty": "--durations-instant",
573
+ "exampleUsage": "transitionDuration: 'instant'"
574
+ },
575
+ {
576
+ "figmaPath": "Spacing & Shape/duration/fast",
577
+ "pandaToken": "fast",
578
+ "pandaCategory": "durations",
579
+ "cssProperty": "--durations-fast",
580
+ "exampleUsage": "transitionDuration: 'fast'"
581
+ },
582
+ {
583
+ "figmaPath": "Spacing & Shape/duration/normal",
584
+ "pandaToken": "normal",
585
+ "pandaCategory": "durations",
586
+ "cssProperty": "--durations-normal",
587
+ "exampleUsage": "transitionDuration: 'normal'"
588
+ },
589
+ {
590
+ "figmaPath": "Spacing & Shape/duration/slow",
591
+ "pandaToken": "slow",
592
+ "pandaCategory": "durations",
593
+ "cssProperty": "--durations-slow",
594
+ "exampleUsage": "transitionDuration: 'slow'"
595
+ },
596
+ {
597
+ "figmaPath": "Spacing & Shape/duration/slower",
598
+ "pandaToken": "slower",
599
+ "pandaCategory": "durations",
600
+ "cssProperty": "--durations-slower",
601
+ "exampleUsage": "transitionDuration: 'slower'"
602
+ }
603
+ ],
604
+ "effectStyles": [
605
+ {
606
+ "figmaEffectStyle": "elevation/level0",
607
+ "pandaToken": "level0",
608
+ "pandaCategory": "shadows",
609
+ "cssProperty": "--shadows-level0",
610
+ "description": "No elevation — flat surfaces",
611
+ "exampleUsage": "shadow: 'level0'"
612
+ },
613
+ {
614
+ "figmaEffectStyle": "elevation/level1",
615
+ "pandaToken": "level1",
616
+ "pandaCategory": "shadows",
617
+ "cssProperty": "--shadows-level1",
618
+ "description": "Cards at rest, contained buttons",
619
+ "exampleUsage": "shadow: 'level1'"
620
+ },
621
+ {
622
+ "figmaEffectStyle": "elevation/level2",
623
+ "pandaToken": "level2",
624
+ "pandaCategory": "shadows",
625
+ "cssProperty": "--shadows-level2",
626
+ "description": "Cards on hover, raised buttons",
627
+ "exampleUsage": "shadow: 'level2'"
628
+ },
629
+ {
630
+ "figmaEffectStyle": "elevation/level3",
631
+ "pandaToken": "level3",
632
+ "pandaCategory": "shadows",
633
+ "cssProperty": "--shadows-level3",
634
+ "description": "Dialogs, dropdowns, popovers",
635
+ "exampleUsage": "shadow: 'level3'"
636
+ },
637
+ {
638
+ "figmaEffectStyle": "elevation/level4",
639
+ "pandaToken": "level4",
640
+ "pandaCategory": "shadows",
641
+ "cssProperty": "--shadows-level4",
642
+ "description": "Navigation drawers, modal sheets",
643
+ "exampleUsage": "shadow: 'level4'"
644
+ },
645
+ {
646
+ "figmaEffectStyle": "elevation/level5",
647
+ "pandaToken": "level5",
648
+ "pandaCategory": "shadows",
649
+ "cssProperty": "--shadows-level5",
650
+ "description": "FABs, tooltips, snackbars",
651
+ "exampleUsage": "shadow: 'level5'"
652
+ }
653
+ ],
654
+ "shadowSemanticAliases": [
655
+ {
656
+ "pandaToken": "xs",
657
+ "cssProperty": "--shadows-xs",
658
+ "resolvesTo": "level1",
659
+ "exampleUsage": "shadow: 'xs'"
660
+ },
661
+ {
662
+ "pandaToken": "sm",
663
+ "cssProperty": "--shadows-sm",
664
+ "resolvesTo": "level2",
665
+ "exampleUsage": "shadow: 'sm'"
666
+ },
667
+ {
668
+ "pandaToken": "md",
669
+ "cssProperty": "--shadows-md",
670
+ "resolvesTo": "level3",
671
+ "exampleUsage": "shadow: 'md'"
672
+ },
673
+ {
674
+ "pandaToken": "lg",
675
+ "cssProperty": "--shadows-lg",
676
+ "resolvesTo": "level4",
677
+ "exampleUsage": "shadow: 'lg'"
678
+ },
679
+ {
680
+ "pandaToken": "xl",
681
+ "cssProperty": "--shadows-xl",
682
+ "resolvesTo": "level5",
683
+ "exampleUsage": "shadow: 'xl'"
684
+ },
685
+ {
686
+ "pandaToken": "2xl",
687
+ "cssProperty": "--shadows-2xl",
688
+ "resolvesTo": "level5",
689
+ "exampleUsage": "shadow: '2xl'"
690
+ },
691
+ {
692
+ "pandaToken": "inset",
693
+ "cssProperty": "--shadows-inset",
694
+ "resolvesTo": "custom inset using neutral.a4/a6",
695
+ "exampleUsage": "shadow: 'inset'"
696
+ }
697
+ ],
698
+ "textStyles": [
699
+ {
700
+ "figmaTextStyle": "displayLarge",
701
+ "pandaTextStyle": "displayLarge",
702
+ "fontFamily": "Fraunces",
703
+ "fontSize": 57,
704
+ "fontWeight": 400,
705
+ "lineHeight": 64,
706
+ "letterSpacing": -0.25,
707
+ "exampleUsage": "textStyle: 'displayLarge'"
708
+ },
709
+ {
710
+ "figmaTextStyle": "displayMedium",
711
+ "pandaTextStyle": "displayMedium",
712
+ "fontFamily": "Fraunces",
713
+ "fontSize": 45,
714
+ "fontWeight": 400,
715
+ "lineHeight": 52,
716
+ "letterSpacing": 0,
717
+ "exampleUsage": "textStyle: 'displayMedium'"
718
+ },
719
+ {
720
+ "figmaTextStyle": "displaySmall",
721
+ "pandaTextStyle": "displaySmall",
722
+ "fontFamily": "Fraunces",
723
+ "fontSize": 36,
724
+ "fontWeight": 400,
725
+ "lineHeight": 44,
726
+ "letterSpacing": 0,
727
+ "exampleUsage": "textStyle: 'displaySmall'"
728
+ },
729
+ {
730
+ "figmaTextStyle": "headlineLarge",
731
+ "pandaTextStyle": "headlineLarge",
732
+ "fontFamily": "Fraunces",
733
+ "fontSize": 32,
734
+ "fontWeight": 400,
735
+ "lineHeight": 40,
736
+ "letterSpacing": 0,
737
+ "exampleUsage": "textStyle: 'headlineLarge'"
738
+ },
739
+ {
740
+ "figmaTextStyle": "headlineMedium",
741
+ "pandaTextStyle": "headlineMedium",
742
+ "fontFamily": "Fraunces",
743
+ "fontSize": 28,
744
+ "fontWeight": 400,
745
+ "lineHeight": 36,
746
+ "letterSpacing": 0,
747
+ "exampleUsage": "textStyle: 'headlineMedium'"
748
+ },
749
+ {
750
+ "figmaTextStyle": "headlineSmall",
751
+ "pandaTextStyle": "headlineSmall",
752
+ "fontFamily": "Fraunces",
753
+ "fontSize": 24,
754
+ "fontWeight": 400,
755
+ "lineHeight": 32,
756
+ "letterSpacing": 0,
757
+ "exampleUsage": "textStyle: 'headlineSmall'"
758
+ },
759
+ {
760
+ "figmaTextStyle": "titleLarge",
761
+ "pandaTextStyle": "titleLarge",
762
+ "fontFamily": "Poppins",
763
+ "fontSize": 22,
764
+ "fontWeight": 500,
765
+ "lineHeight": 28,
766
+ "letterSpacing": 0,
767
+ "exampleUsage": "textStyle: 'titleLarge'"
768
+ },
769
+ {
770
+ "figmaTextStyle": "titleMedium",
771
+ "pandaTextStyle": "titleMedium",
772
+ "fontFamily": "Poppins",
773
+ "fontSize": 16,
774
+ "fontWeight": 500,
775
+ "lineHeight": 24,
776
+ "letterSpacing": 0.15,
777
+ "exampleUsage": "textStyle: 'titleMedium'"
778
+ },
779
+ {
780
+ "figmaTextStyle": "titleSmall",
781
+ "pandaTextStyle": "titleSmall",
782
+ "fontFamily": "Poppins",
783
+ "fontSize": 14,
784
+ "fontWeight": 500,
785
+ "lineHeight": 20,
786
+ "letterSpacing": 0.1,
787
+ "exampleUsage": "textStyle: 'titleSmall'"
788
+ },
789
+ {
790
+ "figmaTextStyle": "bodyLarge",
791
+ "pandaTextStyle": "bodyLarge",
792
+ "fontFamily": "Poppins",
793
+ "fontSize": 16,
794
+ "fontWeight": 400,
795
+ "lineHeight": 24,
796
+ "letterSpacing": 0.5,
797
+ "exampleUsage": "textStyle: 'bodyLarge'"
798
+ },
799
+ {
800
+ "figmaTextStyle": "bodyMedium",
801
+ "pandaTextStyle": "bodyMedium",
802
+ "fontFamily": "Poppins",
803
+ "fontSize": 14,
804
+ "fontWeight": 400,
805
+ "lineHeight": 20,
806
+ "letterSpacing": 0.25,
807
+ "exampleUsage": "textStyle: 'bodyMedium'"
808
+ },
809
+ {
810
+ "figmaTextStyle": "bodySmall",
811
+ "pandaTextStyle": "bodySmall",
812
+ "fontFamily": "Poppins",
813
+ "fontSize": 12,
814
+ "fontWeight": 400,
815
+ "lineHeight": 16,
816
+ "letterSpacing": 0.4,
817
+ "exampleUsage": "textStyle: 'bodySmall'"
818
+ },
819
+ {
820
+ "figmaTextStyle": "labelLarge",
821
+ "pandaTextStyle": "labelLarge",
822
+ "fontFamily": "Poppins",
823
+ "fontSize": 14,
824
+ "fontWeight": 500,
825
+ "lineHeight": 20,
826
+ "letterSpacing": 0.1,
827
+ "exampleUsage": "textStyle: 'labelLarge'"
828
+ },
829
+ {
830
+ "figmaTextStyle": "labelMedium",
831
+ "pandaTextStyle": "labelMedium",
832
+ "fontFamily": "Poppins",
833
+ "fontSize": 12,
834
+ "fontWeight": 500,
835
+ "lineHeight": 16,
836
+ "letterSpacing": 0.5,
837
+ "exampleUsage": "textStyle: 'labelMedium'"
838
+ },
839
+ {
840
+ "figmaTextStyle": "labelSmall",
841
+ "pandaTextStyle": "labelSmall",
842
+ "fontFamily": "Poppins",
843
+ "fontSize": 11,
844
+ "fontWeight": 500,
845
+ "lineHeight": 16,
846
+ "letterSpacing": 0.5,
847
+ "exampleUsage": "textStyle: 'labelSmall'"
848
+ }
849
+ ]
850
+ }