@adobe/spectrum-design-data 0.4.0 → 0.7.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 +81 -0
  71. package/guidelines/app-frame-creating-bluelines.json +58 -0
  72. package/guidelines/app-frame-header.json +72 -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 +38 -0
  77. package/guidelines/brand.json +50 -0
  78. package/guidelines/colors.json +62 -0
  79. package/guidelines/containers.json +62 -0
  80. package/guidelines/developer-overview.json +35 -0
  81. package/guidelines/faqs.json +35 -0
  82. package/guidelines/fonts.json +58 -0
  83. package/guidelines/grays.json +66 -0
  84. package/guidelines/icon-fundamentals.json +45 -0
  85. package/guidelines/illustrations.json +111 -0
  86. package/guidelines/introduction.json +31 -0
  87. package/guidelines/manifest.json +204 -0
  88. package/guidelines/motion.json +41 -0
  89. package/guidelines/object-styles.json +102 -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 +142 -0
  95. package/guidelines/using-icons.json +107 -0
  96. package/package.json +4 -2
@@ -9,166 +9,131 @@
9
9
  "category": "containers",
10
10
  "documentationUrl": "https://spectrum.adobe.com/page/popover/"
11
11
  },
12
- "options": {
13
- "width": {
14
- "type": "number"
15
- },
16
- "height": {
17
- "type": "number"
18
- },
19
- "hideTip": {
20
- "type": "boolean",
21
- "default": false
22
- },
23
- "placement": {
24
- "type": "string",
25
- "default": "top",
26
- "values": [
27
- {
28
- "value": "top"
29
- },
30
- {
31
- "value": "top left"
32
- },
33
- {
34
- "value": "top right"
35
- },
36
- {
37
- "value": "top start"
38
- },
39
- {
40
- "value": "top end"
41
- },
42
- {
43
- "value": "bottom"
44
- },
45
- {
46
- "value": "bottom left"
47
- },
48
- {
49
- "value": "bottom right"
50
- },
51
- {
52
- "value": "bottom start"
53
- },
54
- {
55
- "value": "bottom end"
56
- },
57
- {
58
- "value": "left"
59
- },
60
- {
61
- "value": "left top"
62
- },
63
- {
64
- "value": "left bottom"
65
- },
66
- {
67
- "value": "start"
68
- },
69
- {
70
- "value": "start top"
71
- },
72
- {
73
- "value": "start bottom"
74
- },
75
- {
76
- "value": "right"
77
- },
78
- {
79
- "value": "right top"
80
- },
81
- {
82
- "value": "right bottom"
83
- },
84
- {
85
- "value": "end"
86
- },
87
- {
88
- "value": "end top"
89
- },
90
- {
91
- "value": "end bottom"
92
- }
93
- ]
94
- },
95
- "offset": {
96
- "type": "number",
97
- "default": 8,
98
- "description": "pixel measurement"
12
+ "documentBlocks": [
13
+ {
14
+ "type": "purpose",
15
+ "content": "Popovers are containers used to display transient content such as menus, options, additional actions, and more. They visually stand out through stroke and drop shadow and float on top of the interface."
99
16
  },
100
- "crossOffset": {
101
- "type": "number",
102
- "default": 0
17
+ {
18
+ "type": "guideline",
19
+ "content": "Popovers are containers for transient content like menus, options, or additional actions. They float above the interface and stand out visually using stroke and drop shadow."
103
20
  },
104
- "containerPadding": {
105
- "type": "number",
106
- "default": 8,
107
- "description": "pixel measurement"
108
- }
109
- },
110
- "lifecycle": {
111
- "introduced": "1.0.0-draft"
112
- },
113
- "tokenBindings": [
114
21
  {
115
- "token": "corner-radius-large-default",
116
- "context": "Rounding"
22
+ "type": "guideline",
23
+ "content": "To keep a popover within certain boundaries, such as a browser window, define a container and a container padding value."
117
24
  },
118
25
  {
119
- "token": "popover-tip-width",
120
- "context": "Tip"
26
+ "type": "guideline",
27
+ "content": "The cross offset is the placement offset on the cross axis: the x-axis for top and bottom positions, and the y-axis for left and right positions."
121
28
  },
122
29
  {
123
- "token": "popover-tip-height",
124
- "context": "Tip"
30
+ "type": "guideline",
31
+ "content": "The offset is the space between the source and the popover (or tip, if present). Adjust it as needed to align visually with the source’s perceived bounds and maintain a balanced relationship between the two elements."
125
32
  },
126
33
  {
127
- "token": "popover-edge-to-content-area",
128
- "context": "Spacing (left/right edge to content area)"
34
+ "type": "guideline",
35
+ "content": "A popover is positioned in relation to its source."
129
36
  },
130
37
  {
131
- "token": "spacing-100",
132
- "context": "Spacing (tip to source)"
38
+ "type": "guideline",
39
+ "content": "Popovers usually appear without a tip and rely on a distinct down state in the source to show their origin. When the source lacks that visual cue, add a tip to reinforce the connection between the popover and its source."
133
40
  },
134
41
  {
135
- "token": "border-width-100",
136
- "context": "Border"
42
+ "type": "guideline",
43
+ "content": "A popover’s height can be customized appropriately for its context."
137
44
  },
138
45
  {
139
- "token": "background-layer-2-color",
140
- "context": "Background and border"
46
+ "type": "guideline",
47
+ "content": "A popover’s width can be customized appropriately for its context."
141
48
  },
142
49
  {
143
- "token": "popover-border-color",
144
- "context": "Background and border"
50
+ "type": "guideline",
51
+ "content": "Popovers stem off of action buttons that act as a source to open up transient content."
145
52
  },
146
53
  {
147
- "token": "drop-shadow-elevated-color",
148
- "context": "Drop shadow"
54
+ "type": "guideline",
55
+ "content": "When displaying a popover, it should animate from its source to reinforce the connection between popover and source. It should fade in and slide with subtle motion from the source."
149
56
  },
150
57
  {
151
- "token": "drop-shadow-elevated-x",
152
- "context": "Drop shadow"
58
+ "type": "guideline",
59
+ "content": "A popover can be dismissed by clicking or tapping anywhere outside it, including the source, or by selecting an option or taking an action inside the popover."
153
60
  },
154
61
  {
155
- "token": "drop-shadow-elevated-y",
156
- "context": "Drop shadow"
62
+ "type": "guideline",
63
+ "content": "Trays can be used as alternatives to popovers on small screens. Use a tray when the amount of content is too large or overwhelming for a popover."
157
64
  },
158
65
  {
159
- "token": "drop-shadow-elevated-blur",
160
- "context": "Drop shadow"
66
+ "type": "guideline",
67
+ "content": "When the source that triggers the popover does not have a visually distinct down state, use a popover with a tip to clearly indicate the connection to its source."
161
68
  }
162
69
  ],
70
+ "options": {
71
+ "width": { "type": "number" },
72
+ "height": { "type": "number" },
73
+ "hideTip": { "type": "boolean", "default": false },
74
+ "placement": {
75
+ "type": "string",
76
+ "default": "top",
77
+ "values": [
78
+ { "value": "top" },
79
+ { "value": "top left" },
80
+ { "value": "top right" },
81
+ { "value": "top start" },
82
+ { "value": "top end" },
83
+ { "value": "bottom" },
84
+ { "value": "bottom left" },
85
+ { "value": "bottom right" },
86
+ { "value": "bottom start" },
87
+ { "value": "bottom end" },
88
+ { "value": "left" },
89
+ { "value": "left top" },
90
+ { "value": "left bottom" },
91
+ { "value": "start" },
92
+ { "value": "start top" },
93
+ { "value": "start bottom" },
94
+ { "value": "right" },
95
+ { "value": "right top" },
96
+ { "value": "right bottom" },
97
+ { "value": "end" },
98
+ { "value": "end top" },
99
+ { "value": "end bottom" }
100
+ ]
101
+ },
102
+ "offset": {
103
+ "type": "number",
104
+ "default": 8,
105
+ "description": "pixel measurement"
106
+ },
107
+ "crossOffset": { "type": "number", "default": 0 },
108
+ "containerPadding": {
109
+ "type": "number",
110
+ "default": 8,
111
+ "description": "pixel measurement"
112
+ }
113
+ },
114
+ "lifecycle": { "introduced": "1.0.0-draft" },
115
+ "tokenBindings": [
116
+ { "token": "corner-radius-large-default", "context": "Rounding" },
117
+ { "token": "popover-tip-width", "context": "Tip" },
118
+ { "token": "popover-tip-height", "context": "Tip" },
119
+ {
120
+ "token": "popover-edge-to-content-area",
121
+ "context": "Spacing (left/right edge to content area)"
122
+ },
123
+ { "token": "spacing-100", "context": "Spacing (tip to source)" },
124
+ { "token": "border-width-100", "context": "Border" },
125
+ { "token": "background-layer-2-color", "context": "Background and border" },
126
+ { "token": "popover-border-color", "context": "Background and border" },
127
+ { "token": "drop-shadow-elevated-color", "context": "Drop shadow" },
128
+ { "token": "drop-shadow-elevated-x", "context": "Drop shadow" },
129
+ { "token": "drop-shadow-elevated-y", "context": "Drop shadow" },
130
+ { "token": "drop-shadow-elevated-blur", "context": "Drop shadow" }
131
+ ],
163
132
  "accessibility": {
164
133
  "intents": ["dismiss"],
165
134
  "focusable": false,
166
135
  "wcag": [
167
- {
168
- "criterion": "4.1.2",
169
- "level": "A",
170
- "title": "Name, Role, Value"
171
- }
136
+ { "criterion": "4.1.2", "level": "A", "title": "Name, Role, Value" }
172
137
  ]
173
138
  }
174
139
  }
@@ -9,47 +9,86 @@
9
9
  "category": "status",
10
10
  "documentationUrl": "https://spectrum.adobe.com/page/progress-bar/"
11
11
  },
12
+ "documentBlocks": [
13
+ {
14
+ "type": "purpose",
15
+ "content": "Progress bars show the progression of a system operation: downloading, uploading, processing, etc., in a visual way. They can represent either determinate or indeterminate progress."
16
+ },
17
+ {
18
+ "type": "guideline",
19
+ "content": "A progress bar can be either determinate or indeterminate. By default, progress bars are determinate. Use a determinate progress bar when progress can be calculated against a specific goal (e.g., downloading a file of a known size). Use an indeterminate progress bar when progress is happening but the time or effort to completion can’t be determined (e.g., attempting to reconnect to a server)."
20
+ },
21
+ {
22
+ "type": "guideline",
23
+ "content": "Progress bars come in four different sizes: small, medium, large, and extra-large. The medium size is the default and most frequently used option. Use the other sizes sparingly; they should be used to create a hierarchy of importance within the page."
24
+ },
25
+ {
26
+ "type": "guideline",
27
+ "content": "Progress bars can have a value label that gives detailed information about the progress (e.g. \"60%\" or \"2 of 8\"). This value label works alongside the label and should not be displayed if the label itself is not displayed. It should also not be displayed if the progress is indeterminate. Similar to the label, the value label is always placed above the track."
28
+ },
29
+ {
30
+ "type": "guideline",
31
+ "content": "The value represents progress within the bar’s range, from minimum to maximum. These defaults are 0 and 100 but can be customized. Min and max values don’t apply to indeterminate progress bars."
32
+ },
33
+ {
34
+ "type": "guideline",
35
+ "content": "The label of the progress bar can be hidden if the context for the progress bar is sufficient without the title — for example, when the progress bar is shown inside a table row and the item is labeled in another column."
36
+ },
37
+ {
38
+ "type": "guideline",
39
+ "content": "Labels can be placed either on top or on the side. Top labels are the default and are recommended because they work better with long copy, localization, and responsive layouts. Side labels are most useful when vertical space is limited."
40
+ },
41
+ {
42
+ "type": "guideline",
43
+ "content": "Progress bars should have a label that gives context about the operation being performed. Use an ellipsis at the end of the label text to communicate that the process is in progress. In rare cases where context is sufficient and an accessibility expert has reviewed the design, the label could be undefined. These progress bars should still include an aria-label in HTML (depending on the context, “aria-label” or “aria-labelledby”)."
44
+ },
45
+ {
46
+ "type": "guideline",
47
+ "content": "When a progress bar needs to be placed on top of a colored background, use the over background variant. This progress bar uses a static white color regardless of the color theme. Make sure the background offers enough contrast for the progress bar to be legible."
48
+ },
49
+ {
50
+ "type": "guideline",
51
+ "content": "Use the over background variant when a progress bar needs to be placed on top of a colored background or visual."
52
+ },
53
+ {
54
+ "type": "guideline",
55
+ "content": "Over background progress bars are available in static black or white, meaning they don’t change with the theme of the page. Use static black on light color or image backgrounds, and white on dark color or image backgrounds."
56
+ },
57
+ {
58
+ "type": "guideline",
59
+ "content": "The minimum width of a progress bar is 48 px and the maximum width of a progress bar is 768 px, for both desktop and mobile platform scale. Smaller progress bars should only be used in places where it’s not necessary to have a label."
60
+ },
61
+ {
62
+ "type": "guideline",
63
+ "content": "When the label is too long for the available horizontal space, it wraps to form another line. The value is always shown in full and never wraps or truncates."
64
+ },
65
+ {
66
+ "type": "guideline",
67
+ "content": "Both progress bars and circles can show either determinate or indeterminate progress. The available space should help determine whether a progress bar or circle is best. Progress bars are preferred in vertically narrow areas such as tables or cards. Use a progress circle for full-page loading or very small areas. Use a progress bar in a loader dialog."
68
+ },
69
+ {
70
+ "type": "guideline",
71
+ "content": "Use the built-in style to show a label associated with the operation. This style always includes a left-aligned label and a right-aligned percentage value above the track. The label should be in sentence case. Add an ellipsis (\"...\") at the end to indicate that the action is in progress — for example, \"Loading data...\" or \"Updating settings..."
72
+ }
73
+ ],
12
74
  "options": {
13
75
  "variant": {
14
76
  "type": "string",
15
77
  "default": "default",
16
- "values": [
17
- {
18
- "value": "default"
19
- },
20
- {
21
- "value": "over background"
22
- }
23
- ]
78
+ "values": [{ "value": "default" }, { "value": "over background" }]
24
79
  },
25
80
  "staticColor": {
26
81
  "type": "string",
27
82
  "description": "Static color can only be white, otherwise it is default.",
28
- "values": [
29
- {
30
- "value": "white"
31
- }
32
- ]
33
- },
34
- "label": {
35
- "type": "string"
83
+ "values": [{ "value": "white" }]
36
84
  },
85
+ "label": { "type": "string" },
37
86
  "labelPosition": {
38
87
  "type": "string",
39
88
  "default": "top",
40
- "values": [
41
- {
42
- "value": "top"
43
- },
44
- {
45
- "value": "side"
46
- }
47
- ]
48
- },
49
- "hideLabel": {
50
- "type": "boolean",
51
- "default": false
89
+ "values": [{ "value": "top" }, { "value": "side" }]
52
90
  },
91
+ "hideLabel": { "type": "boolean", "default": false },
53
92
  "value": {
54
93
  "type": "number",
55
94
  "description": "Not applicable when indeterminate."
@@ -64,47 +103,24 @@
64
103
  "default": 1,
65
104
  "description": "Not applicable when indeterminate."
66
105
  },
67
- "valueLabel": {
68
- "type": "string"
69
- },
70
- "width": {
71
- "type": "number"
72
- },
106
+ "valueLabel": { "type": "string" },
107
+ "width": { "type": "number" },
73
108
  "size": {
74
109
  "type": "string",
75
110
  "default": "m",
76
111
  "values": [
77
- {
78
- "value": "s"
79
- },
80
- {
81
- "value": "m"
82
- },
83
- {
84
- "value": "l"
85
- },
86
- {
87
- "value": "xl"
88
- }
112
+ { "value": "s" },
113
+ { "value": "m" },
114
+ { "value": "l" },
115
+ { "value": "xl" }
89
116
  ]
90
117
  },
91
- "isIndeterminate": {
92
- "type": "boolean",
93
- "default": false
94
- }
95
- },
96
- "lifecycle": {
97
- "introduced": "1.0.0-draft"
118
+ "isIndeterminate": { "type": "boolean", "default": false }
98
119
  },
120
+ "lifecycle": { "introduced": "1.0.0-draft" },
99
121
  "tokenBindings": [
100
- {
101
- "token": "progress-bar-minimum-width",
102
- "context": "Minimum width"
103
- },
104
- {
105
- "token": "progress-bar-maximum-width",
106
- "context": "Maximum width"
107
- },
122
+ { "token": "progress-bar-minimum-width", "context": "Minimum width" },
123
+ { "token": "progress-bar-maximum-width", "context": "Maximum width" },
108
124
  {
109
125
  "token": "spacing-75",
110
126
  "context": "Spacing (field label to progress bar)"
@@ -129,78 +145,33 @@
129
145
  "token": "component-top-to-text-300",
130
146
  "context": "Spacing (top edge to text)"
131
147
  },
132
- {
133
- "token": "progress-bar-thickness-small",
134
- "context": "Thickness (track)"
135
- },
148
+ { "token": "progress-bar-thickness-small", "context": "Thickness (track)" },
136
149
  {
137
150
  "token": "progress-bar-thickness-medium",
138
151
  "context": "Thickness (track)"
139
152
  },
140
- {
141
- "token": "progress-bar-thickness-large",
142
- "context": "Thickness (track)"
143
- },
153
+ { "token": "progress-bar-thickness-large", "context": "Thickness (track)" },
144
154
  {
145
155
  "token": "progress-bar-thickness-extra-large",
146
156
  "context": "Thickness (track)"
147
157
  },
148
- {
149
- "token": "corner-radius-full",
150
- "context": "Rounding"
151
- },
152
- {
153
- "token": "default-font-family",
154
- "context": "Value"
155
- },
156
- {
157
- "token": "regular-font-weight",
158
- "context": "Value"
159
- },
160
- {
161
- "token": "default-font-style",
162
- "context": "Value"
163
- },
164
- {
165
- "token": "font-size-75",
166
- "context": "Value"
167
- },
168
- {
169
- "token": "font-size-100",
170
- "context": "Value"
171
- },
172
- {
173
- "token": "font-size-200",
174
- "context": "Value"
175
- },
176
- {
177
- "token": "font-size-300",
178
- "context": "Value"
179
- },
180
- {
181
- "token": "line-height-100",
182
- "context": "Value"
183
- },
184
- {
185
- "token": "cjk-line-height-100",
186
- "context": "Value"
187
- },
188
- {
189
- "token": "neutral-subdued-content-color-default",
190
- "context": "Text"
191
- },
192
- {
193
- "token": "track-color",
194
- "context": "Track and indicator"
195
- },
158
+ { "token": "corner-radius-full", "context": "Rounding" },
159
+ { "token": "default-font-family", "context": "Value" },
160
+ { "token": "regular-font-weight", "context": "Value" },
161
+ { "token": "default-font-style", "context": "Value" },
162
+ { "token": "font-size-75", "context": "Value" },
163
+ { "token": "font-size-100", "context": "Value" },
164
+ { "token": "font-size-200", "context": "Value" },
165
+ { "token": "font-size-300", "context": "Value" },
166
+ { "token": "line-height-100", "context": "Value" },
167
+ { "token": "cjk-line-height-100", "context": "Value" },
168
+ { "token": "neutral-subdued-content-color-default", "context": "Text" },
169
+ { "token": "track-color", "context": "Track and indicator" },
196
170
  {
197
171
  "token": "accent-content-color-default",
198
172
  "context": "Track and indicator"
199
173
  },
200
- {
201
- "token": "static-white-text-color",
202
- "context": "Text (white)"
203
- },
174
+ { "token": "static-white-text-color", "context": "Text (white)" },
204
175
  {
205
176
  "token": "static-white-track-color",
206
177
  "context": "Track and indicator (white)"
@@ -214,16 +185,8 @@
214
185
  "role": "progressbar",
215
186
  "focusable": false,
216
187
  "wcag": [
217
- {
218
- "criterion": "4.1.2",
219
- "level": "A",
220
- "title": "Name, Role, Value"
221
- },
222
- {
223
- "criterion": "4.1.3",
224
- "level": "AA",
225
- "title": "Status Messages"
226
- }
188
+ { "criterion": "4.1.2", "level": "A", "title": "Name, Role, Value" },
189
+ { "criterion": "4.1.3", "level": "AA", "title": "Status Messages" }
227
190
  ]
228
191
  }
229
192
  }