@oneli8/tokens 1.0.0-beta.10
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.
- package/AGENTS.md +16 -0
- package/FONTS-LICENSE.txt +113 -0
- package/LICENSE +202 -0
- package/NOTICE +8 -0
- package/PRINCIPLES.md +48 -0
- package/README.md +163 -0
- package/ai-context.json +56 -0
- package/build/css/tokens.css +869 -0
- package/build/figma/variables.json +7785 -0
- package/build/manifest.json +22 -0
- package/build/status/components.json +235 -0
- package/build/tailwind/preset.mjs +258 -0
- package/build/tailwind/theme.css +125 -0
- package/build/typescript/index.d.ts +10 -0
- package/build/typescript/index.js +7169 -0
- package/fonts/ar-one-sans-latin-ext.woff2 +0 -0
- package/fonts/ar-one-sans-latin.woff2 +0 -0
- package/fonts/ar-one-sans-vietnamese.woff2 +0 -0
- package/fonts/syne-greek.woff2 +0 -0
- package/fonts/syne-latin-ext.woff2 +0 -0
- package/fonts/syne-latin.woff2 +0 -0
- package/fonts.css +63 -0
- package/overrides.example.css +53 -0
- package/package.json +70 -0
- package/schema/component-status.schema.json +32 -0
- package/schema/token-file.schema.json +31 -0
- package/scripts/build.mjs +246 -0
- package/scripts/test.mjs +136 -0
- package/src/component.json +1088 -0
- package/src/figma-code-syntax.txt +585 -0
- package/src/primitive.json +1105 -0
- package/src/semantic.json +2041 -0
- package/src/themes.json +1058 -0
- package/status/components.json +16 -0
|
@@ -0,0 +1,1088 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../schema/token-file.schema.json",
|
|
3
|
+
"$description": "Approved Oneli8 component recipes. Component tokens map Semantic roles and approved non-duplicative geometry; they never create private foundation scales.",
|
|
4
|
+
"$extensions": {
|
|
5
|
+
"oneli8.status": "component-slice-01"
|
|
6
|
+
},
|
|
7
|
+
"component": {
|
|
8
|
+
"opticalStroke": {
|
|
9
|
+
"$type": "dimension",
|
|
10
|
+
"$value": {
|
|
11
|
+
"value": 1.8,
|
|
12
|
+
"unit": "px"
|
|
13
|
+
},
|
|
14
|
+
"$extensions": {
|
|
15
|
+
"oneli8.exception": "universal-optical-stroke"
|
|
16
|
+
},
|
|
17
|
+
"$description": "Universal 1.8-unit source stroke for canonical 24px outlined icons and direct 1.8px geometry for Checkbox, Radio, and Gem equivalents."
|
|
18
|
+
},
|
|
19
|
+
"icon": {
|
|
20
|
+
"stroke": {
|
|
21
|
+
"$type": "dimension",
|
|
22
|
+
"$value": "{component.opticalStroke}",
|
|
23
|
+
"$description": "Canonical 24px Icon Frame source stroke; the complete source geometry scales at presentation time."
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"button": {
|
|
27
|
+
"height": {
|
|
28
|
+
"compact": {
|
|
29
|
+
"$type": "dimension",
|
|
30
|
+
"$value": "{size.control.compact}",
|
|
31
|
+
"$description": "Compact Button visible height."
|
|
32
|
+
},
|
|
33
|
+
"standard": {
|
|
34
|
+
"$type": "dimension",
|
|
35
|
+
"$value": "{size.control.standard}",
|
|
36
|
+
"$description": "Standard Button visible height."
|
|
37
|
+
},
|
|
38
|
+
"comfortable": {
|
|
39
|
+
"$type": "dimension",
|
|
40
|
+
"$value": "{size.control.comfortable}",
|
|
41
|
+
"$description": "Comfortable Button visible height."
|
|
42
|
+
},
|
|
43
|
+
"large": {
|
|
44
|
+
"$type": "dimension",
|
|
45
|
+
"$value": "{size.control.large}",
|
|
46
|
+
"$description": "Large Button visible height."
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"paddingInline": {
|
|
50
|
+
"compact": {
|
|
51
|
+
"$type": "dimension",
|
|
52
|
+
"$value": "{spacing.inset.compact}",
|
|
53
|
+
"$description": "Compact Button inline padding."
|
|
54
|
+
},
|
|
55
|
+
"standard": {
|
|
56
|
+
"$type": "dimension",
|
|
57
|
+
"$value": {
|
|
58
|
+
"value": 15,
|
|
59
|
+
"unit": "px"
|
|
60
|
+
},
|
|
61
|
+
"$extensions": {
|
|
62
|
+
"oneli8.geometry": "approved-component-recipe"
|
|
63
|
+
},
|
|
64
|
+
"$description": "Standard Button inline padding."
|
|
65
|
+
},
|
|
66
|
+
"comfortable": {
|
|
67
|
+
"$type": "dimension",
|
|
68
|
+
"$value": "{spacing.inset.standard}",
|
|
69
|
+
"$description": "Comfortable Button inline padding."
|
|
70
|
+
},
|
|
71
|
+
"large": {
|
|
72
|
+
"$type": "dimension",
|
|
73
|
+
"$value": "{spacing.inset.comfortable}",
|
|
74
|
+
"$description": "Large Button inline padding."
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
"gap": {
|
|
78
|
+
"compact": {
|
|
79
|
+
"$type": "dimension",
|
|
80
|
+
"$value": "{spacing.inline.related}",
|
|
81
|
+
"$description": "Compact and Standard Button icon-label gap."
|
|
82
|
+
},
|
|
83
|
+
"comfortable": {
|
|
84
|
+
"$type": "dimension",
|
|
85
|
+
"$value": {
|
|
86
|
+
"value": 9,
|
|
87
|
+
"unit": "px"
|
|
88
|
+
},
|
|
89
|
+
"$extensions": {
|
|
90
|
+
"oneli8.geometry": "approved-component-recipe"
|
|
91
|
+
},
|
|
92
|
+
"$description": "Comfortable and Large Button icon-label gap."
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
"icon": {
|
|
96
|
+
"compact": {
|
|
97
|
+
"$type": "dimension",
|
|
98
|
+
"$value": "{size.icon.small}",
|
|
99
|
+
"$description": "Compact and Standard Button icon box."
|
|
100
|
+
},
|
|
101
|
+
"comfortable": {
|
|
102
|
+
"$type": "dimension",
|
|
103
|
+
"$value": "{size.icon.standard}",
|
|
104
|
+
"$description": "Comfortable and Large Button icon box."
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
"target": {
|
|
108
|
+
"compact": {
|
|
109
|
+
"$type": "dimension",
|
|
110
|
+
"$value": "{size.target.minimum}",
|
|
111
|
+
"$description": "Protected Compact Button target."
|
|
112
|
+
},
|
|
113
|
+
"standard": {
|
|
114
|
+
"$type": "dimension",
|
|
115
|
+
"$value": "{size.target.minimum}",
|
|
116
|
+
"$description": "Protected Standard Button target."
|
|
117
|
+
},
|
|
118
|
+
"comfortable": {
|
|
119
|
+
"$type": "dimension",
|
|
120
|
+
"$value": "{size.target.minimum}",
|
|
121
|
+
"$description": "Comfortable Button target."
|
|
122
|
+
},
|
|
123
|
+
"large": {
|
|
124
|
+
"$type": "dimension",
|
|
125
|
+
"$value": "{size.target.comfortable}",
|
|
126
|
+
"$description": "Large Button target."
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
"radius": {
|
|
130
|
+
"compact": {
|
|
131
|
+
"$type": "dimension",
|
|
132
|
+
"$value": "{shape.radius.compact}",
|
|
133
|
+
"$description": "Compact Button radius."
|
|
134
|
+
},
|
|
135
|
+
"standard": {
|
|
136
|
+
"$type": "dimension",
|
|
137
|
+
"$value": "{shape.radius.medium}",
|
|
138
|
+
"$description": "Standard Button radius."
|
|
139
|
+
},
|
|
140
|
+
"comfortable": {
|
|
141
|
+
"$type": "dimension",
|
|
142
|
+
"$value": "{shape.radius.standard}",
|
|
143
|
+
"$description": "Comfortable Button radius."
|
|
144
|
+
},
|
|
145
|
+
"large": {
|
|
146
|
+
"$type": "dimension",
|
|
147
|
+
"$value": "{shape.radius.standard}",
|
|
148
|
+
"$description": "Large Button radius."
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
"secondaryBoundary": {
|
|
152
|
+
"$type": "dimension",
|
|
153
|
+
"$value": "{border.width.standard}",
|
|
154
|
+
"$description": "Persistent Secondary Button boundary."
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
"iconButton": {
|
|
158
|
+
"box": {
|
|
159
|
+
"compact": {
|
|
160
|
+
"$type": "dimension",
|
|
161
|
+
"$value": "{size.control.compact}",
|
|
162
|
+
"$description": "Compact Icon Button visible box."
|
|
163
|
+
},
|
|
164
|
+
"standard": {
|
|
165
|
+
"$type": "dimension",
|
|
166
|
+
"$value": "{size.control.standard}",
|
|
167
|
+
"$description": "Standard Icon Button visible box."
|
|
168
|
+
},
|
|
169
|
+
"comfortable": {
|
|
170
|
+
"$type": "dimension",
|
|
171
|
+
"$value": "{size.control.comfortable}",
|
|
172
|
+
"$description": "Comfortable Icon Button visible box."
|
|
173
|
+
},
|
|
174
|
+
"large": {
|
|
175
|
+
"$type": "dimension",
|
|
176
|
+
"$value": "{size.control.large}",
|
|
177
|
+
"$description": "Large Icon Button visible box."
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
"artwork": {
|
|
181
|
+
"compact": {
|
|
182
|
+
"$type": "dimension",
|
|
183
|
+
"$value": "{size.icon.small}",
|
|
184
|
+
"$description": "Compact Icon Button artwork box."
|
|
185
|
+
},
|
|
186
|
+
"standard": {
|
|
187
|
+
"$type": "dimension",
|
|
188
|
+
"$value": "{size.icon.small}",
|
|
189
|
+
"$description": "Standard Icon Button artwork box."
|
|
190
|
+
},
|
|
191
|
+
"comfortable": {
|
|
192
|
+
"$type": "dimension",
|
|
193
|
+
"$value": "{size.icon.standard}",
|
|
194
|
+
"$description": "Comfortable Icon Button artwork box."
|
|
195
|
+
},
|
|
196
|
+
"large": {
|
|
197
|
+
"$type": "dimension",
|
|
198
|
+
"$value": "{size.icon.large}",
|
|
199
|
+
"$description": "Large Icon Button artwork box."
|
|
200
|
+
}
|
|
201
|
+
},
|
|
202
|
+
"target": {
|
|
203
|
+
"compact": {
|
|
204
|
+
"$type": "dimension",
|
|
205
|
+
"$value": "{size.target.minimum}",
|
|
206
|
+
"$description": "Protected Compact Icon Button target."
|
|
207
|
+
},
|
|
208
|
+
"standard": {
|
|
209
|
+
"$type": "dimension",
|
|
210
|
+
"$value": "{size.target.minimum}",
|
|
211
|
+
"$description": "Protected Standard Icon Button target."
|
|
212
|
+
},
|
|
213
|
+
"comfortable": {
|
|
214
|
+
"$type": "dimension",
|
|
215
|
+
"$value": "{size.target.minimum}",
|
|
216
|
+
"$description": "Comfortable Icon Button target."
|
|
217
|
+
},
|
|
218
|
+
"large": {
|
|
219
|
+
"$type": "dimension",
|
|
220
|
+
"$value": "{size.target.comfortable}",
|
|
221
|
+
"$description": "Large Icon Button target."
|
|
222
|
+
}
|
|
223
|
+
},
|
|
224
|
+
"radius": {
|
|
225
|
+
"compact": {
|
|
226
|
+
"$type": "dimension",
|
|
227
|
+
"$value": "{shape.radius.medium}",
|
|
228
|
+
"$description": "Compact Icon Button rounded-square radius."
|
|
229
|
+
},
|
|
230
|
+
"standard": {
|
|
231
|
+
"$type": "dimension",
|
|
232
|
+
"$value": "{shape.radius.standard}",
|
|
233
|
+
"$description": "Standard Icon Button rounded-square radius."
|
|
234
|
+
},
|
|
235
|
+
"comfortable": {
|
|
236
|
+
"$type": "dimension",
|
|
237
|
+
"$value": "{shape.radius.standard}",
|
|
238
|
+
"$description": "Comfortable Icon Button rounded-square radius."
|
|
239
|
+
},
|
|
240
|
+
"large": {
|
|
241
|
+
"$type": "dimension",
|
|
242
|
+
"$value": "{shape.radius.comfortable}",
|
|
243
|
+
"$description": "Large Icon Button rounded-square radius."
|
|
244
|
+
},
|
|
245
|
+
"circle": {
|
|
246
|
+
"$type": "dimension",
|
|
247
|
+
"$value": "{shape.radius.full}",
|
|
248
|
+
"$description": "Circular Icon Button radius."
|
|
249
|
+
}
|
|
250
|
+
},
|
|
251
|
+
"pressedScrim": {
|
|
252
|
+
"$type": "color",
|
|
253
|
+
"$value": "{color.scrim.pressed}",
|
|
254
|
+
"$description": "Inner pressed edge on Icon Button, drawn as an inset ring rather than an extra node."
|
|
255
|
+
}
|
|
256
|
+
},
|
|
257
|
+
"link": {
|
|
258
|
+
"underline": {
|
|
259
|
+
"default": {
|
|
260
|
+
"$type": "dimension",
|
|
261
|
+
"$value": "{border.width.hairline}",
|
|
262
|
+
"$description": "Persistent Inline and Standalone Link underline."
|
|
263
|
+
},
|
|
264
|
+
"emphasis": {
|
|
265
|
+
"$type": "dimension",
|
|
266
|
+
"$value": "{border.width.standard}",
|
|
267
|
+
"$description": "Hover and Pressed Link underline."
|
|
268
|
+
},
|
|
269
|
+
"current": {
|
|
270
|
+
"$type": "dimension",
|
|
271
|
+
"$value": "{border.width.strong}",
|
|
272
|
+
"$description": "Marker that shows the current destination in a Navigation Link. It sits where the underline sits and replaces it."
|
|
273
|
+
},
|
|
274
|
+
"offset": {
|
|
275
|
+
"$type": "dimension",
|
|
276
|
+
"$value": "{focus.ring.offset}",
|
|
277
|
+
"$description": "Governed Link underline offset."
|
|
278
|
+
}
|
|
279
|
+
},
|
|
280
|
+
"gap": {
|
|
281
|
+
"small": {
|
|
282
|
+
"$type": "dimension",
|
|
283
|
+
"$value": "{spacing.inline.related}",
|
|
284
|
+
"$description": "Small Link icon-label gap."
|
|
285
|
+
},
|
|
286
|
+
"standard": {
|
|
287
|
+
"$type": "dimension",
|
|
288
|
+
"$value": "{spacing.inline.related}",
|
|
289
|
+
"$description": "Standard Link icon-label gap."
|
|
290
|
+
},
|
|
291
|
+
"large": {
|
|
292
|
+
"$type": "dimension",
|
|
293
|
+
"$value": {
|
|
294
|
+
"value": 9,
|
|
295
|
+
"unit": "px"
|
|
296
|
+
},
|
|
297
|
+
"$extensions": {
|
|
298
|
+
"oneli8.geometry": "approved-component-recipe"
|
|
299
|
+
},
|
|
300
|
+
"$description": "Large Link icon-label gap."
|
|
301
|
+
}
|
|
302
|
+
},
|
|
303
|
+
"targetNavigation": {
|
|
304
|
+
"$type": "dimension",
|
|
305
|
+
"$value": "{size.target.minimum}",
|
|
306
|
+
"$description": "Minimum Navigation Link target."
|
|
307
|
+
}
|
|
308
|
+
},
|
|
309
|
+
"textField": {
|
|
310
|
+
"height": {
|
|
311
|
+
"compact": {
|
|
312
|
+
"$type": "dimension",
|
|
313
|
+
"$value": "{size.control.compact}",
|
|
314
|
+
"$description": "Compact Text Field minimum visible height."
|
|
315
|
+
},
|
|
316
|
+
"standard": {
|
|
317
|
+
"$type": "dimension",
|
|
318
|
+
"$value": "{size.control.standard}",
|
|
319
|
+
"$description": "Standard Text Field minimum visible height."
|
|
320
|
+
},
|
|
321
|
+
"comfortable": {
|
|
322
|
+
"$type": "dimension",
|
|
323
|
+
"$value": "{size.control.comfortable}",
|
|
324
|
+
"$description": "Comfortable Text Field minimum visible height."
|
|
325
|
+
},
|
|
326
|
+
"large": {
|
|
327
|
+
"$type": "dimension",
|
|
328
|
+
"$value": "{size.control.large}",
|
|
329
|
+
"$description": "Large Text Field minimum visible height."
|
|
330
|
+
}
|
|
331
|
+
},
|
|
332
|
+
"inset": {
|
|
333
|
+
"compact": {
|
|
334
|
+
"$type": "dimension",
|
|
335
|
+
"$value": "{spacing.inset.compact}",
|
|
336
|
+
"$description": "Compact Text Field inline inset."
|
|
337
|
+
},
|
|
338
|
+
"standard": {
|
|
339
|
+
"$type": "dimension",
|
|
340
|
+
"$value": {
|
|
341
|
+
"value": 15,
|
|
342
|
+
"unit": "px"
|
|
343
|
+
},
|
|
344
|
+
"$extensions": {
|
|
345
|
+
"oneli8.geometry": "approved-component-recipe"
|
|
346
|
+
},
|
|
347
|
+
"$description": "Standard Text Field inline inset."
|
|
348
|
+
},
|
|
349
|
+
"comfortable": {
|
|
350
|
+
"$type": "dimension",
|
|
351
|
+
"$value": "{spacing.inset.standard}",
|
|
352
|
+
"$description": "Comfortable Text Field inline inset."
|
|
353
|
+
},
|
|
354
|
+
"large": {
|
|
355
|
+
"$type": "dimension",
|
|
356
|
+
"$value": "{spacing.inset.comfortable}",
|
|
357
|
+
"$description": "Large Text Field inline inset."
|
|
358
|
+
}
|
|
359
|
+
},
|
|
360
|
+
"radius": {
|
|
361
|
+
"compact": {
|
|
362
|
+
"$type": "dimension",
|
|
363
|
+
"$value": "{shape.radius.compact}",
|
|
364
|
+
"$description": "Compact Text Field radius."
|
|
365
|
+
},
|
|
366
|
+
"standard": {
|
|
367
|
+
"$type": "dimension",
|
|
368
|
+
"$value": "{shape.radius.medium}",
|
|
369
|
+
"$description": "Standard Text Field radius."
|
|
370
|
+
},
|
|
371
|
+
"comfortable": {
|
|
372
|
+
"$type": "dimension",
|
|
373
|
+
"$value": "{shape.radius.standard}",
|
|
374
|
+
"$description": "Comfortable Text Field radius."
|
|
375
|
+
},
|
|
376
|
+
"large": {
|
|
377
|
+
"$type": "dimension",
|
|
378
|
+
"$value": "{shape.radius.comfortable}",
|
|
379
|
+
"$description": "Large Text Field radius."
|
|
380
|
+
}
|
|
381
|
+
},
|
|
382
|
+
"boundary": {
|
|
383
|
+
"$type": "dimension",
|
|
384
|
+
"$value": "{border.width.standard}",
|
|
385
|
+
"$description": "Preallocated essential Text Field boundary."
|
|
386
|
+
},
|
|
387
|
+
"gap": {
|
|
388
|
+
"label": {
|
|
389
|
+
"$type": "dimension",
|
|
390
|
+
"$value": "{spacing.stack.tight}",
|
|
391
|
+
"$description": "Label-to-control gap."
|
|
392
|
+
},
|
|
393
|
+
"requirement": {
|
|
394
|
+
"$type": "dimension",
|
|
395
|
+
"$value": "{spacing.inline.minimal}",
|
|
396
|
+
"$description": "Gap between the label and the mark that says the field is required."
|
|
397
|
+
},
|
|
398
|
+
"supporting": {
|
|
399
|
+
"$type": "dimension",
|
|
400
|
+
"$value": "{spacing.stack.tight}",
|
|
401
|
+
"$description": "Control-to-supporting-region gap."
|
|
402
|
+
},
|
|
403
|
+
"inline": {
|
|
404
|
+
"$type": "dimension",
|
|
405
|
+
"$value": "{spacing.inline.related}",
|
|
406
|
+
"$description": "Gap between the slots inside the control: leading icon, prefix, value, suffix and trailing action."
|
|
407
|
+
},
|
|
408
|
+
"status": {
|
|
409
|
+
"$type": "dimension",
|
|
410
|
+
"$value": "{spacing.inline.minimal}",
|
|
411
|
+
"$description": "Status-icon-to-message-text gap."
|
|
412
|
+
},
|
|
413
|
+
"messageCounter": {
|
|
414
|
+
"$type": "dimension",
|
|
415
|
+
"$value": "{spacing.inline.standard}",
|
|
416
|
+
"$description": "Message-to-counter inline gap."
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
},
|
|
420
|
+
"choice": {
|
|
421
|
+
"indicator": {
|
|
422
|
+
"compact": {
|
|
423
|
+
"$type": "dimension",
|
|
424
|
+
"$value": "{size.indicator.standard}",
|
|
425
|
+
"$description": "Compact and Standard Checkbox or Radio indicator."
|
|
426
|
+
},
|
|
427
|
+
"comfortable": {
|
|
428
|
+
"$type": "dimension",
|
|
429
|
+
"$value": "{size.indicator.large}",
|
|
430
|
+
"$description": "Comfortable and Large Checkbox or Radio indicator."
|
|
431
|
+
}
|
|
432
|
+
},
|
|
433
|
+
"gap": {
|
|
434
|
+
"compact": {
|
|
435
|
+
"$type": "dimension",
|
|
436
|
+
"$value": "{spacing.inline.related}",
|
|
437
|
+
"$description": "Compact indicator-to-label gap."
|
|
438
|
+
},
|
|
439
|
+
"standard": {
|
|
440
|
+
"$type": "dimension",
|
|
441
|
+
"$value": {
|
|
442
|
+
"value": 9,
|
|
443
|
+
"unit": "px"
|
|
444
|
+
},
|
|
445
|
+
"$extensions": {
|
|
446
|
+
"oneli8.geometry": "approved-component-recipe"
|
|
447
|
+
},
|
|
448
|
+
"$description": "Standard and Comfortable indicator-to-label gap."
|
|
449
|
+
},
|
|
450
|
+
"large": {
|
|
451
|
+
"$type": "dimension",
|
|
452
|
+
"$value": "{spacing.inline.standard}",
|
|
453
|
+
"$description": "Large indicator-to-label gap."
|
|
454
|
+
}
|
|
455
|
+
},
|
|
456
|
+
"rowMinimum": {
|
|
457
|
+
"$type": "dimension",
|
|
458
|
+
"$value": "{size.target.minimum}",
|
|
459
|
+
"$description": "Minimum Choice item interaction row."
|
|
460
|
+
},
|
|
461
|
+
"opticalStroke": {
|
|
462
|
+
"$type": "dimension",
|
|
463
|
+
"$value": "{component.opticalStroke}",
|
|
464
|
+
"$description": "Compatibility alias for Checkbox, Radio, Switch, and Gem-equivalent geometry."
|
|
465
|
+
}
|
|
466
|
+
},
|
|
467
|
+
"checkbox": {
|
|
468
|
+
"radius": {
|
|
469
|
+
"compact": {
|
|
470
|
+
"$type": "dimension",
|
|
471
|
+
"$value": "{shape.radius.subtle}",
|
|
472
|
+
"$description": "Compact and Standard Checkbox radius."
|
|
473
|
+
},
|
|
474
|
+
"comfortable": {
|
|
475
|
+
"$type": "dimension",
|
|
476
|
+
"$value": "{shape.radius.compact}",
|
|
477
|
+
"$description": "Comfortable and Large Checkbox radius."
|
|
478
|
+
}
|
|
479
|
+
},
|
|
480
|
+
"boundary": {
|
|
481
|
+
"$type": "dimension",
|
|
482
|
+
"$value": "{component.choice.opticalStroke}",
|
|
483
|
+
"$description": "Checkbox outer boundary aliases the shared Choice optical stroke."
|
|
484
|
+
},
|
|
485
|
+
"mark": {
|
|
486
|
+
"stroke": {
|
|
487
|
+
"$type": "dimension",
|
|
488
|
+
"$value": "{component.choice.opticalStroke}",
|
|
489
|
+
"$description": "Compatibility alias for the shared Choice optical stroke."
|
|
490
|
+
},
|
|
491
|
+
"mixedWidth": {
|
|
492
|
+
"$type": "dimension",
|
|
493
|
+
"$value": {
|
|
494
|
+
"value": 9,
|
|
495
|
+
"unit": "px"
|
|
496
|
+
},
|
|
497
|
+
"$extensions": {
|
|
498
|
+
"oneli8.geometry": "approved-component-recipe"
|
|
499
|
+
},
|
|
500
|
+
"$description": "Centered Mixed-state bar width."
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
},
|
|
504
|
+
"radio": {
|
|
505
|
+
"boundary": {
|
|
506
|
+
"$type": "dimension",
|
|
507
|
+
"$value": "{component.choice.opticalStroke}",
|
|
508
|
+
"$description": "Radio outer boundary aliases the shared Choice optical stroke."
|
|
509
|
+
},
|
|
510
|
+
"dot": {
|
|
511
|
+
"compact": {
|
|
512
|
+
"$type": "dimension",
|
|
513
|
+
"$value": {
|
|
514
|
+
"value": 9,
|
|
515
|
+
"unit": "px"
|
|
516
|
+
},
|
|
517
|
+
"$extensions": {
|
|
518
|
+
"oneli8.geometry": "approved-component-recipe"
|
|
519
|
+
},
|
|
520
|
+
"$description": "Compact and Standard selected Radio dot."
|
|
521
|
+
},
|
|
522
|
+
"comfortable": {
|
|
523
|
+
"$type": "dimension",
|
|
524
|
+
"$value": {
|
|
525
|
+
"value": 12,
|
|
526
|
+
"unit": "px"
|
|
527
|
+
},
|
|
528
|
+
"$extensions": {
|
|
529
|
+
"oneli8.geometry": "approved-component-recipe"
|
|
530
|
+
},
|
|
531
|
+
"$description": "Comfortable and Large selected Radio dot."
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
},
|
|
535
|
+
"switch": {
|
|
536
|
+
"trackWidth": {
|
|
537
|
+
"compact": {
|
|
538
|
+
"$type": "dimension",
|
|
539
|
+
"$value": "{size.control.compact}",
|
|
540
|
+
"$description": "Compact and Standard Switch track width."
|
|
541
|
+
},
|
|
542
|
+
"comfortable": {
|
|
543
|
+
"$type": "dimension",
|
|
544
|
+
"$value": "{size.control.comfortable}",
|
|
545
|
+
"$description": "Comfortable and Large Switch track width."
|
|
546
|
+
}
|
|
547
|
+
},
|
|
548
|
+
"trackHeight": {
|
|
549
|
+
"compact": {
|
|
550
|
+
"$type": "dimension",
|
|
551
|
+
"$value": "{size.indicator.standard}",
|
|
552
|
+
"$description": "Compact and Standard Switch track height."
|
|
553
|
+
},
|
|
554
|
+
"comfortable": {
|
|
555
|
+
"$type": "dimension",
|
|
556
|
+
"$value": "{size.indicator.large}",
|
|
557
|
+
"$description": "Comfortable and Large Switch track height."
|
|
558
|
+
}
|
|
559
|
+
},
|
|
560
|
+
"thumb": {
|
|
561
|
+
"compact": {
|
|
562
|
+
"$type": "dimension",
|
|
563
|
+
"$value": "{size.indicator.small}",
|
|
564
|
+
"$description": "Compact and Standard Switch thumb."
|
|
565
|
+
},
|
|
566
|
+
"comfortable": {
|
|
567
|
+
"$type": "dimension",
|
|
568
|
+
"$value": "{size.indicator.standard}",
|
|
569
|
+
"$description": "Comfortable and Large Switch thumb."
|
|
570
|
+
}
|
|
571
|
+
},
|
|
572
|
+
"thumbIcon": {
|
|
573
|
+
"compact": {
|
|
574
|
+
"$type": "dimension",
|
|
575
|
+
"$value": {
|
|
576
|
+
"value": 9,
|
|
577
|
+
"unit": "px"
|
|
578
|
+
},
|
|
579
|
+
"$extensions": {
|
|
580
|
+
"oneli8.geometry": "approved-component-recipe"
|
|
581
|
+
},
|
|
582
|
+
"$description": "Compact and Standard Switch thumb icon box."
|
|
583
|
+
},
|
|
584
|
+
"comfortable": {
|
|
585
|
+
"$type": "dimension",
|
|
586
|
+
"$value": "{size.indicator.small}",
|
|
587
|
+
"$description": "Comfortable and Large Switch thumb icon box."
|
|
588
|
+
}
|
|
589
|
+
},
|
|
590
|
+
"inset": {
|
|
591
|
+
"$type": "dimension",
|
|
592
|
+
"$value": "{shape.radius.subtle}",
|
|
593
|
+
"$description": "Switch thumb inset from the track edge."
|
|
594
|
+
},
|
|
595
|
+
"travel": {
|
|
596
|
+
"compact": {
|
|
597
|
+
"$type": "dimension",
|
|
598
|
+
"$value": "{size.indicator.standard}",
|
|
599
|
+
"$description": "Compact and Standard Switch logical travel."
|
|
600
|
+
},
|
|
601
|
+
"comfortable": {
|
|
602
|
+
"$type": "dimension",
|
|
603
|
+
"$value": "{size.indicator.large}",
|
|
604
|
+
"$description": "Comfortable and Large Switch logical travel."
|
|
605
|
+
}
|
|
606
|
+
}
|
|
607
|
+
},
|
|
608
|
+
"selectionPopup": {
|
|
609
|
+
"gap": {
|
|
610
|
+
"$type": "dimension",
|
|
611
|
+
"$value": "{spacing.stack.tight}",
|
|
612
|
+
"$description": "Closed-control-to-popup block gap."
|
|
613
|
+
},
|
|
614
|
+
"paddingInline": {
|
|
615
|
+
"$type": "dimension",
|
|
616
|
+
"$value": "{spacing.inline.minimal}",
|
|
617
|
+
"$description": "Selection popup outer inline inset; combines with the Option Rail inset to form the visible edge."
|
|
618
|
+
},
|
|
619
|
+
"paddingBlock": {
|
|
620
|
+
"$type": "dimension",
|
|
621
|
+
"$value": "{spacing.inline.related}",
|
|
622
|
+
"$description": "Selection popup block inset."
|
|
623
|
+
},
|
|
624
|
+
"railInsetInline": {
|
|
625
|
+
"$type": "dimension",
|
|
626
|
+
"$value": "{spacing.inline.minimal}",
|
|
627
|
+
"$description": "Option Rail inline inset; combines with popup inline padding to form the approved 6px visible edge."
|
|
628
|
+
},
|
|
629
|
+
"maximumBlock": {
|
|
630
|
+
"standard": {
|
|
631
|
+
"$type": "dimension",
|
|
632
|
+
"$value": {
|
|
633
|
+
"value": 288,
|
|
634
|
+
"unit": "px"
|
|
635
|
+
},
|
|
636
|
+
"$extensions": {
|
|
637
|
+
"oneli8.geometry": "approved-component-recipe"
|
|
638
|
+
},
|
|
639
|
+
"$description": "Suggested Standard maximum visible option region before scrolling."
|
|
640
|
+
},
|
|
641
|
+
"large": {
|
|
642
|
+
"$type": "dimension",
|
|
643
|
+
"$value": {
|
|
644
|
+
"value": 360,
|
|
645
|
+
"unit": "px"
|
|
646
|
+
},
|
|
647
|
+
"$extensions": {
|
|
648
|
+
"oneli8.geometry": "approved-component-recipe"
|
|
649
|
+
},
|
|
650
|
+
"$description": "Suggested Large maximum visible option region before scrolling."
|
|
651
|
+
}
|
|
652
|
+
},
|
|
653
|
+
"inset": {
|
|
654
|
+
"$type": "dimension",
|
|
655
|
+
"$value": "{spacing.inline.related}",
|
|
656
|
+
"$description": "Selection popup internal inset."
|
|
657
|
+
}
|
|
658
|
+
},
|
|
659
|
+
"selectionOption": {
|
|
660
|
+
"minimum": {
|
|
661
|
+
"standard": {
|
|
662
|
+
"$type": "dimension",
|
|
663
|
+
"$value": "{size.target.minimum}",
|
|
664
|
+
"$description": "Standard option minimum row."
|
|
665
|
+
},
|
|
666
|
+
"large": {
|
|
667
|
+
"$type": "dimension",
|
|
668
|
+
"$value": "{size.target.comfortable}",
|
|
669
|
+
"$description": "Large option minimum row."
|
|
670
|
+
}
|
|
671
|
+
},
|
|
672
|
+
"inset": {
|
|
673
|
+
"standard": {
|
|
674
|
+
"$type": "dimension",
|
|
675
|
+
"$value": "{spacing.inset.compact}",
|
|
676
|
+
"$description": "Standard and Comfortable option inline inset."
|
|
677
|
+
},
|
|
678
|
+
"large": {
|
|
679
|
+
"$type": "dimension",
|
|
680
|
+
"$value": {
|
|
681
|
+
"value": 15,
|
|
682
|
+
"unit": "px"
|
|
683
|
+
},
|
|
684
|
+
"$extensions": {
|
|
685
|
+
"oneli8.geometry": "approved-component-recipe"
|
|
686
|
+
},
|
|
687
|
+
"$description": "Large option inline inset."
|
|
688
|
+
}
|
|
689
|
+
},
|
|
690
|
+
"check": {
|
|
691
|
+
"$type": "dimension",
|
|
692
|
+
"$value": "{size.icon.small}",
|
|
693
|
+
"$description": "Selected-option Check artwork box."
|
|
694
|
+
}
|
|
695
|
+
},
|
|
696
|
+
"choiceChip": {
|
|
697
|
+
"height": {
|
|
698
|
+
"compact": {
|
|
699
|
+
"$type": "dimension",
|
|
700
|
+
"$value": {
|
|
701
|
+
"value": 30,
|
|
702
|
+
"unit": "px"
|
|
703
|
+
},
|
|
704
|
+
"$extensions": {
|
|
705
|
+
"oneli8.geometry": "approved-component-recipe"
|
|
706
|
+
},
|
|
707
|
+
"$description": "Approved Compact Soft Hexagon visible height."
|
|
708
|
+
},
|
|
709
|
+
"standard": {
|
|
710
|
+
"$type": "dimension",
|
|
711
|
+
"$value": "{size.control.compact}",
|
|
712
|
+
"$description": "Approved Standard Soft Hexagon visible height."
|
|
713
|
+
},
|
|
714
|
+
"comfortable": {
|
|
715
|
+
"$type": "dimension",
|
|
716
|
+
"$value": "{size.control.standard}",
|
|
717
|
+
"$description": "Approved Comfortable Soft Hexagon visible height."
|
|
718
|
+
},
|
|
719
|
+
"large": {
|
|
720
|
+
"$type": "dimension",
|
|
721
|
+
"$value": "{size.control.standard}",
|
|
722
|
+
"$description": "Approved Large Soft Hexagon visible height inside a larger protected target."
|
|
723
|
+
}
|
|
724
|
+
},
|
|
725
|
+
"target": {
|
|
726
|
+
"standard": {
|
|
727
|
+
"$type": "dimension",
|
|
728
|
+
"$value": "{size.target.minimum}",
|
|
729
|
+
"$description": "Protected Compact, Standard, and Comfortable Choice Chip target."
|
|
730
|
+
},
|
|
731
|
+
"large": {
|
|
732
|
+
"$type": "dimension",
|
|
733
|
+
"$value": "{size.target.comfortable}",
|
|
734
|
+
"$description": "Protected Large Choice Chip target."
|
|
735
|
+
}
|
|
736
|
+
},
|
|
737
|
+
"terminal": {
|
|
738
|
+
"$type": "dimension",
|
|
739
|
+
"$value": "{spacing.inline.standard}",
|
|
740
|
+
"$description": "Fixed Soft Hexagon terminal width; it never scales with label length."
|
|
741
|
+
},
|
|
742
|
+
"innerTerminal": {
|
|
743
|
+
"$type": "dimension",
|
|
744
|
+
"$value": {
|
|
745
|
+
"value": 11,
|
|
746
|
+
"unit": "px"
|
|
747
|
+
},
|
|
748
|
+
"$extensions": {
|
|
749
|
+
"oneli8.geometry": "approved-component-recipe"
|
|
750
|
+
},
|
|
751
|
+
"$description": "Fixed inset Soft Hexagon terminal width used by the private border construction."
|
|
752
|
+
},
|
|
753
|
+
"centerCut": {
|
|
754
|
+
"$type": "dimension",
|
|
755
|
+
"$value": "{size.icon.small}",
|
|
756
|
+
"$description": "Approved center-mask reduction that overlaps both terminals without exposing a rectangle."
|
|
757
|
+
},
|
|
758
|
+
"innerCenterCut": {
|
|
759
|
+
"$type": "dimension",
|
|
760
|
+
"$value": {
|
|
761
|
+
"value": 16,
|
|
762
|
+
"unit": "px"
|
|
763
|
+
},
|
|
764
|
+
"$extensions": {
|
|
765
|
+
"oneli8.geometry": "approved-component-recipe"
|
|
766
|
+
},
|
|
767
|
+
"$description": "Approved inset center-mask reduction that preserves the Soft Hexagon rather than forming an octagon."
|
|
768
|
+
},
|
|
769
|
+
"bezelInset": {
|
|
770
|
+
"$type": "dimension",
|
|
771
|
+
"$value": "{border.width.standard}",
|
|
772
|
+
"$description": "Thin inset between the Soft Hexagon cut edge and face."
|
|
773
|
+
},
|
|
774
|
+
"inset": {
|
|
775
|
+
"compact": {
|
|
776
|
+
"$type": "dimension",
|
|
777
|
+
"$value": {
|
|
778
|
+
"value": 21,
|
|
779
|
+
"unit": "px"
|
|
780
|
+
},
|
|
781
|
+
"$extensions": {
|
|
782
|
+
"oneli8.geometry": "approved-component-recipe"
|
|
783
|
+
},
|
|
784
|
+
"$description": "Compact Soft Hexagon content inset."
|
|
785
|
+
},
|
|
786
|
+
"standard": {
|
|
787
|
+
"$type": "dimension",
|
|
788
|
+
"$value": "{spacing.inset.comfortable}",
|
|
789
|
+
"$description": "Standard Soft Hexagon content inset."
|
|
790
|
+
},
|
|
791
|
+
"comfortable": {
|
|
792
|
+
"$type": "dimension",
|
|
793
|
+
"$value": {
|
|
794
|
+
"value": 27,
|
|
795
|
+
"unit": "px"
|
|
796
|
+
},
|
|
797
|
+
"$extensions": {
|
|
798
|
+
"oneli8.geometry": "approved-component-recipe"
|
|
799
|
+
},
|
|
800
|
+
"$description": "Comfortable Soft Hexagon content inset."
|
|
801
|
+
},
|
|
802
|
+
"large": {
|
|
803
|
+
"$type": "dimension",
|
|
804
|
+
"$value": {
|
|
805
|
+
"value": 27,
|
|
806
|
+
"unit": "px"
|
|
807
|
+
},
|
|
808
|
+
"$extensions": {
|
|
809
|
+
"oneli8.geometry": "approved-component-recipe"
|
|
810
|
+
},
|
|
811
|
+
"$description": "Large Soft Hexagon content inset."
|
|
812
|
+
}
|
|
813
|
+
},
|
|
814
|
+
"gap": {
|
|
815
|
+
"$type": "dimension",
|
|
816
|
+
"$value": "{spacing.inline.related}",
|
|
817
|
+
"$description": "Token-to-token and wrapped-row gap."
|
|
818
|
+
},
|
|
819
|
+
"markGap": {
|
|
820
|
+
"$type": "dimension",
|
|
821
|
+
"$value": {
|
|
822
|
+
"value": 9,
|
|
823
|
+
"unit": "px"
|
|
824
|
+
},
|
|
825
|
+
"$extensions": {
|
|
826
|
+
"oneli8.geometry": "approved-component-recipe"
|
|
827
|
+
},
|
|
828
|
+
"$description": "Approved label-to-mark gap; absent when Mark is None."
|
|
829
|
+
},
|
|
830
|
+
"mark": {
|
|
831
|
+
"$type": "dimension",
|
|
832
|
+
"$value": "{size.icon.small}",
|
|
833
|
+
"$description": "Canonical Icon Frame presentation for Check or Remove artwork."
|
|
834
|
+
},
|
|
835
|
+
"markTarget": {
|
|
836
|
+
"$type": "dimension",
|
|
837
|
+
"$value": {
|
|
838
|
+
"value": 24,
|
|
839
|
+
"unit": "px"
|
|
840
|
+
},
|
|
841
|
+
"$extensions": {
|
|
842
|
+
"oneli8.geometry": "approved-component-recipe"
|
|
843
|
+
},
|
|
844
|
+
"$description": "Minimum reachable target for the Remove mark. The mark is drawn at 18; the contract asks for at least 24 that overlaps neither the label nor the chip edge, so the target is expanded around the drawn mark rather than enlarging it."
|
|
845
|
+
},
|
|
846
|
+
"railInset": {
|
|
847
|
+
"compact": {
|
|
848
|
+
"$type": "dimension",
|
|
849
|
+
"$value": {
|
|
850
|
+
"value": 9,
|
|
851
|
+
"unit": "px"
|
|
852
|
+
},
|
|
853
|
+
"$extensions": {
|
|
854
|
+
"oneli8.geometry": "approved-component-recipe"
|
|
855
|
+
},
|
|
856
|
+
"$description": "9px rail inset; with the 12px terminal this produces the approved 21px content inset."
|
|
857
|
+
},
|
|
858
|
+
"standard": {
|
|
859
|
+
"$type": "dimension",
|
|
860
|
+
"$value": {
|
|
861
|
+
"value": 12,
|
|
862
|
+
"unit": "px"
|
|
863
|
+
},
|
|
864
|
+
"$extensions": {
|
|
865
|
+
"oneli8.geometry": "approved-component-recipe"
|
|
866
|
+
},
|
|
867
|
+
"$description": "12px rail inset; with the terminal this produces the approved 24px content inset."
|
|
868
|
+
},
|
|
869
|
+
"comfortable": {
|
|
870
|
+
"$type": "dimension",
|
|
871
|
+
"$value": {
|
|
872
|
+
"value": 15,
|
|
873
|
+
"unit": "px"
|
|
874
|
+
},
|
|
875
|
+
"$extensions": {
|
|
876
|
+
"oneli8.geometry": "approved-component-recipe"
|
|
877
|
+
},
|
|
878
|
+
"$description": "15px rail inset; with the terminal this produces the approved 27px content inset."
|
|
879
|
+
},
|
|
880
|
+
"large": {
|
|
881
|
+
"$type": "dimension",
|
|
882
|
+
"$value": {
|
|
883
|
+
"value": 15,
|
|
884
|
+
"unit": "px"
|
|
885
|
+
},
|
|
886
|
+
"$extensions": {
|
|
887
|
+
"oneli8.geometry": "approved-component-recipe"
|
|
888
|
+
},
|
|
889
|
+
"$description": "15px rail inset; with the terminal this produces the approved 27px content inset."
|
|
890
|
+
}
|
|
891
|
+
}
|
|
892
|
+
},
|
|
893
|
+
"tokenField": {
|
|
894
|
+
"minimumInput": {
|
|
895
|
+
"$type": "dimension",
|
|
896
|
+
"$value": {
|
|
897
|
+
"value": 96,
|
|
898
|
+
"unit": "px"
|
|
899
|
+
},
|
|
900
|
+
"$extensions": {
|
|
901
|
+
"oneli8.geometry": "approved-component-recipe"
|
|
902
|
+
},
|
|
903
|
+
"$description": "Minimum editable input measure before wrapping to the next row."
|
|
904
|
+
},
|
|
905
|
+
"gap": {
|
|
906
|
+
"$type": "dimension",
|
|
907
|
+
"$value": "{component.choiceChip.gap}",
|
|
908
|
+
"$description": "Shared token, input, and wrapped-row gap."
|
|
909
|
+
},
|
|
910
|
+
"paddingBlock": {
|
|
911
|
+
"$type": "dimension",
|
|
912
|
+
"$value": "{spacing.inline.minimal}",
|
|
913
|
+
"$description": "Block inset that preserves the Field Shell while tokens wrap."
|
|
914
|
+
}
|
|
915
|
+
},
|
|
916
|
+
"suggestionRail": {
|
|
917
|
+
"gap": {
|
|
918
|
+
"$type": "dimension",
|
|
919
|
+
"$value": "{component.choiceChip.gap}",
|
|
920
|
+
"$description": "Shared gap between Suggested Value chips."
|
|
921
|
+
},
|
|
922
|
+
"fieldSeparation": {
|
|
923
|
+
"$type": "dimension",
|
|
924
|
+
"$value": "{spacing.stack.tight}",
|
|
925
|
+
"$description": "Separation between the optional Suggested Values rail and its owning field control."
|
|
926
|
+
}
|
|
927
|
+
},
|
|
928
|
+
"navigation": {
|
|
929
|
+
"itemGap": {
|
|
930
|
+
"$type": "dimension",
|
|
931
|
+
"$value": "{spacing.inline.related}",
|
|
932
|
+
"$description": "Canonical icon, label, and badge gap inside navigation molecules."
|
|
933
|
+
},
|
|
934
|
+
"icon": {
|
|
935
|
+
"$type": "dimension",
|
|
936
|
+
"$value": "{size.icon.small}",
|
|
937
|
+
"$description": "Canonical navigation Icon Frame presentation."
|
|
938
|
+
},
|
|
939
|
+
"target": {
|
|
940
|
+
"$type": "dimension",
|
|
941
|
+
"$value": "{size.target.minimum}",
|
|
942
|
+
"$description": "Minimum protected navigation target."
|
|
943
|
+
},
|
|
944
|
+
"focusInset": {
|
|
945
|
+
"$type": "dimension",
|
|
946
|
+
"$value": "{focus.ring.innerWidth}",
|
|
947
|
+
"$description": "Inward focus treatment that does not change or escape measured bounds."
|
|
948
|
+
}
|
|
949
|
+
},
|
|
950
|
+
"tabItem": {
|
|
951
|
+
"height": {
|
|
952
|
+
"compact": {
|
|
953
|
+
"$type": "dimension",
|
|
954
|
+
"$value": "{size.control.compact}",
|
|
955
|
+
"$description": "Compact Tab Item visible height."
|
|
956
|
+
},
|
|
957
|
+
"standard": {
|
|
958
|
+
"$type": "dimension",
|
|
959
|
+
"$value": "{size.control.standard}",
|
|
960
|
+
"$description": "Standard Tab Item visible height."
|
|
961
|
+
},
|
|
962
|
+
"comfortable": {
|
|
963
|
+
"$type": "dimension",
|
|
964
|
+
"$value": "{size.control.comfortable}",
|
|
965
|
+
"$description": "Comfortable Tab Item visible height."
|
|
966
|
+
},
|
|
967
|
+
"large": {
|
|
968
|
+
"$type": "dimension",
|
|
969
|
+
"$value": "{size.control.large}",
|
|
970
|
+
"$description": "Large Tab Item visible height."
|
|
971
|
+
}
|
|
972
|
+
},
|
|
973
|
+
"inset": {
|
|
974
|
+
"compact": {
|
|
975
|
+
"$type": "dimension",
|
|
976
|
+
"$value": "{spacing.inset.compact}",
|
|
977
|
+
"$description": "Compact Tab Item inline inset."
|
|
978
|
+
},
|
|
979
|
+
"standard": {
|
|
980
|
+
"$type": "dimension",
|
|
981
|
+
"$value": {
|
|
982
|
+
"value": 15,
|
|
983
|
+
"unit": "px"
|
|
984
|
+
},
|
|
985
|
+
"$extensions": {
|
|
986
|
+
"oneli8.geometry": "approved-component-recipe"
|
|
987
|
+
},
|
|
988
|
+
"$description": "Standard Tab Item inline inset."
|
|
989
|
+
},
|
|
990
|
+
"comfortable": {
|
|
991
|
+
"$type": "dimension",
|
|
992
|
+
"$value": "{spacing.inset.standard}",
|
|
993
|
+
"$description": "Comfortable Tab Item inline inset."
|
|
994
|
+
},
|
|
995
|
+
"large": {
|
|
996
|
+
"$type": "dimension",
|
|
997
|
+
"$value": "{spacing.inset.comfortable}",
|
|
998
|
+
"$description": "Large Tab Item inline inset."
|
|
999
|
+
}
|
|
1000
|
+
},
|
|
1001
|
+
"radius": {
|
|
1002
|
+
"$type": "dimension",
|
|
1003
|
+
"$value": "{shape.radius.medium}",
|
|
1004
|
+
"$description": "Tab Item state-surface radius."
|
|
1005
|
+
},
|
|
1006
|
+
"indicatorThickness": {
|
|
1007
|
+
"$type": "dimension",
|
|
1008
|
+
"$value": "{border.width.strong}",
|
|
1009
|
+
"$description": "Selected Tab Item indicator thickness."
|
|
1010
|
+
},
|
|
1011
|
+
"indicatorInset": {
|
|
1012
|
+
"$type": "dimension",
|
|
1013
|
+
"$value": {
|
|
1014
|
+
"value": 15,
|
|
1015
|
+
"unit": "px"
|
|
1016
|
+
},
|
|
1017
|
+
"$extensions": {
|
|
1018
|
+
"oneli8.geometry": "approved-component-recipe"
|
|
1019
|
+
},
|
|
1020
|
+
"$description": "Selected indicator logical inset."
|
|
1021
|
+
},
|
|
1022
|
+
"rail": {
|
|
1023
|
+
"$type": "dimension",
|
|
1024
|
+
"$value": "{border.width.hairline}",
|
|
1025
|
+
"$description": "Adaptive secondary rail thickness."
|
|
1026
|
+
}
|
|
1027
|
+
},
|
|
1028
|
+
"segmentedControl": {
|
|
1029
|
+
"trackInset": {
|
|
1030
|
+
"$type": "dimension",
|
|
1031
|
+
"$value": "{spacing.inline.minimal}",
|
|
1032
|
+
"$description": "Protected inset between track and Segment molecules."
|
|
1033
|
+
},
|
|
1034
|
+
"outlinedGap": {
|
|
1035
|
+
"$type": "dimension",
|
|
1036
|
+
"$value": "{spacing.inline.related}",
|
|
1037
|
+
"$description": "Deliberate gap between outlined Segment molecules."
|
|
1038
|
+
},
|
|
1039
|
+
"trackRadius": {
|
|
1040
|
+
"$type": "dimension",
|
|
1041
|
+
"$value": "{shape.radius.standard}",
|
|
1042
|
+
"$description": "Connected Segmented Control track radius."
|
|
1043
|
+
},
|
|
1044
|
+
"itemRadius": {
|
|
1045
|
+
"$type": "dimension",
|
|
1046
|
+
"$value": "{shape.radius.medium}",
|
|
1047
|
+
"$description": "Nested Segment state-surface radius."
|
|
1048
|
+
},
|
|
1049
|
+
"line": {
|
|
1050
|
+
"$type": "dimension",
|
|
1051
|
+
"$value": "{border.width.strong}",
|
|
1052
|
+
"$description": "Line-presentation active indicator."
|
|
1053
|
+
},
|
|
1054
|
+
"boundary": {
|
|
1055
|
+
"$type": "dimension",
|
|
1056
|
+
"$value": "{border.width.hairline}",
|
|
1057
|
+
"$description": "Outlined Segment boundary."
|
|
1058
|
+
}
|
|
1059
|
+
},
|
|
1060
|
+
"tabBar": {
|
|
1061
|
+
"inset": {
|
|
1062
|
+
"$type": "dimension",
|
|
1063
|
+
"$value": "{spacing.inline.related}",
|
|
1064
|
+
"$description": "Tab Bar protection; Inline uses inlineInset on its horizontal edges."
|
|
1065
|
+
},
|
|
1066
|
+
"inlineInset": {
|
|
1067
|
+
"$type": "dimension",
|
|
1068
|
+
"$value": "{spacing.inline.minimal}",
|
|
1069
|
+
"$description": "Inline Tab Bar horizontal inset, measured from the canonical Figma owner."
|
|
1070
|
+
},
|
|
1071
|
+
"gap": {
|
|
1072
|
+
"$type": "dimension",
|
|
1073
|
+
"$value": "{spacing.none}",
|
|
1074
|
+
"$description": "Canonical destinations meet without additional inter-item spacing; outer protection belongs to inset."
|
|
1075
|
+
},
|
|
1076
|
+
"radius": {
|
|
1077
|
+
"$type": "dimension",
|
|
1078
|
+
"$value": "{shape.radius.comfortable}",
|
|
1079
|
+
"$description": "Tab Bar outer radius."
|
|
1080
|
+
},
|
|
1081
|
+
"itemRadius": {
|
|
1082
|
+
"$type": "dimension",
|
|
1083
|
+
"$value": "{shape.radius.standard}",
|
|
1084
|
+
"$description": "Destination Item nested radius after the canonical inset subtraction."
|
|
1085
|
+
}
|
|
1086
|
+
}
|
|
1087
|
+
}
|
|
1088
|
+
}
|