@primer/primitives 10.0.0-rc.e413e85d → 10.0.0-rc.e5d395ea

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/README.md +2 -2
  2. package/dist/build/PrimerStyleDictionary.js +27 -26
  3. package/dist/build/filters/isCubicBezier.d.ts +7 -0
  4. package/dist/build/filters/isCubicBezier.js +10 -0
  5. package/dist/build/formats/typescriptExportDefinition.js +2 -2
  6. package/dist/build/parsers/w3cJsonParser.js +2 -2
  7. package/dist/build/platforms/css.js +1 -0
  8. package/dist/build/schemas/borderToken.d.ts +3 -3
  9. package/dist/build/schemas/colorToken.d.ts +3 -3
  10. package/dist/build/schemas/cubicBezierToken.d.ts +18 -0
  11. package/dist/build/schemas/cubicBezierToken.js +8 -0
  12. package/dist/build/schemas/designToken.js +2 -1
  13. package/dist/build/schemas/dimensionToken.d.ts +3 -3
  14. package/dist/build/schemas/durationToken.d.ts +3 -3
  15. package/dist/build/schemas/fontFamilyToken.d.ts +3 -3
  16. package/dist/build/schemas/fontWeightToken.d.ts +3 -3
  17. package/dist/build/schemas/numberToken.d.ts +3 -3
  18. package/dist/build/schemas/shadowToken.d.ts +3 -3
  19. package/dist/build/schemas/stringToken.d.ts +3 -3
  20. package/dist/build/schemas/tokenType.d.ts +1 -1
  21. package/dist/build/schemas/typographyToken.d.ts +3 -3
  22. package/dist/build/schemas/validTokenType.d.ts +1 -1
  23. package/dist/build/schemas/validTokenType.js +1 -0
  24. package/dist/build/schemas/viewportRangeToken.d.ts +3 -3
  25. package/dist/build/transformers/cubicBezierToCss.d.ts +8 -0
  26. package/dist/build/transformers/cubicBezierToCss.js +23 -0
  27. package/dist/build/transformers/durationToCss.js +2 -2
  28. package/dist/build/transformers/index.d.ts +1 -0
  29. package/dist/build/transformers/index.js +1 -0
  30. package/dist/css/base/motion/motion.css +17 -0
  31. package/dist/css/functional/motion/motion.css +4 -3
  32. package/dist/css/functional/themes/dark-colorblind.css +42 -22
  33. package/dist/css/functional/themes/dark-dimmed.css +44 -24
  34. package/dist/css/functional/themes/dark-high-contrast.css +42 -22
  35. package/dist/css/functional/themes/dark-tritanopia.css +42 -22
  36. package/dist/css/functional/themes/dark.css +42 -22
  37. package/dist/css/functional/themes/light-colorblind.css +42 -22
  38. package/dist/css/functional/themes/light-high-contrast.css +44 -24
  39. package/dist/css/functional/themes/light-tritanopia.css +42 -22
  40. package/dist/css/functional/themes/light.css +42 -22
  41. package/dist/css/functional/typography/typography.css +43 -43
  42. package/dist/css/primitives.css +64 -46
  43. package/dist/docs/base/motion/motion.json +205 -0
  44. package/dist/docs/functional/motion/motion.json +18 -3
  45. package/dist/docs/functional/themes/dark-colorblind.json +533 -251
  46. package/dist/docs/functional/themes/dark-dimmed.json +560 -256
  47. package/dist/docs/functional/themes/dark-high-contrast.json +388 -148
  48. package/dist/docs/functional/themes/dark-tritanopia.json +535 -257
  49. package/dist/docs/functional/themes/dark.json +544 -256
  50. package/dist/docs/functional/themes/light-colorblind.json +355 -65
  51. package/dist/docs/functional/themes/light-high-contrast.json +333 -63
  52. package/dist/docs/functional/themes/light-tritanopia.json +307 -61
  53. package/dist/docs/functional/themes/light.json +336 -58
  54. package/dist/fallbacks/base/motion/motion.json +17 -0
  55. package/dist/fallbacks/functional/motion/motion.json +1 -0
  56. package/dist/figma/dimension/dimension.json +518 -518
  57. package/dist/figma/figma.json +19 -19
  58. package/dist/figma/scales/dark-dimmed.json +3536 -656
  59. package/dist/figma/scales/dark-high-constrast.json +3535 -655
  60. package/dist/figma/scales/dark.json +3371 -491
  61. package/dist/figma/scales/light-high-constrast.json +3533 -653
  62. package/dist/figma/scales/light.json +3370 -490
  63. package/dist/figma/shadows/dark-colorblind.json +285 -285
  64. package/dist/figma/shadows/dark-dimmed.json +285 -285
  65. package/dist/figma/shadows/dark-high-contrast.json +285 -285
  66. package/dist/figma/shadows/dark-tritanopia.json +285 -285
  67. package/dist/figma/shadows/dark.json +285 -285
  68. package/dist/figma/shadows/light-colorblind.json +254 -254
  69. package/dist/figma/shadows/light-high-contrast.json +254 -254
  70. package/dist/figma/shadows/light-tritanopia.json +254 -254
  71. package/dist/figma/shadows/light.json +254 -254
  72. package/dist/figma/themes/dark-colorblind.json +5177 -5048
  73. package/dist/figma/themes/dark-dimmed.json +5526 -5351
  74. package/dist/figma/themes/dark-high-contrast.json +4361 -4251
  75. package/dist/figma/themes/dark-tritanopia.json +5315 -5187
  76. package/dist/figma/themes/dark.json +5741 -5582
  77. package/dist/figma/themes/light-colorblind.json +5112 -4937
  78. package/dist/figma/themes/light-high-contrast.json +4465 -4322
  79. package/dist/figma/themes/light-tritanopia.json +5179 -5053
  80. package/dist/figma/themes/light.json +5657 -5500
  81. package/dist/figma/typography/typography.json +162 -162
  82. package/dist/internalCss/dark-colorblind.css +42 -22
  83. package/dist/internalCss/dark-dimmed.css +44 -24
  84. package/dist/internalCss/dark-high-contrast.css +42 -22
  85. package/dist/internalCss/dark-tritanopia.css +42 -22
  86. package/dist/internalCss/dark.css +42 -22
  87. package/dist/internalCss/light-colorblind.css +42 -22
  88. package/dist/internalCss/light-high-contrast.css +44 -24
  89. package/dist/internalCss/light-tritanopia.css +42 -22
  90. package/dist/internalCss/light.css +42 -22
  91. package/dist/styleLint/base/motion/motion.json +205 -0
  92. package/dist/styleLint/functional/motion/motion.json +18 -3
  93. package/dist/styleLint/functional/themes/dark-colorblind.json +533 -251
  94. package/dist/styleLint/functional/themes/dark-dimmed.json +560 -256
  95. package/dist/styleLint/functional/themes/dark-high-contrast.json +387 -147
  96. package/dist/styleLint/functional/themes/dark-tritanopia.json +535 -257
  97. package/dist/styleLint/functional/themes/dark.json +544 -256
  98. package/dist/styleLint/functional/themes/light-colorblind.json +355 -65
  99. package/dist/styleLint/functional/themes/light-high-contrast.json +333 -63
  100. package/dist/styleLint/functional/themes/light-tritanopia.json +307 -61
  101. package/dist/styleLint/functional/themes/light.json +336 -58
  102. package/package.json +19 -28
  103. package/src/tokens/base/motion/easing.json5 +26 -0
  104. package/src/tokens/base/motion/timing.json5 +50 -0
  105. package/src/tokens/functional/color/dark/app-dark.json5 +203 -88
  106. package/src/tokens/functional/color/dark/display-dark.json5 +95 -95
  107. package/src/tokens/functional/color/dark/overrides/dark.dimmed.json5 +0 -8
  108. package/src/tokens/functional/color/dark/overrides/dark.high-contrast.json5 +39 -26
  109. package/src/tokens/functional/color/dark/overrides/dark.protanopia-deuteranopia.json5 +54 -28
  110. package/src/tokens/functional/color/dark/overrides/dark.tritanopia.json5 +36 -13
  111. package/src/tokens/functional/color/dark/patterns-dark.json5 +16 -4
  112. package/src/tokens/functional/color/dark/primitives-dark.json5 +1 -1
  113. package/src/tokens/functional/color/light/app-light.json5 +195 -85
  114. package/src/tokens/functional/color/light/overrides/light.high-contrast.json5 +25 -25
  115. package/src/tokens/functional/color/light/overrides/light.protanopia-deuteranopia.json5 +59 -26
  116. package/src/tokens/functional/color/light/overrides/light.tritanopia.json5 +62 -10
  117. package/src/tokens/functional/color/light/patterns-light.json5 +13 -1
  118. package/src/tokens/functional/motion/loading.json5 +1 -1
  119. package/src/tokens/functional/motion/patterns.json5 +9 -2
@@ -295,17 +295,26 @@
295
295
  --topicTag-borderColor: #ffffff00;
296
296
  --highlight-neutral-bgColor: #fff8c5;
297
297
  --page-header-bgColor: #f6f8fa;
298
- --diffBlob-addition-fgColor-text: #1f2328;
299
- --diffBlob-addition-fgColor-num: #1f2328;
300
- --diffBlob-addition-bgColor-num: #d1f8d9;
301
- --diffBlob-addition-bgColor-line: #dafbe1;
302
- --diffBlob-addition-bgColor-word: #aceebb;
303
- --diffBlob-deletion-fgColor-text: #1f2328;
304
- --diffBlob-deletion-fgColor-num: #1f2328;
305
- --diffBlob-deletion-bgColor-num: #ffcecb;
306
- --diffBlob-deletion-bgColor-line: #ffebe9;
307
- --diffBlob-deletion-bgColor-word: #ff818266;
308
- --diffBlob-hunk-bgColor-num: #54aeff66;
298
+ --diffBlob-additionLine-fgColor: #1f2328;
299
+ --diffBlob-additionLine-bgColor: #dafbe1;
300
+ --diffBlob-additionWord-fgColor: #1f2328;
301
+ --diffBlob-additionWord-bgColor: #aceebb;
302
+ --diffBlob-additionNum-fgColor: #1f2328;
303
+ --diffBlob-additionNum-bgColor: #aceebb;
304
+ --diffBlob-deletionLine-fgColor: #1f2328;
305
+ --diffBlob-deletionLine-bgColor: #ffebe9;
306
+ --diffBlob-deletionWord-fgColor: #1f2328;
307
+ --diffBlob-deletionWord-bgColor: #ffcecb;
308
+ --diffBlob-deletionNum-fgColor: #1f2328;
309
+ --diffBlob-deletionNum-bgColor: #ffcecb;
310
+ --diffBlob-hunkLine-bgColor: #ddf4ff;
311
+ --diffBlob-hunkLine-fgColor: #59636e;
312
+ --diffBlob-hunkNum-fgColor-rest: #1f2328;
313
+ --diffBlob-hunkNum-fgColor-hover: #ffffff;
314
+ --diffBlob-hunkNum-bgColor-rest: #b6e3ff;
315
+ --diffBlob-hunkNum-bgColor-hover: #0969da;
316
+ --diffBlob-emptyNum-bgColor: #f6f8fa;
317
+ --diffBlob-emptyLine-bgColor: #f6f8fa;
309
318
  --diffBlob-expander-iconColor: #59636e;
310
319
  --codeMirror-fgColor: #1f2328;
311
320
  --codeMirror-bgColor: #ffffff;
@@ -532,6 +541,7 @@
532
541
  --button-primary-shadow-selected: inset 0px 1px 0px 0px #002d114d;
533
542
  --button-invisible-fgColor-rest: #25292e;
534
543
  --button-invisible-fgColor-hover: #25292e;
544
+ --button-invisible-fgColor-active: #25292e;
535
545
  --button-invisible-fgColor-disabled: #818b98;
536
546
  --button-invisible-iconColor-rest: #59636e;
537
547
  --button-invisible-iconColor-hover: #59636e;
@@ -1154,17 +1164,26 @@
1154
1164
  --topicTag-borderColor: #ffffff00;
1155
1165
  --highlight-neutral-bgColor: #fff8c5;
1156
1166
  --page-header-bgColor: #f6f8fa;
1157
- --diffBlob-addition-fgColor-text: #1f2328;
1158
- --diffBlob-addition-fgColor-num: #1f2328;
1159
- --diffBlob-addition-bgColor-num: #d1f8d9;
1160
- --diffBlob-addition-bgColor-line: #dafbe1;
1161
- --diffBlob-addition-bgColor-word: #aceebb;
1162
- --diffBlob-deletion-fgColor-text: #1f2328;
1163
- --diffBlob-deletion-fgColor-num: #1f2328;
1164
- --diffBlob-deletion-bgColor-num: #ffcecb;
1165
- --diffBlob-deletion-bgColor-line: #ffebe9;
1166
- --diffBlob-deletion-bgColor-word: #ff818266;
1167
- --diffBlob-hunk-bgColor-num: #54aeff66;
1167
+ --diffBlob-additionLine-fgColor: #1f2328;
1168
+ --diffBlob-additionLine-bgColor: #dafbe1;
1169
+ --diffBlob-additionWord-fgColor: #1f2328;
1170
+ --diffBlob-additionWord-bgColor: #aceebb;
1171
+ --diffBlob-additionNum-fgColor: #1f2328;
1172
+ --diffBlob-additionNum-bgColor: #aceebb;
1173
+ --diffBlob-deletionLine-fgColor: #1f2328;
1174
+ --diffBlob-deletionLine-bgColor: #ffebe9;
1175
+ --diffBlob-deletionWord-fgColor: #1f2328;
1176
+ --diffBlob-deletionWord-bgColor: #ffcecb;
1177
+ --diffBlob-deletionNum-fgColor: #1f2328;
1178
+ --diffBlob-deletionNum-bgColor: #ffcecb;
1179
+ --diffBlob-hunkLine-bgColor: #ddf4ff;
1180
+ --diffBlob-hunkLine-fgColor: #59636e;
1181
+ --diffBlob-hunkNum-fgColor-rest: #1f2328;
1182
+ --diffBlob-hunkNum-fgColor-hover: #ffffff;
1183
+ --diffBlob-hunkNum-bgColor-rest: #b6e3ff;
1184
+ --diffBlob-hunkNum-bgColor-hover: #0969da;
1185
+ --diffBlob-emptyNum-bgColor: #f6f8fa;
1186
+ --diffBlob-emptyLine-bgColor: #f6f8fa;
1168
1187
  --diffBlob-expander-iconColor: #59636e;
1169
1188
  --codeMirror-fgColor: #1f2328;
1170
1189
  --codeMirror-bgColor: #ffffff;
@@ -1391,6 +1410,7 @@
1391
1410
  --button-primary-shadow-selected: inset 0px 1px 0px 0px #002d114d;
1392
1411
  --button-invisible-fgColor-rest: #25292e;
1393
1412
  --button-invisible-fgColor-hover: #25292e;
1413
+ --button-invisible-fgColor-active: #25292e;
1394
1414
  --button-invisible-fgColor-disabled: #818b98;
1395
1415
  --button-invisible-iconColor-rest: #59636e;
1396
1416
  --button-invisible-iconColor-hover: #59636e;
@@ -0,0 +1,205 @@
1
+ {
2
+ "base-easing-linear": {
3
+ "$value": [0, 0, 1, 1],
4
+ "$type": "cubicBezier",
5
+ "$description": "Ideal for non-movement properties, like opacity or background color.",
6
+ "filePath": "src/tokens/base/motion/easing.json5",
7
+ "isSource": true,
8
+ "original": {
9
+ "$value": [0, 0, 1, 1],
10
+ "$type": "cubicBezier",
11
+ "$description": "Ideal for non-movement properties, like opacity or background color."
12
+ },
13
+ "name": "base-easing-linear",
14
+ "attributes": {},
15
+ "path": ["base", "easing", "linear"]
16
+ },
17
+ "base-easing-easeIn": {
18
+ "$value": [0.7, 0.1, 0.75, 0.9],
19
+ "$type": "cubicBezier",
20
+ "$description": "Ideal for movement that starts on the page and ends off the page.",
21
+ "filePath": "src/tokens/base/motion/easing.json5",
22
+ "isSource": true,
23
+ "original": {
24
+ "$value": [0.7, 0.1, 0.75, 0.9],
25
+ "$type": "cubicBezier",
26
+ "$description": "Ideal for movement that starts on the page and ends off the page."
27
+ },
28
+ "name": "base-easing-easeIn",
29
+ "attributes": {},
30
+ "path": ["base", "easing", "easeIn"]
31
+ },
32
+ "base-easing-easeOut": {
33
+ "$value": [0.16, 1, 0.3, 1],
34
+ "$type": "cubicBezier",
35
+ "$description": "Ideal for movement that starts off the page and ends on the page.",
36
+ "filePath": "src/tokens/base/motion/easing.json5",
37
+ "isSource": true,
38
+ "original": {
39
+ "$value": [0.16, 1, 0.3, 1],
40
+ "$type": "cubicBezier",
41
+ "$description": "Ideal for movement that starts off the page and ends on the page."
42
+ },
43
+ "name": "base-easing-easeOut",
44
+ "attributes": {},
45
+ "path": ["base", "easing", "easeOut"]
46
+ },
47
+ "base-easing-easeInOut": {
48
+ "$value": [0.6, 0, 0.2, 1],
49
+ "$type": "cubicBezier",
50
+ "$description": "Ideal for movement that starts and ends on the page.",
51
+ "filePath": "src/tokens/base/motion/easing.json5",
52
+ "isSource": true,
53
+ "original": {
54
+ "$value": [0.6, 0, 0.2, 1],
55
+ "$type": "cubicBezier",
56
+ "$description": "Ideal for movement that starts and ends on the page."
57
+ },
58
+ "name": "base-easing-easeInOut",
59
+ "attributes": {},
60
+ "path": ["base", "easing", "easeInOut"]
61
+ },
62
+ "base-duration-0": {
63
+ "$value": "0ms",
64
+ "$type": "duration",
65
+ "filePath": "src/tokens/base/motion/timing.json5",
66
+ "isSource": true,
67
+ "original": {
68
+ "$value": "0ms",
69
+ "$type": "duration"
70
+ },
71
+ "name": "base-duration-0",
72
+ "attributes": {},
73
+ "path": ["base", "duration", "0"]
74
+ },
75
+ "base-duration-75": {
76
+ "$value": "75ms",
77
+ "$type": "duration",
78
+ "filePath": "src/tokens/base/motion/timing.json5",
79
+ "isSource": true,
80
+ "original": {
81
+ "$value": "75ms",
82
+ "$type": "duration"
83
+ },
84
+ "name": "base-duration-75",
85
+ "attributes": {},
86
+ "path": ["base", "duration", "75"]
87
+ },
88
+ "base-duration-200": {
89
+ "$value": "200ms",
90
+ "$type": "duration",
91
+ "filePath": "src/tokens/base/motion/timing.json5",
92
+ "isSource": true,
93
+ "original": {
94
+ "$value": "200ms",
95
+ "$type": "duration"
96
+ },
97
+ "name": "base-duration-200",
98
+ "attributes": {},
99
+ "path": ["base", "duration", "200"]
100
+ },
101
+ "base-duration-300": {
102
+ "$value": "300ms",
103
+ "$type": "duration",
104
+ "filePath": "src/tokens/base/motion/timing.json5",
105
+ "isSource": true,
106
+ "original": {
107
+ "$value": "300ms",
108
+ "$type": "duration"
109
+ },
110
+ "name": "base-duration-300",
111
+ "attributes": {},
112
+ "path": ["base", "duration", "300"]
113
+ },
114
+ "base-duration-400": {
115
+ "$value": "400ms",
116
+ "$type": "duration",
117
+ "filePath": "src/tokens/base/motion/timing.json5",
118
+ "isSource": true,
119
+ "original": {
120
+ "$value": "400ms",
121
+ "$type": "duration"
122
+ },
123
+ "name": "base-duration-400",
124
+ "attributes": {},
125
+ "path": ["base", "duration", "400"]
126
+ },
127
+ "base-duration-500": {
128
+ "$value": "500ms",
129
+ "$type": "duration",
130
+ "filePath": "src/tokens/base/motion/timing.json5",
131
+ "isSource": true,
132
+ "original": {
133
+ "$value": "500ms",
134
+ "$type": "duration"
135
+ },
136
+ "name": "base-duration-500",
137
+ "attributes": {},
138
+ "path": ["base", "duration", "500"]
139
+ },
140
+ "base-duration-600": {
141
+ "$value": "600ms",
142
+ "$type": "duration",
143
+ "filePath": "src/tokens/base/motion/timing.json5",
144
+ "isSource": true,
145
+ "original": {
146
+ "$value": "600ms",
147
+ "$type": "duration"
148
+ },
149
+ "name": "base-duration-600",
150
+ "attributes": {},
151
+ "path": ["base", "duration", "600"]
152
+ },
153
+ "base-duration-700": {
154
+ "$value": "700ms",
155
+ "$type": "duration",
156
+ "filePath": "src/tokens/base/motion/timing.json5",
157
+ "isSource": true,
158
+ "original": {
159
+ "$value": "700ms",
160
+ "$type": "duration"
161
+ },
162
+ "name": "base-duration-700",
163
+ "attributes": {},
164
+ "path": ["base", "duration", "700"]
165
+ },
166
+ "base-duration-800": {
167
+ "$value": "800ms",
168
+ "$type": "duration",
169
+ "filePath": "src/tokens/base/motion/timing.json5",
170
+ "isSource": true,
171
+ "original": {
172
+ "$value": "800ms",
173
+ "$type": "duration"
174
+ },
175
+ "name": "base-duration-800",
176
+ "attributes": {},
177
+ "path": ["base", "duration", "800"]
178
+ },
179
+ "base-duration-900": {
180
+ "$value": "900ms",
181
+ "$type": "duration",
182
+ "filePath": "src/tokens/base/motion/timing.json5",
183
+ "isSource": true,
184
+ "original": {
185
+ "$value": "900ms",
186
+ "$type": "duration"
187
+ },
188
+ "name": "base-duration-900",
189
+ "attributes": {},
190
+ "path": ["base", "duration", "900"]
191
+ },
192
+ "base-duration-1000": {
193
+ "$value": "1000ms",
194
+ "$type": "duration",
195
+ "filePath": "src/tokens/base/motion/timing.json5",
196
+ "isSource": true,
197
+ "original": {
198
+ "$value": "1000ms",
199
+ "$type": "duration"
200
+ },
201
+ "name": "base-duration-1000",
202
+ "attributes": {},
203
+ "path": ["base", "duration", "1000"]
204
+ }
205
+ }
@@ -6,7 +6,7 @@
6
6
  "filePath": "src/tokens/functional/motion/loading.json5",
7
7
  "isSource": true,
8
8
  "original": {
9
- "$value": "1000ms",
9
+ "$value": "{base.duration.1000}",
10
10
  "$type": "duration",
11
11
  "$description": "The amount of time to wait before showing a loading indicator or announcing a loading state to assistive technologies."
12
12
  },
@@ -21,7 +21,7 @@
21
21
  "filePath": "src/tokens/functional/motion/patterns.json5",
22
22
  "isSource": true,
23
23
  "original": {
24
- "$value": "1000ms",
24
+ "$value": "{base.duration.1000}",
25
25
  "$type": "duration",
26
26
  "$description": "The amount of time it takes the \"Spinner\" loading indicator to make a full 360deg rotation"
27
27
  },
@@ -29,6 +29,21 @@
29
29
  "attributes": {},
30
30
  "path": ["motion", "spinner", "duration", "rotation"]
31
31
  },
32
+ "motion-spinner-easing-rotation": {
33
+ "$value": [0, 0, 1, 1],
34
+ "$type": "cubicBezier",
35
+ "$description": "The easing curve for the \"Spinner\" loading indicator rotation",
36
+ "filePath": "src/tokens/functional/motion/patterns.json5",
37
+ "isSource": true,
38
+ "original": {
39
+ "$value": "{base.easing.linear}",
40
+ "$type": "cubicBezier",
41
+ "$description": "The easing curve for the \"Spinner\" loading indicator rotation"
42
+ },
43
+ "name": "motion-spinner-easing-rotation",
44
+ "attributes": {},
45
+ "path": ["motion", "spinner", "easing", "rotation"]
46
+ },
32
47
  "motion-skeletonLoader-shimmer-duration-scale": {
33
48
  "$value": "1000ms",
34
49
  "$type": "duration",
@@ -36,7 +51,7 @@
36
51
  "filePath": "src/tokens/functional/motion/patterns.json5",
37
52
  "isSource": true,
38
53
  "original": {
39
- "$value": "1000ms",
54
+ "$value": "{base.duration.1000}",
40
55
  "$type": "duration",
41
56
  "$description": "The amount of times it takes the \"shimmer\" effect to go from the start (left) of the skeleton loader to the end (right)"
42
57
  },