@adobe/design-data-spec 0.3.0 → 0.5.0

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 (92) hide show
  1. package/components/accordion.json +517 -0
  2. package/components/action-bar.json +203 -0
  3. package/components/action-button.json +481 -0
  4. package/components/action-group.json +82 -0
  5. package/components/alert-banner.json +111 -0
  6. package/components/alert-dialog.json +152 -0
  7. package/components/avatar-group.json +140 -0
  8. package/components/avatar.json +184 -0
  9. package/components/badge.json +502 -0
  10. package/components/body.json +29 -0
  11. package/components/bottom-navigation-android.json +41 -0
  12. package/components/breadcrumbs.json +263 -0
  13. package/components/button-group.json +47 -0
  14. package/components/button.json +466 -8
  15. package/components/calendar.json +104 -0
  16. package/components/cards.json +512 -0
  17. package/components/checkbox-group.json +54 -0
  18. package/components/checkbox.json +303 -0
  19. package/components/close-button.json +170 -0
  20. package/components/coach-indicator.json +76 -0
  21. package/components/coach-mark.json +157 -0
  22. package/components/code.json +25 -0
  23. package/components/color-area.json +115 -0
  24. package/components/color-handle.json +85 -0
  25. package/components/color-loupe.json +74 -0
  26. package/components/color-slider.json +121 -0
  27. package/components/color-wheel.json +94 -0
  28. package/components/combo-box.json +480 -0
  29. package/components/contextual-help.json +162 -0
  30. package/components/date-picker.json +439 -0
  31. package/components/detail.json +30 -0
  32. package/components/divider.json +73 -0
  33. package/components/drop-zone.json +211 -0
  34. package/components/field-label.json +189 -0
  35. package/components/heading.json +33 -0
  36. package/components/help-text.json +186 -0
  37. package/components/illustrated-message.json +155 -0
  38. package/components/in-field-progress-button.json +44 -0
  39. package/components/in-field-progress-circle.json +80 -0
  40. package/components/in-line-alert.json +201 -0
  41. package/components/link.json +135 -0
  42. package/components/list-view.json +355 -0
  43. package/components/menu.json +542 -0
  44. package/components/meter.json +162 -0
  45. package/components/number-field.json +468 -0
  46. package/components/opacity-checkerboard.json +43 -0
  47. package/components/picker.json +522 -0
  48. package/components/popover.json +119 -0
  49. package/components/progress-bar.json +182 -0
  50. package/components/progress-circle.json +99 -0
  51. package/components/radio-button.json +285 -0
  52. package/components/radio-group.json +63 -0
  53. package/components/rating.json +145 -0
  54. package/components/scroll-zoom-bar.json +53 -0
  55. package/components/search-field.json +306 -0
  56. package/components/segmented-control.json +210 -0
  57. package/components/select-box.json +248 -0
  58. package/components/side-navigation.json +293 -0
  59. package/components/slider.json +370 -0
  60. package/components/standard-dialog.json +151 -0
  61. package/components/standard-panel.json +53 -0
  62. package/components/status-light.json +272 -0
  63. package/components/steplist.json +270 -0
  64. package/components/swatch-group.json +62 -0
  65. package/components/swatch.json +193 -0
  66. package/components/switch.json +305 -0
  67. package/components/tab-bar-ios.json +41 -0
  68. package/components/table.json +392 -0
  69. package/components/tabs.json +229 -0
  70. package/components/tag-field.json +203 -0
  71. package/components/tag-group.json +53 -0
  72. package/components/tag.json +376 -0
  73. package/components/takeover-dialog.json +92 -0
  74. package/components/text-area.json +485 -0
  75. package/components/text-field.json +501 -0
  76. package/components/thumbnail.json +109 -0
  77. package/components/title.json +39 -0
  78. package/components/toast.json +131 -0
  79. package/components/tooltip.json +140 -0
  80. package/components/tray.json +21 -0
  81. package/components/tree-view.json +341 -0
  82. package/conformance/invalid/SPEC-027/dataset.json +25 -0
  83. package/conformance/invalid/SPEC-027/expected-errors.json +10 -0
  84. package/conformance/valid/token-bindings.json +27 -0
  85. package/package.json +2 -1
  86. package/rules/rules.yaml +9 -0
  87. package/schemas/component.schema.json +24 -2
  88. package/schemas/token.schema.json +27 -0
  89. package/spec/agent-surface.md +39 -9
  90. package/spec/component-format.md +41 -16
  91. package/spec/token-format.md +18 -0
  92. package/src/validate.js +27 -3
@@ -0,0 +1,502 @@
1
+ {
2
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/v0/component.schema.json",
3
+ "$id": "https://opensource.adobe.com/spectrum-design-data/schemas/v0/components/badge.json",
4
+ "specVersion": "1.0.0-draft",
5
+ "name": "badge",
6
+ "displayName": "Badge",
7
+ "description": "Similar to status lights, badges are for showing a small amount of color-categorized metadata. They're ideal for getting a user''s attention.",
8
+ "meta": {
9
+ "category": "status",
10
+ "documentationUrl": "https://spectrum.adobe.com/page/badge/"
11
+ },
12
+ "options": {
13
+ "label": {
14
+ "type": "string",
15
+ "description": "When the label is not defined, the badge appears as icon-only."
16
+ },
17
+ "icon": {
18
+ "$ref": "https://opensource.adobe.com/spectrum-design-data/schemas/types/workflow-icon.json"
19
+ },
20
+ "variant": {
21
+ "type": "string",
22
+ "enum": [
23
+ "neutral",
24
+ "info",
25
+ "positive",
26
+ "negative",
27
+ "indigo",
28
+ "yellow",
29
+ "magenta",
30
+ "fuchsia",
31
+ "purple",
32
+ "seafoam",
33
+ "accent",
34
+ "notice",
35
+ "gray",
36
+ "red",
37
+ "orange",
38
+ "chartreuse",
39
+ "celery",
40
+ "green",
41
+ "cyan",
42
+ "blue",
43
+ "pink",
44
+ "turquoise",
45
+ "brown",
46
+ "cinnamon",
47
+ "silver"
48
+ ]
49
+ },
50
+ "style": {
51
+ "type": "string",
52
+ "enum": ["bold", "subtle", "outline"]
53
+ },
54
+ "fixed": {
55
+ "type": "string",
56
+ "enum": ["none", "top", "right", "bottom", "left"],
57
+ "default": "none"
58
+ },
59
+ "isDisabled": {
60
+ "type": "boolean",
61
+ "default": false
62
+ },
63
+ "size": {
64
+ "type": "string",
65
+ "pattern": "^(x?s|m|x{0,3}l)$",
66
+ "enum": ["s", "m", "l", "xl"],
67
+ "default": "s"
68
+ }
69
+ },
70
+ "lifecycle": {
71
+ "introduced": "1.0.0-draft"
72
+ },
73
+ "tokenBindings": [
74
+ {
75
+ "token": "component-height-75",
76
+ "context": "Minimum height"
77
+ },
78
+ {
79
+ "token": "component-height-100",
80
+ "context": "Minimum height"
81
+ },
82
+ {
83
+ "token": "component-height-200",
84
+ "context": "Minimum height"
85
+ },
86
+ {
87
+ "token": "component-height-300",
88
+ "context": "Minimum height"
89
+ },
90
+ {
91
+ "token": "corner-radius-medium-size-small",
92
+ "context": "Rounding"
93
+ },
94
+ {
95
+ "token": "corner-radius-medium-size-medium",
96
+ "context": "Rounding"
97
+ },
98
+ {
99
+ "token": "corner-radius-medium-size-large",
100
+ "context": "Rounding"
101
+ },
102
+ {
103
+ "token": "corner-radius-medium-size-extra-large",
104
+ "context": "Rounding"
105
+ },
106
+ {
107
+ "token": "workflow-icon-size-75",
108
+ "context": "Icon"
109
+ },
110
+ {
111
+ "token": "workflow-icon-size-100",
112
+ "context": "Icon"
113
+ },
114
+ {
115
+ "token": "workflow-icon-size-200",
116
+ "context": "Icon"
117
+ },
118
+ {
119
+ "token": "workflow-icon-size-300",
120
+ "context": "Icon"
121
+ },
122
+ {
123
+ "token": "text-to-visual-75",
124
+ "context": "Spacing (icon to label)"
125
+ },
126
+ {
127
+ "token": "text-to-visual-100",
128
+ "context": "Spacing (icon to label)"
129
+ },
130
+ {
131
+ "token": "text-to-visual-200",
132
+ "context": "Spacing (icon to label)"
133
+ },
134
+ {
135
+ "token": "text-to-visual-300",
136
+ "context": "Spacing (icon to label)"
137
+ },
138
+ {
139
+ "token": "component-edge-to-visual-75",
140
+ "context": "Spacing (start/end edges)"
141
+ },
142
+ {
143
+ "token": "component-edge-to-visual-100",
144
+ "context": "Spacing (start/end edges)"
145
+ },
146
+ {
147
+ "token": "component-edge-to-visual-200",
148
+ "context": "Spacing (start/end edges)"
149
+ },
150
+ {
151
+ "token": "component-edge-to-visual-300",
152
+ "context": "Spacing (start/end edges)"
153
+ },
154
+ {
155
+ "token": "component-edge-to-text-75",
156
+ "context": "Spacing (start/end edges)"
157
+ },
158
+ {
159
+ "token": "component-edge-to-text-100",
160
+ "context": "Spacing (start/end edges)"
161
+ },
162
+ {
163
+ "token": "component-edge-to-text-200",
164
+ "context": "Spacing (start/end edges)"
165
+ },
166
+ {
167
+ "token": "component-edge-to-text-300",
168
+ "context": "Spacing (start/end edges)"
169
+ },
170
+ {
171
+ "token": "component-edge-to-visual-only-75",
172
+ "context": "Spacing (start/end edges, icon only)"
173
+ },
174
+ {
175
+ "token": "component-edge-to-visual-only-100",
176
+ "context": "Spacing (start/end edges, icon only)"
177
+ },
178
+ {
179
+ "token": "component-edge-to-visual-only-200",
180
+ "context": "Spacing (start/end edges, icon only)"
181
+ },
182
+ {
183
+ "token": "component-edge-to-visual-only-300",
184
+ "context": "Spacing (start/end edges, icon only)"
185
+ },
186
+ {
187
+ "token": "component-top-to-workflow-icon-75",
188
+ "context": "Spacing (top edge to icon)"
189
+ },
190
+ {
191
+ "token": "component-top-to-workflow-icon-100",
192
+ "context": "Spacing (top edge to icon)"
193
+ },
194
+ {
195
+ "token": "component-top-to-workflow-icon-200",
196
+ "context": "Spacing (top edge to icon)"
197
+ },
198
+ {
199
+ "token": "component-top-to-workflow-icon-300",
200
+ "context": "Spacing (top edge to icon)"
201
+ },
202
+ {
203
+ "token": "border-width-200",
204
+ "context": "Border"
205
+ },
206
+ {
207
+ "token": "component-top-to-text-75",
208
+ "context": "Spacing (top/bottom edge to label)"
209
+ },
210
+ {
211
+ "token": "component-top-to-text-100",
212
+ "context": "Spacing (top/bottom edge to label)"
213
+ },
214
+ {
215
+ "token": "component-top-to-text-200",
216
+ "context": "Spacing (top/bottom edge to label)"
217
+ },
218
+ {
219
+ "token": "component-top-to-text-300",
220
+ "context": "Spacing (top/bottom edge to label)"
221
+ },
222
+ {
223
+ "token": "component-bottom-to-text-75",
224
+ "context": "Spacing (top/bottom edge to label)"
225
+ },
226
+ {
227
+ "token": "component-bottom-to-text-100",
228
+ "context": "Spacing (top/bottom edge to label)"
229
+ },
230
+ {
231
+ "token": "component-bottom-to-text-200",
232
+ "context": "Spacing (top/bottom edge to label)"
233
+ },
234
+ {
235
+ "token": "component-bottom-to-text-300",
236
+ "context": "Spacing (top/bottom edge to label)"
237
+ },
238
+ {
239
+ "token": "white",
240
+ "context": "Text and icon (semantic)"
241
+ },
242
+ {
243
+ "token": "black",
244
+ "context": "Text and icon (semantic)"
245
+ },
246
+ {
247
+ "token": "neutral-subdued-background-color-default",
248
+ "context": "Background (semantic)"
249
+ },
250
+ {
251
+ "token": "accent-background-color-default",
252
+ "context": "Background (semantic)"
253
+ },
254
+ {
255
+ "token": "informative-background-color-default",
256
+ "context": "Background (semantic)"
257
+ },
258
+ {
259
+ "token": "negative-background-color-default",
260
+ "context": "Background (semantic)"
261
+ },
262
+ {
263
+ "token": "notice-background-color-default",
264
+ "context": "Background (semantic)"
265
+ },
266
+ {
267
+ "token": "positive-background-color-default",
268
+ "context": "Background (semantic)"
269
+ },
270
+ {
271
+ "token": "gray-background-color-default",
272
+ "context": "Background (non-semantic) "
273
+ },
274
+ {
275
+ "token": "red-background-color-default",
276
+ "context": "Background (non-semantic) "
277
+ },
278
+ {
279
+ "token": "orange-background-color-default",
280
+ "context": "Background (non-semantic) "
281
+ },
282
+ {
283
+ "token": "yellow-background-color-default",
284
+ "context": "Background (non-semantic) "
285
+ },
286
+ {
287
+ "token": "chartreuse-background-color-default",
288
+ "context": "Background (non-semantic) "
289
+ },
290
+ {
291
+ "token": "celery-background-color-default",
292
+ "context": "Background (non-semantic) "
293
+ },
294
+ {
295
+ "token": "green-background-color-default",
296
+ "context": "Background (non-semantic) "
297
+ },
298
+ {
299
+ "token": "seafoam-background-color-default",
300
+ "context": "Background (non-semantic) "
301
+ },
302
+ {
303
+ "token": "cyan-background-color-default",
304
+ "context": "Background (non-semantic) "
305
+ },
306
+ {
307
+ "token": "blue-background-color-default",
308
+ "context": "Background (non-semantic) "
309
+ },
310
+ {
311
+ "token": "indigo-background-color-default",
312
+ "context": "Background (non-semantic) "
313
+ },
314
+ {
315
+ "token": "purple-background-color-default",
316
+ "context": "Background (non-semantic) "
317
+ },
318
+ {
319
+ "token": "fuchsia-background-color-default",
320
+ "context": "Background (non-semantic) "
321
+ },
322
+ {
323
+ "token": "magenta-background-color-default",
324
+ "context": "Background (non-semantic) "
325
+ },
326
+ {
327
+ "token": "pink-background-color-default",
328
+ "context": "Background (non-semantic) "
329
+ },
330
+ {
331
+ "token": "turquoise-background-color-default",
332
+ "context": "Background (non-semantic) "
333
+ },
334
+ {
335
+ "token": "brown-background-color-default",
336
+ "context": "Background (non-semantic) "
337
+ },
338
+ {
339
+ "token": "cinnamon-background-color-default",
340
+ "context": "Background (non-semantic) "
341
+ },
342
+ {
343
+ "token": "silver-background-color-default",
344
+ "context": "Background (non-semantic) "
345
+ },
346
+ {
347
+ "token": "gray-1000",
348
+ "context": "Text and icon (semantic)"
349
+ },
350
+ {
351
+ "token": "neutral-subtle-background-color-default",
352
+ "context": "Background (semantic)"
353
+ },
354
+ {
355
+ "token": "accent-subtle-background-color-default",
356
+ "context": "Background (semantic)"
357
+ },
358
+ {
359
+ "token": "informative-subtle-background-color-default",
360
+ "context": "Background (semantic)"
361
+ },
362
+ {
363
+ "token": "negative-subtle-background-color-default",
364
+ "context": "Background (semantic)"
365
+ },
366
+ {
367
+ "token": "notice-subtle-background-color-default",
368
+ "context": "Background (semantic)"
369
+ },
370
+ {
371
+ "token": "positive-subtle-background-color-default",
372
+ "context": "Background (semantic)"
373
+ },
374
+ {
375
+ "token": "gray-subtle-background-color-default",
376
+ "context": "Background (non-semantic) "
377
+ },
378
+ {
379
+ "token": "red-subtle-background-color-default",
380
+ "context": "Background (non-semantic) "
381
+ },
382
+ {
383
+ "token": "orange-subtle-background-color-default",
384
+ "context": "Background (non-semantic) "
385
+ },
386
+ {
387
+ "token": "yellow-subtle-background-color-default",
388
+ "context": "Background (non-semantic) "
389
+ },
390
+ {
391
+ "token": "chartreuse-subtle--background-color-default",
392
+ "context": "Background (non-semantic) "
393
+ },
394
+ {
395
+ "token": "celery-subtle-background-color-default",
396
+ "context": "Background (non-semantic) "
397
+ },
398
+ {
399
+ "token": "green-subtle-background-color-default",
400
+ "context": "Background (non-semantic) "
401
+ },
402
+ {
403
+ "token": "seafoam-subtle-background-color-default",
404
+ "context": "Background (non-semantic) "
405
+ },
406
+ {
407
+ "token": "cyan-subtle-background-color-default",
408
+ "context": "Background (non-semantic) "
409
+ },
410
+ {
411
+ "token": "blue-subtle-background-color-default",
412
+ "context": "Background (non-semantic) "
413
+ },
414
+ {
415
+ "token": "indigo-subtle-background-color-default",
416
+ "context": "Background (non-semantic) "
417
+ },
418
+ {
419
+ "token": "purple-subtle-background-color-default",
420
+ "context": "Background (non-semantic) "
421
+ },
422
+ {
423
+ "token": "magenta-subtle-background-color-default",
424
+ "context": "Background (non-semantic) "
425
+ },
426
+ {
427
+ "token": "pink-subtle-background-color-default",
428
+ "context": "Background (non-semantic) "
429
+ },
430
+ {
431
+ "token": "turquoise-subtle-background-color-default",
432
+ "context": "Background (non-semantic) "
433
+ },
434
+ {
435
+ "token": "brown-subtle-background-color-default",
436
+ "context": "Background (non-semantic) "
437
+ },
438
+ {
439
+ "token": "cinnamon-subtle-background-color-default",
440
+ "context": "Background (non-semantic) "
441
+ },
442
+ {
443
+ "token": "silver-subtle-background-color-default",
444
+ "context": "Background (non-semantic) "
445
+ },
446
+ {
447
+ "token": "background-layer-2-color",
448
+ "context": "Background (semantic)"
449
+ },
450
+ {
451
+ "token": "neutral-visual-color",
452
+ "context": "Border (semantic)"
453
+ },
454
+ {
455
+ "token": "accent-visual-color",
456
+ "context": "Border (semantic)"
457
+ },
458
+ {
459
+ "token": "informative-visual-color",
460
+ "context": "Border (semantic)"
461
+ },
462
+ {
463
+ "token": "negative-visual-color",
464
+ "context": "Border (semantic)"
465
+ },
466
+ {
467
+ "token": "notice-visual-color",
468
+ "context": "Border (semantic)"
469
+ },
470
+ {
471
+ "token": "positive-visual-color",
472
+ "context": "Border (semantic)"
473
+ },
474
+ {
475
+ "token": "default-font-family"
476
+ },
477
+ {
478
+ "token": "medium-font-weight"
479
+ },
480
+ {
481
+ "token": "default-font-style"
482
+ },
483
+ {
484
+ "token": "font-size-75"
485
+ },
486
+ {
487
+ "token": "font-size-100"
488
+ },
489
+ {
490
+ "token": "font-size-200"
491
+ },
492
+ {
493
+ "token": "font-size-300"
494
+ },
495
+ {
496
+ "token": "line-height-100"
497
+ },
498
+ {
499
+ "token": "cjk-line-height-100"
500
+ }
501
+ ]
502
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/v0/component.schema.json",
3
+ "$id": "https://opensource.adobe.com/spectrum-design-data/schemas/v0/components/body.json",
4
+ "specVersion": "1.0.0-draft",
5
+ "name": "body",
6
+ "displayName": "Body",
7
+ "description": "Body is a typography component primarily used within Spectrum components and for blocks of text.",
8
+ "meta": {
9
+ "category": "typography",
10
+ "documentationUrl": "https://spectrum.adobe.com/page/body/"
11
+ },
12
+ "options": {
13
+ "script": {
14
+ "$ref": "https://opensource.adobe.com/spectrum-design-data/schemas/types/typography-script.json"
15
+ },
16
+ "classification": {
17
+ "$ref": "https://opensource.adobe.com/spectrum-design-data/schemas/types/typography-classification.json"
18
+ },
19
+ "size": {
20
+ "type": "string",
21
+ "pattern": "^(x?s|m|x{0,3}l)$",
22
+ "enum": ["xs", "s", "m", "l", "xl", "xxl", "xxxl"],
23
+ "default": "m"
24
+ }
25
+ },
26
+ "lifecycle": {
27
+ "introduced": "1.0.0-draft"
28
+ }
29
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/v0/component.schema.json",
3
+ "$id": "https://opensource.adobe.com/spectrum-design-data/schemas/v0/components/bottom-navigation-android.json",
4
+ "specVersion": "1.0.0-draft",
5
+ "name": "bottom-navigation-android",
6
+ "displayName": "Bottom navigation (Android)",
7
+ "description": "Bottom navigation is a top-level navigation control for Android apps.",
8
+ "meta": {
9
+ "category": "navigation",
10
+ "documentationUrl": "https://spectrum.adobe.com/page/bottom-navigation-android/"
11
+ },
12
+ "options": {
13
+ "label": {
14
+ "type": "string"
15
+ },
16
+ "labelPosition": {
17
+ "type": "string",
18
+ "enum": ["bottom", "side"],
19
+ "default": "bottom"
20
+ },
21
+ "icon": {
22
+ "$ref": "https://opensource.adobe.com/spectrum-design-data/schemas/types/workflow-icon.json"
23
+ },
24
+ "background": {
25
+ "type": "string",
26
+ "enum": ["primary", "secondary"],
27
+ "default": "primary"
28
+ },
29
+ "hasBadge": {
30
+ "type": "boolean",
31
+ "default": false
32
+ },
33
+ "isDisabled": {
34
+ "type": "boolean",
35
+ "default": false
36
+ }
37
+ },
38
+ "lifecycle": {
39
+ "introduced": "1.0.0-draft"
40
+ }
41
+ }