@discourser/design-system 0.22.3 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/{chunk-WSJLKVXZ.cjs → chunk-AGZVRI36.cjs} +130 -2
  2. package/dist/chunk-AGZVRI36.cjs.map +1 -0
  3. package/dist/{chunk-GLPWI7OF.js → chunk-HN2IHIMR.js} +13 -7
  4. package/dist/chunk-HN2IHIMR.js.map +1 -0
  5. package/dist/{chunk-NN4YW27E.cjs → chunk-KIJKNZ73.cjs} +13 -7
  6. package/dist/chunk-KIJKNZ73.cjs.map +1 -0
  7. package/dist/{chunk-NU6GI57K.js → chunk-KQOHRIUP.js} +130 -3
  8. package/dist/chunk-KQOHRIUP.js.map +1 -0
  9. package/dist/components/Icons/AppleLoginIcon.d.ts +6 -0
  10. package/dist/components/Icons/AppleLoginIcon.d.ts.map +1 -0
  11. package/dist/components/Icons/GoogleLoginIcon.d.ts +6 -0
  12. package/dist/components/Icons/GoogleLoginIcon.d.ts.map +1 -0
  13. package/dist/components/Icons/index.d.ts +2 -0
  14. package/dist/components/Icons/index.d.ts.map +1 -1
  15. package/dist/components/divider/divider.d.ts +9 -0
  16. package/dist/components/divider/divider.d.ts.map +1 -0
  17. package/dist/components/divider/index.d.ts +2 -0
  18. package/dist/components/divider/index.d.ts.map +1 -0
  19. package/dist/components/index.cjs +73 -69
  20. package/dist/components/index.d.ts +1 -0
  21. package/dist/components/index.d.ts.map +1 -1
  22. package/dist/components/index.js +1 -1
  23. package/dist/contracts/design-language.contract.d.ts +2 -0
  24. package/dist/contracts/design-language.contract.d.ts.map +1 -1
  25. package/dist/figma-codex.json +2 -2
  26. package/dist/index.cjs +77 -73
  27. package/dist/index.js +2 -2
  28. package/dist/languages/material3.language.d.ts.map +1 -1
  29. package/dist/languages/transform.d.ts +1 -0
  30. package/dist/languages/transform.d.ts.map +1 -1
  31. package/dist/preset/index.cjs +2 -2
  32. package/dist/preset/index.js +1 -1
  33. package/package.json +1 -1
  34. package/src/components/Icons/AppleLoginIcon.tsx +21 -0
  35. package/src/components/Icons/GoogleLoginIcon.tsx +36 -0
  36. package/src/components/Icons/index.ts +2 -0
  37. package/src/components/divider/divider.tsx +125 -0
  38. package/src/components/divider/index.ts +1 -0
  39. package/src/components/index.ts +3 -0
  40. package/src/contracts/design-language.contract.ts +3 -1
  41. package/src/languages/material3.language.ts +55 -45
  42. package/src/languages/transform.ts +3 -0
  43. package/src/stories/foundations/Typography.mdx +5 -2
  44. package/dist/chunk-GLPWI7OF.js.map +0 -1
  45. package/dist/chunk-NN4YW27E.cjs.map +0 -1
  46. package/dist/chunk-NU6GI57K.js.map +0 -1
  47. package/dist/chunk-WSJLKVXZ.cjs.map +0 -1
  48. package/docs/context-share/STORY-001-VALIDATION-PASSED.md +0 -192
  49. package/docs/context-share/STORY-002-IMPLEMENTATION-COMPLETE.md +0 -161
  50. package/docs/context-share/STORYBOOK_MCP_STRATEGY.md +0 -867
  51. package/docs/context-share/m3-token-pipeline-audit.md +0 -125
  52. package/docs/context-share/storybook-mcp-kai-agent-revised-summary.md +0 -211
@@ -25,7 +25,7 @@ export const material3Language: DesignLanguageContract = {
25
25
  90: '#B2F65F',
26
26
  95: '#D2FF9B',
27
27
  99: '#F9FFE9',
28
- 100: '#FFFFFF'
28
+ 100: '#FFFFFF',
29
29
  },
30
30
  secondary: {
31
31
  0: '#000000',
@@ -40,7 +40,7 @@ export const material3Language: DesignLanguageContract = {
40
40
  90: '#D7E9BB',
41
41
  95: '#E5F7C9',
42
42
  99: '#F9FFE9',
43
- 100: '#FFFFFF'
43
+ 100: '#FFFFFF',
44
44
  },
45
45
  tertiary: {
46
46
  0: '#000000',
@@ -55,7 +55,7 @@ export const material3Language: DesignLanguageContract = {
55
55
  90: '#A1F1EB',
56
56
  95: '#B0FFF9',
57
57
  99: '#F2FFFD',
58
- 100: '#FFFFFF'
58
+ 100: '#FFFFFF',
59
59
  },
60
60
  neutral: {
61
61
  0: '#000000',
@@ -70,7 +70,7 @@ export const material3Language: DesignLanguageContract = {
70
70
  90: '#E3E3DB',
71
71
  95: '#F2F1E9',
72
72
  99: '#FDFCF5',
73
- 100: '#FFFFFF'
73
+ 100: '#FFFFFF',
74
74
  },
75
75
  neutralVariant: {
76
76
  0: '#000000',
@@ -85,7 +85,7 @@ export const material3Language: DesignLanguageContract = {
85
85
  90: '#E1E4D5',
86
86
  95: '#EFF2E3',
87
87
  99: '#FBFEEE',
88
- 100: '#FFFFFF'
88
+ 100: '#FFFFFF',
89
89
  },
90
90
  error: {
91
91
  0: '#000000',
@@ -100,8 +100,8 @@ export const material3Language: DesignLanguageContract = {
100
100
  90: '#F9DEDC',
101
101
  95: '#FCEEEE',
102
102
  99: '#FFFBF9',
103
- 100: '#FFFFFF'
104
- }
103
+ 100: '#FFFFFF',
104
+ },
105
105
  },
106
106
 
107
107
  semantic: {
@@ -148,7 +148,7 @@ export const material3Language: DesignLanguageContract = {
148
148
  onBackground: '#1A1C16',
149
149
 
150
150
  scrim: '#000000',
151
- shadow: '#000000'
151
+ shadow: '#000000',
152
152
  },
153
153
 
154
154
  // Dark theme semantic colors (for reference/dark mode implementation)
@@ -195,14 +195,14 @@ export const material3Language: DesignLanguageContract = {
195
195
  onBackground: '#E2E3D8',
196
196
 
197
197
  scrim: '#000000',
198
- shadow: '#000000'
198
+ shadow: '#000000',
199
199
  },
200
200
 
201
201
  typography: {
202
202
  fonts: {
203
203
  display: '"Fraunces", Georgia, serif',
204
204
  body: '"Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
205
- mono: '"JetBrains Mono", "Fira Code", Consolas, monospace'
205
+ mono: '"JetBrains Mono", "Fira Code", Consolas, monospace',
206
206
  },
207
207
  scale: {
208
208
  displayLarge: {
@@ -210,119 +210,124 @@ export const material3Language: DesignLanguageContract = {
210
210
  lineHeight: '64px',
211
211
  fontWeight: '400',
212
212
  letterSpacing: '-0.25px',
213
- fontFamily: 'display'
213
+ fontFamily: 'display',
214
+ fontVariationSettings: "'SOFT' 0, 'WONK' 1",
214
215
  },
215
216
  displayMedium: {
216
217
  fontSize: '45px',
217
218
  lineHeight: '52px',
218
219
  fontWeight: '400',
219
220
  letterSpacing: '0px',
220
- fontFamily: 'display'
221
+ fontFamily: 'display',
221
222
  },
222
223
  displaySmall: {
223
224
  fontSize: '36px',
224
225
  lineHeight: '44px',
225
226
  fontWeight: '400',
226
227
  letterSpacing: '0px',
227
- fontFamily: 'display'
228
+ fontFamily: 'display',
228
229
  },
229
230
  headlineLarge: {
230
231
  fontSize: '32px',
231
232
  lineHeight: '40px',
232
233
  fontWeight: '400',
233
234
  letterSpacing: '0px',
234
- fontFamily: 'display'
235
+ fontFamily: 'display',
235
236
  },
236
237
  headlineMedium: {
237
238
  fontSize: '28px',
238
239
  lineHeight: '36px',
239
240
  fontWeight: '400',
240
241
  letterSpacing: '0px',
241
- fontFamily: 'display'
242
+ fontFamily: 'display',
243
+ fontVariationSettings: "'SOFT' 0, 'WONK' 1",
242
244
  },
243
245
  headlineSmall: {
244
246
  fontSize: '24px',
245
247
  lineHeight: '32px',
246
248
  fontWeight: '400',
247
249
  letterSpacing: '0px',
248
- fontFamily: 'display'
250
+ fontFamily: 'display',
249
251
  },
250
252
  titleLarge: {
251
253
  fontSize: '22px',
252
254
  lineHeight: '28px',
253
255
  fontWeight: '500',
254
256
  letterSpacing: '0px',
255
- fontFamily: 'body'
257
+ fontFamily: 'body',
256
258
  },
257
259
  titleMedium: {
258
260
  fontSize: '16px',
259
261
  lineHeight: '24px',
260
262
  fontWeight: '500',
261
263
  letterSpacing: '0.15px',
262
- fontFamily: 'body'
264
+ fontFamily: 'body',
263
265
  },
264
266
  titleSmall: {
265
267
  fontSize: '14px',
266
268
  lineHeight: '20px',
267
269
  fontWeight: '500',
268
270
  letterSpacing: '0.1px',
269
- fontFamily: 'body'
271
+ fontFamily: 'body',
270
272
  },
273
+ // Custom override: bodyLarge bumped to 18px/28px (was M3 default 16px/24px)
274
+ // Decision date: 2026-03-24
271
275
  bodyLarge: {
272
- fontSize: '16px',
273
- lineHeight: '24px',
276
+ fontSize: '18px',
277
+ lineHeight: '28px',
274
278
  fontWeight: '400',
275
279
  letterSpacing: '0.5px',
276
- fontFamily: 'body'
280
+ fontFamily: 'body',
277
281
  },
278
282
  bodyMedium: {
279
283
  fontSize: '14px',
280
284
  lineHeight: '20px',
281
285
  fontWeight: '400',
282
286
  letterSpacing: '0.25px',
283
- fontFamily: 'body'
287
+ fontFamily: 'body',
284
288
  },
285
289
  bodySmall: {
286
290
  fontSize: '12px',
287
291
  lineHeight: '16px',
288
292
  fontWeight: '400',
289
293
  letterSpacing: '0.4px',
290
- fontFamily: 'body'
294
+ fontFamily: 'body',
291
295
  },
292
296
  labelLarge: {
293
297
  fontSize: '14px',
294
298
  lineHeight: '20px',
295
299
  fontWeight: '500',
296
300
  letterSpacing: '0.1px',
297
- fontFamily: 'body'
301
+ fontFamily: 'body',
298
302
  },
299
303
  labelMedium: {
300
304
  fontSize: '12px',
301
305
  lineHeight: '16px',
302
306
  fontWeight: '500',
303
307
  letterSpacing: '0.5px',
304
- fontFamily: 'body'
308
+ fontFamily: 'body',
305
309
  },
306
310
  labelSmall: {
307
311
  fontSize: '11px',
308
312
  lineHeight: '16px',
309
313
  fontWeight: '500',
310
314
  letterSpacing: '0.5px',
311
- fontFamily: 'body'
312
- }
313
- }
315
+ fontFamily: 'body',
316
+ },
317
+ },
314
318
  },
315
319
 
316
320
  spacing: {
317
321
  none: '0px',
318
322
  xxs: '2px',
319
323
  xs: '4px',
324
+ '2xs': '12px',
320
325
  sm: '8px',
321
326
  md: '16px',
322
327
  lg: '24px',
323
328
  xl: '32px',
324
329
  xxl: '48px',
325
- xxxl: '64px'
330
+ xxxl: '64px',
326
331
  },
327
332
 
328
333
  shape: {
@@ -333,21 +338,26 @@ export const material3Language: DesignLanguageContract = {
333
338
  medium: '12px',
334
339
  large: '16px',
335
340
  extraLarge: '28px',
336
- full: '9999px'
341
+ full: '9999px',
337
342
  },
338
- style: 'rounded'
343
+ style: 'rounded',
339
344
  },
340
345
 
341
346
  elevation: {
342
347
  levels: {
343
348
  level0: 'none',
344
- level1: '0px 1px 2px rgba(0, 0, 0, 0.3), 0px 1px 3px 1px rgba(0, 0, 0, 0.15)',
345
- level2: '0px 1px 2px rgba(0, 0, 0, 0.3), 0px 2px 6px 2px rgba(0, 0, 0, 0.15)',
346
- level3: '0px 4px 8px 3px rgba(0, 0, 0, 0.15), 0px 1px 3px rgba(0, 0, 0, 0.3)',
347
- level4: '0px 6px 10px 4px rgba(0, 0, 0, 0.15), 0px 2px 3px rgba(0, 0, 0, 0.3)',
348
- level5: '0px 8px 12px 6px rgba(0, 0, 0, 0.15), 0px 4px 4px rgba(0, 0, 0, 0.3)'
349
+ level1:
350
+ '0px 1px 2px rgba(0, 0, 0, 0.3), 0px 1px 3px 1px rgba(0, 0, 0, 0.15)',
351
+ level2:
352
+ '0px 1px 2px rgba(0, 0, 0, 0.3), 0px 2px 6px 2px rgba(0, 0, 0, 0.15)',
353
+ level3:
354
+ '0px 4px 8px 3px rgba(0, 0, 0, 0.15), 0px 1px 3px rgba(0, 0, 0, 0.3)',
355
+ level4:
356
+ '0px 6px 10px 4px rgba(0, 0, 0, 0.15), 0px 2px 3px rgba(0, 0, 0, 0.3)',
357
+ level5:
358
+ '0px 8px 12px 6px rgba(0, 0, 0, 0.15), 0px 4px 4px rgba(0, 0, 0, 0.3)',
349
359
  },
350
- style: 'shadow'
360
+ style: 'shadow',
351
361
  },
352
362
 
353
363
  motion: {
@@ -356,7 +366,7 @@ export const material3Language: DesignLanguageContract = {
356
366
  fast: '100ms',
357
367
  normal: '200ms',
358
368
  slow: '300ms',
359
- slower: '500ms'
369
+ slower: '500ms',
360
370
  },
361
371
  easings: {
362
372
  standard: 'cubic-bezier(0.2, 0, 0, 1)',
@@ -364,16 +374,16 @@ export const material3Language: DesignLanguageContract = {
364
374
  standardAccelerate: 'cubic-bezier(0.3, 0, 1, 1)',
365
375
  emphasized: 'cubic-bezier(0.2, 0, 0, 1)',
366
376
  emphasizedDecelerate: 'cubic-bezier(0.05, 0.7, 0.1, 1)',
367
- emphasizedAccelerate: 'cubic-bezier(0.3, 0, 0.8, 0.15)'
377
+ emphasizedAccelerate: 'cubic-bezier(0.3, 0, 0.8, 0.15)',
368
378
  },
369
- style: 'expressive'
379
+ style: 'expressive',
370
380
  },
371
381
 
372
382
  border: {
373
383
  widths: {
374
384
  thin: '1px',
375
385
  medium: '2px',
376
- thick: '4px'
377
- }
378
- }
379
- };
386
+ thick: '4px',
387
+ },
388
+ },
389
+ };
@@ -89,6 +89,9 @@ function transformTextStyles(language: DesignLanguageContract) {
89
89
  lineHeight: style.lineHeight,
90
90
  fontWeight: style.fontWeight,
91
91
  letterSpacing: style.letterSpacing,
92
+ ...(style.fontVariationSettings
93
+ ? { fontVariationSettings: style.fontVariationSettings }
94
+ : {}),
92
95
  },
93
96
  },
94
97
  ]),
@@ -164,11 +164,14 @@ Titles are for medium-emphasis text that remains relatively short. Use titles fo
164
164
 
165
165
  Body styles are used for longer passages of text in your app.
166
166
 
167
+ > **Note:** `bodyLarge` is a custom override from the M3 default (16px → 18px).
168
+ > This provides better readability for primary content at Discourser's reading densities.
169
+
167
170
  <TypeSpecimen
168
171
  styleName="bodyLarge"
169
172
  name="Body Large"
170
- fontSize="16px"
171
- lineHeight="24px"
173
+ fontSize="18px"
174
+ lineHeight="28px"
172
175
  fontWeight="400"
173
176
  letterSpacing="0.5px"
174
177
  fontFamily="body"