@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,251 @@
1
+ # Token Name Mapping
2
+
3
+ > Generated from `dist/figma-variables.json`, `dist/figma-effect-styles.json`,
4
+ > `dist/figma-text-styles.json`, `src/preset/semantic-tokens.ts`, and
5
+ > `src/preset/colors/create-palette-bridge.ts`.
6
+ >
7
+ > Version: 0.22.0 (matches `$metadata.version` in `figma-variables.json`)
8
+
9
+ ---
10
+
11
+ ## Section 1: Semantic Colors
12
+
13
+ 34 entries from the `Semantic` collection in `figma-variables.json`, mapped to
14
+ their Panda CSS semantic token names (defined in `src/preset/semantic-tokens.ts`).
15
+
16
+ > **CSS custom property convention:** Panda converts camelCase token keys to
17
+ > kebab-case. Nested tokens (dot notation) become dashes. Example:
18
+ > `onPrimary.container` → `--colors-on-primary-container`.
19
+
20
+ | Figma Variable Path | Panda CSS Token | CSS Custom Property | Example Usage |
21
+ | ------------------------------------ | --------------------------- | ------------------------------------ | ----------------------------------------------------- |
22
+ | `Semantic/primary` | `primary` | `--colors-primary` | `color: 'primary'` |
23
+ | `Semantic/onPrimary` | `onPrimary` | `--colors-on-primary` | `color: 'onPrimary'` |
24
+ | `Semantic/primary/container` | `primary.container` | `--colors-primary-container` | `bg: 'primary.container'` |
25
+ | `Semantic/onPrimary/container` | `onPrimary.container` | `--colors-on-primary-container` | `color: 'onPrimary.container'` |
26
+ | `Semantic/secondary` | `secondary` | `--colors-secondary` | `color: 'secondary'` |
27
+ | `Semantic/onSecondary` | `onSecondary` | `--colors-on-secondary` | `color: 'onSecondary'` |
28
+ | `Semantic/secondary/container` | `secondary.container` | `--colors-secondary-container` | `bg: 'secondary.container'` |
29
+ | `Semantic/onSecondary/container` | `onSecondary.container` | `--colors-on-secondary-container` | `color: 'onSecondary.container'` |
30
+ | `Semantic/tertiary` | `tertiary` | `--colors-tertiary` | `color: 'tertiary'` |
31
+ | `Semantic/onTertiary` | `onTertiary` | `--colors-on-tertiary` | `color: 'onTertiary'` |
32
+ | `Semantic/tertiary/container` | `tertiary.container` | `--colors-tertiary-container` | `bg: 'tertiary.container'` |
33
+ | `Semantic/onTertiary/container` | `onTertiary.container` | `--colors-on-tertiary-container` | `color: 'onTertiary.container'` |
34
+ | `Semantic/error` | `error` | `--colors-error` | `color: 'error'` |
35
+ | `Semantic/onError` | `onError` | `--colors-on-error` | `color: 'onError'` |
36
+ | `Semantic/error/container` | `error.container` | `--colors-error-container` | `bg: 'error.container'` |
37
+ | `Semantic/onError/container` | `onError.container` | `--colors-on-error-container` | `color: 'onError.container'` |
38
+ | `Semantic/surface` | `surface` | `--colors-surface` | `bg: 'surface'` |
39
+ | `Semantic/onSurface` | `onSurface` | `--colors-on-surface` | `color: 'onSurface'` |
40
+ | `Semantic/surface/variant` | `surfaceVariant` | `--colors-surface-variant` | `bg: 'surfaceVariant'` ⚠️ Mismatch (see note A) |
41
+ | `Semantic/onSurface/variant` | `onSurface.variant` | `--colors-on-surface-variant` | `color: 'onSurface.variant'` ⚠️ Mismatch (see note B) |
42
+ | `Semantic/surface/container/lowest` | `surface.container.lowest` | `--colors-surface-container-lowest` | `bg: 'surface.container.lowest'` |
43
+ | `Semantic/surface/container/low` | `surface.container.low` | `--colors-surface-container-low` | `bg: 'surface.container.low'` |
44
+ | `Semantic/surface/container` | `surface.container` | `--colors-surface-container` | `bg: 'surface.container'` |
45
+ | `Semantic/surface/container/high` | `surface.container.high` | `--colors-surface-container-high` | `bg: 'surface.container.high'` |
46
+ | `Semantic/surface/container/highest` | `surface.container.highest` | `--colors-surface-container-highest` | `bg: 'surface.container.highest'` |
47
+ | `Semantic/outline` | `outline` | `--colors-outline` | `borderColor: 'outline'` |
48
+ | `Semantic/outline/variant` | `outline.variant` | `--colors-outline-variant` | `borderColor: 'outline.variant'` |
49
+ | `Semantic/inverse/surface` | `inverseSurface` | `--colors-inverse-surface` | `bg: 'inverseSurface'` ⚠️ Mismatch (see note C) |
50
+ | `Semantic/inverse/onSurface` | `inverseOnSurface` | `--colors-inverse-on-surface` | `color: 'inverseOnSurface'` ⚠️ Mismatch (see note C) |
51
+ | `Semantic/inverse/primary` | `inversePrimary` | `--colors-inverse-primary` | `color: 'inversePrimary'` ⚠️ Mismatch (see note C) |
52
+ | `Semantic/background` | `background` | `--colors-background` | `bg: 'background'` |
53
+ | `Semantic/onBackground` | `onBackground` | `--colors-on-background` | `color: 'onBackground'` |
54
+ | `Semantic/scrim` | `scrim` | `--colors-scrim` | `bg: 'scrim'` |
55
+ | `Semantic/shadow` | `shadow` | `--colors-shadow` | `color: 'shadow'` |
56
+
57
+ ### Panda-only tokens (no Figma variable equivalent)
58
+
59
+ These tokens exist in `semantic-tokens.ts` but have no direct key in
60
+ `figma-variables.json`:
61
+
62
+ | Panda CSS Token | CSS Custom Property | Notes |
63
+ | ------------------ | ---------------------------- | ------------------------------------------------- |
64
+ | `surface.dim` | `--colors-surface-dim` | Aliased from `surfaceContainerLow` |
65
+ | `surface.bright` | `--colors-surface-bright` | Aliased from `surfaceContainerHigh` |
66
+ | `inverseSecondary` | `--colors-inverse-secondary` | Non-standard M3, follows `inversePrimary` pattern |
67
+ | `inverseTertiary` | `--colors-inverse-tertiary` | Non-standard M3, follows `inversePrimary` pattern |
68
+
69
+ ### Mismatch Notes
70
+
71
+ **Note A — `surface/variant` vs `surfaceVariant`:**
72
+ Figma uses the slash-separated path `surface/variant`, suggesting a nested
73
+ structure. In Panda (`semantic-tokens.ts:114`), this is registered as a flat
74
+ top-level key `surfaceVariant` (camelCase), not as `surface.variant`. Use
75
+ `bg: 'surfaceVariant'`, NOT `bg: 'surface.variant'`.
76
+
77
+ **Note B — `onSurface/variant` inconsistency:**
78
+ Unlike `surface/variant` (flat camelCase), `onSurface/variant` IS nested in
79
+ Panda as `onSurface.variant` (`semantic-tokens.ts:112`). The two tokens use
80
+ different structural conventions despite analogous Figma paths.
81
+
82
+ **Note C — `inverse/*` paths flatten to camelCase:**
83
+ All three `inverse/` Figma paths (`inverse/surface`, `inverse/onSurface`,
84
+ `inverse/primary`) map to flat camelCase Panda tokens (`inverseSurface`,
85
+ `inverseOnSurface`, `inversePrimary`), not dot-notation nested tokens. This
86
+ matches M3 convention where these are atomic roles, not sub-tokens.
87
+
88
+ ---
89
+
90
+ ## Section 2: Primitive / Radix Bridge Colors
91
+
92
+ These tokens are generated by `src/preset/colors/create-palette-bridge.ts`.
93
+ They are **not** present in `figma-variables.json` (the Primitives collection
94
+ only has M3 tonal steps 0–100; the Radix 1–12 bridge is a Panda-side
95
+ abstraction).
96
+
97
+ The same structure applies to all five palettes:
98
+ `primary`, `secondary`, `tertiary`, `error`, `neutral`
99
+
100
+ ### Base Scale (M3 tonal → Radix 1–12)
101
+
102
+ | Token Pattern | CSS Custom Property Pattern | Radix Semantics | Example Usage |
103
+ | ------------------------------ | ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------- |
104
+ | `{palette}.1` – `{palette}.12` | `--colors-{palette}-1` – `--colors-{palette}-12` | 1–2: app bg; 3–4: subtle bg; 5–6: UI element bg; 7–8: borders; 9: solid action; 10: hover; 11: low-contrast text; 12: high-contrast text | `bg: 'primary.3'`, `color: 'primary.12'` |
105
+
106
+ ### Alpha Scale
107
+
108
+ | Token Pattern | CSS Custom Property Pattern | Notes | Example Usage |
109
+ | -------------------------------- | -------------------------------------------------- | ---------------------------------------------------------------------------- | ------------------ |
110
+ | `{palette}.a1` – `{palette}.a12` | `--colors-{palette}-a1` – `--colors-{palette}-a12` | Transparency variants for overlays; suffix is hex opacity (e.g. `a6` = ~50%) | `bg: 'primary.a3'` |
111
+
112
+ ### Semantic Variant Tokens
113
+
114
+ These Park UI–style semantic variants are nested under each palette:
115
+
116
+ | Token Pattern | CSS Custom Property Pattern | Purpose | Example Usage |
117
+ | -------------------------------- | ----------------------------------------- | ---------------------------------- | --------------------------------------- |
118
+ | `{palette}.solid.bg` | `--colors-{palette}-solid-bg` | Primary action background | `bg: 'primary.solid.bg'` |
119
+ | `{palette}.solid.bg.hover` | `--colors-{palette}-solid-bg-hover` | Hovered solid background | — |
120
+ | `{palette}.solid.fg` | `--colors-{palette}-solid-fg` | Foreground on solid background | `color: 'primary.solid.fg'` |
121
+ | `{palette}.subtle.bg` | `--colors-{palette}-subtle-bg` | Subtle tinted background | `bg: 'primary.subtle.bg'` |
122
+ | `{palette}.subtle.bg.hover` | `--colors-{palette}-subtle-bg-hover` | Hovered subtle background | — |
123
+ | `{palette}.subtle.bg.active` | `--colors-{palette}-subtle-bg-active` | Active subtle background | — |
124
+ | `{palette}.subtle.fg` | `--colors-{palette}-subtle-fg` | Foreground on subtle background | `color: 'primary.subtle.fg'` |
125
+ | `{palette}.surface.bg` | `--colors-{palette}-surface-bg` | Low-tint surface background | `bg: 'primary.surface.bg'` |
126
+ | `{palette}.surface.bg.active` | `--colors-{palette}-surface-bg-active` | Active surface background | — |
127
+ | `{palette}.surface.border` | `--colors-{palette}-surface-border` | Surface border | `borderColor: 'primary.surface.border'` |
128
+ | `{palette}.surface.border.hover` | `--colors-{palette}-surface-border-hover` | Hovered surface border | — |
129
+ | `{palette}.surface.fg` | `--colors-{palette}-surface-fg` | Foreground on surface | `color: 'primary.surface.fg'` |
130
+ | `{palette}.outline.bg` | `--colors-{palette}-outline-bg` | Transparent outline background | `bg: 'primary.outline.bg'` |
131
+ | `{palette}.outline.bg.hover` | `--colors-{palette}-outline-bg-hover` | Hovered outline background | — |
132
+ | `{palette}.outline.bg.active` | `--colors-{palette}-outline-bg-active` | Active outline background | — |
133
+ | `{palette}.outline.border` | `--colors-{palette}-outline-border` | Outline border | `borderColor: 'primary.outline.border'` |
134
+ | `{palette}.outline.fg` | `--colors-{palette}-outline-fg` | Foreground on outline | `color: 'primary.outline.fg'` |
135
+ | `{palette}.plain.bg` | `--colors-{palette}-plain-bg` | No-chrome background (transparent) | `bg: 'primary.plain.bg'` |
136
+ | `{palette}.plain.bg.hover` | `--colors-{palette}-plain-bg-hover` | Hovered plain background | — |
137
+ | `{palette}.plain.bg.active` | `--colors-{palette}-plain-bg-active` | Active plain background | — |
138
+ | `{palette}.plain.fg` | `--colors-{palette}-plain-fg` | Foreground for plain variant | `color: 'primary.plain.fg'` |
139
+
140
+ > **`error` palette special case:** The `error` bridge also includes a `DEFAULT`
141
+ > key at the root (`error` itself), registered via `includeDefault: true` in
142
+ > `create-palette-bridge.ts:148`. This means `error.9` is the Radix action color
143
+ > AND `error` (DEFAULT) resolves to `m3[40]` (light) / `m3[80]` (dark).
144
+
145
+ ---
146
+
147
+ ## Section 3: Spacing & Shape
148
+
149
+ 24 entries from the `Spacing & Shape` collection in `figma-variables.json`.
150
+ Panda stores these under four categories: `spacing`, `radii`, `borderWidths`,
151
+ and `durations` (from `theme.tokens.*` in `src/preset/index.ts`).
152
+
153
+ | Figma Variable Path | Panda CSS Token | CSS Custom Property | Example Usage |
154
+ | ---------------------------------- | ----------------------- | ------------------------ | ------------------------------- |
155
+ | `Spacing & Shape/spacing/none` | `none` (spacing) | `--spacing-none` | `p: 'none'` |
156
+ | `Spacing & Shape/spacing/xxs` | `xxs` (spacing) | `--spacing-xxs` | `p: 'xxs'` |
157
+ | `Spacing & Shape/spacing/xs` | `xs` (spacing) | `--spacing-xs` | `p: 'xs'` |
158
+ | `Spacing & Shape/spacing/sm` | `sm` (spacing) | `--spacing-sm` | `p: 'sm'` |
159
+ | `Spacing & Shape/spacing/md` | `md` (spacing) | `--spacing-md` | `p: 'md', gap: 'md'` |
160
+ | `Spacing & Shape/spacing/lg` | `lg` (spacing) | `--spacing-lg` | `p: 'lg'` |
161
+ | `Spacing & Shape/spacing/xl` | `xl` (spacing) | `--spacing-xl` | `p: 'xl'` |
162
+ | `Spacing & Shape/spacing/xxl` | `xxl` (spacing) | `--spacing-xxl` | `p: 'xxl'` |
163
+ | `Spacing & Shape/spacing/xxxl` | `xxxl` (spacing) | `--spacing-xxxl` | `p: 'xxxl'` |
164
+ | `Spacing & Shape/radii/none` | `none` (radii) | `--radii-none` | `borderRadius: 'none'` |
165
+ | `Spacing & Shape/radii/extraSmall` | `extraSmall` (radii) | `--radii-extra-small` | `borderRadius: 'extraSmall'` |
166
+ | `Spacing & Shape/radii/small` | `small` (radii) | `--radii-small` | `borderRadius: 'small'` |
167
+ | `Spacing & Shape/radii/medium` | `medium` (radii) | `--radii-medium` | `borderRadius: 'medium'` |
168
+ | `Spacing & Shape/radii/large` | `large` (radii) | `--radii-large` | `borderRadius: 'large'` |
169
+ | `Spacing & Shape/radii/extraLarge` | `extraLarge` (radii) | `--radii-extra-large` | `borderRadius: 'extraLarge'` |
170
+ | `Spacing & Shape/radii/full` | `full` (radii) | `--radii-full` | `borderRadius: 'full'` |
171
+ | `Spacing & Shape/border/thin` | `thin` (borderWidths) | `--border-widths-thin` | `borderWidth: 'thin'` |
172
+ | `Spacing & Shape/border/medium` | `medium` (borderWidths) | `--border-widths-medium` | `borderWidth: 'medium'` |
173
+ | `Spacing & Shape/border/thick` | `thick` (borderWidths) | `--border-widths-thick` | `borderWidth: 'thick'` |
174
+ | `Spacing & Shape/duration/instant` | `instant` (durations) | `--durations-instant` | `transitionDuration: 'instant'` |
175
+ | `Spacing & Shape/duration/fast` | `fast` (durations) | `--durations-fast` | `transitionDuration: 'fast'` |
176
+ | `Spacing & Shape/duration/normal` | `normal` (durations) | `--durations-normal` | `transitionDuration: 'normal'` |
177
+ | `Spacing & Shape/duration/slow` | `slow` (durations) | `--durations-slow` | `transitionDuration: 'slow'` |
178
+ | `Spacing & Shape/duration/slower` | `slower` (durations) | `--durations-slower` | `transitionDuration: 'slower'` |
179
+
180
+ > **Radii camelCase → kebab conversion:** `extraSmall` → `--radii-extra-small`,
181
+ > `extraLarge` → `--radii-extra-large`. The Panda token name in JSX remains
182
+ > camelCase (e.g. `borderRadius: 'extraSmall'`).
183
+
184
+ ### Panda-only radii (Park UI aliases, not in Figma)
185
+
186
+ Defined in `src/preset/index.ts:144–147` as semantic tokens:
187
+
188
+ | Panda Token | CSS Custom Property | Value | Purpose |
189
+ | ------------ | ------------------- | ---------------- | ------------------------ |
190
+ | `l1` (radii) | `--radii-l1` | `0.125rem` (2px) | Park UI xs border radius |
191
+ | `l2` (radii) | `--radii-l2` | `0.375rem` (6px) | Park UI sm border radius |
192
+ | `l3` (radii) | `--radii-l3` | `0.5rem` (8px) | Park UI md border radius |
193
+
194
+ ---
195
+
196
+ ## Section 4: Shadows (Effect Styles)
197
+
198
+ 6 base elevation tokens from `dist/figma-effect-styles.json`, plus semantic
199
+ aliases defined in `src/preset/shadows.ts`.
200
+
201
+ ### Base Elevation Tokens
202
+
203
+ | Figma Effect Style | Panda Token | CSS Custom Property | M3 Use Case | Example Usage |
204
+ | ------------------ | ----------- | ------------------- | -------------------------------- | ------------------ |
205
+ | `elevation/level0` | `level0` | `--shadows-level0` | Flat surfaces | `shadow: 'level0'` |
206
+ | `elevation/level1` | `level1` | `--shadows-level1` | Cards at rest, contained buttons | `shadow: 'level1'` |
207
+ | `elevation/level2` | `level2` | `--shadows-level2` | Cards on hover, raised buttons | `shadow: 'level2'` |
208
+ | `elevation/level3` | `level3` | `--shadows-level3` | Dialogs, dropdowns, popovers | `shadow: 'level3'` |
209
+ | `elevation/level4` | `level4` | `--shadows-level4` | Navigation drawers, modal sheets | `shadow: 'level4'` |
210
+ | `elevation/level5` | `level5` | `--shadows-level5` | FABs, tooltips, snackbars | `shadow: 'level5'` |
211
+
212
+ ### Semantic Shadow Aliases (Panda-only, defined in `src/preset/shadows.ts`)
213
+
214
+ | Panda Token | CSS Custom Property | Resolves To | Example Usage |
215
+ | ----------- | ------------------- | ------------------------------------ | ----------------- |
216
+ | `xs` | `--shadows-xs` | `level1` | `shadow: 'xs'` |
217
+ | `sm` | `--shadows-sm` | `level2` | `shadow: 'sm'` |
218
+ | `md` | `--shadows-md` | `level3` | `shadow: 'md'` |
219
+ | `lg` | `--shadows-lg` | `level4` | `shadow: 'lg'` |
220
+ | `xl` | `--shadows-xl` | `level5` | `shadow: 'xl'` |
221
+ | `2xl` | `--shadows-2xl` | `level5` | `shadow: '2xl'` |
222
+ | `inset` | `--shadows-inset` | Custom inset using `neutral.a4`/`a6` | `shadow: 'inset'` |
223
+
224
+ ---
225
+
226
+ ## Section 5: Typography (Text Styles)
227
+
228
+ 15 entries from `dist/figma-text-styles.json`. The Figma text style name is
229
+ identical to the Panda `textStyle` name — no transformation needed.
230
+
231
+ | Figma Text Style | Panda `textStyle` Name | Font Family | Font Size | Font Weight | Line Height | Example Usage |
232
+ | ---------------- | ---------------------- | ----------- | --------- | ----------- | ----------- | ----------------------------- |
233
+ | `displayLarge` | `displayLarge` | Fraunces | 57px | 400 | 64px | `textStyle: 'displayLarge'` |
234
+ | `displayMedium` | `displayMedium` | Fraunces | 45px | 400 | 52px | `textStyle: 'displayMedium'` |
235
+ | `displaySmall` | `displaySmall` | Fraunces | 36px | 400 | 44px | `textStyle: 'displaySmall'` |
236
+ | `headlineLarge` | `headlineLarge` | Fraunces | 32px | 400 | 40px | `textStyle: 'headlineLarge'` |
237
+ | `headlineMedium` | `headlineMedium` | Fraunces | 28px | 400 | 36px | `textStyle: 'headlineMedium'` |
238
+ | `headlineSmall` | `headlineSmall` | Fraunces | 24px | 400 | 32px | `textStyle: 'headlineSmall'` |
239
+ | `titleLarge` | `titleLarge` | Poppins | 22px | 500 | 28px | `textStyle: 'titleLarge'` |
240
+ | `titleMedium` | `titleMedium` | Poppins | 16px | 500 | 24px | `textStyle: 'titleMedium'` |
241
+ | `titleSmall` | `titleSmall` | Poppins | 14px | 500 | 20px | `textStyle: 'titleSmall'` |
242
+ | `bodyLarge` | `bodyLarge` | Poppins | 16px | 400 | 24px | `textStyle: 'bodyLarge'` |
243
+ | `bodyMedium` | `bodyMedium` | Poppins | 14px | 400 | 20px | `textStyle: 'bodyMedium'` |
244
+ | `bodySmall` | `bodySmall` | Poppins | 12px | 400 | 16px | `textStyle: 'bodySmall'` |
245
+ | `labelLarge` | `labelLarge` | Poppins | 14px | 500 | 20px | `textStyle: 'labelLarge'` |
246
+ | `labelMedium` | `labelMedium` | Poppins | 12px | 500 | 16px | `textStyle: 'labelMedium'` |
247
+ | `labelSmall` | `labelSmall` | Poppins | 11px | 500 | 16px | `textStyle: 'labelSmall'` |
248
+
249
+ > No mismatches in this section — Figma text style names map 1:1 to Panda
250
+ > `textStyle` names. Display and headline styles use **Fraunces** (serif);
251
+ > all other styles use **Poppins** (sans-serif).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@discourser/design-system",
3
- "version": "0.22.2",
3
+ "version": "0.22.4",
4
4
  "description": "Aesthetic-agnostic design system with Panda CSS and Ark UI",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -177,7 +177,8 @@
177
177
  },
178
178
  "files": [
179
179
  "dist",
180
- "src"
180
+ "src",
181
+ "docs"
181
182
  ],
182
183
  "scripts": {
183
184
  "dev": "pnpm build:css && pnpm docs:generate && storybook dev -p 6006",