@aitrien/motifspec 1.13.0 → 1.13.2

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 (83) hide show
  1. package/CHANGELOG.md +269 -257
  2. package/LICENSE +21 -21
  3. package/README.md +150 -150
  4. package/dist/backdrop.html +1 -1
  5. package/dist/chroma.css +36 -36
  6. package/dist/codex.css +1145 -1145
  7. package/dist/codex.js +126 -126
  8. package/dist/contrast.md +101 -101
  9. package/dist/fonts.css +3 -3
  10. package/dist/icons.svg +18 -18
  11. package/dist/plate.html +1 -1
  12. package/dist/plate.js +292 -292
  13. package/dist/theme-init.js +1 -1
  14. package/dist/tokens.css +466 -466
  15. package/dist/tokens.js +3330 -3330
  16. package/dist/tokens.json +3330 -3330
  17. package/docs/components/_template.md +37 -37
  18. package/docs/components/accession-label.md +106 -106
  19. package/docs/components/backdrop.md +83 -83
  20. package/docs/components/button-and-link.md +87 -87
  21. package/docs/components/callout.md +75 -75
  22. package/docs/components/code-block.md +109 -109
  23. package/docs/components/data-table.md +73 -73
  24. package/docs/components/figure.md +68 -68
  25. package/docs/components/heading-anchor.md +76 -76
  26. package/docs/components/icon.md +63 -63
  27. package/docs/components/ornament.md +77 -77
  28. package/docs/components/pagination.md +78 -78
  29. package/docs/components/post-list-item.md +91 -91
  30. package/docs/components/project-card.md +82 -82
  31. package/docs/components/prose.md +122 -122
  32. package/docs/components/site-footer.md +99 -99
  33. package/docs/components/site-header.md +133 -133
  34. package/docs/components/specimen-plate.md +92 -92
  35. package/docs/components/table-of-contents.md +83 -83
  36. package/docs/components/tag.md +70 -70
  37. package/docs/components/tooltip.md +67 -67
  38. package/docs/hugo.md +120 -120
  39. package/docs/syntax-highlighting.md +55 -55
  40. package/docs/templates.md +30 -30
  41. package/fonts/OFL-jetbrains-mono.txt +93 -93
  42. package/fonts/OFL-national-park.txt +93 -93
  43. package/fonts/OFL-yarndings-12.txt +93 -93
  44. package/icons/LICENSE +202 -202
  45. package/icons/manifest.json +75 -75
  46. package/layouts/_markup/render-blockquote.html +30 -30
  47. package/layouts/_markup/render-codeblock.html +18 -18
  48. package/layouts/_markup/render-heading.html +2 -2
  49. package/layouts/_markup/render-image.html +14 -14
  50. package/layouts/_markup/render-link.html +14 -14
  51. package/layouts/_markup/render-table.html +31 -31
  52. package/layouts/_partials/motifspec/accession/id.html +2 -2
  53. package/layouts/_partials/motifspec/accession/label.html +18 -18
  54. package/layouts/_partials/motifspec/accession/status.html +2 -2
  55. package/layouts/_partials/motifspec/article.html +24 -24
  56. package/layouts/_partials/motifspec/back-link.html +2 -2
  57. package/layouts/_partials/motifspec/body-end.html +5 -5
  58. package/layouts/_partials/motifspec/body-start.html +5 -5
  59. package/layouts/_partials/motifspec/figure.html +14 -14
  60. package/layouts/_partials/motifspec/filed-under.html +5 -5
  61. package/layouts/_partials/motifspec/h2s.html +7 -7
  62. package/layouts/_partials/motifspec/head.html +15 -15
  63. package/layouts/_partials/motifspec/pagination-entries.html +34 -34
  64. package/layouts/_partials/motifspec/pagination-pages.html +30 -30
  65. package/layouts/_partials/motifspec/post-list-item.html +15 -15
  66. package/layouts/_partials/motifspec/project-card.html +23 -23
  67. package/layouts/_partials/motifspec/section-heading.html +3 -3
  68. package/layouts/_partials/motifspec/site-header.html +27 -27
  69. package/layouts/_partials/motifspec/table-of-contents.html +21 -21
  70. package/layouts/_partials/motifspec/tag-filter.html +22 -22
  71. package/layouts/_partials/motifspec/tags.html +8 -8
  72. package/layouts/_partials/motifspec/tokens.html +9 -9
  73. package/package.json +68 -68
  74. package/scripts/check.mjs +153 -153
  75. package/scripts/lib.mjs +176 -176
  76. package/tokens/README.md +3 -3
  77. package/tokens/border.json +63 -63
  78. package/tokens/color.json +1902 -1902
  79. package/tokens/motion.json +207 -207
  80. package/tokens/radius.json +53 -53
  81. package/tokens/size.json +378 -378
  82. package/tokens/space.json +289 -289
  83. package/tokens/typography.json +859 -859
package/tokens/color.json CHANGED
@@ -1,1902 +1,1902 @@
1
- {
2
- "primitive": {
3
- "color": {
4
- "ash": {
5
- "$type": "color",
6
- "$description": "Cool green-grey neutral (paper and ink). Primitive: reference only from semantic tokens.",
7
- "0": {
8
- "$value": {
9
- "colorSpace": "srgb",
10
- "components": [
11
- 0.9843,
12
- 0.9961,
13
- 0.9922
14
- ],
15
- "hex": "#fbfefd"
16
- },
17
- "$extensions": {
18
- "codex.tier": "primitive"
19
- }
20
- },
21
- "50": {
22
- "$value": {
23
- "colorSpace": "srgb",
24
- "components": [
25
- 0.9569,
26
- 0.9725,
27
- 0.9647
28
- ],
29
- "hex": "#f4f8f6"
30
- },
31
- "$extensions": {
32
- "codex.tier": "primitive"
33
- }
34
- },
35
- "100": {
36
- "$value": {
37
- "colorSpace": "srgb",
38
- "components": [
39
- 0.9176,
40
- 0.9451,
41
- 0.9333
42
- ],
43
- "hex": "#eaf1ee"
44
- },
45
- "$extensions": {
46
- "codex.tier": "primitive"
47
- }
48
- },
49
- "200": {
50
- "$value": {
51
- "colorSpace": "srgb",
52
- "components": [
53
- 0.8549,
54
- 0.8941,
55
- 0.8745
56
- ],
57
- "hex": "#dae4df"
58
- },
59
- "$extensions": {
60
- "codex.tier": "primitive"
61
- }
62
- },
63
- "300": {
64
- "$value": {
65
- "colorSpace": "srgb",
66
- "components": [
67
- 0.7686,
68
- 0.8039,
69
- 0.7843
70
- ],
71
- "hex": "#c4cdc8"
72
- },
73
- "$extensions": {
74
- "codex.tier": "primitive"
75
- }
76
- },
77
- "400": {
78
- "$value": {
79
- "colorSpace": "srgb",
80
- "components": [
81
- 0.6431,
82
- 0.6784,
83
- 0.6627
84
- ],
85
- "hex": "#a4ada9"
86
- },
87
- "$extensions": {
88
- "codex.tier": "primitive"
89
- }
90
- },
91
- "500": {
92
- "$value": {
93
- "colorSpace": "srgb",
94
- "components": [
95
- 0.5137,
96
- 0.549,
97
- 0.5294
98
- ],
99
- "hex": "#838c87"
100
- },
101
- "$extensions": {
102
- "codex.tier": "primitive"
103
- }
104
- },
105
- "600": {
106
- "$value": {
107
- "colorSpace": "srgb",
108
- "components": [
109
- 0.4118,
110
- 0.4431,
111
- 0.4275
112
- ],
113
- "hex": "#69716d"
114
- },
115
- "$extensions": {
116
- "codex.tier": "primitive"
117
- }
118
- },
119
- "700": {
120
- "$value": {
121
- "colorSpace": "srgb",
122
- "components": [
123
- 0.3176,
124
- 0.349,
125
- 0.3333
126
- ],
127
- "hex": "#515955"
128
- },
129
- "$extensions": {
130
- "codex.tier": "primitive"
131
- }
132
- },
133
- "800": {
134
- "$value": {
135
- "colorSpace": "srgb",
136
- "components": [
137
- 0.1961,
138
- 0.2275,
139
- 0.2118
140
- ],
141
- "hex": "#323a36"
142
- },
143
- "$extensions": {
144
- "codex.tier": "primitive"
145
- }
146
- },
147
- "850": {
148
- "$value": {
149
- "colorSpace": "srgb",
150
- "components": [
151
- 0.1765,
152
- 0.2,
153
- 0.1882
154
- ],
155
- "hex": "#2d3330"
156
- },
157
- "$extensions": {
158
- "codex.tier": "primitive"
159
- }
160
- },
161
- "900": {
162
- "$value": {
163
- "colorSpace": "srgb",
164
- "components": [
165
- 0.1451,
166
- 0.1647,
167
- 0.1569
168
- ],
169
- "hex": "#252a28"
170
- },
171
- "$extensions": {
172
- "codex.tier": "primitive"
173
- }
174
- },
175
- "950": {
176
- "$value": {
177
- "colorSpace": "srgb",
178
- "components": [
179
- 0.0902,
180
- 0.102,
181
- 0.098
182
- ],
183
- "hex": "#171a19"
184
- },
185
- "$extensions": {
186
- "codex.tier": "primitive"
187
- }
188
- },
189
- "1000": {
190
- "$value": {
191
- "colorSpace": "srgb",
192
- "components": [
193
- 0.0549,
194
- 0.0627,
195
- 0.0588
196
- ],
197
- "hex": "#0e100f"
198
- },
199
- "$extensions": {
200
- "codex.tier": "primitive"
201
- }
202
- }
203
- },
204
- "sap": {
205
- "$type": "color",
206
- "$description": "Sap green, the single accent hue; also success. Primitive: reference only from semantic tokens.",
207
- "50": {
208
- "$value": {
209
- "colorSpace": "srgb",
210
- "components": [
211
- 0.9137,
212
- 0.9922,
213
- 0.9333
214
- ],
215
- "hex": "#e9fdee"
216
- },
217
- "$extensions": {
218
- "codex.tier": "primitive"
219
- }
220
- },
221
- "100": {
222
- "$value": {
223
- "colorSpace": "srgb",
224
- "components": [
225
- 0.8471,
226
- 0.9765,
227
- 0.8745
228
- ],
229
- "hex": "#d8f9df"
230
- },
231
- "$extensions": {
232
- "codex.tier": "primitive"
233
- }
234
- },
235
- "200": {
236
- "$value": {
237
- "colorSpace": "srgb",
238
- "components": [
239
- 0.7333,
240
- 0.9451,
241
- 0.7843
242
- ],
243
- "hex": "#bbf1c8"
244
- },
245
- "$extensions": {
246
- "codex.tier": "primitive"
247
- }
248
- },
249
- "300": {
250
- "$value": {
251
- "colorSpace": "srgb",
252
- "components": [
253
- 0.6549,
254
- 0.851,
255
- 0.702
256
- ],
257
- "hex": "#a7d9b3"
258
- },
259
- "$extensions": {
260
- "codex.tier": "primitive"
261
- }
262
- },
263
- "400": {
264
- "$value": {
265
- "colorSpace": "srgb",
266
- "components": [
267
- 0.4902,
268
- 0.7373,
269
- 0.5569
270
- ],
271
- "hex": "#7dbc8e"
272
- },
273
- "$extensions": {
274
- "codex.tier": "primitive"
275
- }
276
- },
277
- "500": {
278
- "$value": {
279
- "colorSpace": "srgb",
280
- "components": [
281
- 0.302,
282
- 0.6157,
283
- 0.4
284
- ],
285
- "hex": "#4d9d66"
286
- },
287
- "$extensions": {
288
- "codex.tier": "primitive"
289
- }
290
- },
291
- "600": {
292
- "$value": {
293
- "colorSpace": "srgb",
294
- "components": [
295
- 0.1255,
296
- 0.5137,
297
- 0.2784
298
- ],
299
- "hex": "#208347"
300
- },
301
- "$extensions": {
302
- "codex.tier": "primitive"
303
- }
304
- },
305
- "700": {
306
- "$value": {
307
- "colorSpace": "srgb",
308
- "components": [
309
- 0.0706,
310
- 0.4078,
311
- 0.2118
312
- ],
313
- "hex": "#126836"
314
- },
315
- "$extensions": {
316
- "codex.tier": "primitive"
317
- }
318
- },
319
- "800": {
320
- "$value": {
321
- "colorSpace": "srgb",
322
- "components": [
323
- 0.0039,
324
- 0.2667,
325
- 0.1216
326
- ],
327
- "hex": "#01441f"
328
- },
329
- "$extensions": {
330
- "codex.tier": "primitive"
331
- }
332
- },
333
- "900": {
334
- "$value": {
335
- "colorSpace": "srgb",
336
- "components": [
337
- 0.0,
338
- 0.2,
339
- 0.0824
340
- ],
341
- "hex": "#003315"
342
- },
343
- "$extensions": {
344
- "codex.tier": "primitive"
345
- }
346
- },
347
- "950": {
348
- "$value": {
349
- "colorSpace": "srgb",
350
- "components": [
351
- 0.0,
352
- 0.1255,
353
- 0.0431
354
- ],
355
- "hex": "#00200b"
356
- },
357
- "$extensions": {
358
- "codex.tier": "primitive"
359
- }
360
- }
361
- },
362
- "woad": {
363
- "$type": "color",
364
- "$description": "Woad blue for focus, info and code. Primitive: reference only from semantic tokens.",
365
- "50": {
366
- "$value": {
367
- "colorSpace": "srgb",
368
- "components": [
369
- 0.949,
370
- 0.9686,
371
- 0.9961
372
- ],
373
- "hex": "#f2f7fe"
374
- },
375
- "$extensions": {
376
- "codex.tier": "primitive"
377
- }
378
- },
379
- "100": {
380
- "$value": {
381
- "colorSpace": "srgb",
382
- "components": [
383
- 0.898,
384
- 0.9412,
385
- 0.9961
386
- ],
387
- "hex": "#e5f0fe"
388
- },
389
- "$extensions": {
390
- "codex.tier": "primitive"
391
- }
392
- },
393
- "200": {
394
- "$value": {
395
- "colorSpace": "srgb",
396
- "components": [
397
- 0.8039,
398
- 0.8941,
399
- 0.9961
400
- ],
401
- "hex": "#cde4fe"
402
- },
403
- "$extensions": {
404
- "codex.tier": "primitive"
405
- }
406
- },
407
- "300": {
408
- "$value": {
409
- "colorSpace": "srgb",
410
- "components": [
411
- 0.6706,
412
- 0.8078,
413
- 0.9647
414
- ],
415
- "hex": "#abcef6"
416
- },
417
- "$extensions": {
418
- "codex.tier": "primitive"
419
- }
420
- },
421
- "400": {
422
- "$value": {
423
- "colorSpace": "srgb",
424
- "components": [
425
- 0.5137,
426
- 0.6863,
427
- 0.8784
428
- ],
429
- "hex": "#83afe0"
430
- },
431
- "$extensions": {
432
- "codex.tier": "primitive"
433
- }
434
- },
435
- "500": {
436
- "$value": {
437
- "colorSpace": "srgb",
438
- "components": [
439
- 0.3412,
440
- 0.5529,
441
- 0.7804
442
- ],
443
- "hex": "#578dc7"
444
- },
445
- "$extensions": {
446
- "codex.tier": "primitive"
447
- }
448
- },
449
- "600": {
450
- "$value": {
451
- "colorSpace": "srgb",
452
- "components": [
453
- 0.2078,
454
- 0.4431,
455
- 0.6941
456
- ],
457
- "hex": "#3571b1"
458
- },
459
- "$extensions": {
460
- "codex.tier": "primitive"
461
- }
462
- },
463
- "700": {
464
- "$value": {
465
- "colorSpace": "srgb",
466
- "components": [
467
- 0.149,
468
- 0.349,
469
- 0.5569
470
- ],
471
- "hex": "#26598e"
472
- },
473
- "$extensions": {
474
- "codex.tier": "primitive"
475
- }
476
- },
477
- "800": {
478
- "$value": {
479
- "colorSpace": "srgb",
480
- "components": [
481
- 0.0706,
482
- 0.2235,
483
- 0.3804
484
- ],
485
- "hex": "#123961"
486
- },
487
- "$extensions": {
488
- "codex.tier": "primitive"
489
- }
490
- },
491
- "900": {
492
- "$value": {
493
- "colorSpace": "srgb",
494
- "components": [
495
- 0.0353,
496
- 0.1647,
497
- 0.2941
498
- ],
499
- "hex": "#092a4b"
500
- },
501
- "$extensions": {
502
- "codex.tier": "primitive"
503
- }
504
- },
505
- "950": {
506
- "$value": {
507
- "colorSpace": "srgb",
508
- "components": [
509
- 0.0078,
510
- 0.102,
511
- 0.2039
512
- ],
513
- "hex": "#021a34"
514
- },
515
- "$extensions": {
516
- "codex.tier": "primitive"
517
- }
518
- }
519
- },
520
- "weld": {
521
- "$type": "color",
522
- "$description": "Weld yellow for warnings. Primitive: reference only from semantic tokens.",
523
- "50": {
524
- "$value": {
525
- "colorSpace": "srgb",
526
- "components": [
527
- 1.0,
528
- 0.9647,
529
- 0.8824
530
- ],
531
- "hex": "#fff6e1"
532
- },
533
- "$extensions": {
534
- "codex.tier": "primitive"
535
- }
536
- },
537
- "100": {
538
- "$value": {
539
- "colorSpace": "srgb",
540
- "components": [
541
- 0.9961,
542
- 0.9333,
543
- 0.7804
544
- ],
545
- "hex": "#feeec7"
546
- },
547
- "$extensions": {
548
- "codex.tier": "primitive"
549
- }
550
- },
551
- "200": {
552
- "$value": {
553
- "colorSpace": "srgb",
554
- "components": [
555
- 0.9765,
556
- 0.8745,
557
- 0.6314
558
- ],
559
- "hex": "#f9dfa1"
560
- },
561
- "$extensions": {
562
- "codex.tier": "primitive"
563
- }
564
- },
565
- "300": {
566
- "$value": {
567
- "colorSpace": "srgb",
568
- "components": [
569
- 0.8784,
570
- 0.7843,
571
- 0.5608
572
- ],
573
- "hex": "#e0c88f"
574
- },
575
- "$extensions": {
576
- "codex.tier": "primitive"
577
- }
578
- },
579
- "400": {
580
- "$value": {
581
- "colorSpace": "srgb",
582
- "components": [
583
- 0.7725,
584
- 0.6549,
585
- 0.3647
586
- ],
587
- "hex": "#c5a75d"
588
- },
589
- "$extensions": {
590
- "codex.tier": "primitive"
591
- }
592
- },
593
- "500": {
594
- "$value": {
595
- "colorSpace": "srgb",
596
- "components": [
597
- 0.6588,
598
- 0.5176,
599
- 0.0863
600
- ],
601
- "hex": "#a88416"
602
- },
603
- "$extensions": {
604
- "codex.tier": "primitive"
605
- }
606
- },
607
- "600": {
608
- "$value": {
609
- "colorSpace": "srgb",
610
- "components": [
611
- 0.5373,
612
- 0.4157,
613
- 0.0078
614
- ],
615
- "hex": "#896a02"
616
- },
617
- "$extensions": {
618
- "codex.tier": "primitive"
619
- }
620
- },
621
- "700": {
622
- "$value": {
623
- "colorSpace": "srgb",
624
- "components": [
625
- 0.4235,
626
- 0.3255,
627
- 0.0078
628
- ],
629
- "hex": "#6c5302"
630
- },
631
- "$extensions": {
632
- "codex.tier": "primitive"
633
- }
634
- },
635
- "800": {
636
- "$value": {
637
- "colorSpace": "srgb",
638
- "components": [
639
- 0.2784,
640
- 0.2078,
641
- 0.0078
642
- ],
643
- "hex": "#473502"
644
- },
645
- "$extensions": {
646
- "codex.tier": "primitive"
647
- }
648
- },
649
- "900": {
650
- "$value": {
651
- "colorSpace": "srgb",
652
- "components": [
653
- 0.2078,
654
- 0.1529,
655
- 0.0
656
- ],
657
- "hex": "#352700"
658
- },
659
- "$extensions": {
660
- "codex.tier": "primitive"
661
- }
662
- },
663
- "950": {
664
- "$value": {
665
- "colorSpace": "srgb",
666
- "components": [
667
- 0.1333,
668
- 0.0941,
669
- 0.0
670
- ],
671
- "hex": "#221800"
672
- },
673
- "$extensions": {
674
- "codex.tier": "primitive"
675
- }
676
- }
677
- },
678
- "madder": {
679
- "$type": "color",
680
- "$description": "Madder red for danger and errors. Primitive: reference only from semantic tokens.",
681
- "50": {
682
- "$value": {
683
- "colorSpace": "srgb",
684
- "components": [
685
- 0.9961,
686
- 0.9569,
687
- 0.9529
688
- ],
689
- "hex": "#fef4f3"
690
- },
691
- "$extensions": {
692
- "codex.tier": "primitive"
693
- }
694
- },
695
- "100": {
696
- "$value": {
697
- "colorSpace": "srgb",
698
- "components": [
699
- 0.9961,
700
- 0.9176,
701
- 0.9059
702
- ],
703
- "hex": "#feeae7"
704
- },
705
- "$extensions": {
706
- "codex.tier": "primitive"
707
- }
708
- },
709
- "200": {
710
- "$value": {
711
- "colorSpace": "srgb",
712
- "components": [
713
- 1.0,
714
- 0.8392,
715
- 0.8196
716
- ],
717
- "hex": "#ffd6d1"
718
- },
719
- "$extensions": {
720
- "codex.tier": "primitive"
721
- }
722
- },
723
- "300": {
724
- "$value": {
725
- "colorSpace": "srgb",
726
- "components": [
727
- 0.9961,
728
- 0.7098,
729
- 0.6745
730
- ],
731
- "hex": "#feb5ac"
732
- },
733
- "$extensions": {
734
- "codex.tier": "primitive"
735
- }
736
- },
737
- "400": {
738
- "$value": {
739
- "colorSpace": "srgb",
740
- "components": [
741
- 0.9176,
742
- 0.5569,
743
- 0.5137
744
- ],
745
- "hex": "#ea8e83"
746
- },
747
- "$extensions": {
748
- "codex.tier": "primitive"
749
- }
750
- },
751
- "500": {
752
- "$value": {
753
- "colorSpace": "srgb",
754
- "components": [
755
- 0.8196,
756
- 0.3882,
757
- 0.349
758
- ],
759
- "hex": "#d16359"
760
- },
761
- "$extensions": {
762
- "codex.tier": "primitive"
763
- }
764
- },
765
- "600": {
766
- "$value": {
767
- "colorSpace": "srgb",
768
- "components": [
769
- 0.7255,
770
- 0.251,
771
- 0.2235
772
- ],
773
- "hex": "#b94039"
774
- },
775
- "$extensions": {
776
- "codex.tier": "primitive"
777
- }
778
- },
779
- "700": {
780
- "$value": {
781
- "colorSpace": "srgb",
782
- "components": [
783
- 0.5804,
784
- 0.1843,
785
- 0.1608
786
- ],
787
- "hex": "#942f29"
788
- },
789
- "$extensions": {
790
- "codex.tier": "primitive"
791
- }
792
- },
793
- "800": {
794
- "$value": {
795
- "colorSpace": "srgb",
796
- "components": [
797
- 0.3961,
798
- 0.098,
799
- 0.0863
800
- ],
801
- "hex": "#651916"
802
- },
803
- "$extensions": {
804
- "codex.tier": "primitive"
805
- }
806
- },
807
- "900": {
808
- "$value": {
809
- "colorSpace": "srgb",
810
- "components": [
811
- 0.3059,
812
- 0.051,
813
- 0.0471
814
- ],
815
- "hex": "#4e0d0c"
816
- },
817
- "$extensions": {
818
- "codex.tier": "primitive"
819
- }
820
- },
821
- "950": {
822
- "$value": {
823
- "colorSpace": "srgb",
824
- "components": [
825
- 0.2118,
826
- 0.0157,
827
- 0.0157
828
- ],
829
- "hex": "#360404"
830
- },
831
- "$extensions": {
832
- "codex.tier": "primitive"
833
- }
834
- }
835
- },
836
- "amount": {
837
- "$type": "number",
838
- "$description": "Mixing, opacity and filter amounts in percent (see codex.unit). Primitive.",
839
- "1": {
840
- "$value": 10,
841
- "$extensions": {
842
- "codex.tier": "primitive",
843
- "codex.unit": "%"
844
- }
845
- },
846
- "2": {
847
- "$value": 14,
848
- "$extensions": {
849
- "codex.tier": "primitive",
850
- "codex.unit": "%"
851
- }
852
- },
853
- "3": {
854
- "$value": 40,
855
- "$extensions": {
856
- "codex.tier": "primitive",
857
- "codex.unit": "%"
858
- }
859
- },
860
- "4": {
861
- "$value": 140,
862
- "$extensions": {
863
- "codex.tier": "primitive",
864
- "codex.unit": "%"
865
- }
866
- }
867
- }
868
- }
869
- },
870
- "color": {
871
- "$type": "color",
872
- "surface": {
873
- "base": {
874
- "$value": "{primitive.color.ash.50}",
875
- "$description": "Page background and the default canvas behind all content. Use once per page, on body.",
876
- "$extensions": {
877
- "codex.modes": {
878
- "dark": "{primitive.color.ash.900}"
879
- }
880
- }
881
- },
882
- "raised": {
883
- "$value": "{primitive.color.ash.0}",
884
- "$description": "Framed objects that sit on the page: cards, accession labels, the sticky header, table bodies. Never as page background.",
885
- "$extensions": {
886
- "codex.modes": {
887
- "dark": "{primitive.color.ash.850}"
888
- }
889
- }
890
- },
891
- "sunken": {
892
- "$value": "{primitive.color.ash.100}",
893
- "$description": "Recessed areas that hold machine text: code blocks, inline code, table header rows, keyboard keys.",
894
- "$extensions": {
895
- "codex.modes": {
896
- "dark": "{primitive.color.ash.950}"
897
- }
898
- }
899
- },
900
- "hover": {
901
- "$value": "{primitive.color.ash.100}",
902
- "$description": "Background of an interactive row or card while hovered. Only as a hover state; never at rest.",
903
- "$extensions": {
904
- "codex.modes": {
905
- "dark": "{primitive.color.ash.800}"
906
- }
907
- }
908
- },
909
- "inverse": {
910
- "$value": "{primitive.color.ash.900}",
911
- "$description": "Background of tooltips and other small transient labels that must stand out from every surface. Never for panels or cards.",
912
- "$extensions": {
913
- "codex.modes": {
914
- "dark": "{primitive.color.ash.100}"
915
- }
916
- }
917
- },
918
- "highlight": {
919
- "$value": "{primitive.color.sap.100}",
920
- "$description": "Text selection, <mark>, and the current item in site navigation. Never for large areas or decoration.",
921
- "$extensions": {
922
- "codex.modes": {
923
- "dark": "{primitive.color.sap.800}"
924
- }
925
- }
926
- }
927
- },
928
- "text": {
929
- "primary": {
930
- "$value": "{primitive.color.ash.950}",
931
- "$description": "Body copy, headings and any text a reader must read. Default text colour.",
932
- "$extensions": {
933
- "codex.modes": {
934
- "dark": "{primitive.color.ash.100}"
935
- },
936
- "codex.pairsWith": [
937
- {
938
- "token": "color.surface.base",
939
- "min": 7
940
- },
941
- {
942
- "token": "color.surface.raised",
943
- "min": 7
944
- },
945
- {
946
- "token": "color.surface.sunken",
947
- "min": 7
948
- },
949
- {
950
- "token": "color.surface.hover",
951
- "min": 7
952
- },
953
- {
954
- "token": "color.surface.highlight",
955
- "min": 7
956
- },
957
- {
958
- "token": "color.status.success.surface",
959
- "min": 7
960
- },
961
- {
962
- "token": "color.status.warning.surface",
963
- "min": 7
964
- },
965
- {
966
- "token": "color.status.danger.surface",
967
- "min": 7
968
- },
969
- {
970
- "token": "color.status.info.surface",
971
- "min": 7
972
- }
973
- ]
974
- }
975
- },
976
- "secondary": {
977
- "$value": "{primitive.color.ash.800}",
978
- "$description": "Supporting reading text: ledes, summaries, captions, blockquotes. Still AAA, so it can carry full sentences.",
979
- "$extensions": {
980
- "codex.modes": {
981
- "dark": "{primitive.color.ash.300}"
982
- },
983
- "codex.pairsWith": [
984
- {
985
- "token": "color.surface.base",
986
- "min": 7
987
- },
988
- {
989
- "token": "color.surface.raised",
990
- "min": 7
991
- },
992
- {
993
- "token": "color.surface.sunken",
994
- "min": 7
995
- },
996
- {
997
- "token": "color.surface.hover",
998
- "min": 7
999
- }
1000
- ]
1001
- }
1002
- },
1003
- "muted": {
1004
- "$value": "{primitive.color.ash.700}",
1005
- "$description": "Metadata only: dates, reading time, counts, label keys. Never for sentences or body copy (AA, not AAA).",
1006
- "$extensions": {
1007
- "codex.modes": {
1008
- "dark": "{primitive.color.ash.400}"
1009
- },
1010
- "codex.pairsWith": [
1011
- {
1012
- "token": "color.surface.base",
1013
- "min": 4.5
1014
- },
1015
- {
1016
- "token": "color.surface.raised",
1017
- "min": 4.5
1018
- },
1019
- {
1020
- "token": "color.surface.sunken",
1021
- "min": 4.5
1022
- },
1023
- {
1024
- "token": "color.surface.hover",
1025
- "min": 4.5
1026
- }
1027
- ]
1028
- }
1029
- },
1030
- "accent": {
1031
- "$value": "{primitive.color.sap.700}",
1032
- "$description": "Short accent text: accession numbers, eyebrow labels, the current nav item. Never for paragraphs; use color.link.* for links.",
1033
- "$extensions": {
1034
- "codex.modes": {
1035
- "dark": "{primitive.color.sap.300}"
1036
- },
1037
- "codex.pairsWith": [
1038
- {
1039
- "token": "color.surface.base",
1040
- "min": 4.5
1041
- },
1042
- {
1043
- "token": "color.surface.raised",
1044
- "min": 4.5
1045
- }
1046
- ]
1047
- }
1048
- },
1049
- "inverse": {
1050
- "$value": "{primitive.color.ash.50}",
1051
- "$description": "Text on color.surface.inverse (tooltips). Only there.",
1052
- "$extensions": {
1053
- "codex.modes": {
1054
- "dark": "{primitive.color.ash.900}"
1055
- },
1056
- "codex.pairsWith": [
1057
- {
1058
- "token": "color.surface.inverse",
1059
- "min": 7
1060
- }
1061
- ]
1062
- }
1063
- },
1064
- "on-accent": {
1065
- "$value": "{primitive.color.ash.0}",
1066
- "$description": "Text and icons placed on color.accent.fill.*, such as primary button labels. Only on accent fills.",
1067
- "$extensions": {
1068
- "codex.modes": {
1069
- "dark": "{primitive.color.ash.1000}"
1070
- },
1071
- "codex.pairsWith": [
1072
- {
1073
- "token": "color.accent.fill.rest",
1074
- "min": 4.5
1075
- },
1076
- {
1077
- "token": "color.accent.fill.hover",
1078
- "min": 4.5
1079
- }
1080
- ]
1081
- }
1082
- }
1083
- },
1084
- "link": {
1085
- "rest": {
1086
- "$value": "{primitive.color.sap.800}",
1087
- "$description": "Inline links in running text. Always underlined so colour is not the only cue.",
1088
- "$extensions": {
1089
- "codex.modes": {
1090
- "dark": "{primitive.color.sap.300}"
1091
- },
1092
- "codex.pairsWith": [
1093
- {
1094
- "token": "color.surface.base",
1095
- "min": 7
1096
- },
1097
- {
1098
- "token": "color.surface.raised",
1099
- "min": 7
1100
- },
1101
- {
1102
- "token": "color.surface.sunken",
1103
- "min": 7
1104
- }
1105
- ]
1106
- }
1107
- },
1108
- "hover": {
1109
- "$value": "{primitive.color.sap.900}",
1110
- "$description": "Inline link while hovered or focused. Pair with a thicker underline, not colour alone.",
1111
- "$extensions": {
1112
- "codex.modes": {
1113
- "dark": "{primitive.color.sap.200}"
1114
- },
1115
- "codex.pairsWith": [
1116
- {
1117
- "token": "color.surface.base",
1118
- "min": 7
1119
- },
1120
- {
1121
- "token": "color.surface.raised",
1122
- "min": 7
1123
- },
1124
- {
1125
- "token": "color.surface.hover",
1126
- "min": 7
1127
- }
1128
- ]
1129
- }
1130
- }
1131
- },
1132
- "border": {
1133
- "subtle": {
1134
- "$value": "{primitive.color.ash.200}",
1135
- "$description": "Decorative dividers inside a component: table row rules, list separators. Never the only boundary of a control.",
1136
- "$extensions": {
1137
- "codex.modes": {
1138
- "dark": "{primitive.color.ash.800}"
1139
- }
1140
- }
1141
- },
1142
- "default": {
1143
- "$value": "{primitive.color.ash.300}",
1144
- "$description": "Outlines of non-interactive framed objects: cards, labels, code blocks, figures.",
1145
- "$extensions": {
1146
- "codex.modes": {
1147
- "dark": "{primitive.color.ash.700}"
1148
- }
1149
- }
1150
- },
1151
- "strong": {
1152
- "$value": "{primitive.color.ash.500}",
1153
- "$description": "Boundaries of interactive controls (secondary buttons, inputs, toggles) and hovered card outlines. Meets 3:1 non-text contrast.",
1154
- "$extensions": {
1155
- "codex.modes": {
1156
- "dark": "{primitive.color.ash.500}"
1157
- },
1158
- "codex.pairsWith": [
1159
- {
1160
- "token": "color.surface.base",
1161
- "min": 3
1162
- },
1163
- {
1164
- "token": "color.surface.raised",
1165
- "min": 3
1166
- }
1167
- ]
1168
- }
1169
- }
1170
- },
1171
- "accent": {
1172
- "fill": {
1173
- "rest": {
1174
- "$value": "{primitive.color.sap.700}",
1175
- "$description": "Fill of the one primary action in a view. One per view; never for large panels.",
1176
- "$extensions": {
1177
- "codex.modes": {
1178
- "dark": "{primitive.color.sap.300}"
1179
- },
1180
- "codex.pairsWith": [
1181
- {
1182
- "token": "color.surface.base",
1183
- "min": 3
1184
- },
1185
- {
1186
- "token": "color.surface.raised",
1187
- "min": 3
1188
- }
1189
- ]
1190
- }
1191
- },
1192
- "hover": {
1193
- "$value": "{primitive.color.sap.800}",
1194
- "$description": "Fill of a primary action while hovered or pressed.",
1195
- "$extensions": {
1196
- "codex.modes": {
1197
- "dark": "{primitive.color.sap.200}"
1198
- },
1199
- "codex.pairsWith": [
1200
- {
1201
- "token": "color.surface.base",
1202
- "min": 3
1203
- }
1204
- ]
1205
- }
1206
- }
1207
- },
1208
- "border": {
1209
- "$value": "{primitive.color.sap.600}",
1210
- "$description": "Accent rules that mark the active item: current nav underline, active TOC entry, hovered tag. Not for static decoration.",
1211
- "$extensions": {
1212
- "codex.modes": {
1213
- "dark": "{primitive.color.sap.400}"
1214
- },
1215
- "codex.pairsWith": [
1216
- {
1217
- "token": "color.surface.base",
1218
- "min": 3
1219
- },
1220
- {
1221
- "token": "color.surface.raised",
1222
- "min": 3
1223
- }
1224
- ]
1225
- }
1226
- }
1227
- },
1228
- "focus": {
1229
- "ring": {
1230
- "$value": "{primitive.color.woad.700}",
1231
- "$description": "Keyboard focus outline on every focusable element. Always drawn with border.focus.offset so it sits on the surface, not the control.",
1232
- "$extensions": {
1233
- "codex.modes": {
1234
- "dark": "{primitive.color.woad.300}"
1235
- },
1236
- "codex.pairsWith": [
1237
- {
1238
- "token": "color.surface.base",
1239
- "min": 3
1240
- },
1241
- {
1242
- "token": "color.surface.raised",
1243
- "min": 3
1244
- },
1245
- {
1246
- "token": "color.surface.sunken",
1247
- "min": 3
1248
- }
1249
- ]
1250
- }
1251
- }
1252
- },
1253
- "ornament": {
1254
- "rest": {
1255
- "$value": "{primitive.color.sap.600}",
1256
- "$description": "Yarndings ornaments and the specimen plate's contour lines. Decorative only: always aria-hidden, never carries meaning.",
1257
- "$extensions": {
1258
- "codex.modes": {
1259
- "dark": "{primitive.color.sap.400}"
1260
- },
1261
- "codex.pairsWith": [
1262
- {
1263
- "token": "color.surface.base",
1264
- "min": 3
1265
- }
1266
- ]
1267
- }
1268
- },
1269
- "strong": {
1270
- "$value": "{primitive.color.sap.800}",
1271
- "$description": "Emphasised stitches that trace structure inside an ornament, and the plate's index contours (every fifth line). Decorative only; never for text.",
1272
- "$extensions": {
1273
- "codex.modes": {
1274
- "dark": "{primitive.color.sap.200}"
1275
- }
1276
- }
1277
- },
1278
- "muted": {
1279
- "$value": "{primitive.color.ash.400}",
1280
- "$description": "Registration ticks on framed objects and the plate's survey grid. Decorative only; no contrast requirement.",
1281
- "$extensions": {
1282
- "codex.modes": {
1283
- "dark": "{primitive.color.ash.700}"
1284
- }
1285
- }
1286
- }
1287
- },
1288
- "status": {
1289
- "success": {
1290
- "text": {
1291
- "$value": "{primitive.color.sap.700}",
1292
- "$description": "Short labels and titles that signal a completed or passing state. Always paired with a text label, never colour alone.",
1293
- "$extensions": {
1294
- "codex.modes": {
1295
- "dark": "{primitive.color.sap.300}"
1296
- },
1297
- "codex.pairsWith": [
1298
- {
1299
- "token": "color.status.success.surface",
1300
- "min": 4.5
1301
- },
1302
- {
1303
- "token": "color.surface.base",
1304
- "min": 4.5
1305
- },
1306
- {
1307
- "token": "color.surface.raised",
1308
- "min": 4.5
1309
- }
1310
- ]
1311
- }
1312
- },
1313
- "surface": {
1314
- "$value": "{primitive.color.sap.50}",
1315
- "$description": "Background of a callout or banner that signals a completed or passing state. Body text on it uses color.text.primary.",
1316
- "$extensions": {
1317
- "codex.modes": {
1318
- "dark": "{primitive.color.sap.950}"
1319
- }
1320
- }
1321
- },
1322
- "border": {
1323
- "$value": "{primitive.color.sap.600}",
1324
- "$description": "Emphasis rule on a component that signals a completed or passing state, e.g. a callout's leading edge.",
1325
- "$extensions": {
1326
- "codex.modes": {
1327
- "dark": "{primitive.color.sap.400}"
1328
- },
1329
- "codex.pairsWith": [
1330
- {
1331
- "token": "color.status.success.surface",
1332
- "min": 3
1333
- }
1334
- ]
1335
- }
1336
- }
1337
- },
1338
- "warning": {
1339
- "text": {
1340
- "$value": "{primitive.color.weld.700}",
1341
- "$description": "Short labels and titles that signal a caution the reader should act on. Always paired with a text label, never colour alone.",
1342
- "$extensions": {
1343
- "codex.modes": {
1344
- "dark": "{primitive.color.weld.300}"
1345
- },
1346
- "codex.pairsWith": [
1347
- {
1348
- "token": "color.status.warning.surface",
1349
- "min": 4.5
1350
- },
1351
- {
1352
- "token": "color.surface.base",
1353
- "min": 4.5
1354
- },
1355
- {
1356
- "token": "color.surface.raised",
1357
- "min": 4.5
1358
- }
1359
- ]
1360
- }
1361
- },
1362
- "surface": {
1363
- "$value": "{primitive.color.weld.50}",
1364
- "$description": "Background of a callout or banner that signals a caution the reader should act on. Body text on it uses color.text.primary.",
1365
- "$extensions": {
1366
- "codex.modes": {
1367
- "dark": "{primitive.color.weld.950}"
1368
- }
1369
- }
1370
- },
1371
- "border": {
1372
- "$value": "{primitive.color.weld.600}",
1373
- "$description": "Emphasis rule on a component that signals a caution the reader should act on, e.g. a callout's leading edge.",
1374
- "$extensions": {
1375
- "codex.modes": {
1376
- "dark": "{primitive.color.weld.400}"
1377
- },
1378
- "codex.pairsWith": [
1379
- {
1380
- "token": "color.status.warning.surface",
1381
- "min": 3
1382
- }
1383
- ]
1384
- }
1385
- }
1386
- },
1387
- "danger": {
1388
- "text": {
1389
- "$value": "{primitive.color.madder.700}",
1390
- "$description": "Short labels and titles that signal an error, a destructive action or a breaking change. Always paired with a text label, never colour alone.",
1391
- "$extensions": {
1392
- "codex.modes": {
1393
- "dark": "{primitive.color.madder.300}"
1394
- },
1395
- "codex.pairsWith": [
1396
- {
1397
- "token": "color.status.danger.surface",
1398
- "min": 4.5
1399
- },
1400
- {
1401
- "token": "color.surface.base",
1402
- "min": 4.5
1403
- },
1404
- {
1405
- "token": "color.surface.raised",
1406
- "min": 4.5
1407
- }
1408
- ]
1409
- }
1410
- },
1411
- "surface": {
1412
- "$value": "{primitive.color.madder.50}",
1413
- "$description": "Background of a callout or banner that signals an error, a destructive action or a breaking change. Body text on it uses color.text.primary.",
1414
- "$extensions": {
1415
- "codex.modes": {
1416
- "dark": "{primitive.color.madder.950}"
1417
- }
1418
- }
1419
- },
1420
- "border": {
1421
- "$value": "{primitive.color.madder.600}",
1422
- "$description": "Emphasis rule on a component that signals an error, a destructive action or a breaking change, e.g. a callout's leading edge.",
1423
- "$extensions": {
1424
- "codex.modes": {
1425
- "dark": "{primitive.color.madder.400}"
1426
- },
1427
- "codex.pairsWith": [
1428
- {
1429
- "token": "color.status.danger.surface",
1430
- "min": 3
1431
- }
1432
- ]
1433
- }
1434
- }
1435
- },
1436
- "info": {
1437
- "text": {
1438
- "$value": "{primitive.color.woad.700}",
1439
- "$description": "Short labels and titles that signal neutral supplementary information. Always paired with a text label, never colour alone.",
1440
- "$extensions": {
1441
- "codex.modes": {
1442
- "dark": "{primitive.color.woad.300}"
1443
- },
1444
- "codex.pairsWith": [
1445
- {
1446
- "token": "color.status.info.surface",
1447
- "min": 4.5
1448
- },
1449
- {
1450
- "token": "color.surface.base",
1451
- "min": 4.5
1452
- },
1453
- {
1454
- "token": "color.surface.raised",
1455
- "min": 4.5
1456
- }
1457
- ]
1458
- }
1459
- },
1460
- "surface": {
1461
- "$value": "{primitive.color.woad.50}",
1462
- "$description": "Background of a callout or banner that signals neutral supplementary information. Body text on it uses color.text.primary.",
1463
- "$extensions": {
1464
- "codex.modes": {
1465
- "dark": "{primitive.color.woad.950}"
1466
- }
1467
- }
1468
- },
1469
- "border": {
1470
- "$value": "{primitive.color.woad.600}",
1471
- "$description": "Emphasis rule on a component that signals neutral supplementary information, e.g. a callout's leading edge.",
1472
- "$extensions": {
1473
- "codex.modes": {
1474
- "dark": "{primitive.color.woad.400}"
1475
- },
1476
- "codex.pairsWith": [
1477
- {
1478
- "token": "color.status.info.surface",
1479
- "min": 3
1480
- }
1481
- ]
1482
- }
1483
- }
1484
- }
1485
- },
1486
- "syntax": {
1487
- "comment": {
1488
- "$value": "{primitive.color.ash.700}",
1489
- "$description": "Code comments and doc strings. Upright, never italic (no mono italic is loaded). Only inside code blocks on color.surface.sunken.",
1490
- "$extensions": {
1491
- "codex.modes": {
1492
- "dark": "{primitive.color.ash.400}"
1493
- },
1494
- "codex.pairsWith": [
1495
- {
1496
- "token": "color.surface.sunken",
1497
- "min": 4.5
1498
- },
1499
- {
1500
- "token": "color.syntax.line-highlight",
1501
- "min": 4.5
1502
- }
1503
- ]
1504
- }
1505
- },
1506
- "keyword": {
1507
- "$value": "{primitive.color.madder.700}",
1508
- "$description": "Language keywords and control flow: if, return, const, import. Only inside code blocks on color.surface.sunken.",
1509
- "$extensions": {
1510
- "codex.modes": {
1511
- "dark": "{primitive.color.madder.300}"
1512
- },
1513
- "codex.pairsWith": [
1514
- {
1515
- "token": "color.surface.sunken",
1516
- "min": 4.5
1517
- },
1518
- {
1519
- "token": "color.syntax.line-highlight",
1520
- "min": 4.5
1521
- }
1522
- ]
1523
- }
1524
- },
1525
- "string": {
1526
- "$value": "{primitive.color.sap.700}",
1527
- "$description": "String, regex and template literals. Only inside code blocks on color.surface.sunken.",
1528
- "$extensions": {
1529
- "codex.modes": {
1530
- "dark": "{primitive.color.sap.300}"
1531
- },
1532
- "codex.pairsWith": [
1533
- {
1534
- "token": "color.surface.sunken",
1535
- "min": 4.5
1536
- },
1537
- {
1538
- "token": "color.syntax.line-highlight",
1539
- "min": 4.5
1540
- }
1541
- ]
1542
- }
1543
- },
1544
- "number": {
1545
- "$value": "{primitive.color.weld.700}",
1546
- "$description": "Numbers, booleans, null and other literal constants. Only inside code blocks on color.surface.sunken.",
1547
- "$extensions": {
1548
- "codex.modes": {
1549
- "dark": "{primitive.color.weld.300}"
1550
- },
1551
- "codex.pairsWith": [
1552
- {
1553
- "token": "color.surface.sunken",
1554
- "min": 4.5
1555
- },
1556
- {
1557
- "token": "color.syntax.line-highlight",
1558
- "min": 4.5
1559
- }
1560
- ]
1561
- }
1562
- },
1563
- "function": {
1564
- "$value": "{primitive.color.woad.700}",
1565
- "$description": "Function and method names at definition and call sites. Only inside code blocks on color.surface.sunken.",
1566
- "$extensions": {
1567
- "codex.modes": {
1568
- "dark": "{primitive.color.woad.300}"
1569
- },
1570
- "codex.pairsWith": [
1571
- {
1572
- "token": "color.surface.sunken",
1573
- "min": 4.5
1574
- },
1575
- {
1576
- "token": "color.syntax.line-highlight",
1577
- "min": 4.5
1578
- }
1579
- ]
1580
- }
1581
- },
1582
- "type": {
1583
- "$value": "{primitive.color.woad.800}",
1584
- "$description": "Types, classes, built-ins and namespaces. Only inside code blocks on color.surface.sunken.",
1585
- "$extensions": {
1586
- "codex.modes": {
1587
- "dark": "{primitive.color.woad.200}"
1588
- },
1589
- "codex.pairsWith": [
1590
- {
1591
- "token": "color.surface.sunken",
1592
- "min": 4.5
1593
- },
1594
- {
1595
- "token": "color.syntax.line-highlight",
1596
- "min": 4.5
1597
- }
1598
- ]
1599
- }
1600
- },
1601
- "tag": {
1602
- "$value": "{primitive.color.madder.800}",
1603
- "$description": "Markup tag names (HTML, JSX, XML). Only inside code blocks on color.surface.sunken.",
1604
- "$extensions": {
1605
- "codex.modes": {
1606
- "dark": "{primitive.color.madder.200}"
1607
- },
1608
- "codex.pairsWith": [
1609
- {
1610
- "token": "color.surface.sunken",
1611
- "min": 4.5
1612
- },
1613
- {
1614
- "token": "color.syntax.line-highlight",
1615
- "min": 4.5
1616
- }
1617
- ]
1618
- }
1619
- },
1620
- "attribute": {
1621
- "$value": "{primitive.color.weld.800}",
1622
- "$description": "Markup attributes, object keys and CSS properties. Only inside code blocks on color.surface.sunken.",
1623
- "$extensions": {
1624
- "codex.modes": {
1625
- "dark": "{primitive.color.weld.200}"
1626
- },
1627
- "codex.pairsWith": [
1628
- {
1629
- "token": "color.surface.sunken",
1630
- "min": 4.5
1631
- },
1632
- {
1633
- "token": "color.syntax.line-highlight",
1634
- "min": 4.5
1635
- }
1636
- ]
1637
- }
1638
- },
1639
- "variable": {
1640
- "$value": "{primitive.color.ash.950}",
1641
- "$description": "Identifiers and plain names. Same value as body text so most code reads as text. Only inside code blocks on color.surface.sunken.",
1642
- "$extensions": {
1643
- "codex.modes": {
1644
- "dark": "{primitive.color.ash.100}"
1645
- },
1646
- "codex.pairsWith": [
1647
- {
1648
- "token": "color.surface.sunken",
1649
- "min": 4.5
1650
- },
1651
- {
1652
- "token": "color.syntax.line-highlight",
1653
- "min": 4.5
1654
- }
1655
- ]
1656
- }
1657
- },
1658
- "operator": {
1659
- "$value": "{primitive.color.ash.800}",
1660
- "$description": "Operators and punctuation such as = => . , ; ( ). Only inside code blocks on color.surface.sunken.",
1661
- "$extensions": {
1662
- "codex.modes": {
1663
- "dark": "{primitive.color.ash.300}"
1664
- },
1665
- "codex.pairsWith": [
1666
- {
1667
- "token": "color.surface.sunken",
1668
- "min": 4.5
1669
- },
1670
- {
1671
- "token": "color.syntax.line-highlight",
1672
- "min": 4.5
1673
- }
1674
- ]
1675
- }
1676
- },
1677
- "meta": {
1678
- "$value": "{primitive.color.sap.800}",
1679
- "$description": "Decorators, annotations, preprocessor directives and shebangs. Only inside code blocks on color.surface.sunken.",
1680
- "$extensions": {
1681
- "codex.modes": {
1682
- "dark": "{primitive.color.sap.200}"
1683
- },
1684
- "codex.pairsWith": [
1685
- {
1686
- "token": "color.surface.sunken",
1687
- "min": 4.5
1688
- },
1689
- {
1690
- "token": "color.syntax.line-highlight",
1691
- "min": 4.5
1692
- }
1693
- ]
1694
- }
1695
- },
1696
- "inserted": {
1697
- "$value": "{primitive.color.sap.800}",
1698
- "$description": "Diff lines that were added. Pair with the + prefix, never colour alone. Only inside code blocks on color.surface.sunken.",
1699
- "$extensions": {
1700
- "codex.modes": {
1701
- "dark": "{primitive.color.sap.200}"
1702
- },
1703
- "codex.pairsWith": [
1704
- {
1705
- "token": "color.surface.sunken",
1706
- "min": 4.5
1707
- },
1708
- {
1709
- "token": "color.syntax.line-highlight",
1710
- "min": 4.5
1711
- }
1712
- ]
1713
- }
1714
- },
1715
- "deleted": {
1716
- "$value": "{primitive.color.madder.800}",
1717
- "$description": "Diff lines that were removed and error tokens. Pair with the - prefix. Only inside code blocks on color.surface.sunken.",
1718
- "$extensions": {
1719
- "codex.modes": {
1720
- "dark": "{primitive.color.madder.200}"
1721
- },
1722
- "codex.pairsWith": [
1723
- {
1724
- "token": "color.surface.sunken",
1725
- "min": 4.5
1726
- },
1727
- {
1728
- "token": "color.syntax.line-highlight",
1729
- "min": 4.5
1730
- }
1731
- ]
1732
- }
1733
- },
1734
- "heading": {
1735
- "$value": "{primitive.color.woad.800}",
1736
- "$description": "Diff hunk headers and markup headings inside code. Only inside code blocks on color.surface.sunken.",
1737
- "$extensions": {
1738
- "codex.modes": {
1739
- "dark": "{primitive.color.woad.200}"
1740
- },
1741
- "codex.pairsWith": [
1742
- {
1743
- "token": "color.surface.sunken",
1744
- "min": 4.5
1745
- },
1746
- {
1747
- "token": "color.syntax.line-highlight",
1748
- "min": 4.5
1749
- }
1750
- ]
1751
- }
1752
- },
1753
- "line-number": {
1754
- "$value": "{primitive.color.ash.700}",
1755
- "$description": "Line numbers in the gutter of a code block. Only inside code blocks on color.surface.sunken.",
1756
- "$extensions": {
1757
- "codex.modes": {
1758
- "dark": "{primitive.color.ash.400}"
1759
- },
1760
- "codex.pairsWith": [
1761
- {
1762
- "token": "color.surface.sunken",
1763
- "min": 4.5
1764
- },
1765
- {
1766
- "token": "color.syntax.line-highlight",
1767
- "min": 4.5
1768
- }
1769
- ]
1770
- }
1771
- },
1772
- "line-highlight": {
1773
- "$value": "{primitive.color.ash.200}",
1774
- "$description": "Background of emphasised lines in a code block (Chroma hl_lines). Only inside code blocks.",
1775
- "$extensions": {
1776
- "codex.modes": {
1777
- "dark": "{primitive.color.ash.900}"
1778
- }
1779
- }
1780
- }
1781
- },
1782
- "data": {
1783
- "1": {
1784
- "$value": "{primitive.color.woad.600}",
1785
- "$description": "The first series in diagrams and charts. Use series in order, label every series directly, and never rely on hue alone.",
1786
- "$extensions": {
1787
- "codex.modes": {
1788
- "dark": "{primitive.color.woad.400}"
1789
- },
1790
- "codex.pairsWith": [
1791
- {
1792
- "token": "color.surface.base",
1793
- "min": 3
1794
- },
1795
- {
1796
- "token": "color.surface.raised",
1797
- "min": 3
1798
- }
1799
- ]
1800
- }
1801
- },
1802
- "2": {
1803
- "$value": "{primitive.color.sap.600}",
1804
- "$description": "The second series in diagrams and charts. Use series in order, label every series directly, and never rely on hue alone.",
1805
- "$extensions": {
1806
- "codex.modes": {
1807
- "dark": "{primitive.color.sap.400}"
1808
- },
1809
- "codex.pairsWith": [
1810
- {
1811
- "token": "color.surface.base",
1812
- "min": 3
1813
- },
1814
- {
1815
- "token": "color.surface.raised",
1816
- "min": 3
1817
- }
1818
- ]
1819
- }
1820
- },
1821
- "3": {
1822
- "$value": "{primitive.color.madder.600}",
1823
- "$description": "The third series in diagrams and charts. Use series in order, label every series directly, and never rely on hue alone.",
1824
- "$extensions": {
1825
- "codex.modes": {
1826
- "dark": "{primitive.color.madder.400}"
1827
- },
1828
- "codex.pairsWith": [
1829
- {
1830
- "token": "color.surface.base",
1831
- "min": 3
1832
- },
1833
- {
1834
- "token": "color.surface.raised",
1835
- "min": 3
1836
- }
1837
- ]
1838
- }
1839
- },
1840
- "4": {
1841
- "$value": "{primitive.color.weld.600}",
1842
- "$description": "The fourth series in diagrams and charts. Use series in order, label every series directly, and never rely on hue alone.",
1843
- "$extensions": {
1844
- "codex.modes": {
1845
- "dark": "{primitive.color.weld.400}"
1846
- },
1847
- "codex.pairsWith": [
1848
- {
1849
- "token": "color.surface.base",
1850
- "min": 3
1851
- },
1852
- {
1853
- "token": "color.surface.raised",
1854
- "min": 3
1855
- }
1856
- ]
1857
- }
1858
- },
1859
- "5": {
1860
- "$value": "{primitive.color.ash.600}",
1861
- "$description": "The fifth series in diagrams and charts. Use series in order, label every series directly, and never rely on hue alone.",
1862
- "$extensions": {
1863
- "codex.modes": {
1864
- "dark": "{primitive.color.ash.400}"
1865
- },
1866
- "codex.pairsWith": [
1867
- {
1868
- "token": "color.surface.base",
1869
- "min": 3
1870
- },
1871
- {
1872
- "token": "color.surface.raised",
1873
- "min": 3
1874
- }
1875
- ]
1876
- }
1877
- }
1878
- },
1879
- "backdrop": {
1880
- "$type": "number",
1881
- "tint": {
1882
- "$value": "{primitive.color.amount.3}",
1883
- "$description": "Share of color.surface.base laid over the blurred backdrop contours, in percent: enough to soften the lines into relief behind the header, the opening of a page and the footer."
1884
- },
1885
- "grain": {
1886
- "$value": "{primitive.color.amount.2}",
1887
- "$description": "Opacity of the monochrome grain over the frost, in percent. Texture only; never raise it until it competes with text."
1888
- },
1889
- "saturation": {
1890
- "$value": "{primitive.color.amount.4}",
1891
- "$description": "Saturation applied with the frost blur, in percent, so blurred contour colour stays green instead of greying out."
1892
- }
1893
- },
1894
- "wash": {
1895
- "$type": "number",
1896
- "hover": {
1897
- "$value": "{primitive.color.amount.1}",
1898
- "$description": "Share of color.text.primary mixed into a transparent hover background, in percent: header controls on the frosted backdrop, where a solid color.surface.hover would match the frost. Not for controls on a plain surface."
1899
- }
1900
- }
1901
- }
1902
- }
1
+ {
2
+ "primitive": {
3
+ "color": {
4
+ "ash": {
5
+ "$type": "color",
6
+ "$description": "Cool green-grey neutral (paper and ink). Primitive: reference only from semantic tokens.",
7
+ "0": {
8
+ "$value": {
9
+ "colorSpace": "srgb",
10
+ "components": [
11
+ 0.9843,
12
+ 0.9961,
13
+ 0.9922
14
+ ],
15
+ "hex": "#fbfefd"
16
+ },
17
+ "$extensions": {
18
+ "codex.tier": "primitive"
19
+ }
20
+ },
21
+ "50": {
22
+ "$value": {
23
+ "colorSpace": "srgb",
24
+ "components": [
25
+ 0.9569,
26
+ 0.9725,
27
+ 0.9647
28
+ ],
29
+ "hex": "#f4f8f6"
30
+ },
31
+ "$extensions": {
32
+ "codex.tier": "primitive"
33
+ }
34
+ },
35
+ "100": {
36
+ "$value": {
37
+ "colorSpace": "srgb",
38
+ "components": [
39
+ 0.9176,
40
+ 0.9451,
41
+ 0.9333
42
+ ],
43
+ "hex": "#eaf1ee"
44
+ },
45
+ "$extensions": {
46
+ "codex.tier": "primitive"
47
+ }
48
+ },
49
+ "200": {
50
+ "$value": {
51
+ "colorSpace": "srgb",
52
+ "components": [
53
+ 0.8549,
54
+ 0.8941,
55
+ 0.8745
56
+ ],
57
+ "hex": "#dae4df"
58
+ },
59
+ "$extensions": {
60
+ "codex.tier": "primitive"
61
+ }
62
+ },
63
+ "300": {
64
+ "$value": {
65
+ "colorSpace": "srgb",
66
+ "components": [
67
+ 0.7686,
68
+ 0.8039,
69
+ 0.7843
70
+ ],
71
+ "hex": "#c4cdc8"
72
+ },
73
+ "$extensions": {
74
+ "codex.tier": "primitive"
75
+ }
76
+ },
77
+ "400": {
78
+ "$value": {
79
+ "colorSpace": "srgb",
80
+ "components": [
81
+ 0.6431,
82
+ 0.6784,
83
+ 0.6627
84
+ ],
85
+ "hex": "#a4ada9"
86
+ },
87
+ "$extensions": {
88
+ "codex.tier": "primitive"
89
+ }
90
+ },
91
+ "500": {
92
+ "$value": {
93
+ "colorSpace": "srgb",
94
+ "components": [
95
+ 0.5137,
96
+ 0.549,
97
+ 0.5294
98
+ ],
99
+ "hex": "#838c87"
100
+ },
101
+ "$extensions": {
102
+ "codex.tier": "primitive"
103
+ }
104
+ },
105
+ "600": {
106
+ "$value": {
107
+ "colorSpace": "srgb",
108
+ "components": [
109
+ 0.4118,
110
+ 0.4431,
111
+ 0.4275
112
+ ],
113
+ "hex": "#69716d"
114
+ },
115
+ "$extensions": {
116
+ "codex.tier": "primitive"
117
+ }
118
+ },
119
+ "700": {
120
+ "$value": {
121
+ "colorSpace": "srgb",
122
+ "components": [
123
+ 0.3176,
124
+ 0.349,
125
+ 0.3333
126
+ ],
127
+ "hex": "#515955"
128
+ },
129
+ "$extensions": {
130
+ "codex.tier": "primitive"
131
+ }
132
+ },
133
+ "800": {
134
+ "$value": {
135
+ "colorSpace": "srgb",
136
+ "components": [
137
+ 0.1961,
138
+ 0.2275,
139
+ 0.2118
140
+ ],
141
+ "hex": "#323a36"
142
+ },
143
+ "$extensions": {
144
+ "codex.tier": "primitive"
145
+ }
146
+ },
147
+ "850": {
148
+ "$value": {
149
+ "colorSpace": "srgb",
150
+ "components": [
151
+ 0.1765,
152
+ 0.2,
153
+ 0.1882
154
+ ],
155
+ "hex": "#2d3330"
156
+ },
157
+ "$extensions": {
158
+ "codex.tier": "primitive"
159
+ }
160
+ },
161
+ "900": {
162
+ "$value": {
163
+ "colorSpace": "srgb",
164
+ "components": [
165
+ 0.1451,
166
+ 0.1647,
167
+ 0.1569
168
+ ],
169
+ "hex": "#252a28"
170
+ },
171
+ "$extensions": {
172
+ "codex.tier": "primitive"
173
+ }
174
+ },
175
+ "950": {
176
+ "$value": {
177
+ "colorSpace": "srgb",
178
+ "components": [
179
+ 0.0902,
180
+ 0.102,
181
+ 0.098
182
+ ],
183
+ "hex": "#171a19"
184
+ },
185
+ "$extensions": {
186
+ "codex.tier": "primitive"
187
+ }
188
+ },
189
+ "1000": {
190
+ "$value": {
191
+ "colorSpace": "srgb",
192
+ "components": [
193
+ 0.0549,
194
+ 0.0627,
195
+ 0.0588
196
+ ],
197
+ "hex": "#0e100f"
198
+ },
199
+ "$extensions": {
200
+ "codex.tier": "primitive"
201
+ }
202
+ }
203
+ },
204
+ "sap": {
205
+ "$type": "color",
206
+ "$description": "Sap green, the single accent hue; also success. Primitive: reference only from semantic tokens.",
207
+ "50": {
208
+ "$value": {
209
+ "colorSpace": "srgb",
210
+ "components": [
211
+ 0.9137,
212
+ 0.9922,
213
+ 0.9333
214
+ ],
215
+ "hex": "#e9fdee"
216
+ },
217
+ "$extensions": {
218
+ "codex.tier": "primitive"
219
+ }
220
+ },
221
+ "100": {
222
+ "$value": {
223
+ "colorSpace": "srgb",
224
+ "components": [
225
+ 0.8471,
226
+ 0.9765,
227
+ 0.8745
228
+ ],
229
+ "hex": "#d8f9df"
230
+ },
231
+ "$extensions": {
232
+ "codex.tier": "primitive"
233
+ }
234
+ },
235
+ "200": {
236
+ "$value": {
237
+ "colorSpace": "srgb",
238
+ "components": [
239
+ 0.7333,
240
+ 0.9451,
241
+ 0.7843
242
+ ],
243
+ "hex": "#bbf1c8"
244
+ },
245
+ "$extensions": {
246
+ "codex.tier": "primitive"
247
+ }
248
+ },
249
+ "300": {
250
+ "$value": {
251
+ "colorSpace": "srgb",
252
+ "components": [
253
+ 0.6549,
254
+ 0.851,
255
+ 0.702
256
+ ],
257
+ "hex": "#a7d9b3"
258
+ },
259
+ "$extensions": {
260
+ "codex.tier": "primitive"
261
+ }
262
+ },
263
+ "400": {
264
+ "$value": {
265
+ "colorSpace": "srgb",
266
+ "components": [
267
+ 0.4902,
268
+ 0.7373,
269
+ 0.5569
270
+ ],
271
+ "hex": "#7dbc8e"
272
+ },
273
+ "$extensions": {
274
+ "codex.tier": "primitive"
275
+ }
276
+ },
277
+ "500": {
278
+ "$value": {
279
+ "colorSpace": "srgb",
280
+ "components": [
281
+ 0.302,
282
+ 0.6157,
283
+ 0.4
284
+ ],
285
+ "hex": "#4d9d66"
286
+ },
287
+ "$extensions": {
288
+ "codex.tier": "primitive"
289
+ }
290
+ },
291
+ "600": {
292
+ "$value": {
293
+ "colorSpace": "srgb",
294
+ "components": [
295
+ 0.1255,
296
+ 0.5137,
297
+ 0.2784
298
+ ],
299
+ "hex": "#208347"
300
+ },
301
+ "$extensions": {
302
+ "codex.tier": "primitive"
303
+ }
304
+ },
305
+ "700": {
306
+ "$value": {
307
+ "colorSpace": "srgb",
308
+ "components": [
309
+ 0.0706,
310
+ 0.4078,
311
+ 0.2118
312
+ ],
313
+ "hex": "#126836"
314
+ },
315
+ "$extensions": {
316
+ "codex.tier": "primitive"
317
+ }
318
+ },
319
+ "800": {
320
+ "$value": {
321
+ "colorSpace": "srgb",
322
+ "components": [
323
+ 0.0039,
324
+ 0.2667,
325
+ 0.1216
326
+ ],
327
+ "hex": "#01441f"
328
+ },
329
+ "$extensions": {
330
+ "codex.tier": "primitive"
331
+ }
332
+ },
333
+ "900": {
334
+ "$value": {
335
+ "colorSpace": "srgb",
336
+ "components": [
337
+ 0.0,
338
+ 0.2,
339
+ 0.0824
340
+ ],
341
+ "hex": "#003315"
342
+ },
343
+ "$extensions": {
344
+ "codex.tier": "primitive"
345
+ }
346
+ },
347
+ "950": {
348
+ "$value": {
349
+ "colorSpace": "srgb",
350
+ "components": [
351
+ 0.0,
352
+ 0.1255,
353
+ 0.0431
354
+ ],
355
+ "hex": "#00200b"
356
+ },
357
+ "$extensions": {
358
+ "codex.tier": "primitive"
359
+ }
360
+ }
361
+ },
362
+ "woad": {
363
+ "$type": "color",
364
+ "$description": "Woad blue for focus, info and code. Primitive: reference only from semantic tokens.",
365
+ "50": {
366
+ "$value": {
367
+ "colorSpace": "srgb",
368
+ "components": [
369
+ 0.949,
370
+ 0.9686,
371
+ 0.9961
372
+ ],
373
+ "hex": "#f2f7fe"
374
+ },
375
+ "$extensions": {
376
+ "codex.tier": "primitive"
377
+ }
378
+ },
379
+ "100": {
380
+ "$value": {
381
+ "colorSpace": "srgb",
382
+ "components": [
383
+ 0.898,
384
+ 0.9412,
385
+ 0.9961
386
+ ],
387
+ "hex": "#e5f0fe"
388
+ },
389
+ "$extensions": {
390
+ "codex.tier": "primitive"
391
+ }
392
+ },
393
+ "200": {
394
+ "$value": {
395
+ "colorSpace": "srgb",
396
+ "components": [
397
+ 0.8039,
398
+ 0.8941,
399
+ 0.9961
400
+ ],
401
+ "hex": "#cde4fe"
402
+ },
403
+ "$extensions": {
404
+ "codex.tier": "primitive"
405
+ }
406
+ },
407
+ "300": {
408
+ "$value": {
409
+ "colorSpace": "srgb",
410
+ "components": [
411
+ 0.6706,
412
+ 0.8078,
413
+ 0.9647
414
+ ],
415
+ "hex": "#abcef6"
416
+ },
417
+ "$extensions": {
418
+ "codex.tier": "primitive"
419
+ }
420
+ },
421
+ "400": {
422
+ "$value": {
423
+ "colorSpace": "srgb",
424
+ "components": [
425
+ 0.5137,
426
+ 0.6863,
427
+ 0.8784
428
+ ],
429
+ "hex": "#83afe0"
430
+ },
431
+ "$extensions": {
432
+ "codex.tier": "primitive"
433
+ }
434
+ },
435
+ "500": {
436
+ "$value": {
437
+ "colorSpace": "srgb",
438
+ "components": [
439
+ 0.3412,
440
+ 0.5529,
441
+ 0.7804
442
+ ],
443
+ "hex": "#578dc7"
444
+ },
445
+ "$extensions": {
446
+ "codex.tier": "primitive"
447
+ }
448
+ },
449
+ "600": {
450
+ "$value": {
451
+ "colorSpace": "srgb",
452
+ "components": [
453
+ 0.2078,
454
+ 0.4431,
455
+ 0.6941
456
+ ],
457
+ "hex": "#3571b1"
458
+ },
459
+ "$extensions": {
460
+ "codex.tier": "primitive"
461
+ }
462
+ },
463
+ "700": {
464
+ "$value": {
465
+ "colorSpace": "srgb",
466
+ "components": [
467
+ 0.149,
468
+ 0.349,
469
+ 0.5569
470
+ ],
471
+ "hex": "#26598e"
472
+ },
473
+ "$extensions": {
474
+ "codex.tier": "primitive"
475
+ }
476
+ },
477
+ "800": {
478
+ "$value": {
479
+ "colorSpace": "srgb",
480
+ "components": [
481
+ 0.0706,
482
+ 0.2235,
483
+ 0.3804
484
+ ],
485
+ "hex": "#123961"
486
+ },
487
+ "$extensions": {
488
+ "codex.tier": "primitive"
489
+ }
490
+ },
491
+ "900": {
492
+ "$value": {
493
+ "colorSpace": "srgb",
494
+ "components": [
495
+ 0.0353,
496
+ 0.1647,
497
+ 0.2941
498
+ ],
499
+ "hex": "#092a4b"
500
+ },
501
+ "$extensions": {
502
+ "codex.tier": "primitive"
503
+ }
504
+ },
505
+ "950": {
506
+ "$value": {
507
+ "colorSpace": "srgb",
508
+ "components": [
509
+ 0.0078,
510
+ 0.102,
511
+ 0.2039
512
+ ],
513
+ "hex": "#021a34"
514
+ },
515
+ "$extensions": {
516
+ "codex.tier": "primitive"
517
+ }
518
+ }
519
+ },
520
+ "weld": {
521
+ "$type": "color",
522
+ "$description": "Weld yellow for warnings. Primitive: reference only from semantic tokens.",
523
+ "50": {
524
+ "$value": {
525
+ "colorSpace": "srgb",
526
+ "components": [
527
+ 1.0,
528
+ 0.9647,
529
+ 0.8824
530
+ ],
531
+ "hex": "#fff6e1"
532
+ },
533
+ "$extensions": {
534
+ "codex.tier": "primitive"
535
+ }
536
+ },
537
+ "100": {
538
+ "$value": {
539
+ "colorSpace": "srgb",
540
+ "components": [
541
+ 0.9961,
542
+ 0.9333,
543
+ 0.7804
544
+ ],
545
+ "hex": "#feeec7"
546
+ },
547
+ "$extensions": {
548
+ "codex.tier": "primitive"
549
+ }
550
+ },
551
+ "200": {
552
+ "$value": {
553
+ "colorSpace": "srgb",
554
+ "components": [
555
+ 0.9765,
556
+ 0.8745,
557
+ 0.6314
558
+ ],
559
+ "hex": "#f9dfa1"
560
+ },
561
+ "$extensions": {
562
+ "codex.tier": "primitive"
563
+ }
564
+ },
565
+ "300": {
566
+ "$value": {
567
+ "colorSpace": "srgb",
568
+ "components": [
569
+ 0.8784,
570
+ 0.7843,
571
+ 0.5608
572
+ ],
573
+ "hex": "#e0c88f"
574
+ },
575
+ "$extensions": {
576
+ "codex.tier": "primitive"
577
+ }
578
+ },
579
+ "400": {
580
+ "$value": {
581
+ "colorSpace": "srgb",
582
+ "components": [
583
+ 0.7725,
584
+ 0.6549,
585
+ 0.3647
586
+ ],
587
+ "hex": "#c5a75d"
588
+ },
589
+ "$extensions": {
590
+ "codex.tier": "primitive"
591
+ }
592
+ },
593
+ "500": {
594
+ "$value": {
595
+ "colorSpace": "srgb",
596
+ "components": [
597
+ 0.6588,
598
+ 0.5176,
599
+ 0.0863
600
+ ],
601
+ "hex": "#a88416"
602
+ },
603
+ "$extensions": {
604
+ "codex.tier": "primitive"
605
+ }
606
+ },
607
+ "600": {
608
+ "$value": {
609
+ "colorSpace": "srgb",
610
+ "components": [
611
+ 0.5373,
612
+ 0.4157,
613
+ 0.0078
614
+ ],
615
+ "hex": "#896a02"
616
+ },
617
+ "$extensions": {
618
+ "codex.tier": "primitive"
619
+ }
620
+ },
621
+ "700": {
622
+ "$value": {
623
+ "colorSpace": "srgb",
624
+ "components": [
625
+ 0.4235,
626
+ 0.3255,
627
+ 0.0078
628
+ ],
629
+ "hex": "#6c5302"
630
+ },
631
+ "$extensions": {
632
+ "codex.tier": "primitive"
633
+ }
634
+ },
635
+ "800": {
636
+ "$value": {
637
+ "colorSpace": "srgb",
638
+ "components": [
639
+ 0.2784,
640
+ 0.2078,
641
+ 0.0078
642
+ ],
643
+ "hex": "#473502"
644
+ },
645
+ "$extensions": {
646
+ "codex.tier": "primitive"
647
+ }
648
+ },
649
+ "900": {
650
+ "$value": {
651
+ "colorSpace": "srgb",
652
+ "components": [
653
+ 0.2078,
654
+ 0.1529,
655
+ 0.0
656
+ ],
657
+ "hex": "#352700"
658
+ },
659
+ "$extensions": {
660
+ "codex.tier": "primitive"
661
+ }
662
+ },
663
+ "950": {
664
+ "$value": {
665
+ "colorSpace": "srgb",
666
+ "components": [
667
+ 0.1333,
668
+ 0.0941,
669
+ 0.0
670
+ ],
671
+ "hex": "#221800"
672
+ },
673
+ "$extensions": {
674
+ "codex.tier": "primitive"
675
+ }
676
+ }
677
+ },
678
+ "madder": {
679
+ "$type": "color",
680
+ "$description": "Madder red for danger and errors. Primitive: reference only from semantic tokens.",
681
+ "50": {
682
+ "$value": {
683
+ "colorSpace": "srgb",
684
+ "components": [
685
+ 0.9961,
686
+ 0.9569,
687
+ 0.9529
688
+ ],
689
+ "hex": "#fef4f3"
690
+ },
691
+ "$extensions": {
692
+ "codex.tier": "primitive"
693
+ }
694
+ },
695
+ "100": {
696
+ "$value": {
697
+ "colorSpace": "srgb",
698
+ "components": [
699
+ 0.9961,
700
+ 0.9176,
701
+ 0.9059
702
+ ],
703
+ "hex": "#feeae7"
704
+ },
705
+ "$extensions": {
706
+ "codex.tier": "primitive"
707
+ }
708
+ },
709
+ "200": {
710
+ "$value": {
711
+ "colorSpace": "srgb",
712
+ "components": [
713
+ 1.0,
714
+ 0.8392,
715
+ 0.8196
716
+ ],
717
+ "hex": "#ffd6d1"
718
+ },
719
+ "$extensions": {
720
+ "codex.tier": "primitive"
721
+ }
722
+ },
723
+ "300": {
724
+ "$value": {
725
+ "colorSpace": "srgb",
726
+ "components": [
727
+ 0.9961,
728
+ 0.7098,
729
+ 0.6745
730
+ ],
731
+ "hex": "#feb5ac"
732
+ },
733
+ "$extensions": {
734
+ "codex.tier": "primitive"
735
+ }
736
+ },
737
+ "400": {
738
+ "$value": {
739
+ "colorSpace": "srgb",
740
+ "components": [
741
+ 0.9176,
742
+ 0.5569,
743
+ 0.5137
744
+ ],
745
+ "hex": "#ea8e83"
746
+ },
747
+ "$extensions": {
748
+ "codex.tier": "primitive"
749
+ }
750
+ },
751
+ "500": {
752
+ "$value": {
753
+ "colorSpace": "srgb",
754
+ "components": [
755
+ 0.8196,
756
+ 0.3882,
757
+ 0.349
758
+ ],
759
+ "hex": "#d16359"
760
+ },
761
+ "$extensions": {
762
+ "codex.tier": "primitive"
763
+ }
764
+ },
765
+ "600": {
766
+ "$value": {
767
+ "colorSpace": "srgb",
768
+ "components": [
769
+ 0.7255,
770
+ 0.251,
771
+ 0.2235
772
+ ],
773
+ "hex": "#b94039"
774
+ },
775
+ "$extensions": {
776
+ "codex.tier": "primitive"
777
+ }
778
+ },
779
+ "700": {
780
+ "$value": {
781
+ "colorSpace": "srgb",
782
+ "components": [
783
+ 0.5804,
784
+ 0.1843,
785
+ 0.1608
786
+ ],
787
+ "hex": "#942f29"
788
+ },
789
+ "$extensions": {
790
+ "codex.tier": "primitive"
791
+ }
792
+ },
793
+ "800": {
794
+ "$value": {
795
+ "colorSpace": "srgb",
796
+ "components": [
797
+ 0.3961,
798
+ 0.098,
799
+ 0.0863
800
+ ],
801
+ "hex": "#651916"
802
+ },
803
+ "$extensions": {
804
+ "codex.tier": "primitive"
805
+ }
806
+ },
807
+ "900": {
808
+ "$value": {
809
+ "colorSpace": "srgb",
810
+ "components": [
811
+ 0.3059,
812
+ 0.051,
813
+ 0.0471
814
+ ],
815
+ "hex": "#4e0d0c"
816
+ },
817
+ "$extensions": {
818
+ "codex.tier": "primitive"
819
+ }
820
+ },
821
+ "950": {
822
+ "$value": {
823
+ "colorSpace": "srgb",
824
+ "components": [
825
+ 0.2118,
826
+ 0.0157,
827
+ 0.0157
828
+ ],
829
+ "hex": "#360404"
830
+ },
831
+ "$extensions": {
832
+ "codex.tier": "primitive"
833
+ }
834
+ }
835
+ },
836
+ "amount": {
837
+ "$type": "number",
838
+ "$description": "Mixing, opacity and filter amounts in percent (see codex.unit). Primitive.",
839
+ "1": {
840
+ "$value": 10,
841
+ "$extensions": {
842
+ "codex.tier": "primitive",
843
+ "codex.unit": "%"
844
+ }
845
+ },
846
+ "2": {
847
+ "$value": 14,
848
+ "$extensions": {
849
+ "codex.tier": "primitive",
850
+ "codex.unit": "%"
851
+ }
852
+ },
853
+ "3": {
854
+ "$value": 40,
855
+ "$extensions": {
856
+ "codex.tier": "primitive",
857
+ "codex.unit": "%"
858
+ }
859
+ },
860
+ "4": {
861
+ "$value": 140,
862
+ "$extensions": {
863
+ "codex.tier": "primitive",
864
+ "codex.unit": "%"
865
+ }
866
+ }
867
+ }
868
+ }
869
+ },
870
+ "color": {
871
+ "$type": "color",
872
+ "surface": {
873
+ "base": {
874
+ "$value": "{primitive.color.ash.50}",
875
+ "$description": "Page background and the default canvas behind all content. Use once per page, on body.",
876
+ "$extensions": {
877
+ "codex.modes": {
878
+ "dark": "{primitive.color.ash.900}"
879
+ }
880
+ }
881
+ },
882
+ "raised": {
883
+ "$value": "{primitive.color.ash.0}",
884
+ "$description": "Framed objects that sit on the page: cards, accession labels, the sticky header, table bodies. Never as page background.",
885
+ "$extensions": {
886
+ "codex.modes": {
887
+ "dark": "{primitive.color.ash.850}"
888
+ }
889
+ }
890
+ },
891
+ "sunken": {
892
+ "$value": "{primitive.color.ash.100}",
893
+ "$description": "Recessed areas that hold machine text: code blocks, inline code, table header rows, keyboard keys.",
894
+ "$extensions": {
895
+ "codex.modes": {
896
+ "dark": "{primitive.color.ash.950}"
897
+ }
898
+ }
899
+ },
900
+ "hover": {
901
+ "$value": "{primitive.color.ash.100}",
902
+ "$description": "Background of an interactive row or card while hovered. Only as a hover state; never at rest.",
903
+ "$extensions": {
904
+ "codex.modes": {
905
+ "dark": "{primitive.color.ash.800}"
906
+ }
907
+ }
908
+ },
909
+ "inverse": {
910
+ "$value": "{primitive.color.ash.900}",
911
+ "$description": "Background of tooltips and other small transient labels that must stand out from every surface. Never for panels or cards.",
912
+ "$extensions": {
913
+ "codex.modes": {
914
+ "dark": "{primitive.color.ash.100}"
915
+ }
916
+ }
917
+ },
918
+ "highlight": {
919
+ "$value": "{primitive.color.sap.100}",
920
+ "$description": "Text selection, <mark>, and the current item in site navigation. Never for large areas or decoration.",
921
+ "$extensions": {
922
+ "codex.modes": {
923
+ "dark": "{primitive.color.sap.800}"
924
+ }
925
+ }
926
+ }
927
+ },
928
+ "text": {
929
+ "primary": {
930
+ "$value": "{primitive.color.ash.950}",
931
+ "$description": "Body copy, headings and any text a reader must read. Default text colour.",
932
+ "$extensions": {
933
+ "codex.modes": {
934
+ "dark": "{primitive.color.ash.100}"
935
+ },
936
+ "codex.pairsWith": [
937
+ {
938
+ "token": "color.surface.base",
939
+ "min": 7
940
+ },
941
+ {
942
+ "token": "color.surface.raised",
943
+ "min": 7
944
+ },
945
+ {
946
+ "token": "color.surface.sunken",
947
+ "min": 7
948
+ },
949
+ {
950
+ "token": "color.surface.hover",
951
+ "min": 7
952
+ },
953
+ {
954
+ "token": "color.surface.highlight",
955
+ "min": 7
956
+ },
957
+ {
958
+ "token": "color.status.success.surface",
959
+ "min": 7
960
+ },
961
+ {
962
+ "token": "color.status.warning.surface",
963
+ "min": 7
964
+ },
965
+ {
966
+ "token": "color.status.danger.surface",
967
+ "min": 7
968
+ },
969
+ {
970
+ "token": "color.status.info.surface",
971
+ "min": 7
972
+ }
973
+ ]
974
+ }
975
+ },
976
+ "secondary": {
977
+ "$value": "{primitive.color.ash.800}",
978
+ "$description": "Supporting reading text: ledes, summaries, captions, blockquotes. Still AAA, so it can carry full sentences.",
979
+ "$extensions": {
980
+ "codex.modes": {
981
+ "dark": "{primitive.color.ash.300}"
982
+ },
983
+ "codex.pairsWith": [
984
+ {
985
+ "token": "color.surface.base",
986
+ "min": 7
987
+ },
988
+ {
989
+ "token": "color.surface.raised",
990
+ "min": 7
991
+ },
992
+ {
993
+ "token": "color.surface.sunken",
994
+ "min": 7
995
+ },
996
+ {
997
+ "token": "color.surface.hover",
998
+ "min": 7
999
+ }
1000
+ ]
1001
+ }
1002
+ },
1003
+ "muted": {
1004
+ "$value": "{primitive.color.ash.700}",
1005
+ "$description": "Metadata only: dates, reading time, counts, label keys. Never for sentences or body copy (AA, not AAA).",
1006
+ "$extensions": {
1007
+ "codex.modes": {
1008
+ "dark": "{primitive.color.ash.400}"
1009
+ },
1010
+ "codex.pairsWith": [
1011
+ {
1012
+ "token": "color.surface.base",
1013
+ "min": 4.5
1014
+ },
1015
+ {
1016
+ "token": "color.surface.raised",
1017
+ "min": 4.5
1018
+ },
1019
+ {
1020
+ "token": "color.surface.sunken",
1021
+ "min": 4.5
1022
+ },
1023
+ {
1024
+ "token": "color.surface.hover",
1025
+ "min": 4.5
1026
+ }
1027
+ ]
1028
+ }
1029
+ },
1030
+ "accent": {
1031
+ "$value": "{primitive.color.sap.700}",
1032
+ "$description": "Short accent text: accession numbers, eyebrow labels, the current nav item. Never for paragraphs; use color.link.* for links.",
1033
+ "$extensions": {
1034
+ "codex.modes": {
1035
+ "dark": "{primitive.color.sap.300}"
1036
+ },
1037
+ "codex.pairsWith": [
1038
+ {
1039
+ "token": "color.surface.base",
1040
+ "min": 4.5
1041
+ },
1042
+ {
1043
+ "token": "color.surface.raised",
1044
+ "min": 4.5
1045
+ }
1046
+ ]
1047
+ }
1048
+ },
1049
+ "inverse": {
1050
+ "$value": "{primitive.color.ash.50}",
1051
+ "$description": "Text on color.surface.inverse (tooltips). Only there.",
1052
+ "$extensions": {
1053
+ "codex.modes": {
1054
+ "dark": "{primitive.color.ash.900}"
1055
+ },
1056
+ "codex.pairsWith": [
1057
+ {
1058
+ "token": "color.surface.inverse",
1059
+ "min": 7
1060
+ }
1061
+ ]
1062
+ }
1063
+ },
1064
+ "on-accent": {
1065
+ "$value": "{primitive.color.ash.0}",
1066
+ "$description": "Text and icons placed on color.accent.fill.*, such as primary button labels. Only on accent fills.",
1067
+ "$extensions": {
1068
+ "codex.modes": {
1069
+ "dark": "{primitive.color.ash.1000}"
1070
+ },
1071
+ "codex.pairsWith": [
1072
+ {
1073
+ "token": "color.accent.fill.rest",
1074
+ "min": 4.5
1075
+ },
1076
+ {
1077
+ "token": "color.accent.fill.hover",
1078
+ "min": 4.5
1079
+ }
1080
+ ]
1081
+ }
1082
+ }
1083
+ },
1084
+ "link": {
1085
+ "rest": {
1086
+ "$value": "{primitive.color.sap.800}",
1087
+ "$description": "Inline links in running text. Always underlined so colour is not the only cue.",
1088
+ "$extensions": {
1089
+ "codex.modes": {
1090
+ "dark": "{primitive.color.sap.300}"
1091
+ },
1092
+ "codex.pairsWith": [
1093
+ {
1094
+ "token": "color.surface.base",
1095
+ "min": 7
1096
+ },
1097
+ {
1098
+ "token": "color.surface.raised",
1099
+ "min": 7
1100
+ },
1101
+ {
1102
+ "token": "color.surface.sunken",
1103
+ "min": 7
1104
+ }
1105
+ ]
1106
+ }
1107
+ },
1108
+ "hover": {
1109
+ "$value": "{primitive.color.sap.900}",
1110
+ "$description": "Inline link while hovered or focused. Pair with a thicker underline, not colour alone.",
1111
+ "$extensions": {
1112
+ "codex.modes": {
1113
+ "dark": "{primitive.color.sap.200}"
1114
+ },
1115
+ "codex.pairsWith": [
1116
+ {
1117
+ "token": "color.surface.base",
1118
+ "min": 7
1119
+ },
1120
+ {
1121
+ "token": "color.surface.raised",
1122
+ "min": 7
1123
+ },
1124
+ {
1125
+ "token": "color.surface.hover",
1126
+ "min": 7
1127
+ }
1128
+ ]
1129
+ }
1130
+ }
1131
+ },
1132
+ "border": {
1133
+ "subtle": {
1134
+ "$value": "{primitive.color.ash.200}",
1135
+ "$description": "Decorative dividers inside a component: table row rules, list separators. Never the only boundary of a control.",
1136
+ "$extensions": {
1137
+ "codex.modes": {
1138
+ "dark": "{primitive.color.ash.800}"
1139
+ }
1140
+ }
1141
+ },
1142
+ "default": {
1143
+ "$value": "{primitive.color.ash.300}",
1144
+ "$description": "Outlines of non-interactive framed objects: cards, labels, code blocks, figures.",
1145
+ "$extensions": {
1146
+ "codex.modes": {
1147
+ "dark": "{primitive.color.ash.700}"
1148
+ }
1149
+ }
1150
+ },
1151
+ "strong": {
1152
+ "$value": "{primitive.color.ash.500}",
1153
+ "$description": "Boundaries of interactive controls (secondary buttons, inputs, toggles) and hovered card outlines. Meets 3:1 non-text contrast.",
1154
+ "$extensions": {
1155
+ "codex.modes": {
1156
+ "dark": "{primitive.color.ash.500}"
1157
+ },
1158
+ "codex.pairsWith": [
1159
+ {
1160
+ "token": "color.surface.base",
1161
+ "min": 3
1162
+ },
1163
+ {
1164
+ "token": "color.surface.raised",
1165
+ "min": 3
1166
+ }
1167
+ ]
1168
+ }
1169
+ }
1170
+ },
1171
+ "accent": {
1172
+ "fill": {
1173
+ "rest": {
1174
+ "$value": "{primitive.color.sap.700}",
1175
+ "$description": "Fill of the one primary action in a view. One per view; never for large panels.",
1176
+ "$extensions": {
1177
+ "codex.modes": {
1178
+ "dark": "{primitive.color.sap.300}"
1179
+ },
1180
+ "codex.pairsWith": [
1181
+ {
1182
+ "token": "color.surface.base",
1183
+ "min": 3
1184
+ },
1185
+ {
1186
+ "token": "color.surface.raised",
1187
+ "min": 3
1188
+ }
1189
+ ]
1190
+ }
1191
+ },
1192
+ "hover": {
1193
+ "$value": "{primitive.color.sap.800}",
1194
+ "$description": "Fill of a primary action while hovered or pressed.",
1195
+ "$extensions": {
1196
+ "codex.modes": {
1197
+ "dark": "{primitive.color.sap.200}"
1198
+ },
1199
+ "codex.pairsWith": [
1200
+ {
1201
+ "token": "color.surface.base",
1202
+ "min": 3
1203
+ }
1204
+ ]
1205
+ }
1206
+ }
1207
+ },
1208
+ "border": {
1209
+ "$value": "{primitive.color.sap.600}",
1210
+ "$description": "Accent rules that mark the active item: current nav underline, active TOC entry, hovered tag. Not for static decoration.",
1211
+ "$extensions": {
1212
+ "codex.modes": {
1213
+ "dark": "{primitive.color.sap.400}"
1214
+ },
1215
+ "codex.pairsWith": [
1216
+ {
1217
+ "token": "color.surface.base",
1218
+ "min": 3
1219
+ },
1220
+ {
1221
+ "token": "color.surface.raised",
1222
+ "min": 3
1223
+ }
1224
+ ]
1225
+ }
1226
+ }
1227
+ },
1228
+ "focus": {
1229
+ "ring": {
1230
+ "$value": "{primitive.color.woad.700}",
1231
+ "$description": "Keyboard focus outline on every focusable element. Always drawn with border.focus.offset so it sits on the surface, not the control.",
1232
+ "$extensions": {
1233
+ "codex.modes": {
1234
+ "dark": "{primitive.color.woad.300}"
1235
+ },
1236
+ "codex.pairsWith": [
1237
+ {
1238
+ "token": "color.surface.base",
1239
+ "min": 3
1240
+ },
1241
+ {
1242
+ "token": "color.surface.raised",
1243
+ "min": 3
1244
+ },
1245
+ {
1246
+ "token": "color.surface.sunken",
1247
+ "min": 3
1248
+ }
1249
+ ]
1250
+ }
1251
+ }
1252
+ },
1253
+ "ornament": {
1254
+ "rest": {
1255
+ "$value": "{primitive.color.sap.600}",
1256
+ "$description": "Yarndings ornaments and the specimen plate's contour lines. Decorative only: always aria-hidden, never carries meaning.",
1257
+ "$extensions": {
1258
+ "codex.modes": {
1259
+ "dark": "{primitive.color.sap.400}"
1260
+ },
1261
+ "codex.pairsWith": [
1262
+ {
1263
+ "token": "color.surface.base",
1264
+ "min": 3
1265
+ }
1266
+ ]
1267
+ }
1268
+ },
1269
+ "strong": {
1270
+ "$value": "{primitive.color.sap.800}",
1271
+ "$description": "Emphasised stitches that trace structure inside an ornament, and the plate's index contours (every fifth line). Decorative only; never for text.",
1272
+ "$extensions": {
1273
+ "codex.modes": {
1274
+ "dark": "{primitive.color.sap.200}"
1275
+ }
1276
+ }
1277
+ },
1278
+ "muted": {
1279
+ "$value": "{primitive.color.ash.400}",
1280
+ "$description": "Registration ticks on framed objects and the plate's survey grid. Decorative only; no contrast requirement.",
1281
+ "$extensions": {
1282
+ "codex.modes": {
1283
+ "dark": "{primitive.color.ash.700}"
1284
+ }
1285
+ }
1286
+ }
1287
+ },
1288
+ "status": {
1289
+ "success": {
1290
+ "text": {
1291
+ "$value": "{primitive.color.sap.700}",
1292
+ "$description": "Short labels and titles that signal a completed or passing state. Always paired with a text label, never colour alone.",
1293
+ "$extensions": {
1294
+ "codex.modes": {
1295
+ "dark": "{primitive.color.sap.300}"
1296
+ },
1297
+ "codex.pairsWith": [
1298
+ {
1299
+ "token": "color.status.success.surface",
1300
+ "min": 4.5
1301
+ },
1302
+ {
1303
+ "token": "color.surface.base",
1304
+ "min": 4.5
1305
+ },
1306
+ {
1307
+ "token": "color.surface.raised",
1308
+ "min": 4.5
1309
+ }
1310
+ ]
1311
+ }
1312
+ },
1313
+ "surface": {
1314
+ "$value": "{primitive.color.sap.50}",
1315
+ "$description": "Background of a callout or banner that signals a completed or passing state. Body text on it uses color.text.primary.",
1316
+ "$extensions": {
1317
+ "codex.modes": {
1318
+ "dark": "{primitive.color.sap.950}"
1319
+ }
1320
+ }
1321
+ },
1322
+ "border": {
1323
+ "$value": "{primitive.color.sap.600}",
1324
+ "$description": "Emphasis rule on a component that signals a completed or passing state, e.g. a callout's leading edge.",
1325
+ "$extensions": {
1326
+ "codex.modes": {
1327
+ "dark": "{primitive.color.sap.400}"
1328
+ },
1329
+ "codex.pairsWith": [
1330
+ {
1331
+ "token": "color.status.success.surface",
1332
+ "min": 3
1333
+ }
1334
+ ]
1335
+ }
1336
+ }
1337
+ },
1338
+ "warning": {
1339
+ "text": {
1340
+ "$value": "{primitive.color.weld.700}",
1341
+ "$description": "Short labels and titles that signal a caution the reader should act on. Always paired with a text label, never colour alone.",
1342
+ "$extensions": {
1343
+ "codex.modes": {
1344
+ "dark": "{primitive.color.weld.300}"
1345
+ },
1346
+ "codex.pairsWith": [
1347
+ {
1348
+ "token": "color.status.warning.surface",
1349
+ "min": 4.5
1350
+ },
1351
+ {
1352
+ "token": "color.surface.base",
1353
+ "min": 4.5
1354
+ },
1355
+ {
1356
+ "token": "color.surface.raised",
1357
+ "min": 4.5
1358
+ }
1359
+ ]
1360
+ }
1361
+ },
1362
+ "surface": {
1363
+ "$value": "{primitive.color.weld.50}",
1364
+ "$description": "Background of a callout or banner that signals a caution the reader should act on. Body text on it uses color.text.primary.",
1365
+ "$extensions": {
1366
+ "codex.modes": {
1367
+ "dark": "{primitive.color.weld.950}"
1368
+ }
1369
+ }
1370
+ },
1371
+ "border": {
1372
+ "$value": "{primitive.color.weld.600}",
1373
+ "$description": "Emphasis rule on a component that signals a caution the reader should act on, e.g. a callout's leading edge.",
1374
+ "$extensions": {
1375
+ "codex.modes": {
1376
+ "dark": "{primitive.color.weld.400}"
1377
+ },
1378
+ "codex.pairsWith": [
1379
+ {
1380
+ "token": "color.status.warning.surface",
1381
+ "min": 3
1382
+ }
1383
+ ]
1384
+ }
1385
+ }
1386
+ },
1387
+ "danger": {
1388
+ "text": {
1389
+ "$value": "{primitive.color.madder.700}",
1390
+ "$description": "Short labels and titles that signal an error, a destructive action or a breaking change. Always paired with a text label, never colour alone.",
1391
+ "$extensions": {
1392
+ "codex.modes": {
1393
+ "dark": "{primitive.color.madder.300}"
1394
+ },
1395
+ "codex.pairsWith": [
1396
+ {
1397
+ "token": "color.status.danger.surface",
1398
+ "min": 4.5
1399
+ },
1400
+ {
1401
+ "token": "color.surface.base",
1402
+ "min": 4.5
1403
+ },
1404
+ {
1405
+ "token": "color.surface.raised",
1406
+ "min": 4.5
1407
+ }
1408
+ ]
1409
+ }
1410
+ },
1411
+ "surface": {
1412
+ "$value": "{primitive.color.madder.50}",
1413
+ "$description": "Background of a callout or banner that signals an error, a destructive action or a breaking change. Body text on it uses color.text.primary.",
1414
+ "$extensions": {
1415
+ "codex.modes": {
1416
+ "dark": "{primitive.color.madder.950}"
1417
+ }
1418
+ }
1419
+ },
1420
+ "border": {
1421
+ "$value": "{primitive.color.madder.600}",
1422
+ "$description": "Emphasis rule on a component that signals an error, a destructive action or a breaking change, e.g. a callout's leading edge.",
1423
+ "$extensions": {
1424
+ "codex.modes": {
1425
+ "dark": "{primitive.color.madder.400}"
1426
+ },
1427
+ "codex.pairsWith": [
1428
+ {
1429
+ "token": "color.status.danger.surface",
1430
+ "min": 3
1431
+ }
1432
+ ]
1433
+ }
1434
+ }
1435
+ },
1436
+ "info": {
1437
+ "text": {
1438
+ "$value": "{primitive.color.woad.700}",
1439
+ "$description": "Short labels and titles that signal neutral supplementary information. Always paired with a text label, never colour alone.",
1440
+ "$extensions": {
1441
+ "codex.modes": {
1442
+ "dark": "{primitive.color.woad.300}"
1443
+ },
1444
+ "codex.pairsWith": [
1445
+ {
1446
+ "token": "color.status.info.surface",
1447
+ "min": 4.5
1448
+ },
1449
+ {
1450
+ "token": "color.surface.base",
1451
+ "min": 4.5
1452
+ },
1453
+ {
1454
+ "token": "color.surface.raised",
1455
+ "min": 4.5
1456
+ }
1457
+ ]
1458
+ }
1459
+ },
1460
+ "surface": {
1461
+ "$value": "{primitive.color.woad.50}",
1462
+ "$description": "Background of a callout or banner that signals neutral supplementary information. Body text on it uses color.text.primary.",
1463
+ "$extensions": {
1464
+ "codex.modes": {
1465
+ "dark": "{primitive.color.woad.950}"
1466
+ }
1467
+ }
1468
+ },
1469
+ "border": {
1470
+ "$value": "{primitive.color.woad.600}",
1471
+ "$description": "Emphasis rule on a component that signals neutral supplementary information, e.g. a callout's leading edge.",
1472
+ "$extensions": {
1473
+ "codex.modes": {
1474
+ "dark": "{primitive.color.woad.400}"
1475
+ },
1476
+ "codex.pairsWith": [
1477
+ {
1478
+ "token": "color.status.info.surface",
1479
+ "min": 3
1480
+ }
1481
+ ]
1482
+ }
1483
+ }
1484
+ }
1485
+ },
1486
+ "syntax": {
1487
+ "comment": {
1488
+ "$value": "{primitive.color.ash.700}",
1489
+ "$description": "Code comments and doc strings. Upright, never italic (no mono italic is loaded). Only inside code blocks on color.surface.sunken.",
1490
+ "$extensions": {
1491
+ "codex.modes": {
1492
+ "dark": "{primitive.color.ash.400}"
1493
+ },
1494
+ "codex.pairsWith": [
1495
+ {
1496
+ "token": "color.surface.sunken",
1497
+ "min": 4.5
1498
+ },
1499
+ {
1500
+ "token": "color.syntax.line-highlight",
1501
+ "min": 4.5
1502
+ }
1503
+ ]
1504
+ }
1505
+ },
1506
+ "keyword": {
1507
+ "$value": "{primitive.color.madder.700}",
1508
+ "$description": "Language keywords and control flow: if, return, const, import. Only inside code blocks on color.surface.sunken.",
1509
+ "$extensions": {
1510
+ "codex.modes": {
1511
+ "dark": "{primitive.color.madder.300}"
1512
+ },
1513
+ "codex.pairsWith": [
1514
+ {
1515
+ "token": "color.surface.sunken",
1516
+ "min": 4.5
1517
+ },
1518
+ {
1519
+ "token": "color.syntax.line-highlight",
1520
+ "min": 4.5
1521
+ }
1522
+ ]
1523
+ }
1524
+ },
1525
+ "string": {
1526
+ "$value": "{primitive.color.sap.700}",
1527
+ "$description": "String, regex and template literals. Only inside code blocks on color.surface.sunken.",
1528
+ "$extensions": {
1529
+ "codex.modes": {
1530
+ "dark": "{primitive.color.sap.300}"
1531
+ },
1532
+ "codex.pairsWith": [
1533
+ {
1534
+ "token": "color.surface.sunken",
1535
+ "min": 4.5
1536
+ },
1537
+ {
1538
+ "token": "color.syntax.line-highlight",
1539
+ "min": 4.5
1540
+ }
1541
+ ]
1542
+ }
1543
+ },
1544
+ "number": {
1545
+ "$value": "{primitive.color.weld.700}",
1546
+ "$description": "Numbers, booleans, null and other literal constants. Only inside code blocks on color.surface.sunken.",
1547
+ "$extensions": {
1548
+ "codex.modes": {
1549
+ "dark": "{primitive.color.weld.300}"
1550
+ },
1551
+ "codex.pairsWith": [
1552
+ {
1553
+ "token": "color.surface.sunken",
1554
+ "min": 4.5
1555
+ },
1556
+ {
1557
+ "token": "color.syntax.line-highlight",
1558
+ "min": 4.5
1559
+ }
1560
+ ]
1561
+ }
1562
+ },
1563
+ "function": {
1564
+ "$value": "{primitive.color.woad.700}",
1565
+ "$description": "Function and method names at definition and call sites. Only inside code blocks on color.surface.sunken.",
1566
+ "$extensions": {
1567
+ "codex.modes": {
1568
+ "dark": "{primitive.color.woad.300}"
1569
+ },
1570
+ "codex.pairsWith": [
1571
+ {
1572
+ "token": "color.surface.sunken",
1573
+ "min": 4.5
1574
+ },
1575
+ {
1576
+ "token": "color.syntax.line-highlight",
1577
+ "min": 4.5
1578
+ }
1579
+ ]
1580
+ }
1581
+ },
1582
+ "type": {
1583
+ "$value": "{primitive.color.woad.800}",
1584
+ "$description": "Types, classes, built-ins and namespaces. Only inside code blocks on color.surface.sunken.",
1585
+ "$extensions": {
1586
+ "codex.modes": {
1587
+ "dark": "{primitive.color.woad.200}"
1588
+ },
1589
+ "codex.pairsWith": [
1590
+ {
1591
+ "token": "color.surface.sunken",
1592
+ "min": 4.5
1593
+ },
1594
+ {
1595
+ "token": "color.syntax.line-highlight",
1596
+ "min": 4.5
1597
+ }
1598
+ ]
1599
+ }
1600
+ },
1601
+ "tag": {
1602
+ "$value": "{primitive.color.madder.800}",
1603
+ "$description": "Markup tag names (HTML, JSX, XML). Only inside code blocks on color.surface.sunken.",
1604
+ "$extensions": {
1605
+ "codex.modes": {
1606
+ "dark": "{primitive.color.madder.200}"
1607
+ },
1608
+ "codex.pairsWith": [
1609
+ {
1610
+ "token": "color.surface.sunken",
1611
+ "min": 4.5
1612
+ },
1613
+ {
1614
+ "token": "color.syntax.line-highlight",
1615
+ "min": 4.5
1616
+ }
1617
+ ]
1618
+ }
1619
+ },
1620
+ "attribute": {
1621
+ "$value": "{primitive.color.weld.800}",
1622
+ "$description": "Markup attributes, object keys and CSS properties. Only inside code blocks on color.surface.sunken.",
1623
+ "$extensions": {
1624
+ "codex.modes": {
1625
+ "dark": "{primitive.color.weld.200}"
1626
+ },
1627
+ "codex.pairsWith": [
1628
+ {
1629
+ "token": "color.surface.sunken",
1630
+ "min": 4.5
1631
+ },
1632
+ {
1633
+ "token": "color.syntax.line-highlight",
1634
+ "min": 4.5
1635
+ }
1636
+ ]
1637
+ }
1638
+ },
1639
+ "variable": {
1640
+ "$value": "{primitive.color.ash.950}",
1641
+ "$description": "Identifiers and plain names. Same value as body text so most code reads as text. Only inside code blocks on color.surface.sunken.",
1642
+ "$extensions": {
1643
+ "codex.modes": {
1644
+ "dark": "{primitive.color.ash.100}"
1645
+ },
1646
+ "codex.pairsWith": [
1647
+ {
1648
+ "token": "color.surface.sunken",
1649
+ "min": 4.5
1650
+ },
1651
+ {
1652
+ "token": "color.syntax.line-highlight",
1653
+ "min": 4.5
1654
+ }
1655
+ ]
1656
+ }
1657
+ },
1658
+ "operator": {
1659
+ "$value": "{primitive.color.ash.800}",
1660
+ "$description": "Operators and punctuation such as = => . , ; ( ). Only inside code blocks on color.surface.sunken.",
1661
+ "$extensions": {
1662
+ "codex.modes": {
1663
+ "dark": "{primitive.color.ash.300}"
1664
+ },
1665
+ "codex.pairsWith": [
1666
+ {
1667
+ "token": "color.surface.sunken",
1668
+ "min": 4.5
1669
+ },
1670
+ {
1671
+ "token": "color.syntax.line-highlight",
1672
+ "min": 4.5
1673
+ }
1674
+ ]
1675
+ }
1676
+ },
1677
+ "meta": {
1678
+ "$value": "{primitive.color.sap.800}",
1679
+ "$description": "Decorators, annotations, preprocessor directives and shebangs. Only inside code blocks on color.surface.sunken.",
1680
+ "$extensions": {
1681
+ "codex.modes": {
1682
+ "dark": "{primitive.color.sap.200}"
1683
+ },
1684
+ "codex.pairsWith": [
1685
+ {
1686
+ "token": "color.surface.sunken",
1687
+ "min": 4.5
1688
+ },
1689
+ {
1690
+ "token": "color.syntax.line-highlight",
1691
+ "min": 4.5
1692
+ }
1693
+ ]
1694
+ }
1695
+ },
1696
+ "inserted": {
1697
+ "$value": "{primitive.color.sap.800}",
1698
+ "$description": "Diff lines that were added. Pair with the + prefix, never colour alone. Only inside code blocks on color.surface.sunken.",
1699
+ "$extensions": {
1700
+ "codex.modes": {
1701
+ "dark": "{primitive.color.sap.200}"
1702
+ },
1703
+ "codex.pairsWith": [
1704
+ {
1705
+ "token": "color.surface.sunken",
1706
+ "min": 4.5
1707
+ },
1708
+ {
1709
+ "token": "color.syntax.line-highlight",
1710
+ "min": 4.5
1711
+ }
1712
+ ]
1713
+ }
1714
+ },
1715
+ "deleted": {
1716
+ "$value": "{primitive.color.madder.800}",
1717
+ "$description": "Diff lines that were removed and error tokens. Pair with the - prefix. Only inside code blocks on color.surface.sunken.",
1718
+ "$extensions": {
1719
+ "codex.modes": {
1720
+ "dark": "{primitive.color.madder.200}"
1721
+ },
1722
+ "codex.pairsWith": [
1723
+ {
1724
+ "token": "color.surface.sunken",
1725
+ "min": 4.5
1726
+ },
1727
+ {
1728
+ "token": "color.syntax.line-highlight",
1729
+ "min": 4.5
1730
+ }
1731
+ ]
1732
+ }
1733
+ },
1734
+ "heading": {
1735
+ "$value": "{primitive.color.woad.800}",
1736
+ "$description": "Diff hunk headers and markup headings inside code. Only inside code blocks on color.surface.sunken.",
1737
+ "$extensions": {
1738
+ "codex.modes": {
1739
+ "dark": "{primitive.color.woad.200}"
1740
+ },
1741
+ "codex.pairsWith": [
1742
+ {
1743
+ "token": "color.surface.sunken",
1744
+ "min": 4.5
1745
+ },
1746
+ {
1747
+ "token": "color.syntax.line-highlight",
1748
+ "min": 4.5
1749
+ }
1750
+ ]
1751
+ }
1752
+ },
1753
+ "line-number": {
1754
+ "$value": "{primitive.color.ash.700}",
1755
+ "$description": "Line numbers in the gutter of a code block. Only inside code blocks on color.surface.sunken.",
1756
+ "$extensions": {
1757
+ "codex.modes": {
1758
+ "dark": "{primitive.color.ash.400}"
1759
+ },
1760
+ "codex.pairsWith": [
1761
+ {
1762
+ "token": "color.surface.sunken",
1763
+ "min": 4.5
1764
+ },
1765
+ {
1766
+ "token": "color.syntax.line-highlight",
1767
+ "min": 4.5
1768
+ }
1769
+ ]
1770
+ }
1771
+ },
1772
+ "line-highlight": {
1773
+ "$value": "{primitive.color.ash.200}",
1774
+ "$description": "Background of emphasised lines in a code block (Chroma hl_lines). Only inside code blocks.",
1775
+ "$extensions": {
1776
+ "codex.modes": {
1777
+ "dark": "{primitive.color.ash.900}"
1778
+ }
1779
+ }
1780
+ }
1781
+ },
1782
+ "data": {
1783
+ "1": {
1784
+ "$value": "{primitive.color.woad.600}",
1785
+ "$description": "The first series in diagrams and charts. Use series in order, label every series directly, and never rely on hue alone.",
1786
+ "$extensions": {
1787
+ "codex.modes": {
1788
+ "dark": "{primitive.color.woad.400}"
1789
+ },
1790
+ "codex.pairsWith": [
1791
+ {
1792
+ "token": "color.surface.base",
1793
+ "min": 3
1794
+ },
1795
+ {
1796
+ "token": "color.surface.raised",
1797
+ "min": 3
1798
+ }
1799
+ ]
1800
+ }
1801
+ },
1802
+ "2": {
1803
+ "$value": "{primitive.color.sap.600}",
1804
+ "$description": "The second series in diagrams and charts. Use series in order, label every series directly, and never rely on hue alone.",
1805
+ "$extensions": {
1806
+ "codex.modes": {
1807
+ "dark": "{primitive.color.sap.400}"
1808
+ },
1809
+ "codex.pairsWith": [
1810
+ {
1811
+ "token": "color.surface.base",
1812
+ "min": 3
1813
+ },
1814
+ {
1815
+ "token": "color.surface.raised",
1816
+ "min": 3
1817
+ }
1818
+ ]
1819
+ }
1820
+ },
1821
+ "3": {
1822
+ "$value": "{primitive.color.madder.600}",
1823
+ "$description": "The third series in diagrams and charts. Use series in order, label every series directly, and never rely on hue alone.",
1824
+ "$extensions": {
1825
+ "codex.modes": {
1826
+ "dark": "{primitive.color.madder.400}"
1827
+ },
1828
+ "codex.pairsWith": [
1829
+ {
1830
+ "token": "color.surface.base",
1831
+ "min": 3
1832
+ },
1833
+ {
1834
+ "token": "color.surface.raised",
1835
+ "min": 3
1836
+ }
1837
+ ]
1838
+ }
1839
+ },
1840
+ "4": {
1841
+ "$value": "{primitive.color.weld.600}",
1842
+ "$description": "The fourth series in diagrams and charts. Use series in order, label every series directly, and never rely on hue alone.",
1843
+ "$extensions": {
1844
+ "codex.modes": {
1845
+ "dark": "{primitive.color.weld.400}"
1846
+ },
1847
+ "codex.pairsWith": [
1848
+ {
1849
+ "token": "color.surface.base",
1850
+ "min": 3
1851
+ },
1852
+ {
1853
+ "token": "color.surface.raised",
1854
+ "min": 3
1855
+ }
1856
+ ]
1857
+ }
1858
+ },
1859
+ "5": {
1860
+ "$value": "{primitive.color.ash.600}",
1861
+ "$description": "The fifth series in diagrams and charts. Use series in order, label every series directly, and never rely on hue alone.",
1862
+ "$extensions": {
1863
+ "codex.modes": {
1864
+ "dark": "{primitive.color.ash.400}"
1865
+ },
1866
+ "codex.pairsWith": [
1867
+ {
1868
+ "token": "color.surface.base",
1869
+ "min": 3
1870
+ },
1871
+ {
1872
+ "token": "color.surface.raised",
1873
+ "min": 3
1874
+ }
1875
+ ]
1876
+ }
1877
+ }
1878
+ },
1879
+ "backdrop": {
1880
+ "$type": "number",
1881
+ "tint": {
1882
+ "$value": "{primitive.color.amount.3}",
1883
+ "$description": "Share of color.surface.base laid over the blurred backdrop contours, in percent: enough to soften the lines into relief behind the header, the opening of a page and the footer."
1884
+ },
1885
+ "grain": {
1886
+ "$value": "{primitive.color.amount.2}",
1887
+ "$description": "Opacity of the monochrome grain over the frost, in percent. Texture only; never raise it until it competes with text."
1888
+ },
1889
+ "saturation": {
1890
+ "$value": "{primitive.color.amount.4}",
1891
+ "$description": "Saturation applied with the frost blur, in percent, so blurred contour colour stays green instead of greying out."
1892
+ }
1893
+ },
1894
+ "wash": {
1895
+ "$type": "number",
1896
+ "hover": {
1897
+ "$value": "{primitive.color.amount.1}",
1898
+ "$description": "Share of color.text.primary mixed into a transparent hover background, in percent: header controls on the frosted backdrop, where a solid color.surface.hover would match the frost. Not for controls on a plain surface."
1899
+ }
1900
+ }
1901
+ }
1902
+ }