@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}"
@@ -2438,6 +2446,10 @@
2438
2446
  },
2439
2447
  "org.primer.overrides": {
2440
2448
  "dark": "#1f2328"
2449
+ },
2450
+ "org.primer.llm": {
2451
+ "doNotUse": true,
2452
+ "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."
2441
2453
  }
2442
2454
  },
2443
2455
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -2454,6 +2466,10 @@
2454
2466
  },
2455
2467
  "org.primer.overrides": {
2456
2468
  "dark": "{base.color.neutral.13}"
2469
+ },
2470
+ "org.primer.llm": {
2471
+ "doNotUse": true,
2472
+ "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."
2457
2473
  }
2458
2474
  },
2459
2475
  "key": "{bgColor.white}"
@@ -2464,7 +2480,7 @@
2464
2480
  },
2465
2481
  "border-accent-emphasis": {
2466
2482
  "key": "{border.accent.emphasis}",
2467
- "$value": "0.00390625rem,0.0625px solid #0969da",
2483
+ "$value": "0.0625rem,1px solid #0969da",
2468
2484
  "$type": "border",
2469
2485
  "filePath": "src/tokens/functional/border/border.json5",
2470
2486
  "isSource": true,
@@ -2483,7 +2499,7 @@
2483
2499
  },
2484
2500
  "border-accent-muted": {
2485
2501
  "key": "{border.accent.muted}",
2486
- "$value": "0.00390625rem,0.0625px solid #54aeff66",
2502
+ "$value": "0.0625rem,1px solid #54aeff66",
2487
2503
  "$type": "border",
2488
2504
  "filePath": "src/tokens/functional/border/border.json5",
2489
2505
  "isSource": true,
@@ -2502,7 +2518,7 @@
2502
2518
  },
2503
2519
  "border-attention-emphasis": {
2504
2520
  "key": "{border.attention.emphasis}",
2505
- "$value": "0.00390625rem,0.0625px solid #9a6700",
2521
+ "$value": "0.0625rem,1px solid #9a6700",
2506
2522
  "$type": "border",
2507
2523
  "filePath": "src/tokens/functional/border/border.json5",
2508
2524
  "isSource": true,
@@ -2521,7 +2537,7 @@
2521
2537
  },
2522
2538
  "border-attention-muted": {
2523
2539
  "key": "{border.attention.muted}",
2524
- "$value": "0.00390625rem,0.0625px solid #d4a72c66",
2540
+ "$value": "0.0625rem,1px solid #d4a72c66",
2525
2541
  "$type": "border",
2526
2542
  "filePath": "src/tokens/functional/border/border.json5",
2527
2543
  "isSource": true,
@@ -2540,7 +2556,7 @@
2540
2556
  },
2541
2557
  "border-closed-emphasis": {
2542
2558
  "key": "{border.closed.emphasis}",
2543
- "$value": "0.00390625rem,0.0625px solid #cf222e",
2559
+ "$value": "0.0625rem,1px solid #cf222e",
2544
2560
  "$type": "border",
2545
2561
  "filePath": "src/tokens/functional/border/border.json5",
2546
2562
  "isSource": true,
@@ -2555,7 +2571,7 @@
2555
2571
  },
2556
2572
  "border-closed-muted": {
2557
2573
  "key": "{border.closed.muted}",
2558
- "$value": "0.00390625rem,0.0625px solid #ff818266",
2574
+ "$value": "0.0625rem,1px solid #ff818266",
2559
2575
  "$type": "border",
2560
2576
  "filePath": "src/tokens/functional/border/border.json5",
2561
2577
  "isSource": true,
@@ -2570,7 +2586,7 @@
2570
2586
  },
2571
2587
  "border-danger-emphasis": {
2572
2588
  "key": "{border.danger.emphasis}",
2573
- "$value": "0.00390625rem,0.0625px solid #cf222e",
2589
+ "$value": "0.0625rem,1px solid #cf222e",
2574
2590
  "$type": "border",
2575
2591
  "filePath": "src/tokens/functional/border/border.json5",
2576
2592
  "isSource": true,
@@ -2589,7 +2605,7 @@
2589
2605
  },
2590
2606
  "border-danger-muted": {
2591
2607
  "key": "{border.danger.muted}",
2592
- "$value": "0.00390625rem,0.0625px solid #ff818266",
2608
+ "$value": "0.0625rem,1px solid #ff818266",
2593
2609
  "$type": "border",
2594
2610
  "filePath": "src/tokens/functional/border/border.json5",
2595
2611
  "isSource": true,
@@ -2608,7 +2624,7 @@
2608
2624
  },
2609
2625
  "border-default": {
2610
2626
  "key": "{border.default}",
2611
- "$value": "0.00390625rem,0.0625px solid #d1d9e0",
2627
+ "$value": "0.0625rem,1px solid #d1d9e0",
2612
2628
  "$type": "border",
2613
2629
  "filePath": "src/tokens/functional/border/border.json5",
2614
2630
  "isSource": true,
@@ -2627,7 +2643,7 @@
2627
2643
  },
2628
2644
  "border-disabled": {
2629
2645
  "key": "{border.disabled}",
2630
- "$value": "0.00390625rem,0.0625px solid #818b981a",
2646
+ "$value": "0.0625rem,1px solid #818b981a",
2631
2647
  "$type": "border",
2632
2648
  "filePath": "src/tokens/functional/border/border.json5",
2633
2649
  "isSource": true,
@@ -2646,7 +2662,7 @@
2646
2662
  },
2647
2663
  "border-done-emphasis": {
2648
2664
  "key": "{border.done.emphasis}",
2649
- "$value": "0.00390625rem,0.0625px solid #8250df",
2665
+ "$value": "0.0625rem,1px solid #8250df",
2650
2666
  "$type": "border",
2651
2667
  "filePath": "src/tokens/functional/border/border.json5",
2652
2668
  "isSource": true,
@@ -2665,7 +2681,7 @@
2665
2681
  },
2666
2682
  "border-done-muted": {
2667
2683
  "key": "{border.done.muted}",
2668
- "$value": "0.00390625rem,0.0625px solid #c297ff66",
2684
+ "$value": "0.0625rem,1px solid #c297ff66",
2669
2685
  "$type": "border",
2670
2686
  "filePath": "src/tokens/functional/border/border.json5",
2671
2687
  "isSource": true,
@@ -2684,7 +2700,7 @@
2684
2700
  },
2685
2701
  "border-emphasis": {
2686
2702
  "key": "{border.emphasis}",
2687
- "$value": "0.00390625rem,0.0625px solid #818b98",
2703
+ "$value": "0.0625rem,1px solid #818b98",
2688
2704
  "$type": "border",
2689
2705
  "filePath": "src/tokens/functional/border/border.json5",
2690
2706
  "isSource": true,
@@ -2703,7 +2719,7 @@
2703
2719
  },
2704
2720
  "border-muted": {
2705
2721
  "key": "{border.muted}",
2706
- "$value": "0.00390625rem,0.0625px solid #d1d9e0b3",
2722
+ "$value": "0.0625rem,1px solid #d1d9e0b3",
2707
2723
  "$type": "border",
2708
2724
  "filePath": "src/tokens/functional/border/border.json5",
2709
2725
  "isSource": true,
@@ -2722,7 +2738,7 @@
2722
2738
  },
2723
2739
  "border-neutral-emphasis": {
2724
2740
  "key": "{border.neutral.emphasis}",
2725
- "$value": "0.00390625rem,0.0625px solid #59636e",
2741
+ "$value": "0.0625rem,1px solid #59636e",
2726
2742
  "$type": "border",
2727
2743
  "filePath": "src/tokens/functional/border/border.json5",
2728
2744
  "isSource": true,
@@ -2741,7 +2757,7 @@
2741
2757
  },
2742
2758
  "border-neutral-muted": {
2743
2759
  "key": "{border.neutral.muted}",
2744
- "$value": "0.00390625rem,0.0625px solid #d1d9e0b3",
2760
+ "$value": "0.0625rem,1px solid #d1d9e0b3",
2745
2761
  "$type": "border",
2746
2762
  "filePath": "src/tokens/functional/border/border.json5",
2747
2763
  "isSource": true,
@@ -2760,7 +2776,7 @@
2760
2776
  },
2761
2777
  "border-open-emphasis": {
2762
2778
  "key": "{border.open.emphasis}",
2763
- "$value": "0.00390625rem,0.0625px solid #1a7f37",
2779
+ "$value": "0.0625rem,1px solid #1a7f37",
2764
2780
  "$type": "border",
2765
2781
  "filePath": "src/tokens/functional/border/border.json5",
2766
2782
  "isSource": true,
@@ -2775,7 +2791,7 @@
2775
2791
  },
2776
2792
  "border-open-muted": {
2777
2793
  "key": "{border.open.muted}",
2778
- "$value": "0.00390625rem,0.0625px solid #4ac26b66",
2794
+ "$value": "0.0625rem,1px solid #4ac26b66",
2779
2795
  "$type": "border",
2780
2796
  "filePath": "src/tokens/functional/border/border.json5",
2781
2797
  "isSource": true,
@@ -2790,7 +2806,7 @@
2790
2806
  },
2791
2807
  "border-severe-emphasis": {
2792
2808
  "key": "{border.severe.emphasis}",
2793
- "$value": "0.00390625rem,0.0625px solid #bc4c00",
2809
+ "$value": "0.0625rem,1px solid #bc4c00",
2794
2810
  "$type": "border",
2795
2811
  "filePath": "src/tokens/functional/border/border.json5",
2796
2812
  "isSource": true,
@@ -2809,7 +2825,7 @@
2809
2825
  },
2810
2826
  "border-severe-muted": {
2811
2827
  "key": "{border.severe.muted}",
2812
- "$value": "0.00390625rem,0.0625px solid #fb8f4466",
2828
+ "$value": "0.0625rem,1px solid #fb8f4466",
2813
2829
  "$type": "border",
2814
2830
  "filePath": "src/tokens/functional/border/border.json5",
2815
2831
  "isSource": true,
@@ -2828,7 +2844,7 @@
2828
2844
  },
2829
2845
  "border-sponsors-emphasis": {
2830
2846
  "key": "{border.sponsors.emphasis}",
2831
- "$value": "0.00390625rem,0.0625px solid #bf3989",
2847
+ "$value": "0.0625rem,1px solid #bf3989",
2832
2848
  "$type": "border",
2833
2849
  "filePath": "src/tokens/functional/border/border.json5",
2834
2850
  "isSource": true,
@@ -2847,7 +2863,7 @@
2847
2863
  },
2848
2864
  "border-sponsors-muted": {
2849
2865
  "key": "{border.sponsors.muted}",
2850
- "$value": "0.00390625rem,0.0625px solid #ff80c866",
2866
+ "$value": "0.0625rem,1px solid #ff80c866",
2851
2867
  "$type": "border",
2852
2868
  "filePath": "src/tokens/functional/border/border.json5",
2853
2869
  "isSource": true,
@@ -2866,7 +2882,7 @@
2866
2882
  },
2867
2883
  "border-success-emphasis": {
2868
2884
  "key": "{border.success.emphasis}",
2869
- "$value": "0.00390625rem,0.0625px solid #1a7f37",
2885
+ "$value": "0.0625rem,1px solid #1a7f37",
2870
2886
  "$type": "border",
2871
2887
  "filePath": "src/tokens/functional/border/border.json5",
2872
2888
  "isSource": true,
@@ -2885,7 +2901,7 @@
2885
2901
  },
2886
2902
  "border-success-muted": {
2887
2903
  "key": "{border.success.muted}",
2888
- "$value": "0.00390625rem,0.0625px solid #4ac26b66",
2904
+ "$value": "0.0625rem,1px solid #4ac26b66",
2889
2905
  "$type": "border",
2890
2906
  "filePath": "src/tokens/functional/border/border.json5",
2891
2907
  "isSource": true,
@@ -2904,7 +2920,7 @@
2904
2920
  },
2905
2921
  "border-transparent": {
2906
2922
  "key": "{border.transparent}",
2907
- "$value": "0.00390625rem,0.0625px solid #ffffff00",
2923
+ "$value": "0.0625rem,1px solid #ffffff00",
2908
2924
  "$type": "border",
2909
2925
  "filePath": "src/tokens/functional/border/border.json5",
2910
2926
  "isSource": true,
@@ -2923,7 +2939,7 @@
2923
2939
  },
2924
2940
  "border-upsell-emphasis": {
2925
2941
  "key": "{border.upsell.emphasis}",
2926
- "$value": "0.00390625rem,0.0625px solid #8250df",
2942
+ "$value": "0.0625rem,1px solid #8250df",
2927
2943
  "$type": "border",
2928
2944
  "filePath": "src/tokens/functional/border/border.json5",
2929
2945
  "isSource": true,
@@ -2942,7 +2958,7 @@
2942
2958
  },
2943
2959
  "border-upsell-muted": {
2944
2960
  "key": "{border.upsell.muted}",
2945
- "$value": "0.00390625rem,0.0625px solid #c297ff66",
2961
+ "$value": "0.0625rem,1px solid #c297ff66",
2946
2962
  "$type": "border",
2947
2963
  "filePath": "src/tokens/functional/border/border.json5",
2948
2964
  "isSource": true,
@@ -37214,6 +37230,10 @@
37214
37230
  },
37215
37231
  "org.primer.overrides": {
37216
37232
  "dark": "#ffffff"
37233
+ },
37234
+ "org.primer.llm": {
37235
+ "doNotUse": true,
37236
+ "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."
37217
37237
  }
37218
37238
  },
37219
37239
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -37230,6 +37250,10 @@
37230
37250
  },
37231
37251
  "org.primer.overrides": {
37232
37252
  "dark": "{base.color.neutral.0}"
37253
+ },
37254
+ "org.primer.llm": {
37255
+ "doNotUse": true,
37256
+ "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."
37233
37257
  }
37234
37258
  },
37235
37259
  "key": "{fgColor.black}"
@@ -38203,6 +38227,10 @@
38203
38227
  },
38204
38228
  "org.primer.overrides": {
38205
38229
  "dark": "#1f2328"
38230
+ },
38231
+ "org.primer.llm": {
38232
+ "doNotUse": true,
38233
+ "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."
38206
38234
  }
38207
38235
  },
38208
38236
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -38219,6 +38247,10 @@
38219
38247
  },
38220
38248
  "org.primer.overrides": {
38221
38249
  "dark": "{base.color.neutral.13}"
38250
+ },
38251
+ "org.primer.llm": {
38252
+ "doNotUse": true,
38253
+ "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."
38222
38254
  }
38223
38255
  },
38224
38256
  "key": "{fgColor.white}"
@@ -47501,6 +47533,7 @@
47501
47533
  "key": "{shadow.floating.legacy}",
47502
47534
  "$value": "0px 6px 12px -3px #25292e0a, 0px 6px 18px 0px #25292e1f",
47503
47535
  "$type": "shadow",
47536
+ "$description": "Legacy floating shadow for backward compatibility",
47504
47537
  "$extensions": {
47505
47538
  "org.primer.figma": {},
47506
47539
  "org.primer.overrides": {
@@ -47527,6 +47560,10 @@
47527
47560
  "isSource": true,
47528
47561
  "$type": "shadow"
47529
47562
  }
47563
+ },
47564
+ "org.primer.llm": {
47565
+ "usage": ["legacy-component", "backward-compatibility"],
47566
+ "rules": "DEPRECATED: Use shadow-floating-small instead. Only use for maintaining backward compatibility with existing implementations."
47530
47567
  }
47531
47568
  },
47532
47569
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -47551,6 +47588,7 @@
47551
47588
  }
47552
47589
  ],
47553
47590
  "$type": "shadow",
47591
+ "$description": "Legacy floating shadow for backward compatibility",
47554
47592
  "$extensions": {
47555
47593
  "org.primer.figma": {},
47556
47594
  "org.primer.overrides": {
@@ -47577,6 +47615,10 @@
47577
47615
  "isSource": true,
47578
47616
  "$type": "shadow"
47579
47617
  }
47618
+ },
47619
+ "org.primer.llm": {
47620
+ "usage": ["legacy-component", "backward-compatibility"],
47621
+ "rules": "DEPRECATED: Use shadow-floating-small instead. Only use for maintaining backward compatibility with existing implementations."
47580
47622
  }
47581
47623
  },
47582
47624
  "key": "{shadow.floating.legacy}"
@@ -47589,6 +47631,7 @@
47589
47631
  "key": "{shadow.floating.medium}",
47590
47632
  "$value": "0px 0px 0px 1px #d1d9e0, 0px 8px 16px -4px #25292e14, 0px 4px 32px -4px #25292e14, 0px 24px 48px -12px #25292e14, 0px 48px 96px -24px #25292e14",
47591
47633
  "$type": "shadow",
47634
+ "$description": "Medium floating shadow for popovers and action menus",
47592
47635
  "$extensions": {
47593
47636
  "org.primer.figma": {
47594
47637
  "collection": "mode",
@@ -47642,6 +47685,10 @@
47642
47685
  "isSource": true,
47643
47686
  "$type": "shadow"
47644
47687
  }
47688
+ },
47689
+ "org.primer.llm": {
47690
+ "usage": ["popover", "action-menu", "select-panel", "autocomplete"],
47691
+ "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."
47645
47692
  }
47646
47693
  },
47647
47694
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -47690,6 +47737,7 @@
47690
47737
  }
47691
47738
  ],
47692
47739
  "$type": "shadow",
47740
+ "$description": "Medium floating shadow for popovers and action menus",
47693
47741
  "$extensions": {
47694
47742
  "org.primer.figma": {
47695
47743
  "collection": "mode",
@@ -47743,6 +47791,10 @@
47743
47791
  "isSource": true,
47744
47792
  "$type": "shadow"
47745
47793
  }
47794
+ },
47795
+ "org.primer.llm": {
47796
+ "usage": ["popover", "action-menu", "select-panel", "autocomplete"],
47797
+ "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."
47746
47798
  }
47747
47799
  },
47748
47800
  "key": "{shadow.floating.medium}"
@@ -47883,6 +47935,7 @@
47883
47935
  "key": "{shadow.floating.xlarge}",
47884
47936
  "$value": "0px 0px 0px 1px #d1d9e0, 0px 56px 112px 0px #25292e52",
47885
47937
  "$type": "shadow",
47938
+ "$description": "Extra large floating shadow for full-screen overlays and sheets",
47886
47939
  "$extensions": {
47887
47940
  "org.primer.figma": {
47888
47941
  "collection": "mode",
@@ -47912,6 +47965,10 @@
47912
47965
  "isSource": true,
47913
47966
  "$type": "shadow"
47914
47967
  }
47968
+ },
47969
+ "org.primer.llm": {
47970
+ "usage": ["full-screen-overlay", "side-sheet", "drawer", "large-modal"],
47971
+ "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."
47915
47972
  }
47916
47973
  },
47917
47974
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -47936,6 +47993,7 @@
47936
47993
  }
47937
47994
  ],
47938
47995
  "$type": "shadow",
47996
+ "$description": "Extra large floating shadow for full-screen overlays and sheets",
47939
47997
  "$extensions": {
47940
47998
  "org.primer.figma": {
47941
47999
  "collection": "mode",
@@ -47965,6 +48023,10 @@
47965
48023
  "isSource": true,
47966
48024
  "$type": "shadow"
47967
48025
  }
48026
+ },
48027
+ "org.primer.llm": {
48028
+ "usage": ["full-screen-overlay", "side-sheet", "drawer", "large-modal"],
48029
+ "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."
47968
48030
  }
47969
48031
  },
47970
48032
  "key": "{shadow.floating.xlarge}"
@@ -47977,6 +48039,7 @@
47977
48039
  "key": "{shadow.inset}",
47978
48040
  "$value": "inset 0px 1px 0px 0px #1f23280a",
47979
48041
  "$type": "shadow",
48042
+ "$description": "Inset shadow for recessed elements",
47980
48043
  "$extensions": {
47981
48044
  "org.primer.figma": {
47982
48045
  "collection": "mode",
@@ -47997,6 +48060,10 @@
47997
48060
  "isSource": true,
47998
48061
  "$type": "shadow"
47999
48062
  }
48063
+ },
48064
+ "org.primer.llm": {
48065
+ "usage": ["input-field", "pressed-button", "recessed-area", "well"],
48066
+ "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."
48000
48067
  }
48001
48068
  },
48002
48069
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -48012,6 +48079,7 @@
48012
48079
  "inset": true
48013
48080
  },
48014
48081
  "$type": "shadow",
48082
+ "$description": "Inset shadow for recessed elements",
48015
48083
  "$extensions": {
48016
48084
  "org.primer.figma": {
48017
48085
  "collection": "mode",
@@ -48032,6 +48100,10 @@
48032
48100
  "isSource": true,
48033
48101
  "$type": "shadow"
48034
48102
  }
48103
+ },
48104
+ "org.primer.llm": {
48105
+ "usage": ["input-field", "pressed-button", "recessed-area", "well"],
48106
+ "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."
48035
48107
  }
48036
48108
  },
48037
48109
  "key": "{shadow.inset}"
@@ -48044,6 +48116,7 @@
48044
48116
  "key": "{shadow.resting.medium}",
48045
48117
  "$value": "0px 1px 1px 0px #25292e1a, 0px 3px 6px 0px #25292e1f",
48046
48118
  "$type": "shadow",
48119
+ "$description": "Medium resting shadow for cards and elevated surfaces",
48047
48120
  "$extensions": {
48048
48121
  "org.primer.figma": {
48049
48122
  "collection": "mode",
@@ -48073,6 +48146,10 @@
48073
48146
  "isSource": true,
48074
48147
  "$type": "shadow"
48075
48148
  }
48149
+ },
48150
+ "org.primer.llm": {
48151
+ "usage": ["card", "panel", "elevated-surface", "elevated-sidebar"],
48152
+ "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."
48076
48153
  }
48077
48154
  },
48078
48155
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -48097,6 +48174,7 @@
48097
48174
  }
48098
48175
  ],
48099
48176
  "$type": "shadow",
48177
+ "$description": "Medium resting shadow for cards and elevated surfaces",
48100
48178
  "$extensions": {
48101
48179
  "org.primer.figma": {
48102
48180
  "collection": "mode",
@@ -48126,6 +48204,10 @@
48126
48204
  "isSource": true,
48127
48205
  "$type": "shadow"
48128
48206
  }
48207
+ },
48208
+ "org.primer.llm": {
48209
+ "usage": ["card", "panel", "elevated-surface", "elevated-sidebar"],
48210
+ "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."
48129
48211
  }
48130
48212
  },
48131
48213
  "key": "{shadow.resting.medium}"
@@ -48136,8 +48218,9 @@
48136
48218
  },
48137
48219
  "shadow-resting-small": {
48138
48220
  "key": "{shadow.resting.small}",
48139
- "$value": "0px 1px 1px 0px #1f23280f, 0px 1px 3px 0px #1f23280f",
48221
+ "$value": "0px 1px 1px 0px #1f23280a, 0px 1px 2px 0px #1f232808",
48140
48222
  "$type": "shadow",
48223
+ "$description": "Small resting shadow for buttons and interactive elements",
48141
48224
  "$extensions": {
48142
48225
  "org.primer.figma": {
48143
48226
  "collection": "mode",
@@ -48169,6 +48252,10 @@
48169
48252
  "isSource": true,
48170
48253
  "$type": "shadow"
48171
48254
  }
48255
+ },
48256
+ "org.primer.llm": {
48257
+ "usage": ["button", "interactive-card", "clickable-element"],
48258
+ "rules": "Use for buttons and small interactive elements at rest. Provides subtle depth and clickable affordance. RECOMMENDED for default button shadows."
48172
48259
  }
48173
48260
  },
48174
48261
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -48177,7 +48264,7 @@
48177
48264
  "$value": [
48178
48265
  {
48179
48266
  "color": "{base.color.neutral.13}",
48180
- "alpha": 0.06,
48267
+ "alpha": 0.04,
48181
48268
  "offsetX": "0px",
48182
48269
  "offsetY": "1px",
48183
48270
  "blur": "1px",
@@ -48186,15 +48273,16 @@
48186
48273
  },
48187
48274
  {
48188
48275
  "color": "{base.color.neutral.13}",
48189
- "alpha": 0.06,
48276
+ "alpha": 0.03,
48190
48277
  "offsetX": "0px",
48191
48278
  "offsetY": "1px",
48192
- "blur": "3px",
48279
+ "blur": "2px",
48193
48280
  "spread": "0px",
48194
48281
  "inset": false
48195
48282
  }
48196
48283
  ],
48197
48284
  "$type": "shadow",
48285
+ "$description": "Small resting shadow for buttons and interactive elements",
48198
48286
  "$extensions": {
48199
48287
  "org.primer.figma": {
48200
48288
  "collection": "mode",
@@ -48226,6 +48314,10 @@
48226
48314
  "isSource": true,
48227
48315
  "$type": "shadow"
48228
48316
  }
48317
+ },
48318
+ "org.primer.llm": {
48319
+ "usage": ["button", "interactive-card", "clickable-element"],
48320
+ "rules": "Use for buttons and small interactive elements at rest. Provides subtle depth and clickable affordance. RECOMMENDED for default button shadows."
48229
48321
  }
48230
48322
  },
48231
48323
  "key": "{shadow.resting.small}"
@@ -48236,8 +48328,9 @@
48236
48328
  },
48237
48329
  "shadow-resting-xsmall": {
48238
48330
  "key": "{shadow.resting.xsmall}",
48239
- "$value": "0px 1px 1px 0px #1f23280f",
48331
+ "$value": "0px 1px 1px 0px #1f23280d",
48240
48332
  "$type": "shadow",
48333
+ "$description": "Extra small resting shadow for minimal elevation",
48241
48334
  "$extensions": {
48242
48335
  "org.primer.figma": {
48243
48336
  "collection": "mode",
@@ -48258,6 +48351,10 @@
48258
48351
  "isSource": true,
48259
48352
  "$type": "shadow"
48260
48353
  }
48354
+ },
48355
+ "org.primer.llm": {
48356
+ "usage": ["badge", "chip", "small-card", "subtle-elevation"],
48357
+ "rules": "Use for very subtle elevation on small elements. Provides minimal lift from surface. Do NOT use for interactive elements needing clear affordance."
48261
48358
  }
48262
48359
  },
48263
48360
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -48265,7 +48362,7 @@
48265
48362
  "original": {
48266
48363
  "$value": {
48267
48364
  "color": "{base.color.neutral.13}",
48268
- "alpha": 0.06,
48365
+ "alpha": 0.05,
48269
48366
  "offsetX": "0px",
48270
48367
  "offsetY": "1px",
48271
48368
  "blur": "1px",
@@ -48273,6 +48370,7 @@
48273
48370
  "inset": false
48274
48371
  },
48275
48372
  "$type": "shadow",
48373
+ "$description": "Extra small resting shadow for minimal elevation",
48276
48374
  "$extensions": {
48277
48375
  "org.primer.figma": {
48278
48376
  "collection": "mode",
@@ -48293,6 +48391,10 @@
48293
48391
  "isSource": true,
48294
48392
  "$type": "shadow"
48295
48393
  }
48394
+ },
48395
+ "org.primer.llm": {
48396
+ "usage": ["badge", "chip", "small-card", "subtle-elevation"],
48397
+ "rules": "Use for very subtle elevation on small elements. Provides minimal lift from surface. Do NOT use for interactive elements needing clear affordance."
48296
48398
  }
48297
48399
  },
48298
48400
  "key": "{shadow.resting.xsmall}"