@primer/primitives 11.4.0 → 11.4.1-rc.4e2d1de5

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 (131) hide show
  1. package/DESIGN_TOKENS_GUIDE.md +185 -0
  2. package/DESIGN_TOKENS_SPEC.md +565 -0
  3. package/dist/build/formats/markdownLlmGuidelines.d.ts +7 -6
  4. package/dist/build/formats/markdownLlmGuidelines.js +1034 -60
  5. package/dist/build/schemas/borderToken.d.ts +16 -2
  6. package/dist/build/schemas/dimensionToken.d.ts +8 -1
  7. package/dist/build/schemas/dimensionValue.d.ts +24 -1
  8. package/dist/build/schemas/dimensionValue.js +20 -1
  9. package/dist/build/schemas/durationToken.d.ts +7 -1
  10. package/dist/build/schemas/durationValue.d.ts +11 -1
  11. package/dist/build/schemas/durationValue.js +13 -3
  12. package/dist/build/schemas/shadowToken.d.ts +672 -84
  13. package/dist/build/schemas/transitionToken.d.ts +14 -2
  14. package/dist/build/schemas/typographyToken.d.ts +32 -4
  15. package/dist/build/transformers/dimensionToPixelUnitless.d.ts +3 -2
  16. package/dist/build/transformers/dimensionToPixelUnitless.js +22 -26
  17. package/dist/build/transformers/dimensionToRem.d.ts +2 -1
  18. package/dist/build/transformers/dimensionToRem.js +21 -22
  19. package/dist/build/transformers/dimensionToRemPxArray.d.ts +2 -1
  20. package/dist/build/transformers/dimensionToRemPxArray.js +21 -22
  21. package/dist/build/transformers/durationToCss.d.ts +2 -1
  22. package/dist/build/transformers/durationToCss.js +18 -11
  23. package/dist/build/transformers/utilities/parseDimension.d.ts +12 -0
  24. package/dist/build/transformers/utilities/parseDimension.js +31 -0
  25. package/dist/build/types/dimensionTokenValue.d.ts +9 -0
  26. package/dist/css/functional/themes/dark-colorblind-high-contrast.css +18 -14
  27. package/dist/css/functional/themes/dark-colorblind.css +18 -14
  28. package/dist/css/functional/themes/dark-dimmed-high-contrast.css +18 -14
  29. package/dist/css/functional/themes/dark-dimmed.css +18 -14
  30. package/dist/css/functional/themes/dark-high-contrast.css +18 -14
  31. package/dist/css/functional/themes/dark-tritanopia-high-contrast.css +18 -14
  32. package/dist/css/functional/themes/dark-tritanopia.css +18 -14
  33. package/dist/css/functional/themes/dark.css +18 -14
  34. package/dist/css/functional/themes/light-colorblind-high-contrast.css +18 -14
  35. package/dist/css/functional/themes/light-colorblind.css +18 -14
  36. package/dist/css/functional/themes/light-high-contrast.css +18 -14
  37. package/dist/css/functional/themes/light-tritanopia-high-contrast.css +18 -14
  38. package/dist/css/functional/themes/light-tritanopia.css +18 -14
  39. package/dist/css/functional/themes/light.css +18 -14
  40. package/dist/css/primitives.css +4 -0
  41. package/dist/docs/base/motion/motion.json +96 -24
  42. package/dist/docs/base/size/size.json +76 -19
  43. package/dist/docs/base/typography/typography.json +24 -6
  44. package/dist/docs/functional/size/border.json +20 -5
  45. package/dist/docs/functional/size/breakpoints.json +24 -6
  46. package/dist/docs/functional/size/radius.json +16 -4
  47. package/dist/docs/functional/size/size.json +60 -15
  48. package/dist/docs/functional/themes/dark-colorblind-high-contrast.json +109 -7
  49. package/dist/docs/functional/themes/dark-colorblind.json +109 -7
  50. package/dist/docs/functional/themes/dark-dimmed-high-contrast.json +109 -7
  51. package/dist/docs/functional/themes/dark-dimmed.json +109 -7
  52. package/dist/docs/functional/themes/dark-high-contrast.json +109 -7
  53. package/dist/docs/functional/themes/dark-tritanopia-high-contrast.json +109 -7
  54. package/dist/docs/functional/themes/dark-tritanopia.json +109 -7
  55. package/dist/docs/functional/themes/dark.json +109 -7
  56. package/dist/docs/functional/themes/light-colorblind-high-contrast.json +115 -13
  57. package/dist/docs/functional/themes/light-colorblind.json +115 -13
  58. package/dist/docs/functional/themes/light-high-contrast.json +115 -13
  59. package/dist/docs/functional/themes/light-tritanopia-high-contrast.json +115 -13
  60. package/dist/docs/functional/themes/light-tritanopia.json +115 -13
  61. package/dist/docs/functional/themes/light.json +115 -13
  62. package/dist/docs/functional/typography/typography.json +8 -2
  63. package/dist/fallbacks/base/motion/motion.json +48 -12
  64. package/dist/figma/themes/light-colorblind.json +4 -4
  65. package/dist/figma/themes/light-high-contrast.json +4 -4
  66. package/dist/figma/themes/light-tritanopia.json +4 -4
  67. package/dist/figma/themes/light.json +4 -4
  68. package/dist/internalCss/dark-colorblind-high-contrast.css +14 -14
  69. package/dist/internalCss/dark-colorblind.css +14 -14
  70. package/dist/internalCss/dark-dimmed-high-contrast.css +14 -14
  71. package/dist/internalCss/dark-dimmed.css +14 -14
  72. package/dist/internalCss/dark-high-contrast.css +14 -14
  73. package/dist/internalCss/dark-tritanopia-high-contrast.css +14 -14
  74. package/dist/internalCss/dark-tritanopia.css +14 -14
  75. package/dist/internalCss/dark.css +14 -14
  76. package/dist/internalCss/light-colorblind-high-contrast.css +14 -14
  77. package/dist/internalCss/light-colorblind.css +14 -14
  78. package/dist/internalCss/light-high-contrast.css +14 -14
  79. package/dist/internalCss/light-tritanopia-high-contrast.css +14 -14
  80. package/dist/internalCss/light-tritanopia.css +14 -14
  81. package/dist/internalCss/light.css +14 -14
  82. package/dist/styleLint/base/motion/motion.json +96 -24
  83. package/dist/styleLint/base/size/size.json +76 -19
  84. package/dist/styleLint/base/typography/typography.json +30 -12
  85. package/dist/styleLint/functional/size/border.json +21 -6
  86. package/dist/styleLint/functional/size/breakpoints.json +24 -6
  87. package/dist/styleLint/functional/size/radius.json +17 -5
  88. package/dist/styleLint/functional/size/size-coarse.json +3 -3
  89. package/dist/styleLint/functional/size/size-fine.json +3 -3
  90. package/dist/styleLint/functional/size/size.json +111 -66
  91. package/dist/styleLint/functional/themes/dark-colorblind-high-contrast.json +129 -27
  92. package/dist/styleLint/functional/themes/dark-colorblind.json +129 -27
  93. package/dist/styleLint/functional/themes/dark-dimmed-high-contrast.json +129 -27
  94. package/dist/styleLint/functional/themes/dark-dimmed.json +129 -27
  95. package/dist/styleLint/functional/themes/dark-high-contrast.json +129 -27
  96. package/dist/styleLint/functional/themes/dark-tritanopia-high-contrast.json +129 -27
  97. package/dist/styleLint/functional/themes/dark-tritanopia.json +129 -27
  98. package/dist/styleLint/functional/themes/dark.json +129 -27
  99. package/dist/styleLint/functional/themes/light-colorblind-high-contrast.json +135 -33
  100. package/dist/styleLint/functional/themes/light-colorblind.json +135 -33
  101. package/dist/styleLint/functional/themes/light-high-contrast.json +135 -33
  102. package/dist/styleLint/functional/themes/light-tritanopia-high-contrast.json +135 -33
  103. package/dist/styleLint/functional/themes/light-tritanopia.json +135 -33
  104. package/dist/styleLint/functional/themes/light.json +135 -33
  105. package/dist/styleLint/functional/typography/typography.json +28 -22
  106. package/package.json +6 -5
  107. package/src/tokens/base/motion/timing.json5 +12 -12
  108. package/src/tokens/base/size/size.json5 +19 -19
  109. package/src/tokens/base/typography/typography.json5 +6 -6
  110. package/src/tokens/functional/color/bgColor.json5 +8 -0
  111. package/src/tokens/functional/color/display.json5 +7 -0
  112. package/src/tokens/functional/color/fgColor.json5 +8 -0
  113. package/src/tokens/functional/color/syntax.json5 +14 -0
  114. package/src/tokens/functional/shadow/shadow.json5 +39 -4
  115. package/src/tokens/functional/size/border.json5 +5 -5
  116. package/src/tokens/functional/size/breakpoints.json5 +6 -6
  117. package/src/tokens/functional/size/radius.json5 +4 -4
  118. package/src/tokens/functional/size/size.json5 +15 -15
  119. package/src/tokens/functional/typography/typography.json5 +8 -4
  120. package/dist/build/parsers/index.d.ts +0 -1
  121. package/dist/build/parsers/index.js +0 -1
  122. package/dist/build/parsers/w3cJsonParser.d.ts +0 -6
  123. package/dist/build/parsers/w3cJsonParser.js +0 -25
  124. package/dist/removed/testing.json5 +0 -4
  125. package/guidelines/color.llm.md +0 -16
  126. package/guidelines/guidelines.llm.md +0 -34
  127. package/guidelines/motion.llm.md +0 -41
  128. package/guidelines/spacing.llm.md +0 -20
  129. package/guidelines/typography.llm.md +0 -14
  130. package/src/tokens/removed/testing.json5 +0 -4
  131. package/token-guidelines.llm.md +0 -695
@@ -546,6 +546,10 @@
546
546
  },
547
547
  "org.primer.overrides": {
548
548
  "dark": "#ffffff"
549
+ },
550
+ "org.primer.llm": {
551
+ "doNotUse": true,
552
+ "rules": "Avoid using raw black. Use semantic alternatives: bgColor.emphasis for dark backgrounds, bgColor.inverse for inverted contexts. Raw black/white ignore theme preferences and accessibility settings."
549
553
  }
550
554
  },
551
555
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -562,6 +566,10 @@
562
566
  },
563
567
  "org.primer.overrides": {
564
568
  "dark": "{base.color.neutral.0}"
569
+ },
570
+ "org.primer.llm": {
571
+ "doNotUse": true,
572
+ "rules": "Avoid using raw black. Use semantic alternatives: bgColor.emphasis for dark backgrounds, bgColor.inverse for inverted contexts. Raw black/white ignore theme preferences and accessibility settings."
565
573
  }
566
574
  },
567
575
  "key": "{bgColor.black}"
@@ -2436,6 +2444,10 @@
2436
2444
  },
2437
2445
  "org.primer.overrides": {
2438
2446
  "dark": "#010409"
2447
+ },
2448
+ "org.primer.llm": {
2449
+ "doNotUse": true,
2450
+ "rules": "Avoid using raw white. Use semantic alternatives: bgColor.default for standard backgrounds, bgColor.inset for recessed areas, or bgColor.inverse for inverted contexts. Raw black/white ignore theme preferences and accessibility settings."
2439
2451
  }
2440
2452
  },
2441
2453
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -2452,6 +2464,10 @@
2452
2464
  },
2453
2465
  "org.primer.overrides": {
2454
2466
  "dark": "{base.color.neutral.13}"
2467
+ },
2468
+ "org.primer.llm": {
2469
+ "doNotUse": true,
2470
+ "rules": "Avoid using raw white. Use semantic alternatives: bgColor.default for standard backgrounds, bgColor.inset for recessed areas, or bgColor.inverse for inverted contexts. Raw black/white ignore theme preferences and accessibility settings."
2455
2471
  }
2456
2472
  },
2457
2473
  "key": "{bgColor.white}"
@@ -2462,7 +2478,7 @@
2462
2478
  },
2463
2479
  "border-accent-emphasis": {
2464
2480
  "key": "{border.accent.emphasis}",
2465
- "$value": "0.00390625rem,0.0625px solid #0349b4",
2481
+ "$value": "0.0625rem,1px solid #0349b4",
2466
2482
  "$type": "border",
2467
2483
  "filePath": "src/tokens/functional/border/border.json5",
2468
2484
  "isSource": true,
@@ -2481,7 +2497,7 @@
2481
2497
  },
2482
2498
  "border-accent-muted": {
2483
2499
  "key": "{border.accent.muted}",
2484
- "$value": "0.00390625rem,0.0625px solid #368cf9",
2500
+ "$value": "0.0625rem,1px solid #368cf9",
2485
2501
  "$type": "border",
2486
2502
  "filePath": "src/tokens/functional/border/border.json5",
2487
2503
  "isSource": true,
@@ -2500,7 +2516,7 @@
2500
2516
  },
2501
2517
  "border-attention-emphasis": {
2502
2518
  "key": "{border.attention.emphasis}",
2503
- "$value": "0.00390625rem,0.0625px solid #744500",
2519
+ "$value": "0.0625rem,1px solid #744500",
2504
2520
  "$type": "border",
2505
2521
  "filePath": "src/tokens/functional/border/border.json5",
2506
2522
  "isSource": true,
@@ -2519,7 +2535,7 @@
2519
2535
  },
2520
2536
  "border-attention-muted": {
2521
2537
  "key": "{border.attention.muted}",
2522
- "$value": "0.00390625rem,0.0625px solid #b58407",
2538
+ "$value": "0.0625rem,1px solid #b58407",
2523
2539
  "$type": "border",
2524
2540
  "filePath": "src/tokens/functional/border/border.json5",
2525
2541
  "isSource": true,
@@ -2538,7 +2554,7 @@
2538
2554
  },
2539
2555
  "border-closed-emphasis": {
2540
2556
  "key": "{border.closed.emphasis}",
2541
- "$value": "0.00390625rem,0.0625px solid #a0111f",
2557
+ "$value": "0.0625rem,1px solid #a0111f",
2542
2558
  "$type": "border",
2543
2559
  "filePath": "src/tokens/functional/border/border.json5",
2544
2560
  "isSource": true,
@@ -2553,7 +2569,7 @@
2553
2569
  },
2554
2570
  "border-closed-muted": {
2555
2571
  "key": "{border.closed.muted}",
2556
- "$value": "0.00390625rem,0.0625px solid #ee5a5d",
2572
+ "$value": "0.0625rem,1px solid #ee5a5d",
2557
2573
  "$type": "border",
2558
2574
  "filePath": "src/tokens/functional/border/border.json5",
2559
2575
  "isSource": true,
@@ -2568,7 +2584,7 @@
2568
2584
  },
2569
2585
  "border-danger-emphasis": {
2570
2586
  "key": "{border.danger.emphasis}",
2571
- "$value": "0.00390625rem,0.0625px solid #a0111f",
2587
+ "$value": "0.0625rem,1px solid #a0111f",
2572
2588
  "$type": "border",
2573
2589
  "filePath": "src/tokens/functional/border/border.json5",
2574
2590
  "isSource": true,
@@ -2587,7 +2603,7 @@
2587
2603
  },
2588
2604
  "border-danger-muted": {
2589
2605
  "key": "{border.danger.muted}",
2590
- "$value": "0.00390625rem,0.0625px solid #ee5a5d",
2606
+ "$value": "0.0625rem,1px solid #ee5a5d",
2591
2607
  "$type": "border",
2592
2608
  "filePath": "src/tokens/functional/border/border.json5",
2593
2609
  "isSource": true,
@@ -2606,7 +2622,7 @@
2606
2622
  },
2607
2623
  "border-default": {
2608
2624
  "key": "{border.default}",
2609
- "$value": "0.00390625rem,0.0625px solid #454c54",
2625
+ "$value": "0.0625rem,1px solid #454c54",
2610
2626
  "$type": "border",
2611
2627
  "filePath": "src/tokens/functional/border/border.json5",
2612
2628
  "isSource": true,
@@ -2625,7 +2641,7 @@
2625
2641
  },
2626
2642
  "border-disabled": {
2627
2643
  "key": "{border.disabled}",
2628
- "$value": "0.00390625rem,0.0625px solid #59636e1f",
2644
+ "$value": "0.0625rem,1px solid #59636e1f",
2629
2645
  "$type": "border",
2630
2646
  "filePath": "src/tokens/functional/border/border.json5",
2631
2647
  "isSource": true,
@@ -2644,7 +2660,7 @@
2644
2660
  },
2645
2661
  "border-done-emphasis": {
2646
2662
  "key": "{border.done.emphasis}",
2647
- "$value": "0.00390625rem,0.0625px solid #622cbc",
2663
+ "$value": "0.0625rem,1px solid #622cbc",
2648
2664
  "$type": "border",
2649
2665
  "filePath": "src/tokens/functional/border/border.json5",
2650
2666
  "isSource": true,
@@ -2663,7 +2679,7 @@
2663
2679
  },
2664
2680
  "border-done-muted": {
2665
2681
  "key": "{border.done.muted}",
2666
- "$value": "0.00390625rem,0.0625px solid #a371f7",
2682
+ "$value": "0.0625rem,1px solid #a371f7",
2667
2683
  "$type": "border",
2668
2684
  "filePath": "src/tokens/functional/border/border.json5",
2669
2685
  "isSource": true,
@@ -2682,7 +2698,7 @@
2682
2698
  },
2683
2699
  "border-emphasis": {
2684
2700
  "key": "{border.emphasis}",
2685
- "$value": "0.00390625rem,0.0625px solid #454c54",
2701
+ "$value": "0.0625rem,1px solid #454c54",
2686
2702
  "$type": "border",
2687
2703
  "filePath": "src/tokens/functional/border/border.json5",
2688
2704
  "isSource": true,
@@ -2701,7 +2717,7 @@
2701
2717
  },
2702
2718
  "border-muted": {
2703
2719
  "key": "{border.muted}",
2704
- "$value": "0.00390625rem,0.0625px solid #454c54",
2720
+ "$value": "0.0625rem,1px solid #454c54",
2705
2721
  "$type": "border",
2706
2722
  "filePath": "src/tokens/functional/border/border.json5",
2707
2723
  "isSource": true,
@@ -2720,7 +2736,7 @@
2720
2736
  },
2721
2737
  "border-neutral-emphasis": {
2722
2738
  "key": "{border.neutral.emphasis}",
2723
- "$value": "0.00390625rem,0.0625px solid #59636e",
2739
+ "$value": "0.0625rem,1px solid #59636e",
2724
2740
  "$type": "border",
2725
2741
  "filePath": "src/tokens/functional/border/border.json5",
2726
2742
  "isSource": true,
@@ -2739,7 +2755,7 @@
2739
2755
  },
2740
2756
  "border-neutral-muted": {
2741
2757
  "key": "{border.neutral.muted}",
2742
- "$value": "0.00390625rem,0.0625px solid #454c54",
2758
+ "$value": "0.0625rem,1px solid #454c54",
2743
2759
  "$type": "border",
2744
2760
  "filePath": "src/tokens/functional/border/border.json5",
2745
2761
  "isSource": true,
@@ -2758,7 +2774,7 @@
2758
2774
  },
2759
2775
  "border-open-emphasis": {
2760
2776
  "key": "{border.open.emphasis}",
2761
- "$value": "0.00390625rem,0.0625px solid #0349b4",
2777
+ "$value": "0.0625rem,1px solid #0349b4",
2762
2778
  "$type": "border",
2763
2779
  "filePath": "src/tokens/functional/border/border.json5",
2764
2780
  "isSource": true,
@@ -2773,7 +2789,7 @@
2773
2789
  },
2774
2790
  "border-open-muted": {
2775
2791
  "key": "{border.open.muted}",
2776
- "$value": "0.00390625rem,0.0625px solid #368cf9",
2792
+ "$value": "0.0625rem,1px solid #368cf9",
2777
2793
  "$type": "border",
2778
2794
  "filePath": "src/tokens/functional/border/border.json5",
2779
2795
  "isSource": true,
@@ -2788,7 +2804,7 @@
2788
2804
  },
2789
2805
  "border-severe-emphasis": {
2790
2806
  "key": "{border.severe.emphasis}",
2791
- "$value": "0.00390625rem,0.0625px solid #a0111f",
2807
+ "$value": "0.0625rem,1px solid #a0111f",
2792
2808
  "$type": "border",
2793
2809
  "filePath": "src/tokens/functional/border/border.json5",
2794
2810
  "isSource": true,
@@ -2807,7 +2823,7 @@
2807
2823
  },
2808
2824
  "border-severe-muted": {
2809
2825
  "key": "{border.severe.muted}",
2810
- "$value": "0.00390625rem,0.0625px solid #ee5a5d",
2826
+ "$value": "0.0625rem,1px solid #ee5a5d",
2811
2827
  "$type": "border",
2812
2828
  "filePath": "src/tokens/functional/border/border.json5",
2813
2829
  "isSource": true,
@@ -2826,7 +2842,7 @@
2826
2842
  },
2827
2843
  "border-sponsors-emphasis": {
2828
2844
  "key": "{border.sponsors.emphasis}",
2829
- "$value": "0.00390625rem,0.0625px solid #971368",
2845
+ "$value": "0.0625rem,1px solid #971368",
2830
2846
  "$type": "border",
2831
2847
  "filePath": "src/tokens/functional/border/border.json5",
2832
2848
  "isSource": true,
@@ -2845,7 +2861,7 @@
2845
2861
  },
2846
2862
  "border-sponsors-muted": {
2847
2863
  "key": "{border.sponsors.muted}",
2848
- "$value": "0.00390625rem,0.0625px solid #ed4baf",
2864
+ "$value": "0.0625rem,1px solid #ed4baf",
2849
2865
  "$type": "border",
2850
2866
  "filePath": "src/tokens/functional/border/border.json5",
2851
2867
  "isSource": true,
@@ -2864,7 +2880,7 @@
2864
2880
  },
2865
2881
  "border-success-emphasis": {
2866
2882
  "key": "{border.success.emphasis}",
2867
- "$value": "0.00390625rem,0.0625px solid #0349b4",
2883
+ "$value": "0.0625rem,1px solid #0349b4",
2868
2884
  "$type": "border",
2869
2885
  "filePath": "src/tokens/functional/border/border.json5",
2870
2886
  "isSource": true,
@@ -2883,7 +2899,7 @@
2883
2899
  },
2884
2900
  "border-success-muted": {
2885
2901
  "key": "{border.success.muted}",
2886
- "$value": "0.00390625rem,0.0625px solid #368cf9",
2902
+ "$value": "0.0625rem,1px solid #368cf9",
2887
2903
  "$type": "border",
2888
2904
  "filePath": "src/tokens/functional/border/border.json5",
2889
2905
  "isSource": true,
@@ -2902,7 +2918,7 @@
2902
2918
  },
2903
2919
  "border-transparent": {
2904
2920
  "key": "{border.transparent}",
2905
- "$value": "0.00390625rem,0.0625px solid #ffffff00",
2921
+ "$value": "0.0625rem,1px solid #ffffff00",
2906
2922
  "$type": "border",
2907
2923
  "filePath": "src/tokens/functional/border/border.json5",
2908
2924
  "isSource": true,
@@ -2921,7 +2937,7 @@
2921
2937
  },
2922
2938
  "border-upsell-emphasis": {
2923
2939
  "key": "{border.upsell.emphasis}",
2924
- "$value": "0.00390625rem,0.0625px solid #622cbc",
2940
+ "$value": "0.0625rem,1px solid #622cbc",
2925
2941
  "$type": "border",
2926
2942
  "filePath": "src/tokens/functional/border/border.json5",
2927
2943
  "isSource": true,
@@ -2940,7 +2956,7 @@
2940
2956
  },
2941
2957
  "border-upsell-muted": {
2942
2958
  "key": "{border.upsell.muted}",
2943
- "$value": "0.00390625rem,0.0625px solid #a371f7",
2959
+ "$value": "0.0625rem,1px solid #a371f7",
2944
2960
  "$type": "border",
2945
2961
  "filePath": "src/tokens/functional/border/border.json5",
2946
2962
  "isSource": true,
@@ -37222,6 +37238,10 @@
37222
37238
  },
37223
37239
  "org.primer.overrides": {
37224
37240
  "dark": "#ffffff"
37241
+ },
37242
+ "org.primer.llm": {
37243
+ "doNotUse": true,
37244
+ "rules": "Avoid using raw black. Use semantic alternatives: fgColor.default for standard text, fgColor.muted for secondary text. Raw black/white ignore theme preferences and accessibility settings."
37225
37245
  }
37226
37246
  },
37227
37247
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -37238,6 +37258,10 @@
37238
37258
  },
37239
37259
  "org.primer.overrides": {
37240
37260
  "dark": "{base.color.neutral.0}"
37261
+ },
37262
+ "org.primer.llm": {
37263
+ "doNotUse": true,
37264
+ "rules": "Avoid using raw black. Use semantic alternatives: fgColor.default for standard text, fgColor.muted for secondary text. Raw black/white ignore theme preferences and accessibility settings."
37241
37265
  }
37242
37266
  },
37243
37267
  "key": "{fgColor.black}"
@@ -38211,6 +38235,10 @@
38211
38235
  },
38212
38236
  "org.primer.overrides": {
38213
38237
  "dark": "#010409"
38238
+ },
38239
+ "org.primer.llm": {
38240
+ "doNotUse": true,
38241
+ "rules": "Avoid using raw white. Use semantic alternatives: fgColor.onEmphasis for text on dark backgrounds, fgColor.onInverse for inverted contexts. Raw black/white ignore theme preferences and accessibility settings."
38214
38242
  }
38215
38243
  },
38216
38244
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -38227,6 +38255,10 @@
38227
38255
  },
38228
38256
  "org.primer.overrides": {
38229
38257
  "dark": "{base.color.neutral.13}"
38258
+ },
38259
+ "org.primer.llm": {
38260
+ "doNotUse": true,
38261
+ "rules": "Avoid using raw white. Use semantic alternatives: fgColor.onEmphasis for text on dark backgrounds, fgColor.onInverse for inverted contexts. Raw black/white ignore theme preferences and accessibility settings."
38230
38262
  }
38231
38263
  },
38232
38264
  "key": "{fgColor.white}"
@@ -47509,6 +47541,7 @@
47509
47541
  "key": "{shadow.floating.legacy}",
47510
47542
  "$value": "0px 6px 12px -3px #25292e0a, 0px 6px 18px 0px #25292e1f",
47511
47543
  "$type": "shadow",
47544
+ "$description": "Legacy floating shadow for backward compatibility",
47512
47545
  "$extensions": {
47513
47546
  "org.primer.figma": {},
47514
47547
  "org.primer.overrides": {
@@ -47535,6 +47568,10 @@
47535
47568
  "isSource": true,
47536
47569
  "$type": "shadow"
47537
47570
  }
47571
+ },
47572
+ "org.primer.llm": {
47573
+ "usage": ["legacy-component", "backward-compatibility"],
47574
+ "rules": "DEPRECATED: Use shadow-floating-small instead. Only use for maintaining backward compatibility with existing implementations."
47538
47575
  }
47539
47576
  },
47540
47577
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -47559,6 +47596,7 @@
47559
47596
  }
47560
47597
  ],
47561
47598
  "$type": "shadow",
47599
+ "$description": "Legacy floating shadow for backward compatibility",
47562
47600
  "$extensions": {
47563
47601
  "org.primer.figma": {},
47564
47602
  "org.primer.overrides": {
@@ -47585,6 +47623,10 @@
47585
47623
  "isSource": true,
47586
47624
  "$type": "shadow"
47587
47625
  }
47626
+ },
47627
+ "org.primer.llm": {
47628
+ "usage": ["legacy-component", "backward-compatibility"],
47629
+ "rules": "DEPRECATED: Use shadow-floating-small instead. Only use for maintaining backward compatibility with existing implementations."
47588
47630
  }
47589
47631
  },
47590
47632
  "key": "{shadow.floating.legacy}"
@@ -47597,6 +47639,7 @@
47597
47639
  "key": "{shadow.floating.medium}",
47598
47640
  "$value": "0px 0px 0px 1px #454c54, 0px 8px 16px -4px #25292e14, 0px 4px 32px -4px #25292e14, 0px 24px 48px -12px #25292e14, 0px 48px 96px -24px #25292e14",
47599
47641
  "$type": "shadow",
47642
+ "$description": "Medium floating shadow for popovers and action menus",
47600
47643
  "$extensions": {
47601
47644
  "org.primer.figma": {
47602
47645
  "collection": "mode",
@@ -47650,6 +47693,10 @@
47650
47693
  "isSource": true,
47651
47694
  "$type": "shadow"
47652
47695
  }
47696
+ },
47697
+ "org.primer.llm": {
47698
+ "usage": ["popover", "action-menu", "select-panel", "autocomplete"],
47699
+ "rules": "Use for medium-sized floating elements like popovers and action menus. More prominent than small but less than dialogs. Do NOT use for full modals."
47653
47700
  }
47654
47701
  },
47655
47702
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -47698,6 +47745,7 @@
47698
47745
  }
47699
47746
  ],
47700
47747
  "$type": "shadow",
47748
+ "$description": "Medium floating shadow for popovers and action menus",
47701
47749
  "$extensions": {
47702
47750
  "org.primer.figma": {
47703
47751
  "collection": "mode",
@@ -47751,6 +47799,10 @@
47751
47799
  "isSource": true,
47752
47800
  "$type": "shadow"
47753
47801
  }
47802
+ },
47803
+ "org.primer.llm": {
47804
+ "usage": ["popover", "action-menu", "select-panel", "autocomplete"],
47805
+ "rules": "Use for medium-sized floating elements like popovers and action menus. More prominent than small but less than dialogs. Do NOT use for full modals."
47754
47806
  }
47755
47807
  },
47756
47808
  "key": "{shadow.floating.medium}"
@@ -47891,6 +47943,7 @@
47891
47943
  "key": "{shadow.floating.xlarge}",
47892
47944
  "$value": "0px 0px 0px 1px #454c54, 0px 56px 112px 0px #25292e52",
47893
47945
  "$type": "shadow",
47946
+ "$description": "Extra large floating shadow for full-screen overlays and sheets",
47894
47947
  "$extensions": {
47895
47948
  "org.primer.figma": {
47896
47949
  "collection": "mode",
@@ -47920,6 +47973,10 @@
47920
47973
  "isSource": true,
47921
47974
  "$type": "shadow"
47922
47975
  }
47976
+ },
47977
+ "org.primer.llm": {
47978
+ "usage": ["full-screen-overlay", "side-sheet", "drawer", "large-modal"],
47979
+ "rules": "Use for full-screen or near-full-screen overlays like side sheets and drawers. Maximum elevation in the system. Do NOT use for small floating elements."
47923
47980
  }
47924
47981
  },
47925
47982
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -47944,6 +48001,7 @@
47944
48001
  }
47945
48002
  ],
47946
48003
  "$type": "shadow",
48004
+ "$description": "Extra large floating shadow for full-screen overlays and sheets",
47947
48005
  "$extensions": {
47948
48006
  "org.primer.figma": {
47949
48007
  "collection": "mode",
@@ -47973,6 +48031,10 @@
47973
48031
  "isSource": true,
47974
48032
  "$type": "shadow"
47975
48033
  }
48034
+ },
48035
+ "org.primer.llm": {
48036
+ "usage": ["full-screen-overlay", "side-sheet", "drawer", "large-modal"],
48037
+ "rules": "Use for full-screen or near-full-screen overlays like side sheets and drawers. Maximum elevation in the system. Do NOT use for small floating elements."
47976
48038
  }
47977
48039
  },
47978
48040
  "key": "{shadow.floating.xlarge}"
@@ -47985,6 +48047,7 @@
47985
48047
  "key": "{shadow.inset}",
47986
48048
  "$value": "inset 0px 1px 0px 0px #0104090a",
47987
48049
  "$type": "shadow",
48050
+ "$description": "Inset shadow for recessed elements",
47988
48051
  "$extensions": {
47989
48052
  "org.primer.figma": {
47990
48053
  "collection": "mode",
@@ -48005,6 +48068,10 @@
48005
48068
  "isSource": true,
48006
48069
  "$type": "shadow"
48007
48070
  }
48071
+ },
48072
+ "org.primer.llm": {
48073
+ "usage": ["input-field", "pressed-button", "recessed-area", "well"],
48074
+ "rules": "Use for elements that appear pressed or inset into the surface. Commonly used for input fields and wells. Do NOT use for floating elements."
48008
48075
  }
48009
48076
  },
48010
48077
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -48020,6 +48087,7 @@
48020
48087
  "inset": true
48021
48088
  },
48022
48089
  "$type": "shadow",
48090
+ "$description": "Inset shadow for recessed elements",
48023
48091
  "$extensions": {
48024
48092
  "org.primer.figma": {
48025
48093
  "collection": "mode",
@@ -48040,6 +48108,10 @@
48040
48108
  "isSource": true,
48041
48109
  "$type": "shadow"
48042
48110
  }
48111
+ },
48112
+ "org.primer.llm": {
48113
+ "usage": ["input-field", "pressed-button", "recessed-area", "well"],
48114
+ "rules": "Use for elements that appear pressed or inset into the surface. Commonly used for input fields and wells. Do NOT use for floating elements."
48043
48115
  }
48044
48116
  },
48045
48117
  "key": "{shadow.inset}"
@@ -48052,6 +48124,7 @@
48052
48124
  "key": "{shadow.resting.medium}",
48053
48125
  "$value": "0px 1px 1px 0px #25292e1a, 0px 3px 6px 0px #25292e1f",
48054
48126
  "$type": "shadow",
48127
+ "$description": "Medium resting shadow for cards and elevated surfaces",
48055
48128
  "$extensions": {
48056
48129
  "org.primer.figma": {
48057
48130
  "collection": "mode",
@@ -48081,6 +48154,10 @@
48081
48154
  "isSource": true,
48082
48155
  "$type": "shadow"
48083
48156
  }
48157
+ },
48158
+ "org.primer.llm": {
48159
+ "usage": ["card", "panel", "elevated-surface", "elevated-sidebar"],
48160
+ "rules": "Use for cards and content panels that sit above the page surface. Provides moderate elevation without appearing to float. Do NOT use for overlays or modals."
48084
48161
  }
48085
48162
  },
48086
48163
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -48105,6 +48182,7 @@
48105
48182
  }
48106
48183
  ],
48107
48184
  "$type": "shadow",
48185
+ "$description": "Medium resting shadow for cards and elevated surfaces",
48108
48186
  "$extensions": {
48109
48187
  "org.primer.figma": {
48110
48188
  "collection": "mode",
@@ -48134,6 +48212,10 @@
48134
48212
  "isSource": true,
48135
48213
  "$type": "shadow"
48136
48214
  }
48215
+ },
48216
+ "org.primer.llm": {
48217
+ "usage": ["card", "panel", "elevated-surface", "elevated-sidebar"],
48218
+ "rules": "Use for cards and content panels that sit above the page surface. Provides moderate elevation without appearing to float. Do NOT use for overlays or modals."
48137
48219
  }
48138
48220
  },
48139
48221
  "key": "{shadow.resting.medium}"
@@ -48144,8 +48226,9 @@
48144
48226
  },
48145
48227
  "shadow-resting-small": {
48146
48228
  "key": "{shadow.resting.small}",
48147
- "$value": "0px 1px 1px 0px #0104090f, 0px 1px 3px 0px #0104090f",
48229
+ "$value": "0px 1px 1px 0px #0104090a, 0px 1px 2px 0px #01040908",
48148
48230
  "$type": "shadow",
48231
+ "$description": "Small resting shadow for buttons and interactive elements",
48149
48232
  "$extensions": {
48150
48233
  "org.primer.figma": {
48151
48234
  "collection": "mode",
@@ -48177,6 +48260,10 @@
48177
48260
  "isSource": true,
48178
48261
  "$type": "shadow"
48179
48262
  }
48263
+ },
48264
+ "org.primer.llm": {
48265
+ "usage": ["button", "interactive-card", "clickable-element"],
48266
+ "rules": "Use for buttons and small interactive elements at rest. Provides subtle depth and clickable affordance. RECOMMENDED for default button shadows."
48180
48267
  }
48181
48268
  },
48182
48269
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -48185,7 +48272,7 @@
48185
48272
  "$value": [
48186
48273
  {
48187
48274
  "color": "{base.color.neutral.13}",
48188
- "alpha": 0.06,
48275
+ "alpha": 0.04,
48189
48276
  "offsetX": "0px",
48190
48277
  "offsetY": "1px",
48191
48278
  "blur": "1px",
@@ -48194,15 +48281,16 @@
48194
48281
  },
48195
48282
  {
48196
48283
  "color": "{base.color.neutral.13}",
48197
- "alpha": 0.06,
48284
+ "alpha": 0.03,
48198
48285
  "offsetX": "0px",
48199
48286
  "offsetY": "1px",
48200
- "blur": "3px",
48287
+ "blur": "2px",
48201
48288
  "spread": "0px",
48202
48289
  "inset": false
48203
48290
  }
48204
48291
  ],
48205
48292
  "$type": "shadow",
48293
+ "$description": "Small resting shadow for buttons and interactive elements",
48206
48294
  "$extensions": {
48207
48295
  "org.primer.figma": {
48208
48296
  "collection": "mode",
@@ -48234,6 +48322,10 @@
48234
48322
  "isSource": true,
48235
48323
  "$type": "shadow"
48236
48324
  }
48325
+ },
48326
+ "org.primer.llm": {
48327
+ "usage": ["button", "interactive-card", "clickable-element"],
48328
+ "rules": "Use for buttons and small interactive elements at rest. Provides subtle depth and clickable affordance. RECOMMENDED for default button shadows."
48237
48329
  }
48238
48330
  },
48239
48331
  "key": "{shadow.resting.small}"
@@ -48244,8 +48336,9 @@
48244
48336
  },
48245
48337
  "shadow-resting-xsmall": {
48246
48338
  "key": "{shadow.resting.xsmall}",
48247
- "$value": "0px 1px 1px 0px #0104090f",
48339
+ "$value": "0px 1px 1px 0px #0104090d",
48248
48340
  "$type": "shadow",
48341
+ "$description": "Extra small resting shadow for minimal elevation",
48249
48342
  "$extensions": {
48250
48343
  "org.primer.figma": {
48251
48344
  "collection": "mode",
@@ -48266,6 +48359,10 @@
48266
48359
  "isSource": true,
48267
48360
  "$type": "shadow"
48268
48361
  }
48362
+ },
48363
+ "org.primer.llm": {
48364
+ "usage": ["badge", "chip", "small-card", "subtle-elevation"],
48365
+ "rules": "Use for very subtle elevation on small elements. Provides minimal lift from surface. Do NOT use for interactive elements needing clear affordance."
48269
48366
  }
48270
48367
  },
48271
48368
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -48273,7 +48370,7 @@
48273
48370
  "original": {
48274
48371
  "$value": {
48275
48372
  "color": "{base.color.neutral.13}",
48276
- "alpha": 0.06,
48373
+ "alpha": 0.05,
48277
48374
  "offsetX": "0px",
48278
48375
  "offsetY": "1px",
48279
48376
  "blur": "1px",
@@ -48281,6 +48378,7 @@
48281
48378
  "inset": false
48282
48379
  },
48283
48380
  "$type": "shadow",
48381
+ "$description": "Extra small resting shadow for minimal elevation",
48284
48382
  "$extensions": {
48285
48383
  "org.primer.figma": {
48286
48384
  "collection": "mode",
@@ -48301,6 +48399,10 @@
48301
48399
  "isSource": true,
48302
48400
  "$type": "shadow"
48303
48401
  }
48402
+ },
48403
+ "org.primer.llm": {
48404
+ "usage": ["badge", "chip", "small-card", "subtle-elevation"],
48405
+ "rules": "Use for very subtle elevation on small elements. Provides minimal lift from surface. Do NOT use for interactive elements needing clear affordance."
48304
48406
  }
48305
48407
  },
48306
48408
  "key": "{shadow.resting.xsmall}"