@primer/primitives 10.1.0-rc.f1589f93 → 10.1.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 (119) hide show
  1. package/README.md +0 -21
  2. package/dist/build/filters/index.d.ts +0 -1
  3. package/dist/build/filters/index.js +0 -1
  4. package/dist/build/formats/jsonFigma.js +1 -2
  5. package/dist/build/platforms/css.js +6 -7
  6. package/dist/build/platforms/docJson.js +0 -1
  7. package/dist/build/platforms/fallbacks.js +0 -1
  8. package/dist/build/platforms/javascript.js +0 -1
  9. package/dist/build/platforms/json.js +0 -1
  10. package/dist/build/platforms/styleLint.js +0 -1
  11. package/dist/build/platforms/typescript.js +0 -1
  12. package/dist/build/primerStyleDictionary.js +7 -3
  13. package/dist/build/schemas/colorToken.d.ts +0 -18
  14. package/dist/build/schemas/colorToken.js +0 -7
  15. package/dist/build/transformers/borderToCss.js +2 -2
  16. package/dist/build/transformers/colorToRgbaFloat.js +2 -12
  17. package/dist/build/transformers/index.d.ts +0 -1
  18. package/dist/build/transformers/index.js +0 -1
  19. package/dist/css/functional/size/border.css +7 -6
  20. package/dist/css/functional/themes/dark-colorblind.css +60 -6
  21. package/dist/css/functional/themes/dark-dimmed.css +60 -6
  22. package/dist/css/functional/themes/dark-high-contrast.css +60 -6
  23. package/dist/css/functional/themes/dark-tritanopia.css +60 -6
  24. package/dist/css/functional/themes/dark.css +60 -6
  25. package/dist/css/functional/themes/light-colorblind.css +60 -6
  26. package/dist/css/functional/themes/light-high-contrast.css +60 -6
  27. package/dist/css/functional/themes/light-tritanopia.css +60 -6
  28. package/dist/css/functional/themes/light.css +60 -6
  29. package/dist/css/primitives.css +7 -6
  30. package/dist/docs/base/size/size.json +19 -19
  31. package/dist/docs/base/typography/typography.json +4 -4
  32. package/dist/docs/functional/size/border.json +41 -28
  33. package/dist/docs/functional/size/breakpoints.json +6 -6
  34. package/dist/docs/functional/size/size-coarse.json +3 -3
  35. package/dist/docs/functional/size/size-fine.json +3 -3
  36. package/dist/docs/functional/size/size.json +66 -66
  37. package/dist/docs/functional/size/viewport.json +6 -6
  38. package/dist/docs/functional/themes/dark-colorblind.json +475 -128
  39. package/dist/docs/functional/themes/dark-dimmed.json +519 -444
  40. package/dist/docs/functional/themes/dark-high-contrast.json +490 -241
  41. package/dist/docs/functional/themes/dark-tritanopia.json +485 -200
  42. package/dist/docs/functional/themes/dark.json +469 -102
  43. package/dist/docs/functional/themes/light-colorblind.json +463 -94
  44. package/dist/docs/functional/themes/light-high-contrast.json +487 -274
  45. package/dist/docs/functional/themes/light-tritanopia.json +463 -102
  46. package/dist/docs/functional/themes/light.json +460 -105
  47. package/dist/docs/functional/typography/typography.json +46 -46
  48. package/dist/fallbacks/functional/size/border.json +7 -6
  49. package/dist/figma/themes/dark-colorblind.json +14 -54
  50. package/dist/figma/themes/dark-dimmed.json +15 -356
  51. package/dist/figma/themes/dark-high-contrast.json +10 -129
  52. package/dist/figma/themes/dark-tritanopia.json +14 -111
  53. package/dist/figma/themes/dark.json +14 -34
  54. package/dist/figma/themes/light-colorblind.json +10 -20
  55. package/dist/figma/themes/light-high-contrast.json +10 -177
  56. package/dist/figma/themes/light-tritanopia.json +10 -24
  57. package/dist/figma/themes/light.json +10 -32
  58. package/dist/internalCss/dark-colorblind.css +88 -6
  59. package/dist/internalCss/dark-dimmed.css +88 -6
  60. package/dist/internalCss/dark-high-contrast.css +88 -6
  61. package/dist/internalCss/dark-tritanopia.css +88 -6
  62. package/dist/internalCss/dark.css +88 -6
  63. package/dist/internalCss/light-colorblind.css +88 -6
  64. package/dist/internalCss/light-high-contrast.css +88 -6
  65. package/dist/internalCss/light-tritanopia.css +88 -6
  66. package/dist/internalCss/light.css +88 -6
  67. package/dist/styleLint/base/size/size.json +19 -19
  68. package/dist/styleLint/base/typography/typography.json +4 -4
  69. package/dist/styleLint/functional/size/border.json +41 -28
  70. package/dist/styleLint/functional/size/breakpoints.json +6 -6
  71. package/dist/styleLint/functional/size/size-coarse.json +3 -3
  72. package/dist/styleLint/functional/size/size-fine.json +3 -3
  73. package/dist/styleLint/functional/size/size.json +66 -66
  74. package/dist/styleLint/functional/size/viewport.json +6 -6
  75. package/dist/styleLint/functional/themes/dark-colorblind.json +475 -128
  76. package/dist/styleLint/functional/themes/dark-dimmed.json +519 -444
  77. package/dist/styleLint/functional/themes/dark-high-contrast.json +490 -241
  78. package/dist/styleLint/functional/themes/dark-tritanopia.json +485 -200
  79. package/dist/styleLint/functional/themes/dark.json +469 -102
  80. package/dist/styleLint/functional/themes/light-colorblind.json +463 -94
  81. package/dist/styleLint/functional/themes/light-high-contrast.json +487 -274
  82. package/dist/styleLint/functional/themes/light-tritanopia.json +463 -102
  83. package/dist/styleLint/functional/themes/light.json +460 -105
  84. package/dist/styleLint/functional/typography/typography.json +46 -46
  85. package/package.json +1 -1
  86. package/src/tokens/base/typography/typography.json5 +48 -0
  87. package/src/tokens/functional/border/border.json5 +236 -0
  88. package/src/tokens/functional/color/dark/app-dark.json5 +0 -2
  89. package/src/tokens/functional/color/dark/overrides/dark.dimmed.json5 +120 -6
  90. package/src/tokens/functional/color/dark/overrides/dark.high-contrast.json5 +46 -29
  91. package/src/tokens/functional/color/dark/overrides/dark.protanopia-deuteranopia.json5 +15 -20
  92. package/src/tokens/functional/color/dark/overrides/dark.tritanopia.json5 +32 -18
  93. package/src/tokens/functional/color/dark/patterns-dark.json5 +13 -45
  94. package/src/tokens/functional/color/dark/primitives-dark.json5 +1 -6
  95. package/src/tokens/functional/color/light/overrides/light.high-contrast.json5 +67 -20
  96. package/src/tokens/functional/color/light/overrides/light.protanopia-deuteranopia.json5 +4 -21
  97. package/src/tokens/functional/color/light/overrides/light.tritanopia.json5 +3 -16
  98. package/src/tokens/functional/color/light/patterns-light.json5 +11 -47
  99. package/src/tokens/functional/color/light/primitives-light.json5 +2 -10
  100. package/src/tokens/functional/size/border.json5 +115 -0
  101. package/src/tokens/functional/typography/typography.json5 +527 -0
  102. package/dist/build/filters/isColorWithMix.d.ts +0 -7
  103. package/dist/build/filters/isColorWithMix.js +0 -24
  104. package/dist/build/transformers/colorToHexMix.d.ts +0 -8
  105. package/dist/build/transformers/colorToHexMix.js +0 -20
  106. package/dist/build/transformers/utilities/mix.d.ts +0 -5
  107. package/dist/build/transformers/utilities/mix.js +0 -38
  108. package/src/tokens/base/typography/typography.json +0 -48
  109. package/src/tokens/functional/border/dark.json5 +0 -12
  110. package/src/tokens/functional/border/light.json5 +0 -12
  111. package/src/tokens/functional/color/dark/patterns-dark.json +0 -3963
  112. package/src/tokens/functional/size/border.json +0 -111
  113. package/src/tokens/functional/typography/typography.json +0 -527
  114. /package/src/tokens/base/size/{size.json → size.json5} +0 -0
  115. /package/src/tokens/functional/size/{breakpoints.json → breakpoints.json5} +0 -0
  116. /package/src/tokens/functional/size/{size-coarse.json → size-coarse.json5} +0 -0
  117. /package/src/tokens/functional/size/{size-fine.json → size-fine.json5} +0 -0
  118. /package/src/tokens/functional/size/{size.json → size.json5} +0 -0
  119. /package/src/tokens/functional/size/{viewport.json → viewport.json5} +0 -0
@@ -0,0 +1,527 @@
1
+ {
2
+ fontStack: {
3
+ system: {
4
+ $value: "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji'",
5
+ $type: 'fontFamily',
6
+ $extensions: {
7
+ 'org.primer.figma': {
8
+ collection: 'typography',
9
+ scopes: ['fontFamily'],
10
+ },
11
+ },
12
+ },
13
+ sansSerif: {
14
+ $value: "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji'",
15
+ $type: 'fontFamily',
16
+ $extensions: {
17
+ 'org.primer.figma': {
18
+ collection: 'typography',
19
+ scopes: ['fontFamily'],
20
+ },
21
+ },
22
+ },
23
+ sansSerifDisplay: {
24
+ $value: "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji'",
25
+ $type: 'fontFamily',
26
+ $extensions: {
27
+ 'org.primer.figma': {
28
+ collection: 'typography',
29
+ scopes: ['fontFamily'],
30
+ },
31
+ },
32
+ },
33
+ monospace: {
34
+ $value: 'ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace',
35
+ $type: 'fontFamily',
36
+ $extensions: {
37
+ 'org.primer.figma': {
38
+ collection: 'typography',
39
+ scopes: ['fontFamily'],
40
+ },
41
+ },
42
+ },
43
+ },
44
+ text: {
45
+ display: {
46
+ lineBoxHeight: {
47
+ $value: 1.4,
48
+ $type: 'number',
49
+ $extensions: {
50
+ 'org.primer.data': {
51
+ fontSize: 40,
52
+ },
53
+ 'org.primer.figma': {
54
+ collection: 'typography',
55
+ scopes: ['lineHeight'],
56
+ fontSizeInPx: 40,
57
+ },
58
+ },
59
+ },
60
+ size: {
61
+ $value: '40px',
62
+ $type: 'dimension',
63
+ $extensions: {
64
+ 'org.primer.figma': {
65
+ collection: 'typography',
66
+ scopes: ['fontSize'],
67
+ },
68
+ },
69
+ },
70
+ lineHeight: {
71
+ $value: 1.4,
72
+ $type: 'number',
73
+ $extensions: {
74
+ 'org.primer.data': {
75
+ fontSize: 40,
76
+ },
77
+ 'org.primer.figma': {
78
+ collection: 'typography',
79
+ scopes: ['lineHeight'],
80
+ },
81
+ },
82
+ },
83
+ weight: {
84
+ $value: '{base.text.weight.medium}',
85
+ $type: 'fontWeight',
86
+ $extensions: {
87
+ 'org.primer.figma': {
88
+ collection: 'typography',
89
+ scopes: ['fontWeight'],
90
+ },
91
+ },
92
+ },
93
+ shorthand: {
94
+ $value: {
95
+ fontWeight: '{text.display.weight}',
96
+ fontSize: '{text.display.size}',
97
+ lineHeight: '{text.display.lineHeight}',
98
+ fontFamily: '{fontStack.sansSerifDisplay}',
99
+ },
100
+ $type: 'typography',
101
+ $description: 'Hero-style text for brand to product transition pages. Utilize Title (large) styles on narrow viewports.',
102
+ },
103
+ },
104
+ title: {
105
+ size: {
106
+ large: {
107
+ $value: '32px',
108
+ $type: 'dimension',
109
+ $extensions: {
110
+ 'org.primer.figma': {
111
+ collection: 'typography',
112
+ scopes: ['fontSize'],
113
+ },
114
+ },
115
+ },
116
+ medium: {
117
+ $value: '20px',
118
+ $type: 'dimension',
119
+ $extensions: {
120
+ 'org.primer.figma': {
121
+ collection: 'typography',
122
+ scopes: ['fontSize'],
123
+ },
124
+ },
125
+ },
126
+ small: {
127
+ $value: '16px',
128
+ $type: 'dimension',
129
+ $extensions: {
130
+ 'org.primer.figma': {
131
+ collection: 'typography',
132
+ scopes: ['fontSize'],
133
+ },
134
+ },
135
+ },
136
+ },
137
+ lineHeight: {
138
+ large: {
139
+ $value: 1.5,
140
+ $type: 'number',
141
+ $extensions: {
142
+ 'org.primer.data': {
143
+ fontSize: 32,
144
+ },
145
+ 'org.primer.figma': {
146
+ collection: 'typography',
147
+ scopes: ['lineHeight'],
148
+ },
149
+ },
150
+ },
151
+ medium: {
152
+ $value: 1.6,
153
+ $type: 'number',
154
+ $extensions: {
155
+ 'org.primer.data': {
156
+ fontSize: 20,
157
+ },
158
+ 'org.primer.figma': {
159
+ collection: 'typography',
160
+ scopes: ['lineHeight'],
161
+ },
162
+ },
163
+ },
164
+ small: {
165
+ $value: 1.5,
166
+ $type: 'number',
167
+ $extensions: {
168
+ 'org.primer.data': {
169
+ fontSize: 16,
170
+ },
171
+ 'org.primer.figma': {
172
+ collection: 'typography',
173
+ scopes: ['lineHeight'],
174
+ },
175
+ },
176
+ },
177
+ },
178
+ weight: {
179
+ large: {
180
+ $value: '{base.text.weight.semibold}',
181
+ $type: 'fontWeight',
182
+ $extensions: {
183
+ 'org.primer.figma': {
184
+ collection: 'typography',
185
+ scopes: ['fontWeight'],
186
+ },
187
+ },
188
+ },
189
+ medium: {
190
+ $value: '{base.text.weight.semibold}',
191
+ $type: 'fontWeight',
192
+ $extensions: {
193
+ 'org.primer.figma': {
194
+ collection: 'typography',
195
+ scopes: ['fontWeight'],
196
+ },
197
+ },
198
+ },
199
+ small: {
200
+ $value: '{base.text.weight.semibold}',
201
+ $type: 'fontWeight',
202
+ $extensions: {
203
+ 'org.primer.figma': {
204
+ collection: 'typography',
205
+ scopes: ['fontWeight'],
206
+ },
207
+ },
208
+ },
209
+ },
210
+ shorthand: {
211
+ large: {
212
+ $value: {
213
+ fontWeight: '{text.title.weight.large}',
214
+ fontSize: '{text.title.size.large}',
215
+ lineHeight: '{text.title.lineHeight.large}',
216
+ fontFamily: '{fontStack.sansSerifDisplay}',
217
+ },
218
+ $type: 'typography',
219
+ $description: 'Page headings for user-created objects, such as issues or pull requests. Utilize title (medium) styles on narrow viewports.',
220
+ },
221
+ medium: {
222
+ $value: {
223
+ fontWeight: '{text.title.weight.medium}',
224
+ fontSize: '{text.title.size.medium}',
225
+ lineHeight: '{text.title.lineHeight.medium}',
226
+ fontFamily: '{fontStack.sansSerifDisplay}',
227
+ },
228
+ $type: 'typography',
229
+ $description: 'Default page title. The 32px-equivalent line-height matches with button and other medium control heights. Great for page header composition.',
230
+ },
231
+ small: {
232
+ $value: {
233
+ fontWeight: '{text.title.weight.small}',
234
+ fontSize: '{text.title.size.small}',
235
+ lineHeight: '{text.title.lineHeight.small}',
236
+ fontFamily: '{fontStack.sansSerif}',
237
+ },
238
+ $type: 'typography',
239
+ $description: 'Uses the same size as body (large) with a heavier weight of semibold (600).',
240
+ },
241
+ },
242
+ },
243
+ subtitle: {
244
+ size: {
245
+ $value: '20px',
246
+ $type: 'dimension',
247
+ $extensions: {
248
+ 'org.primer.figma': {
249
+ collection: 'typography',
250
+ scopes: ['fontSize'],
251
+ },
252
+ },
253
+ },
254
+ lineHeight: {
255
+ $value: 1.6,
256
+ $type: 'number',
257
+ $extensions: {
258
+ 'org.primer.data': {
259
+ fontSize: 20,
260
+ },
261
+ 'org.primer.figma': {
262
+ collection: 'typography',
263
+ scopes: ['lineHeight'],
264
+ },
265
+ },
266
+ },
267
+ weight: {
268
+ $value: '{base.text.weight.normal}',
269
+ $type: 'fontWeight',
270
+ $extensions: {
271
+ 'org.primer.figma': {
272
+ collection: 'typography',
273
+ scopes: ['fontWeight'],
274
+ },
275
+ },
276
+ },
277
+ shorthand: {
278
+ $value: {
279
+ fontWeight: '{text.subtitle.weight}',
280
+ fontSize: '{text.subtitle.size}',
281
+ lineHeight: '{text.subtitle.lineHeight}',
282
+ fontFamily: '{fontStack.sansSerifDisplay}',
283
+ },
284
+ $type: 'typography',
285
+ $description: 'Page sections/sub headings, or less important object names in page titles (automated action titles, for example). Same line-height as title (medium).',
286
+ },
287
+ },
288
+ body: {
289
+ size: {
290
+ large: {
291
+ $value: '16px',
292
+ $type: 'dimension',
293
+ $extensions: {
294
+ 'org.primer.figma': {
295
+ collection: 'typography',
296
+ scopes: ['fontSize'],
297
+ },
298
+ },
299
+ },
300
+ medium: {
301
+ $value: '14px',
302
+ $type: 'dimension',
303
+ $extensions: {
304
+ 'org.primer.figma': {
305
+ collection: 'typography',
306
+ scopes: ['fontSize'],
307
+ },
308
+ },
309
+ },
310
+ small: {
311
+ $value: '12px',
312
+ $type: 'dimension',
313
+ $extensions: {
314
+ 'org.primer.figma': {
315
+ collection: 'typography',
316
+ scopes: ['fontSize'],
317
+ },
318
+ },
319
+ },
320
+ },
321
+ lineHeight: {
322
+ large: {
323
+ $value: 1.5,
324
+ $type: 'number',
325
+ $extensions: {
326
+ 'org.primer.data': {
327
+ fontSize: 16,
328
+ },
329
+ 'org.primer.figma': {
330
+ collection: 'typography',
331
+ scopes: ['lineHeight'],
332
+ },
333
+ },
334
+ },
335
+ medium: {
336
+ $value: 1.4285,
337
+ $type: 'number',
338
+ $extensions: {
339
+ 'org.primer.data': {
340
+ fontSize: 14,
341
+ },
342
+ 'org.primer.figma': {
343
+ collection: 'typography',
344
+ scopes: ['lineHeight'],
345
+ },
346
+ },
347
+ },
348
+ small: {
349
+ $value: 1.6666,
350
+ $type: 'number',
351
+ $extensions: {
352
+ 'org.primer.data': {
353
+ fontSize: 12,
354
+ },
355
+ 'org.primer.figma': {
356
+ collection: 'typography',
357
+ scopes: ['lineHeight'],
358
+ },
359
+ },
360
+ },
361
+ },
362
+ weight: {
363
+ $value: '{base.text.weight.normal}',
364
+ $type: 'fontWeight',
365
+ $extensions: {
366
+ 'org.primer.figma': {
367
+ collection: 'typography',
368
+ scopes: ['fontWeight'],
369
+ },
370
+ },
371
+ },
372
+ shorthand: {
373
+ large: {
374
+ $value: {
375
+ fontWeight: '{text.body.weight}',
376
+ fontSize: '{text.body.size.large}',
377
+ lineHeight: '{text.body.lineHeight.large}',
378
+ fontFamily: '{fontStack.sansSerif}',
379
+ },
380
+ $type: 'typography',
381
+ $description: 'User-generated content, markdown rendering.',
382
+ },
383
+ medium: {
384
+ $value: {
385
+ fontWeight: '{text.body.weight}',
386
+ fontSize: '{text.body.size.medium}',
387
+ lineHeight: '{text.body.lineHeight.medium}',
388
+ fontFamily: '{fontStack.sansSerif}',
389
+ },
390
+ $type: 'typography',
391
+ $description: 'Default UI font. Most commonly used for body text.',
392
+ },
393
+ small: {
394
+ $value: {
395
+ fontWeight: '{text.body.weight}',
396
+ fontSize: '{text.body.size.small}',
397
+ lineHeight: '{text.body.lineHeight.small}',
398
+ fontFamily: '{fontStack.sansSerif}',
399
+ },
400
+ $type: 'typography',
401
+ $description: 'Small body text for discrete UI applications, such as helper, footnote text. Should be used sparingly across pages. Line-height matches Body (medium) at 20px.',
402
+ },
403
+ },
404
+ },
405
+ caption: {
406
+ size: {
407
+ $value: '12px',
408
+ $type: 'dimension',
409
+ $extensions: {
410
+ 'org.primer.figma': {
411
+ collection: 'typography',
412
+ scopes: ['fontSize'],
413
+ },
414
+ },
415
+ },
416
+ lineHeight: {
417
+ $value: 1.3333,
418
+ $type: 'number',
419
+ $extensions: {
420
+ 'org.primer.data': {
421
+ fontSize: 12,
422
+ },
423
+ 'org.primer.figma': {
424
+ collection: 'typography',
425
+ scopes: ['lineHeight'],
426
+ },
427
+ },
428
+ },
429
+ weight: {
430
+ $value: '{base.text.weight.normal}',
431
+ $type: 'fontWeight',
432
+ $extensions: {
433
+ 'org.primer.figma': {
434
+ collection: 'typography',
435
+ scopes: ['fontWeight'],
436
+ },
437
+ },
438
+ },
439
+ shorthand: {
440
+ $value: {
441
+ fontWeight: '{text.caption.weight}',
442
+ fontSize: '{text.caption.size}',
443
+ lineHeight: '{text.caption.lineHeight}',
444
+ fontFamily: '{fontStack.sansSerif}',
445
+ },
446
+ $type: 'typography',
447
+ $description: 'Compact small font with a smaller line height of 16px. Use it for single-line scenarios, as the small sizing doesn’t pass accessibility requirements.',
448
+ },
449
+ },
450
+ codeBlock: {
451
+ size: {
452
+ $value: '13px',
453
+ $type: 'dimension',
454
+ $extensions: {
455
+ 'org.primer.figma': {
456
+ collection: 'typography',
457
+ scopes: ['fontSize'],
458
+ },
459
+ },
460
+ },
461
+ lineHeight: {
462
+ $value: 1.5385,
463
+ $type: 'number',
464
+ $extensions: {
465
+ 'org.primer.data': {
466
+ fontSize: 13,
467
+ },
468
+ 'org.primer.figma': {
469
+ collection: 'typography',
470
+ scopes: ['lineHeight'],
471
+ },
472
+ },
473
+ },
474
+ weight: {
475
+ $value: '{base.text.weight.normal}',
476
+ $type: 'fontWeight',
477
+ $extensions: {
478
+ 'org.primer.figma': {
479
+ collection: 'typography',
480
+ scopes: ['fontWeight'],
481
+ },
482
+ },
483
+ },
484
+ shorthand: {
485
+ $value: {
486
+ fontWeight: '{text.codeBlock.weight}',
487
+ fontSize: '{text.codeBlock.size}',
488
+ lineHeight: '{text.codeBlock.lineHeight}',
489
+ fontFamily: '{fontStack.monospace}',
490
+ },
491
+ $type: 'typography',
492
+ $description: 'Default style for rendering code blocks.',
493
+ },
494
+ },
495
+ codeInline: {
496
+ size: {
497
+ $value: '0.9285em',
498
+ $type: 'dimension',
499
+ $extensions: {
500
+ 'org.primer.figma': {
501
+ collection: 'typography',
502
+ scopes: ['fontSize'],
503
+ },
504
+ },
505
+ },
506
+ weight: {
507
+ $value: '{base.text.weight.normal}',
508
+ $type: 'fontWeight',
509
+ $extensions: {
510
+ 'org.primer.figma': {
511
+ collection: 'typography',
512
+ scopes: ['fontWeight'],
513
+ },
514
+ },
515
+ },
516
+ shorthand: {
517
+ $value: {
518
+ fontWeight: '{text.codeInline.weight}',
519
+ fontSize: '{text.codeInline.size}',
520
+ fontFamily: '{fontStack.monospace}',
521
+ },
522
+ $type: 'typography',
523
+ $description: 'Inline code blocks using em units to inherit size from its parent.',
524
+ },
525
+ },
526
+ },
527
+ }
@@ -1,7 +0,0 @@
1
- import type { TransformedToken } from 'style-dictionary/types';
2
- /**
3
- * @description Checks if token is color and has a mix property
4
- * @param arguments [TransformedToken](https://github.com/amzn/style-dictionary/blob/main/types/TransformedToken.d.ts)
5
- * @returns boolean
6
- */
7
- export declare const isColorWithMix: (token: TransformedToken) => boolean;
@@ -1,24 +0,0 @@
1
- import { isColor } from './isColor.js';
2
- const throwError = (token) => {
3
- throw new Error(`Invalid mix property on token: ${token.name}. "mix.color": ${token.mix.color}, "mix.weight": ${typeof token.mix.weight === 'string' ? `"${token.mix.weight}" (string)` : token.mix.weight} must be a number between 0 and 1. In file: "${token.filePath}".`);
4
- };
5
- /**
6
- * @description Checks if token is color and has a mix property
7
- * @param arguments [TransformedToken](https://github.com/amzn/style-dictionary/blob/main/types/TransformedToken.d.ts)
8
- * @returns boolean
9
- */
10
- export const isColorWithMix = (token) => {
11
- // no color or no mix property
12
- if (!isColor(token) || token.mix === undefined || token.mix === null) {
13
- return false;
14
- }
15
- // invalid mix property
16
- if (typeof token.mix.color !== 'string' ||
17
- typeof token.mix.weight !== 'number' ||
18
- token.mix.weight < 0 ||
19
- token.mix.weight > 1) {
20
- throwError(token);
21
- }
22
- // valid mix property
23
- return true;
24
- };
@@ -1,8 +0,0 @@
1
- import type { Transform } from 'style-dictionary/types';
2
- /**
3
- * @description replaces tokens value with `hex8` color using the tokens `alpha` property to specify the value used for alpha
4
- * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
5
- * @matcher matches all tokens of $type `color` with an `alpha` property
6
- * @transformer returns `hex8` string
7
- */
8
- export declare const colorToHexMix: Transform;
@@ -1,20 +0,0 @@
1
- import { toHex } from 'color2k';
2
- import { isColorWithMix } from '../filters/index.js';
3
- import { getTokenValue } from './utilities/getTokenValue.js';
4
- import mix from './utilities/mix.js';
5
- /**
6
- * @description replaces tokens value with `hex8` color using the tokens `alpha` property to specify the value used for alpha
7
- * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
8
- * @matcher matches all tokens of $type `color` with an `alpha` property
9
- * @transformer returns `hex8` string
10
- */
11
- export const colorToHexMix = {
12
- name: 'color/hexMix',
13
- type: 'value',
14
- transitive: true,
15
- filter: isColorWithMix,
16
- transform: (token) => {
17
- var _a, _b;
18
- return toHex(mix(getTokenValue(token), ((_a = token.mix) === null || _a === void 0 ? void 0 : _a.color) || getTokenValue(token), ((_b = token.mix) === null || _b === void 0 ? void 0 : _b.weight) || 0));
19
- },
20
- };
@@ -1,5 +0,0 @@
1
- /**
2
- * Mixes two colors together. Taken from sass's implementation.
3
- */
4
- declare function mix(color1: string, color2: string, weight: number): string;
5
- export default mix;
@@ -1,38 +0,0 @@
1
- import { rgba, parseToRgba } from 'color2k';
2
- /**
3
- * Mixes two colors together. Taken from sass's implementation.
4
- */
5
- function mix(color1, color2, weight) {
6
- const normalize = (n, index) =>
7
- // 3rd index is alpha channel which is already normalized
8
- index === 3 ? n : n / 255;
9
- const [r1, g1, b1, a1] = parseToRgba(color1).map(normalize);
10
- const [r2, g2, b2, a2] = parseToRgba(color2).map(normalize);
11
- // The formula is copied from the original Sass implementation:
12
- // http://sass-lang.com/documentation/Sass/Script/Functions.html#mix-instance_method
13
- const normalizedWeight = 2 * weight - 1;
14
- const alphaDelta = a1 - a2;
15
- const combinedWeight = normalizedWeight * alphaDelta === -1
16
- ? normalizedWeight
17
- : (normalizedWeight + alphaDelta) / (1 + normalizedWeight * alphaDelta);
18
- const weight2 = (combinedWeight + 1) / 2;
19
- const weight1 = 1 - weight2;
20
- const r = Math.round((r1 * weight1 + r2 * weight2) * 255);
21
- const g = Math.round((g1 * weight1 + g2 * weight2) * 255);
22
- const b = Math.round((b1 * weight1 + b2 * weight2) * 255);
23
- const a = a2 * weight + a1 * (1 - weight);
24
- return rgba(r, g, b, a);
25
- }
26
- export default mix;
27
- // Number* weight = ARGR("$weight", Number, 0, 100);
28
- // double p = weight->value()/100;
29
- // double w = 2*p - 1;
30
- // double a = color1->a() - color2->a();
31
- // double nW = ((w * a == -1) ? w : (w + a)/(1 + w*a))
32
- // double w1 = (nW + 1)/2.0;
33
- // double w2 = 1 - w1;
34
- // return new (ctx.mem) Color(pstate,
35
- // std::round(w1*color1->r() + w2*color2->r()),
36
- // std::round(w1*color1->g() + w2*color2->g()),
37
- // std::round(w1*color1->b() + w2*color2->b()),
38
- // color1->a()*p + color2->a()*(1-p));
@@ -1,48 +0,0 @@
1
- {
2
- "base": {
3
- "text": {
4
- "weight": {
5
- "light": {
6
- "$type": "fontWeight",
7
- "$value": 300,
8
- "$extensions": {
9
- "org.primer.figma": {
10
- "collection": "base/typography",
11
- "scopes": ["fontWeight"]
12
- }
13
- }
14
- },
15
- "normal": {
16
- "$value": 400,
17
- "$type": "fontWeight",
18
- "$extensions": {
19
- "org.primer.figma": {
20
- "collection": "base/typography",
21
- "scopes": ["fontWeight"]
22
- }
23
- }
24
- },
25
- "medium": {
26
- "$value": 500,
27
- "$type": "fontWeight",
28
- "$extensions": {
29
- "org.primer.figma": {
30
- "collection": "base/typography",
31
- "scopes": ["fontWeight"]
32
- }
33
- }
34
- },
35
- "semibold": {
36
- "$value": 600,
37
- "$type": "fontWeight",
38
- "$extensions": {
39
- "org.primer.figma": {
40
- "collection": "base/typography",
41
- "scopes": ["fontWeight"]
42
- }
43
- }
44
- }
45
- }
46
- }
47
- }
48
- }
@@ -1,12 +0,0 @@
1
- {
2
- outline: {
3
- focus: {
4
- $value: {
5
- color: '{focus.outlineColor}',
6
- style: 'solid',
7
- width: '2px',
8
- },
9
- $type: 'border',
10
- },
11
- },
12
- }