@primer/primitives 11.4.0 → 11.4.1-rc.6196071f

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 (30) hide show
  1. package/DESIGN_TOKENS_SPEC.md +446 -0
  2. package/dist/build/formats/markdownLlmGuidelines.d.ts +7 -6
  3. package/dist/build/formats/markdownLlmGuidelines.js +685 -60
  4. package/dist/build/schemas/durationToken.d.ts +7 -1
  5. package/dist/build/schemas/durationValue.d.ts +11 -1
  6. package/dist/build/schemas/durationValue.js +13 -3
  7. package/dist/build/schemas/transitionToken.d.ts +14 -2
  8. package/dist/build/transformers/durationToCss.d.ts +2 -1
  9. package/dist/build/transformers/durationToCss.js +18 -11
  10. package/dist/css/functional/themes/dark-colorblind-high-contrast.css +4 -0
  11. package/dist/css/functional/themes/dark-colorblind.css +4 -0
  12. package/dist/css/functional/themes/dark-dimmed-high-contrast.css +4 -0
  13. package/dist/css/functional/themes/dark-dimmed.css +4 -0
  14. package/dist/css/functional/themes/dark-high-contrast.css +4 -0
  15. package/dist/css/functional/themes/dark-tritanopia-high-contrast.css +4 -0
  16. package/dist/css/functional/themes/dark-tritanopia.css +4 -0
  17. package/dist/css/functional/themes/dark.css +4 -0
  18. package/dist/css/functional/themes/light-colorblind-high-contrast.css +4 -0
  19. package/dist/css/functional/themes/light-colorblind.css +4 -0
  20. package/dist/css/functional/themes/light-high-contrast.css +4 -0
  21. package/dist/css/functional/themes/light-tritanopia-high-contrast.css +4 -0
  22. package/dist/css/functional/themes/light-tritanopia.css +4 -0
  23. package/dist/css/functional/themes/light.css +4 -0
  24. package/dist/css/primitives.css +4 -0
  25. package/dist/docs/base/motion/motion.json +96 -24
  26. package/dist/fallbacks/base/motion/motion.json +48 -12
  27. package/dist/styleLint/base/motion/motion.json +96 -24
  28. package/package.json +5 -4
  29. package/src/tokens/base/motion/timing.json5 +12 -12
  30. package/token-guidelines.llm.md +0 -695
@@ -2,7 +2,13 @@ import { z } from 'zod';
2
2
  export declare const durationToken: z.ZodObject<{
3
3
  $description: z.ZodOptional<z.ZodString>;
4
4
  $deprecated: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodBoolean]>>;
5
- $value: z.ZodUnion<readonly [z.ZodString, z.ZodString]>;
5
+ $value: z.ZodUnion<readonly [z.ZodObject<{
6
+ value: z.ZodNumber;
7
+ unit: z.ZodEnum<{
8
+ s: "s";
9
+ ms: "ms";
10
+ }>;
11
+ }, z.core.$strict>, z.ZodString]>;
6
12
  $type: z.ZodLiteral<"string" | "number" | "border" | "color" | "fontFamily" | "fontWeight" | "transition" | "dimension" | "duration" | "gradient" | "shadow" | "typography" | "cubicBezier" | "custom-viewportRange">;
7
13
  $extensions: z.ZodOptional<z.ZodObject<{
8
14
  'org.primer.llm': z.ZodOptional<z.ZodObject<{
@@ -1,2 +1,12 @@
1
1
  import { z } from 'zod';
2
- export declare const durationValue: z.ZodString;
2
+ /**
3
+ * W3C DTCG duration value format
4
+ * @see https://www.designtokens.org/tr/2025.10/format/#duration
5
+ */
6
+ export declare const durationValue: z.ZodObject<{
7
+ value: z.ZodNumber;
8
+ unit: z.ZodEnum<{
9
+ s: "s";
10
+ ms: "ms";
11
+ }>;
12
+ }, z.core.$strict>;
@@ -1,10 +1,20 @@
1
1
  import { z } from 'zod';
2
2
  import { schemaErrorMessage } from '../utilities/index.js';
3
- export const durationValue = z.string().superRefine((duration, ctx) => {
4
- if (!/^[0-9]+ms$/.test(duration)) {
3
+ /**
4
+ * W3C DTCG duration value format
5
+ * @see https://www.designtokens.org/tr/2025.10/format/#duration
6
+ */
7
+ export const durationValue = z
8
+ .object({
9
+ value: z.number(),
10
+ unit: z.enum(['ms', 's']),
11
+ })
12
+ .strict()
13
+ .superRefine((duration, ctx) => {
14
+ if (typeof duration.value !== 'number') {
5
15
  ctx.addIssue({
6
16
  code: 'custom',
7
- message: schemaErrorMessage(`Invalid duration: "${duration}"`, `A duration must be a string with an "ms"`),
17
+ message: schemaErrorMessage(`Invalid duration value: "${duration.value}"`, `Duration value must be a number`),
8
18
  });
9
19
  }
10
20
  });
@@ -3,9 +3,21 @@ export declare const transitionToken: z.ZodObject<{
3
3
  $description: z.ZodOptional<z.ZodString>;
4
4
  $deprecated: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodBoolean]>>;
5
5
  $value: z.ZodUnion<readonly [z.ZodObject<{
6
- duration: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodString]>, z.ZodString]>;
6
+ duration: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodObject<{
7
+ value: z.ZodNumber;
8
+ unit: z.ZodEnum<{
9
+ s: "s";
10
+ ms: "ms";
11
+ }>;
12
+ }, z.core.$strict>, z.ZodString]>, z.ZodString]>;
7
13
  timingFunction: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodArray<z.ZodNumber>, z.ZodString]>, z.ZodString]>;
8
- delay: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodString]>, z.ZodString]>>;
14
+ delay: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodObject<{
15
+ value: z.ZodNumber;
16
+ unit: z.ZodEnum<{
17
+ s: "s";
18
+ ms: "ms";
19
+ }>;
20
+ }, z.core.$strict>, z.ZodString]>, z.ZodString]>>;
9
21
  }, z.core.$strip>, z.ZodString]>;
10
22
  $type: z.ZodLiteral<"string" | "number" | "border" | "color" | "fontFamily" | "fontWeight" | "transition" | "dimension" | "duration" | "gradient" | "shadow" | "typography" | "cubicBezier" | "custom-viewportRange">;
11
23
  $extensions: z.ZodOptional<z.ZodObject<{
@@ -1,8 +1,9 @@
1
1
  import type { Transform } from 'style-dictionary/types';
2
2
  /**
3
- * @description converts duration tokens string value to number with `ms` unit
3
+ * @description converts duration tokens to css duration string
4
4
  * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
5
5
  * @matcher matches all tokens of $type `duration`
6
6
  * @transformer returns a css duration
7
+ * @note W3C DTCG format: { value: number, unit: "ms" | "s" }
7
8
  */
8
9
  export declare const durationToCss: Transform;
@@ -1,9 +1,10 @@
1
1
  import { isDuration } from '../filters/index.js';
2
2
  /**
3
- * @description converts duration tokens string value to number with `ms` unit
3
+ * @description converts duration tokens to css duration string
4
4
  * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
5
5
  * @matcher matches all tokens of $type `duration`
6
6
  * @transformer returns a css duration
7
+ * @note W3C DTCG format: { value: number, unit: "ms" | "s" }
7
8
  */
8
9
  export const durationToCss = {
9
10
  name: 'duration/css',
@@ -12,18 +13,24 @@ export const durationToCss = {
12
13
  filter: isDuration,
13
14
  transform: (token, _config, options) => {
14
15
  const valueProp = options.usesDtcg ? '$value' : 'value';
15
- // throw an error if token value is not a string or does not end with `ms`
16
- if (typeof token[valueProp] !== `string` || !(token[valueProp].endsWith(`ms`) || token[valueProp].endsWith(`s`))) {
17
- throw new Error(`duration token value must be a string with an "ms" || "s" unit, invalid token: ${token.name} with value: ${token[valueProp]}`);
16
+ const tokenValue = token[valueProp];
17
+ // Validate W3C DTCG object format: { value: number, unit: "ms" | "s" }
18
+ if (typeof tokenValue !== 'object' || tokenValue === null || !('value' in tokenValue) || !('unit' in tokenValue)) {
19
+ throw new Error(`duration token value must be an object with "value" and "unit" properties (W3C DTCG format). Invalid token: ${token.name} with value: ${JSON.stringify(tokenValue)}`);
18
20
  }
19
- // get value
20
- let value = parseInt(token[valueProp].replace('ms', ''));
21
- let unit = `ms`;
22
- if (value >= 1000) {
23
- value = value / 1000;
24
- unit = `s`;
21
+ const { value, unit } = tokenValue;
22
+ // Validate unit
23
+ if (unit !== 'ms' && unit !== 's') {
24
+ throw new Error(`duration token unit must be "ms" or "s", invalid token: ${token.name} with unit: ${unit}`);
25
+ }
26
+ // Validate value is a finite, non-negative number
27
+ if (typeof value !== 'number' || !Number.isFinite(value) || value < 0) {
28
+ throw new Error(`duration token value must be a finite, non-negative number, invalid token: ${token.name} with value: ${value}`);
29
+ }
30
+ // Convert ms >= 1000 to seconds for cleaner output
31
+ if (unit === 'ms' && value >= 1000) {
32
+ return `${value / 1000}s`;
25
33
  }
26
- // return value
27
34
  return `${value}${unit}`;
28
35
  },
29
36
  };
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @spec See /DESIGN_TOKENS_SPEC.md for naming logic and semantic pairings.
3
+ * @rule Never use raw values (hex/px). Use semantic tokens ONLY.
4
+ */
1
5
  [data-color-mode="dark"][data-dark-theme="dark_colorblind_high_contrast"],
2
6
  [data-color-mode="auto"][data-light-theme="dark_colorblind_high_contrast"] {
3
7
  --button-primary-bgColor-active: #3685f3;
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @spec See /DESIGN_TOKENS_SPEC.md for naming logic and semantic pairings.
3
+ * @rule Never use raw values (hex/px). Use semantic tokens ONLY.
4
+ */
1
5
  [data-color-mode="dark"][data-dark-theme="dark_colorblind"],
2
6
  [data-color-mode="auto"][data-light-theme="dark_colorblind"] {
3
7
  --button-primary-bgColor-active: #3685f3;
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @spec See /DESIGN_TOKENS_SPEC.md for naming logic and semantic pairings.
3
+ * @rule Never use raw values (hex/px). Use semantic tokens ONLY.
4
+ */
1
5
  [data-color-mode="dark"][data-dark-theme="dark_dimmed_high_contrast"],
2
6
  [data-color-mode="auto"][data-light-theme="dark_dimmed_high_contrast"] {
3
7
  --button-danger-fgColor-active: #ffffff;
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @spec See /DESIGN_TOKENS_SPEC.md for naming logic and semantic pairings.
3
+ * @rule Never use raw values (hex/px). Use semantic tokens ONLY.
4
+ */
1
5
  [data-color-mode="dark"][data-dark-theme="dark_dimmed"],
2
6
  [data-color-mode="auto"][data-light-theme="dark_dimmed"] {
3
7
  --button-danger-fgColor-active: #ffffff;
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @spec See /DESIGN_TOKENS_SPEC.md for naming logic and semantic pairings.
3
+ * @rule Never use raw values (hex/px). Use semantic tokens ONLY.
4
+ */
1
5
  [data-color-mode="dark"][data-dark-theme="dark_high_contrast"],
2
6
  [data-color-mode="auto"][data-light-theme="dark_high_contrast"] {
3
7
  --button-primary-bgColor-active: #109135;
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @spec See /DESIGN_TOKENS_SPEC.md for naming logic and semantic pairings.
3
+ * @rule Never use raw values (hex/px). Use semantic tokens ONLY.
4
+ */
1
5
  [data-color-mode="dark"][data-dark-theme="dark_tritanopia_high_contrast"],
2
6
  [data-color-mode="auto"][data-light-theme="dark_tritanopia_high_contrast"] {
3
7
  --button-outline-bgColor-active: #0d419d;
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @spec See /DESIGN_TOKENS_SPEC.md for naming logic and semantic pairings.
3
+ * @rule Never use raw values (hex/px). Use semantic tokens ONLY.
4
+ */
1
5
  [data-color-mode="dark"][data-dark-theme="dark_tritanopia"],
2
6
  [data-color-mode="auto"][data-light-theme="dark_tritanopia"] {
3
7
  --bgColor-sponsors-muted: #db61a21a; /** Subtle background for GitHub Sponsors content */
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @spec See /DESIGN_TOKENS_SPEC.md for naming logic and semantic pairings.
3
+ * @rule Never use raw values (hex/px). Use semantic tokens ONLY.
4
+ */
1
5
  [data-color-mode="dark"][data-dark-theme="dark"],
2
6
  [data-color-mode="auto"][data-light-theme="dark"] {
3
7
  --button-danger-fgColor-rest: #fa5e55;
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @spec See /DESIGN_TOKENS_SPEC.md for naming logic and semantic pairings.
3
+ * @rule Never use raw values (hex/px). Use semantic tokens ONLY.
4
+ */
1
5
  [data-color-mode="light"][data-light-theme="light_colorblind_high_contrast"],
2
6
  [data-color-mode="auto"][data-light-theme="light_colorblind_high_contrast"] {
3
7
  --button-outline-bgColor-active: #033f9d;
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @spec See /DESIGN_TOKENS_SPEC.md for naming logic and semantic pairings.
3
+ * @rule Never use raw values (hex/px). Use semantic tokens ONLY.
4
+ */
1
5
  [data-color-mode="light"][data-light-theme="light_colorblind"],
2
6
  [data-color-mode="auto"][data-light-theme="light_colorblind"] {
3
7
  --button-outline-bgColor-active: #0757ba;
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @spec See /DESIGN_TOKENS_SPEC.md for naming logic and semantic pairings.
3
+ * @rule Never use raw values (hex/px). Use semantic tokens ONLY.
4
+ */
1
5
  [data-color-mode="light"][data-light-theme="light_high_contrast"],
2
6
  [data-color-mode="auto"][data-light-theme="light_high_contrast"] {
3
7
  --button-outline-bgColor-active: #033f9d;
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @spec See /DESIGN_TOKENS_SPEC.md for naming logic and semantic pairings.
3
+ * @rule Never use raw values (hex/px). Use semantic tokens ONLY.
4
+ */
1
5
  [data-color-mode="light"][data-light-theme="light_tritanopia_high_contrast"],
2
6
  [data-color-mode="auto"][data-light-theme="light_tritanopia_high_contrast"] {
3
7
  --button-outline-bgColor-active: #033f9d;
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @spec See /DESIGN_TOKENS_SPEC.md for naming logic and semantic pairings.
3
+ * @rule Never use raw values (hex/px). Use semantic tokens ONLY.
4
+ */
1
5
  [data-color-mode="light"][data-light-theme="light_tritanopia"],
2
6
  [data-color-mode="auto"][data-light-theme="light_tritanopia"] {
3
7
  --button-outline-bgColor-active: #0757ba;
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @spec See /DESIGN_TOKENS_SPEC.md for naming logic and semantic pairings.
3
+ * @rule Never use raw values (hex/px). Use semantic tokens ONLY.
4
+ */
1
5
  [data-color-mode="light"][data-light-theme="light"],
2
6
  [data-color-mode="auto"][data-light-theme="light"] {
3
7
  --bgColor-success-emphasis: #1f883d; /** Strong success background for prominent positive actions */
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @spec See /DESIGN_TOKENS_SPEC.md for naming logic and semantic pairings.
3
+ * @rule Never use raw values (hex/px). Use semantic tokens ONLY.
4
+ */
1
5
  @import './base/motion/motion.css';
2
6
  @import './base/size/size.css';
3
7
  @import './base/typography/typography.css';
@@ -4,14 +4,20 @@
4
4
  "filePath": "src/tokens/base/motion/timing.json5",
5
5
  "isSource": true,
6
6
  "original": {
7
- "$value": "0ms",
7
+ "$value": {
8
+ "value": 0,
9
+ "unit": "ms"
10
+ },
8
11
  "$type": "duration",
9
12
  "key": "{base.duration.0}"
10
13
  },
11
14
  "name": "base-duration-0",
12
15
  "attributes": {},
13
16
  "path": ["base", "duration", "0"],
14
- "value": "0ms",
17
+ "value": {
18
+ "value": 0,
19
+ "unit": "ms"
20
+ },
15
21
  "type": "duration"
16
22
  },
17
23
  "base-duration-100": {
@@ -19,14 +25,20 @@
19
25
  "filePath": "src/tokens/base/motion/timing.json5",
20
26
  "isSource": true,
21
27
  "original": {
22
- "$value": "100ms",
28
+ "$value": {
29
+ "value": 100,
30
+ "unit": "ms"
31
+ },
23
32
  "$type": "duration",
24
33
  "key": "{base.duration.100}"
25
34
  },
26
35
  "name": "base-duration-100",
27
36
  "attributes": {},
28
37
  "path": ["base", "duration", "100"],
29
- "value": "100ms",
38
+ "value": {
39
+ "value": 100,
40
+ "unit": "ms"
41
+ },
30
42
  "type": "duration"
31
43
  },
32
44
  "base-duration-1000": {
@@ -34,14 +46,20 @@
34
46
  "filePath": "src/tokens/base/motion/timing.json5",
35
47
  "isSource": true,
36
48
  "original": {
37
- "$value": "1000ms",
49
+ "$value": {
50
+ "value": 1000,
51
+ "unit": "ms"
52
+ },
38
53
  "$type": "duration",
39
54
  "key": "{base.duration.1000}"
40
55
  },
41
56
  "name": "base-duration-1000",
42
57
  "attributes": {},
43
58
  "path": ["base", "duration", "1000"],
44
- "value": "1000ms",
59
+ "value": {
60
+ "value": 1000,
61
+ "unit": "ms"
62
+ },
45
63
  "type": "duration"
46
64
  },
47
65
  "base-duration-200": {
@@ -49,14 +67,20 @@
49
67
  "filePath": "src/tokens/base/motion/timing.json5",
50
68
  "isSource": true,
51
69
  "original": {
52
- "$value": "200ms",
70
+ "$value": {
71
+ "value": 200,
72
+ "unit": "ms"
73
+ },
53
74
  "$type": "duration",
54
75
  "key": "{base.duration.200}"
55
76
  },
56
77
  "name": "base-duration-200",
57
78
  "attributes": {},
58
79
  "path": ["base", "duration", "200"],
59
- "value": "200ms",
80
+ "value": {
81
+ "value": 200,
82
+ "unit": "ms"
83
+ },
60
84
  "type": "duration"
61
85
  },
62
86
  "base-duration-300": {
@@ -64,14 +88,20 @@
64
88
  "filePath": "src/tokens/base/motion/timing.json5",
65
89
  "isSource": true,
66
90
  "original": {
67
- "$value": "300ms",
91
+ "$value": {
92
+ "value": 300,
93
+ "unit": "ms"
94
+ },
68
95
  "$type": "duration",
69
96
  "key": "{base.duration.300}"
70
97
  },
71
98
  "name": "base-duration-300",
72
99
  "attributes": {},
73
100
  "path": ["base", "duration", "300"],
74
- "value": "300ms",
101
+ "value": {
102
+ "value": 300,
103
+ "unit": "ms"
104
+ },
75
105
  "type": "duration"
76
106
  },
77
107
  "base-duration-400": {
@@ -79,14 +109,20 @@
79
109
  "filePath": "src/tokens/base/motion/timing.json5",
80
110
  "isSource": true,
81
111
  "original": {
82
- "$value": "400ms",
112
+ "$value": {
113
+ "value": 400,
114
+ "unit": "ms"
115
+ },
83
116
  "$type": "duration",
84
117
  "key": "{base.duration.400}"
85
118
  },
86
119
  "name": "base-duration-400",
87
120
  "attributes": {},
88
121
  "path": ["base", "duration", "400"],
89
- "value": "400ms",
122
+ "value": {
123
+ "value": 400,
124
+ "unit": "ms"
125
+ },
90
126
  "type": "duration"
91
127
  },
92
128
  "base-duration-50": {
@@ -94,14 +130,20 @@
94
130
  "filePath": "src/tokens/base/motion/timing.json5",
95
131
  "isSource": true,
96
132
  "original": {
97
- "$value": "50ms",
133
+ "$value": {
134
+ "value": 50,
135
+ "unit": "ms"
136
+ },
98
137
  "$type": "duration",
99
138
  "key": "{base.duration.50}"
100
139
  },
101
140
  "name": "base-duration-50",
102
141
  "attributes": {},
103
142
  "path": ["base", "duration", "50"],
104
- "value": "50ms",
143
+ "value": {
144
+ "value": 50,
145
+ "unit": "ms"
146
+ },
105
147
  "type": "duration"
106
148
  },
107
149
  "base-duration-500": {
@@ -109,14 +151,20 @@
109
151
  "filePath": "src/tokens/base/motion/timing.json5",
110
152
  "isSource": true,
111
153
  "original": {
112
- "$value": "500ms",
154
+ "$value": {
155
+ "value": 500,
156
+ "unit": "ms"
157
+ },
113
158
  "$type": "duration",
114
159
  "key": "{base.duration.500}"
115
160
  },
116
161
  "name": "base-duration-500",
117
162
  "attributes": {},
118
163
  "path": ["base", "duration", "500"],
119
- "value": "500ms",
164
+ "value": {
165
+ "value": 500,
166
+ "unit": "ms"
167
+ },
120
168
  "type": "duration"
121
169
  },
122
170
  "base-duration-600": {
@@ -124,14 +172,20 @@
124
172
  "filePath": "src/tokens/base/motion/timing.json5",
125
173
  "isSource": true,
126
174
  "original": {
127
- "$value": "600ms",
175
+ "$value": {
176
+ "value": 600,
177
+ "unit": "ms"
178
+ },
128
179
  "$type": "duration",
129
180
  "key": "{base.duration.600}"
130
181
  },
131
182
  "name": "base-duration-600",
132
183
  "attributes": {},
133
184
  "path": ["base", "duration", "600"],
134
- "value": "600ms",
185
+ "value": {
186
+ "value": 600,
187
+ "unit": "ms"
188
+ },
135
189
  "type": "duration"
136
190
  },
137
191
  "base-duration-700": {
@@ -139,14 +193,20 @@
139
193
  "filePath": "src/tokens/base/motion/timing.json5",
140
194
  "isSource": true,
141
195
  "original": {
142
- "$value": "700ms",
196
+ "$value": {
197
+ "value": 700,
198
+ "unit": "ms"
199
+ },
143
200
  "$type": "duration",
144
201
  "key": "{base.duration.700}"
145
202
  },
146
203
  "name": "base-duration-700",
147
204
  "attributes": {},
148
205
  "path": ["base", "duration", "700"],
149
- "value": "700ms",
206
+ "value": {
207
+ "value": 700,
208
+ "unit": "ms"
209
+ },
150
210
  "type": "duration"
151
211
  },
152
212
  "base-duration-800": {
@@ -154,14 +214,20 @@
154
214
  "filePath": "src/tokens/base/motion/timing.json5",
155
215
  "isSource": true,
156
216
  "original": {
157
- "$value": "800ms",
217
+ "$value": {
218
+ "value": 800,
219
+ "unit": "ms"
220
+ },
158
221
  "$type": "duration",
159
222
  "key": "{base.duration.800}"
160
223
  },
161
224
  "name": "base-duration-800",
162
225
  "attributes": {},
163
226
  "path": ["base", "duration", "800"],
164
- "value": "800ms",
227
+ "value": {
228
+ "value": 800,
229
+ "unit": "ms"
230
+ },
165
231
  "type": "duration"
166
232
  },
167
233
  "base-duration-900": {
@@ -169,14 +235,20 @@
169
235
  "filePath": "src/tokens/base/motion/timing.json5",
170
236
  "isSource": true,
171
237
  "original": {
172
- "$value": "900ms",
238
+ "$value": {
239
+ "value": 900,
240
+ "unit": "ms"
241
+ },
173
242
  "$type": "duration",
174
243
  "key": "{base.duration.900}"
175
244
  },
176
245
  "name": "base-duration-900",
177
246
  "attributes": {},
178
247
  "path": ["base", "duration", "900"],
179
- "value": "900ms",
248
+ "value": {
249
+ "value": 900,
250
+ "unit": "ms"
251
+ },
180
252
  "type": "duration"
181
253
  },
182
254
  "base-easing-ease": {
@@ -4,16 +4,52 @@
4
4
  "--base-easing-easeIn": [0.7, 0.1, 0.75, 0.9],
5
5
  "--base-easing-easeOut": [0.3, 0.8, 0.6, 1],
6
6
  "--base-easing-easeInOut": [0.6, 0, 0.2, 1],
7
- "--base-duration-0": "0ms",
8
- "--base-duration-50": "50ms",
9
- "--base-duration-100": "100ms",
10
- "--base-duration-200": "200ms",
11
- "--base-duration-300": "300ms",
12
- "--base-duration-400": "400ms",
13
- "--base-duration-500": "500ms",
14
- "--base-duration-600": "600ms",
15
- "--base-duration-700": "700ms",
16
- "--base-duration-800": "800ms",
17
- "--base-duration-900": "900ms",
18
- "--base-duration-1000": "1000ms"
7
+ "--base-duration-0": {
8
+ "value": 0,
9
+ "unit": "ms"
10
+ },
11
+ "--base-duration-50": {
12
+ "value": 50,
13
+ "unit": "ms"
14
+ },
15
+ "--base-duration-100": {
16
+ "value": 100,
17
+ "unit": "ms"
18
+ },
19
+ "--base-duration-200": {
20
+ "value": 200,
21
+ "unit": "ms"
22
+ },
23
+ "--base-duration-300": {
24
+ "value": 300,
25
+ "unit": "ms"
26
+ },
27
+ "--base-duration-400": {
28
+ "value": 400,
29
+ "unit": "ms"
30
+ },
31
+ "--base-duration-500": {
32
+ "value": 500,
33
+ "unit": "ms"
34
+ },
35
+ "--base-duration-600": {
36
+ "value": 600,
37
+ "unit": "ms"
38
+ },
39
+ "--base-duration-700": {
40
+ "value": 700,
41
+ "unit": "ms"
42
+ },
43
+ "--base-duration-800": {
44
+ "value": 800,
45
+ "unit": "ms"
46
+ },
47
+ "--base-duration-900": {
48
+ "value": 900,
49
+ "unit": "ms"
50
+ },
51
+ "--base-duration-1000": {
52
+ "value": 1000,
53
+ "unit": "ms"
54
+ }
19
55
  }