@adobe/spectrum-design-data 0.4.0 → 0.6.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 (96) hide show
  1. package/components/accordion.json +108 -194
  2. package/components/action-bar.json +64 -97
  3. package/components/action-button.json +95 -230
  4. package/components/action-group.json +88 -86
  5. package/components/alert-banner.json +104 -76
  6. package/components/alert-dialog.json +78 -126
  7. package/components/avatar-group.json +61 -119
  8. package/components/avatar.json +98 -212
  9. package/components/badge.json +138 -256
  10. package/components/breadcrumbs.json +95 -89
  11. package/components/button-group.json +57 -48
  12. package/components/button.json +151 -368
  13. package/components/calendar.json +97 -34
  14. package/components/cards.json +109 -250
  15. package/components/checkbox-group.json +50 -58
  16. package/components/checkbox.json +121 -186
  17. package/components/close-button.json +61 -124
  18. package/components/coach-indicator.json +63 -72
  19. package/components/coach-mark.json +89 -93
  20. package/components/color-area.json +68 -94
  21. package/components/color-handle.json +39 -79
  22. package/components/color-loupe.json +35 -52
  23. package/components/color-slider.json +95 -116
  24. package/components/color-wheel.json +67 -73
  25. package/components/combo-box.json +243 -331
  26. package/components/contextual-help.json +86 -175
  27. package/components/date-picker.json +139 -179
  28. package/components/divider.json +30 -69
  29. package/components/drop-zone.json +51 -92
  30. package/components/field-label.json +75 -117
  31. package/components/help-text.json +81 -105
  32. package/components/illustrated-message.json +106 -73
  33. package/components/in-line-alert.json +50 -83
  34. package/components/link.json +63 -85
  35. package/components/list-view.json +107 -146
  36. package/components/menu.json +180 -274
  37. package/components/meter.json +72 -118
  38. package/components/number-field.json +213 -305
  39. package/components/picker.json +208 -320
  40. package/components/popover.json +94 -129
  41. package/components/progress-bar.json +94 -131
  42. package/components/progress-circle.json +45 -72
  43. package/components/radio-button.json +87 -156
  44. package/components/radio-group.json +107 -74
  45. package/components/rating.json +66 -99
  46. package/components/search-field.json +132 -202
  47. package/components/segmented-control.json +94 -109
  48. package/components/select-box.json +119 -179
  49. package/components/side-navigation.json +108 -118
  50. package/components/slider.json +143 -228
  51. package/components/standard-dialog.json +96 -114
  52. package/components/standard-panel.json +105 -53
  53. package/components/status-light.json +104 -240
  54. package/components/steplist.json +77 -161
  55. package/components/swatch-group.json +42 -58
  56. package/components/swatch.json +75 -162
  57. package/components/switch.json +101 -189
  58. package/components/table.json +97 -102
  59. package/components/tabs.json +77 -104
  60. package/components/tag-field.json +86 -150
  61. package/components/tag-group.json +50 -44
  62. package/components/tag.json +81 -198
  63. package/components/takeover-dialog.json +59 -57
  64. package/components/text-area.json +200 -323
  65. package/components/text-field.json +183 -304
  66. package/components/thumbnail.json +63 -105
  67. package/components/toast.json +97 -83
  68. package/components/tooltip.json +104 -96
  69. package/components/tree-view.json +169 -181
  70. package/guidelines/app-frame-content-area.json +87 -0
  71. package/guidelines/app-frame-creating-bluelines.json +61 -0
  72. package/guidelines/app-frame-header.json +75 -0
  73. package/guidelines/app-frame-overview.json +167 -0
  74. package/guidelines/app-frame-side-navigation.json +138 -0
  75. package/guidelines/attention-hierarchy.json +42 -0
  76. package/guidelines/background-layers.json +41 -0
  77. package/guidelines/brand.json +50 -0
  78. package/guidelines/colors.json +65 -0
  79. package/guidelines/containers.json +65 -0
  80. package/guidelines/developer-overview.json +38 -0
  81. package/guidelines/faqs.json +35 -0
  82. package/guidelines/fonts.json +58 -0
  83. package/guidelines/grays.json +69 -0
  84. package/guidelines/icon-fundamentals.json +45 -0
  85. package/guidelines/illustrations.json +114 -0
  86. package/guidelines/introduction.json +34 -0
  87. package/guidelines/manifest.json +204 -0
  88. package/guidelines/motion.json +41 -0
  89. package/guidelines/object-styles.json +105 -0
  90. package/guidelines/principles.json +30 -0
  91. package/guidelines/resources.json +59 -0
  92. package/guidelines/spacing.json +25 -0
  93. package/guidelines/states.json +34 -0
  94. package/guidelines/typography-fundamentals.json +145 -0
  95. package/guidelines/using-icons.json +110 -0
  96. package/package.json +5 -2
@@ -9,127 +9,90 @@
9
9
  "category": "navigation",
10
10
  "documentationUrl": "https://spectrum.adobe.com/page/thumbnail/"
11
11
  },
12
- "options": {
13
- "size": {
14
- "type": "number",
15
- "values": [
16
- {
17
- "value": 50
18
- },
19
- {
20
- "value": 75
21
- },
22
- {
23
- "value": 100
24
- },
25
- {
26
- "value": 200
27
- },
28
- {
29
- "value": 300
30
- },
31
- {
32
- "value": 400
33
- },
34
- {
35
- "value": 500
36
- },
37
- {
38
- "value": 600
39
- },
40
- {
41
- "value": 700
42
- },
43
- {
44
- "value": 800
45
- },
46
- {
47
- "value": 900
48
- },
49
- {
50
- "value": 1000
51
- }
52
- ]
53
- }
54
- },
55
- "states": [
12
+ "documentBlocks": [
56
13
  {
57
- "name": "disabled",
58
- "trigger": "prop"
59
- }
60
- ],
61
- "lifecycle": {
62
- "introduced": "1.0.0-draft"
63
- },
64
- "tokenBindings": [
65
- {
66
- "token": "thumbnail-size-50",
67
- "context": "Size"
14
+ "type": "purpose",
15
+ "content": "Thumbnails are small representations of images or content used for previews and navigation in galleries, lists, and media collections."
68
16
  },
69
17
  {
70
- "token": "thumbnail-size-75",
71
- "context": "Size"
18
+ "type": "guideline",
19
+ "content": "Thumbnails display a preview of an image, layer, or effect, and appear in a variety of locations as a visual reference."
72
20
  },
73
21
  {
74
- "token": "thumbnail-size-100",
75
- "context": "Size"
22
+ "type": "guideline",
23
+ "content": "Thumbnail sizes scale exponentially. The opacity checkerboard responsively resizes to appropriately fit within each thumbnail size."
76
24
  },
77
25
  {
78
- "token": "thumbnail-size-200",
79
- "context": "Size"
26
+ "type": "guideline",
27
+ "content": "Thumbnails can be navigated using a keyboard in certain scenarios, such as layers or layer masks. When a thumbnail is used as pure representation of an item, focus should be set on the component the thumbnail is used within."
80
28
  },
81
29
  {
82
- "token": "thumbnail-size-300",
83
- "context": "Size"
30
+ "type": "guideline",
31
+ "content": "Thumbnails feature rounded corners and may include images with transparency. A subtle inset border helps distinguish images that might otherwise blend into the product’s theme colors."
84
32
  },
85
33
  {
86
- "token": "thumbnail-size-400",
87
- "context": "Size"
34
+ "type": "guideline",
35
+ "content": "When thumbnails are used in layer management (such as Treeview, Compact or Detail Layers panels), the thumbnail is given a thick gray border."
88
36
  },
89
37
  {
90
- "token": "thumbnail-size-500",
91
- "context": "Size"
38
+ "type": "guideline",
39
+ "content": "When a user selects a thumbnail in layer management, such as in Treeview, Compact or Detail Layers panels, it is highlighted with a thick blue border."
92
40
  },
93
41
  {
94
- "token": "thumbnail-size-600",
95
- "context": "Size"
42
+ "type": "guideline",
43
+ "content": "Tree view items can show thumbnails as an alternative to icons. Thumbnails are best used when a user needs to have a preview of the content represented by the tree view item. Icons can be used as a fallback for when an image is unavailable, but should be appropriately sized to match the thumbnail."
96
44
  },
97
45
  {
98
- "token": "thumbnail-size-700",
99
- "context": "Size"
46
+ "type": "guideline",
47
+ "content": "Tree views with thumbnails should use a thumbnail size that is appropriate to the size of the tree view itself. For example, an extra-large tree view would not work well with small thumbnails; those proportions may be better suited for using icons instead."
100
48
  },
101
49
  {
102
- "token": "thumbnail-size-800",
103
- "context": "Size"
104
- },
105
- {
106
- "token": "thumbnail-size-900",
107
- "context": "Size"
108
- },
109
- {
110
- "token": "thumbnail-size-1000",
111
- "context": "Size"
112
- },
113
- {
114
- "token": "thumbnail-corner-radius",
115
- "context": "Rounding"
116
- },
50
+ "type": "guideline",
51
+ "content": "In some cases, multiple thumbnails need to be displayed in-line with the tree view item (e.g., layer masks). These thumbnails should be individually selectable and inherit all other behaviors of a standard tree view item, such as drag-and-drop behavior. Don't use more than 3 thumbnails per tree view item."
52
+ }
53
+ ],
54
+ "options": {
55
+ "size": {
56
+ "type": "number",
57
+ "values": [
58
+ { "value": 50 },
59
+ { "value": 75 },
60
+ { "value": 100 },
61
+ { "value": 200 },
62
+ { "value": 300 },
63
+ { "value": 400 },
64
+ { "value": 500 },
65
+ { "value": 600 },
66
+ { "value": 700 },
67
+ { "value": 800 },
68
+ { "value": 900 },
69
+ { "value": 1000 }
70
+ ]
71
+ }
72
+ },
73
+ "states": [{ "name": "disabled", "trigger": "prop" }],
74
+ "lifecycle": { "introduced": "1.0.0-draft" },
75
+ "tokenBindings": [
76
+ { "token": "thumbnail-size-50", "context": "Size" },
77
+ { "token": "thumbnail-size-75", "context": "Size" },
78
+ { "token": "thumbnail-size-100", "context": "Size" },
79
+ { "token": "thumbnail-size-200", "context": "Size" },
80
+ { "token": "thumbnail-size-300", "context": "Size" },
81
+ { "token": "thumbnail-size-400", "context": "Size" },
82
+ { "token": "thumbnail-size-500", "context": "Size" },
83
+ { "token": "thumbnail-size-600", "context": "Size" },
84
+ { "token": "thumbnail-size-700", "context": "Size" },
85
+ { "token": "thumbnail-size-800", "context": "Size" },
86
+ { "token": "thumbnail-size-900", "context": "Size" },
87
+ { "token": "thumbnail-size-1000", "context": "Size" },
88
+ { "token": "thumbnail-corner-radius", "context": "Rounding" },
117
89
  {
118
90
  "token": "thumbnail-opacity-checkerboard-square-size",
119
91
  "context": "Opacity Checkerboard"
120
92
  },
121
- {
122
- "token": "border-width-100",
123
- "context": "Border"
124
- },
125
- {
126
- "token": "thumbnail-border-color",
127
- "context": "Border "
128
- },
129
- {
130
- "token": "thumbnail-border-opacity",
131
- "context": "Border "
132
- },
93
+ { "token": "border-width-100", "context": "Border" },
94
+ { "token": "thumbnail-border-color", "context": "Border " },
95
+ { "token": "thumbnail-border-opacity", "context": "Border " },
133
96
  {
134
97
  "token": "opacity-checkerboard-square-light",
135
98
  "context": "Checkerboard Colors "
@@ -138,12 +101,7 @@
138
101
  "token": "opacity-checkerboard-square-dark",
139
102
  "context": "Checkerboard Colors "
140
103
  },
141
- {
142
- "token": "thumbnail-opacity-disabled",
143
- "context": "Disabled"
144
- }
104
+ { "token": "thumbnail-opacity-disabled", "context": "Disabled" }
145
105
  ],
146
- "accessibility": {
147
- "focusable": false
148
- }
106
+ "accessibility": { "focusable": false }
149
107
  }
@@ -9,133 +9,151 @@
9
9
  "category": "feedback",
10
10
  "documentationUrl": "https://spectrum.adobe.com/page/toast/"
11
11
  },
12
- "options": {
13
- "text": {
14
- "type": "string"
12
+ "documentBlocks": [
13
+ {
14
+ "type": "purpose",
15
+ "content": "Toasts display brief, temporary notifications. They're meant to be noticed without disrupting a user's experience or requiring an action to be taken."
15
16
  },
16
- "variant": {
17
- "type": "string",
18
- "default": "neutral",
19
- "values": [
20
- {
21
- "value": "neutral"
22
- },
23
- {
24
- "value": "informative"
25
- },
26
- {
27
- "value": "positive"
28
- },
29
- {
30
- "value": "negative"
31
- }
32
- ]
17
+ {
18
+ "type": "guideline",
19
+ "content": "Toasts display brief, temporary notifications. They appear briefly without blocking interaction and typically do not require user action."
33
20
  },
34
- "actionLabel": {
35
- "type": "string",
36
- "description": "If undefined, this button does not appear."
21
+ {
22
+ "type": "guideline",
23
+ "content": "Toasts must include text to communicate a message. Write the text as concisely as possible while still being clear about what has happened or is happening."
37
24
  },
38
- "isAutoDismissible": {
39
- "type": "boolean",
40
- "default": false
41
- }
42
- },
43
- "lifecycle": {
44
- "introduced": "1.0.0-draft"
45
- },
46
- "tokenBindings": [
47
25
  {
48
- "token": "toast-height",
49
- "context": "Height"
26
+ "type": "guideline",
27
+ "content": "The neutral toast is the default variant. It is gray and does not have an icon. This is used when the message is neutral in tone or when its semantics do not fit in any of the other variants."
50
28
  },
51
29
  {
52
- "token": "toast-maximum-width",
53
- "context": "Width (maximum)"
30
+ "type": "guideline",
31
+ "content": "The informative toast uses the informative semantic color (blue) and has an info icon to help those with color vision deficiency discern the message tone. This should be used when the message should call extra attention compared to the neutral variant."
54
32
  },
55
33
  {
56
- "token": "corner-radius-800",
57
- "context": "Rounding"
34
+ "type": "guideline",
35
+ "content": "The positive toast uses the positive semantic color (green) and has a checkmark icon to help those with color vision deficiency discern the message tone. This is used to inform about a successful action or completion of a task."
58
36
  },
59
37
  {
60
- "token": "workflow-icon-size-100",
61
- "context": "Icon"
38
+ "type": "guideline",
39
+ "content": "The negative toast uses the negative semantic color (red) and has an alert icon to help those with color vision deficiency to discern the message tone. This is used to show an error or failure."
62
40
  },
63
41
  {
64
- "token": "text-to-visual-300",
65
- "context": "Spacing (icon to text)"
42
+ "type": "guideline",
43
+ "content": "By default, a toast will dismiss when the user clicks the close button. A toast also has the option to auto-dismiss. Be sure to set a minimum of 5 seconds so that users can have time to read the toast message. If an actionable toast is set to auto-dismiss, make sure that the action is still available elsewhere in the app."
66
44
  },
67
45
  {
68
- "token": "spacing-400",
69
- "context": "Spacing (text to button, horizontal)"
46
+ "type": "guideline",
47
+ "content": "When the text is too long for the available horizontal space, it wraps to form another line. In actionable toasts, the button moves below the text prior to text wrapping."
70
48
  },
71
49
  {
72
- "token": "spacing-300",
73
- "context": "Spacing (start edge to text and icon)"
50
+ "type": "guideline",
51
+ "content": "The default state can display up to three toasts at a time. To view additional toasts beyond this limit, users can click the “Show all” action button. Alternatively, they can reveal remaining toasts by interacting with a button or dismissing the component. Additionally, hovering over the upper part of the toasts triggers a subtle animation, signaling to the user that the group can be fully expanded."
74
52
  },
75
53
  {
76
- "token": "spacing-200",
77
- "context": "Spacing (button to close button, horizontal)"
54
+ "type": "guideline",
55
+ "content": "Please refer to more multiple toasts usage guideline below."
78
56
  },
79
57
  {
80
- "token": "spacing-100",
81
- "context": "Spacing (close button to end edge)"
58
+ "type": "guideline",
59
+ "content": "Toasts should only be used for confirmations, simple notifications, and low-priority alerts that do not need to completely interrupt the user experience."
82
60
  },
83
61
  {
84
- "token": "toast-top-to-workflow-icon",
85
- "context": "18px (desktop), 20px (mobile)"
62
+ "type": "guideline",
63
+ "content": "Dialogs are ideal for when a situation requires a user’s attention, either for displaying important information or prompting for a response."
86
64
  },
87
65
  {
88
- "token": "toast-top-to-text",
89
- "context": "18px (desktop), 20px (mobile)"
66
+ "type": "guideline",
67
+ "content": "By default, a toast is placed at the bottom center for both desktop and mobile platform scales to avoid disrupting the user experience."
90
68
  },
91
69
  {
92
- "token": "toast-bottom-to-text",
93
- "context": "20px (desktop), 22px (mobile)"
70
+ "type": "guideline",
71
+ "content": "For desktop applications, a toast should be placed 16 px away from the bottom of the viewport."
94
72
  },
95
73
  {
96
- "token": "neutral-subdued-background-color-default",
97
- "context": "Background"
74
+ "type": "guideline",
75
+ "content": "If a toast isn’t noticeable or disrupts the user experience, its placement can be changed to bottom end, top end, or top center."
98
76
  },
99
77
  {
100
- "token": "informative-background-color-default",
101
- "context": "Background"
78
+ "type": "guideline",
79
+ "content": "Actionable toasts should only have one button."
102
80
  },
103
81
  {
104
- "token": "positive-background-color-default",
105
- "context": "Background"
82
+ "type": "guideline",
83
+ "content": "Actionable toasts should not have a button with a redundant action. For example, including a “Dismiss” button would be redundant because all toasts already have a close button."
106
84
  },
107
85
  {
108
- "token": "negative-background-color-default",
109
- "context": "Background"
86
+ "type": "guideline",
87
+ "content": "Products should allow for users to be able turn off all types of alerts. Doing this helps people who want to focus and minimize information that they may find non-essential."
88
+ }
89
+ ],
90
+ "options": {
91
+ "text": { "type": "string" },
92
+ "variant": {
93
+ "type": "string",
94
+ "default": "neutral",
95
+ "values": [
96
+ { "value": "neutral" },
97
+ { "value": "informative" },
98
+ { "value": "positive" },
99
+ { "value": "negative" }
100
+ ]
110
101
  },
102
+ "actionLabel": {
103
+ "type": "string",
104
+ "description": "If undefined, this button does not appear."
105
+ },
106
+ "isAutoDismissible": { "type": "boolean", "default": false }
107
+ },
108
+ "lifecycle": { "introduced": "1.0.0-draft" },
109
+ "tokenBindings": [
110
+ { "token": "toast-height", "context": "Height" },
111
+ { "token": "toast-maximum-width", "context": "Width (maximum)" },
112
+ { "token": "corner-radius-800", "context": "Rounding" },
113
+ { "token": "workflow-icon-size-100", "context": "Icon" },
114
+ { "token": "text-to-visual-300", "context": "Spacing (icon to text)" },
111
115
  {
112
- "token": "white",
113
- "context": "Text and icon"
116
+ "token": "spacing-400",
117
+ "context": "Spacing (text to button, horizontal)"
114
118
  },
115
119
  {
116
- "token": "default-font-family",
117
- "context": "Value"
120
+ "token": "spacing-300",
121
+ "context": "Spacing (start edge to text and icon)"
122
+ },
123
+ {
124
+ "token": "spacing-200",
125
+ "context": "Spacing (button to close button, horizontal)"
118
126
  },
127
+ { "token": "spacing-100", "context": "Spacing (close button to end edge)" },
119
128
  {
120
- "token": "regular-font-weight",
121
- "context": "Value"
129
+ "token": "toast-top-to-workflow-icon",
130
+ "context": "18px (desktop), 20px (mobile)"
122
131
  },
123
132
  {
124
- "token": "default-font-style",
125
- "context": "Value"
133
+ "token": "toast-top-to-text",
134
+ "context": "18px (desktop), 20px (mobile)"
126
135
  },
127
136
  {
128
- "token": "font-size-100",
129
- "context": "Value"
137
+ "token": "toast-bottom-to-text",
138
+ "context": "20px (desktop), 22px (mobile)"
130
139
  },
131
140
  {
132
- "token": "line-height-100",
133
- "context": "Value"
141
+ "token": "neutral-subdued-background-color-default",
142
+ "context": "Background"
134
143
  },
135
144
  {
136
- "token": "cjk-line-height-100",
137
- "context": "Value"
145
+ "token": "informative-background-color-default",
146
+ "context": "Background"
138
147
  },
148
+ { "token": "positive-background-color-default", "context": "Background" },
149
+ { "token": "negative-background-color-default", "context": "Background" },
150
+ { "token": "white", "context": "Text and icon" },
151
+ { "token": "default-font-family", "context": "Value" },
152
+ { "token": "regular-font-weight", "context": "Value" },
153
+ { "token": "default-font-style", "context": "Value" },
154
+ { "token": "font-size-100", "context": "Value" },
155
+ { "token": "line-height-100", "context": "Value" },
156
+ { "token": "cjk-line-height-100", "context": "Value" },
139
157
  {
140
158
  "token": "neutral-background-color-default",
141
159
  "context": "Toast token changes (Jan 2025)"
@@ -146,11 +164,7 @@
146
164
  "focusable": true,
147
165
  "keyboardIntents": ["dismiss"],
148
166
  "wcag": [
149
- {
150
- "criterion": "4.1.3",
151
- "level": "AA",
152
- "title": "Status Messages"
153
- }
167
+ { "criterion": "4.1.3", "level": "AA", "title": "Status Messages" }
154
168
  ]
155
169
  }
156
170
  }