@adobe/spectrum-design-data 3.2.3 → 3.3.0-beta.1

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 (128) hide show
  1. package/components/accordion.json +15 -54
  2. package/components/action-bar.json +9 -23
  3. package/components/action-button.json +39 -79
  4. package/components/action-group.json +18 -129
  5. package/components/alert-banner.json +8 -27
  6. package/components/alert-dialog.json +34 -48
  7. package/components/avatar-group.json +9 -28
  8. package/components/avatar.json +29 -92
  9. package/components/badge.json +56 -150
  10. package/components/breadcrumbs.json +26 -100
  11. package/components/button-group.json +19 -50
  12. package/components/button.json +61 -92
  13. package/components/calendar.json +8 -67
  14. package/components/cards.json +31 -46
  15. package/components/checkbox-group.json +16 -78
  16. package/components/checkbox.json +27 -90
  17. package/components/close-button.json +20 -62
  18. package/components/coach-indicator.json +14 -44
  19. package/components/coach-mark.json +8 -26
  20. package/components/color-area.json +20 -93
  21. package/components/color-handle.json +25 -38
  22. package/components/color-loupe.json +2 -6
  23. package/components/color-slider.json +26 -122
  24. package/components/color-wheel.json +17 -84
  25. package/components/combo-box.json +50 -182
  26. package/components/contextual-help.json +80 -119
  27. package/components/date-picker.json +24 -120
  28. package/components/divider.json +12 -25
  29. package/components/drop-zone.json +18 -30
  30. package/components/field-label.json +21 -62
  31. package/components/help-text.json +16 -53
  32. package/components/illustrated-message.json +21 -72
  33. package/components/in-line-alert.json +13 -53
  34. package/components/link.json +24 -56
  35. package/components/list-view.json +15 -73
  36. package/components/menu.json +45 -174
  37. package/components/meter.json +24 -65
  38. package/components/number-field.json +34 -168
  39. package/components/picker.json +42 -181
  40. package/components/popover.json +37 -113
  41. package/components/progress-bar.json +23 -95
  42. package/components/progress-circle.json +12 -42
  43. package/components/radio-button.json +14 -67
  44. package/components/radio-group.json +28 -125
  45. package/components/rating.json +9 -38
  46. package/components/search-field.json +34 -119
  47. package/components/segmented-control.json +21 -63
  48. package/components/select-box.json +29 -96
  49. package/components/side-navigation.json +28 -69
  50. package/components/slider.json +39 -148
  51. package/components/standard-dialog.json +16 -88
  52. package/components/status-light.json +41 -123
  53. package/components/steplist.json +5 -24
  54. package/components/swatch-group.json +19 -55
  55. package/components/swatch.json +24 -79
  56. package/components/switch.json +31 -72
  57. package/components/table.json +26 -73
  58. package/components/tabs.json +22 -39
  59. package/components/tag-field.json +14 -60
  60. package/components/tag-group.json +16 -49
  61. package/components/tag.json +21 -71
  62. package/components/takeover-dialog.json +10 -61
  63. package/components/text-area.json +49 -198
  64. package/components/text-field.json +42 -163
  65. package/components/thumbnail.json +22 -63
  66. package/components/toast.json +29 -50
  67. package/components/tooltip.json +27 -74
  68. package/components/tree-view.json +45 -140
  69. package/guidelines/ai-resource-guide.json +50 -0
  70. package/guidelines/app-frame-overview.json +44 -50
  71. package/guidelines/applying-the-type-system.json +63 -0
  72. package/guidelines/attention-hierarchy.json +12 -21
  73. package/guidelines/background-layers.json +44 -10
  74. package/guidelines/bi-directionality.json +57 -0
  75. package/guidelines/border-width.json +42 -0
  76. package/guidelines/brand.json +30 -10
  77. package/guidelines/cognitive.json +197 -0
  78. package/guidelines/colors.json +35 -17
  79. package/guidelines/component-spacing.json +49 -0
  80. package/guidelines/contact-us.json +67 -0
  81. package/guidelines/content-area-browsing-context.json +65 -0
  82. package/guidelines/creating-bluelines-browsing-context.json +91 -0
  83. package/guidelines/design-tokens.json +122 -0
  84. package/guidelines/developer-overview.json +25 -9
  85. package/guidelines/drop-shadow.json +56 -0
  86. package/guidelines/faqs.json +96 -9
  87. package/guidelines/fonts.json +29 -14
  88. package/guidelines/grammar-and-mechanics.json +252 -0
  89. package/guidelines/grays.json +17 -44
  90. package/guidelines/header-browsing-context.json +37 -0
  91. package/guidelines/icon-fundamentals.json +7 -18
  92. package/guidelines/illustration.json +109 -0
  93. package/guidelines/in-product-word-list.json +29 -0
  94. package/guidelines/inclusive-design.json +93 -0
  95. package/guidelines/inclusive-ux-writing.json +30 -0
  96. package/guidelines/internationalization.json +87 -0
  97. package/guidelines/introduction.json +2 -2
  98. package/guidelines/layout-and-structure-containers.json +47 -0
  99. package/guidelines/layout-spacing.json +39 -0
  100. package/guidelines/manifest.json +252 -60
  101. package/guidelines/motion.json +17 -16
  102. package/guidelines/object-styles-overview.json +17 -0
  103. package/guidelines/principles.json +2 -2
  104. package/guidelines/resources.json +21 -15
  105. package/guidelines/rounding.json +61 -0
  106. package/guidelines/side-navigation-browsing-context.json +71 -0
  107. package/guidelines/spacing-overview.json +45 -0
  108. package/guidelines/states.json +15 -10
  109. package/guidelines/typography-overview.json +39 -0
  110. package/guidelines/typography-system.json +168 -0
  111. package/guidelines/using-icons.json +33 -44
  112. package/guidelines/visual-language-containers.json +36 -0
  113. package/guidelines/voice-and-tone.json +47 -0
  114. package/guidelines/writing-about-people.json +103 -0
  115. package/guidelines/writing-for-errors.json +120 -0
  116. package/guidelines/writing-for-onboarding.json +119 -0
  117. package/guidelines/writing-for-readability.json +54 -0
  118. package/guidelines/writing-with-visuals.json +70 -0
  119. package/package.json +1 -1
  120. package/guidelines/app-frame-content-area.json +0 -81
  121. package/guidelines/app-frame-creating-bluelines.json +0 -58
  122. package/guidelines/app-frame-header.json +0 -72
  123. package/guidelines/app-frame-side-navigation.json +0 -138
  124. package/guidelines/containers.json +0 -62
  125. package/guidelines/illustrations.json +0 -111
  126. package/guidelines/object-styles.json +0 -102
  127. package/guidelines/spacing.json +0 -25
  128. package/guidelines/typography-fundamentals.json +0 -142
@@ -16,112 +16,80 @@
16
16
  },
17
17
  {
18
18
  "type": "guideline",
19
- "content": "Links provide navigation to a different location. They can appear within a paragraph or as standalone text."
19
+ "content": "Use links in body copy.\n\nLinks are for usage in body copy and are not appropriate in titles. Consider using a different component if you're looking for a larger or more prominent call to action, such as a button."
20
20
  },
21
21
  {
22
22
  "type": "guideline",
23
- "content": "Use the static color option when a link needs to be placed on top of a color background or visual. Static color links are available in black or white, regardless of color theme. They can also be placed on top of a custom background that isn’t part of a Spectrum color theme."
23
+ "content": "Support screen readers.\n\nBe mindful of link placement and language, and create experiences that are inclusive of users navigating with screen readers. Screen readers pull a list of links — only the link text, and not including other surrounding language — to determine the content of the page. People using screen readers may tab between links without getting the text in between, so very generic link wording like \"learn more\" or \"click here\" doesn't communicate any context from elsewhere in the experience. Identify the target of each link directly in the link text to communicate context and set clear expectations about where the link will go."
24
24
  },
25
25
  {
26
26
  "type": "guideline",
27
- "content": "Use static black on light color or image backgrounds, and static white on dark color or image backgrounds, regardless of color theme. Make sure that the background and the link color meet the minimum color contrast ratio."
27
+ "content": "When to use quiet links.\n\nQuiet links are less accessible, so don't use them for links that are critical to an experience. Quiet links are commonly used in website footers, where there are several lists of links that are shortcuts to other pages."
28
28
  },
29
29
  {
30
30
  "type": "guideline",
31
- "content": "All links can have a quiet style, without an underline. This style should only be used when the placement and context of the link is explicit enough that a visible underline isn’t necessary."
31
+ "content": "Standalone links are not full sentences, and do not have punctuation at the end. Treat these like calls-to-action by writing them as short verb phrases. Since standalone links are at the end of a sentence or paragraph, they're often perceived by users as optional or supplementary to surrounding content."
32
32
  },
33
33
  {
34
34
  "type": "guideline",
35
- "content": "The variant property defines the visual style of a link and includes two options: primary and secondary."
35
+ "content": "Links within sentences.\n\nLinks within — or as — sentences are written just like they're part of a paragraph. Make sure you include enough context in the link text to communicate the value and expectation of the landing experience. This approach can draw a user's focus to the linked text, such as for need-to-know updates or high-signal information. If the link leads to more content, it can be helpful to write it as a descriptive noun (e.g., \"survey feedback\"). If the link launches a task or action, start it with a verb (e.g., \"Share your feedback\"). Keep in mind that it's easier to localize links that are entire sentences, rather than sentence fragments. This is because, depending on which part of a sentence is included as a link, the word and link order may be re-arranged when translated."
36
36
  },
37
37
  {
38
38
  "type": "guideline",
39
- "content": "The primary variant is the default style and displays the link in Spectrum blue. It is intended to draw attention to the link and is suitable when the blue color complements the surrounding content without being overwhelming."
39
+ "content": "Avoid generic language.\n\nAvoid overly generic link language like \"learn more,\" \"click here,\" \"more information,\" or \"continue reading.\" It's more accessible and inclusive to write link text as unique descriptions of the navigational target or function. Links need to be descriptive enough that they make sense without any other context. Generic links don't make sense out of context, and don't communicate where they go or what happens if a user interacts with them. Unique link language is essential for screen reader and magnification users who may not have the supplementary language around a link, or may not follow the content order of an experience. Try to avoid using a series of generic, standalone links that say \"learn more\" at the end of multiple sentences or paragraphs as a truncation strategy."
40
40
  },
41
41
  {
42
42
  "type": "guideline",
43
- "content": "The secondary variant uses the same gray color as the surrounding paragraph text. Its subdued appearance is ideal for scenarios where multiple links are present in a block of text and the primary variant would be too visually dominant."
43
+ "content": "Write specific and descriptive link text.\n\nLinks act as wayfinding tools that offer contextual clues about how to navigate an experience. Write link text so that, even if someone were not able to view any surrounding context, they could still understand a link's purpose and what they should expect by interacting with it. Try to front load the link with the most important word(s)."
44
44
  },
45
45
  {
46
46
  "type": "guideline",
47
- "content": "Links are for usage in body copy and are not appropriate in titles. Consider using a different component if you're looking for a larger or more prominent call to action, such as a button."
47
+ "content": "Be conscious about repetition.\n\nDon't use the same link text to link to different information in the same view. If link text needs to be duplicated within a single page or view, find ways to make each link unique, such as using accessibility labels or other text alternatives. It's OK to incorporate multiple links into the same sentence as long as the links are contextual and relevant. Do not overload sentences and pages with links purely for SEO purposes."
48
48
  },
49
49
  {
50
50
  "type": "guideline",
51
- "content": "Be mindful of link placement and language, and create experiences that are inclusive of users navigating with screen readers. Screen readers pull a list of links — only the link text, and not including other surrounding language — to determine the content of the page."
51
+ "content": "Create intuitive landing experiences.\n\nDon't place a generic \"Learn more\" link in design specs without thinking through what happens when a user interacts with that link. The landing experience needs to work in partnership with how the link text is written. Identify exactly where that link will go or what it will do, then ensure the link text reflects that. Use anchor links whenever possible to ensure that users can quickly find the most helpful next steps after interacting with a link. Collaborate with help content writers or customer service representatives to determine the most natural and intuitive content to supplement your experience."
52
52
  },
53
53
  {
54
54
  "type": "guideline",
55
- "content": "People using screen readers may tab between links without getting the text in between, so very generic link wording like “learn more” or “click here” doesn’t communicate any context from elsewhere in the experience. Identify the target of each link directly in the link text to communicate context and set clear expectations about where the link will go."
55
+ "content": "Keyboard interactions.\n\nKey Interaction TabMoves focus onto or off of the link component.EnterExecutes the link and moves the focus to the link target."
56
56
  },
57
57
  {
58
58
  "type": "guideline",
59
- "content": "Quiet links are less accessible, so don't use them for links that are critical to an experience. Quiet links are commonly used in website footers, where there are several lists of links that are shortcuts to other pages."
59
+ "content": "Cursor guidelines.\n\nCursor Usage PointerUse the pointer cursor for interactive components like links."
60
+ },
61
+ {
62
+ "type": "guideline",
63
+ "content": "WCAG 2.2 compliance.\n\nAny criterion not mention in the below table are not applicable to this component or are resolved with underlying requirements, engineering, and styles of the entire system. 1. Perceivable Requirement Criterion Level Compliance Info and relationships, Identify purpose 1.3.1, 1.3.6 A, AAALinks should be understandable by assistive technologies like screen readers. This means using the proper semantic HTML or ARIA role should be utilized.Use of color 1.4.1 AColor is never used as the sole way to convey that text is a link. Links are paired with an additional visual indicator, such as an underline, so the link purpose is communicated without relying on color alone.Text contrast 1.4.3 AALarge text has a contrast ratio of at least 3:1, and small text has a contrast ratio of at least 4.5:1. Incidental text such as disabled, hidden, or decorative text has no contrast requirement.Visual presentation 1.4.8 AAAThe width of text blocks is no more than 80 characters (40 for CJK languages), and text is never justified.Non-text contrast 1.4.11 AAThe visual presentation of link states has a contrast ratio of at least 3:1.Text spacing 1.4.12 AALine height of text is at least 1.5x the font size. 2. Operable RequirementCriterionLevel Compliance Keyboard 2.1.1, 2.1.3 A, AAAAll functionality of the component is operable through a keyboard without specific timing for keystrokes.Keyboard traps 2.1.2 AFocus can be moved away from the component using only a keyboard.Seizures and physical reactions 2.3.1, 2.3.2, 2.3.3 A, AAA, AAAThere is no flashing content or unnecessary motion or animation in this component.Focus order 2.4.3 ANavigation sequences receive focus in an order that preserves meaning and operability.Focus visible 2.4.7 AAKeyboard states use an indicator that is visible with at least 3:1 contrast."
60
64
  }
61
65
  ],
62
66
  "options": {
63
67
  "variant": {
64
68
  "type": "string",
65
69
  "default": "primary",
66
- "values": [
67
- {
68
- "value": "primary"
69
- },
70
- {
71
- "value": "secondary"
72
- }
73
- ]
74
- },
75
- "isQuiet": {
76
- "type": "boolean",
77
- "default": false
70
+ "values": [{ "value": "primary" }, { "value": "secondary" }]
78
71
  },
72
+ "isQuiet": { "type": "boolean", "default": false },
79
73
  "staticColor": {
80
74
  "type": "string",
81
75
  "description": "Static color must not be set for the default version of this component.",
82
- "values": [
83
- {
84
- "value": "white"
85
- },
86
- {
87
- "value": "black"
88
- }
89
- ]
76
+ "values": [{ "value": "white" }, { "value": "black" }]
90
77
  }
91
78
  },
92
79
  "states": [
93
- {
94
- "name": "hover",
95
- "trigger": "interaction"
96
- },
97
- {
98
- "name": "down",
99
- "trigger": "interaction"
100
- },
101
- {
102
- "name": "keyboard-focus",
103
- "trigger": "interaction"
104
- }
80
+ { "name": "hover", "trigger": "interaction" },
81
+ { "name": "down", "trigger": "interaction" },
82
+ { "name": "keyboard-focus", "trigger": "interaction" }
105
83
  ],
106
- "lifecycle": {
107
- "introduced": "1.0.0-draft"
108
- },
84
+ "lifecycle": { "introduced": "1.0.0-draft" },
109
85
  "accessibility": {
110
86
  "role": "link",
111
87
  "intents": ["navigate"],
112
88
  "focusable": true,
113
89
  "keyboardIntents": ["activate"],
114
90
  "wcag": [
115
- {
116
- "criterion": "2.1.1",
117
- "level": "A",
118
- "title": "Keyboard"
119
- },
120
- {
121
- "criterion": "4.1.2",
122
- "level": "A",
123
- "title": "Name, Role, Value"
124
- }
91
+ { "criterion": "2.1.1", "level": "A", "title": "Keyboard" },
92
+ { "criterion": "4.1.2", "level": "A", "title": "Name, Role, Value" }
125
93
  ]
126
94
  }
127
95
  }
@@ -16,67 +16,31 @@
16
16
  },
17
17
  {
18
18
  "type": "guideline",
19
- "content": "List views display content in a structured, scrollable list. They support sorting, organizing, and selecting multiple items at once."
19
+ "content": "Navigation.\n\nIn the highlight selection style for touch interactions, tapping anywhere on the item will navigate to its contents. For mouse-based interactions, double-clicking anywhere on the item or single-clicking the navigation icon will do the same. In the checkbox selection style, clicking or tapping the label area or navigation icon of a list view item will navigate to its contents."
20
20
  },
21
21
  {
22
22
  "type": "guideline",
23
- "content": "A list view is a versatile component and can contain many items depending on the use case. These items can be icons, thumbnails, avatars, checkboxes, drag handles, action buttons, and more."
23
+ "content": "Selection.\n\nSingle-clicking or tapping anywhere on a list view item will select the item, except the label in checkbox selection style. For checkbox selection style, clicking the label will navigate to the item."
24
24
  },
25
25
  {
26
26
  "type": "guideline",
27
- "content": "By default a list view is not quiet. If true, the list view uses a quiet visual style meaning there is no background or borders to the component."
27
+ "content": "Touch navigation and selection.\n\nIn touch experiences, the list view default is navigation only with the highlight selection style. Users enter a selection mode by a touch and hold gesture on any list view item. Selection mode in touch uses the checkbox selection style and suppresses navigation. Users can exit selection mode by pressing the Escape key or deselecting all items."
28
28
  },
29
29
  {
30
30
  "type": "guideline",
31
- "content": "The selection mode defines how many items can be selected at once. A list view can use single selection, multiple selection, or none."
31
+ "content": "Drag and drop.\n\nList view items can be dragged and dropped to reorder or restructure the list. Multiple items can be dragged at a time and shifted from one level of hierarchy to another. List views can also accept dropped items from outside the component, to modify the list. Keyboard-based drag and drop When using this option for a list view, the drag icon receives keyboard focus in order to allow for a keyboard-based drag and drop interaction. Touch-based drag and drop The drag and drop interaction is initiated by a touch and hold gesture, followed by drag gesture. If a user performs a touch and hold gesture without dragging, the list view enters a selection mode."
32
32
  },
33
33
  {
34
34
  "type": "guideline",
35
- "content": "In the highlight selection style for touch interactions, tapping anywhere on the item will navigate to its contents. For mouse-based interactions, double-clicking anywhere on the item or single-clicking the navigation icon will do the same."
35
+ "content": "Text overflow.\n\nA list view item's label or description will truncate if the text is longer than the available horizontal space. Display the full label or description text in a tooltip on hover and focus states."
36
36
  },
37
37
  {
38
38
  "type": "guideline",
39
- "content": "In the checkbox selection style, clicking or tapping the label area or navigation icon of a list view item will navigate to its contents."
39
+ "content": "Actions overflow.\n\nWhen more than two actions are available for a list view item, the actions are nested within an action menu."
40
40
  },
41
41
  {
42
42
  "type": "guideline",
43
- "content": "Single-clicking or tapping anywhere on a list view item will select the item, except the label in checkbox selection style. For checkbox selection style, clicking the label will navigate to the item."
44
- },
45
- {
46
- "type": "guideline",
47
- "content": "In touch experiences, the list view default is navigation only with the highlight selection style. Users enter a selection mode by a touch and hold gesture on any list view item."
48
- },
49
- {
50
- "type": "guideline",
51
- "content": "Selection mode in touch uses the checkbox selection style and suppresses navigation. Users can exit selection mode by pressing the Escape key or deselecting all items."
52
- },
53
- {
54
- "type": "guideline",
55
- "content": "List view items can be dragged and dropped to reorder or restructure the list."
56
- },
57
- {
58
- "type": "guideline",
59
- "content": "Multiple items can be dragged at a time and shifted from one level of hierarchy to another."
60
- },
61
- {
62
- "type": "guideline",
63
- "content": "List views can also accept dropped items from outside the component, to modify the list."
64
- },
65
- {
66
- "type": "guideline",
67
- "content": "A list view item's label or description will truncate if the text is longer than the available horizontal space. Display the full label or description text in a tooltip on hover and focus states."
68
- },
69
- {
70
- "type": "guideline",
71
- "content": "When more than two actions are available for a list view item, the actions are nested within an action menu."
72
- },
73
- {
74
- "type": "guideline",
75
- "content": "List views work best for flat collections of items that share the same hierarchy level."
76
- },
77
- {
78
- "type": "guideline",
79
- "content": "Tree views are ideal for displaying nested or hierarchical relationships."
43
+ "content": "When to use a List view vs. Tree view.\n\nList views work best for flat collections of items that share the same hierarchy level. Tree views are ideal for displaying nested or hierarchical relationships."
80
44
  }
81
45
  ],
82
46
  "options": {
@@ -85,15 +49,9 @@
85
49
  "default": "single",
86
50
  "description": "Defines how many items can be selected at once.",
87
51
  "values": [
88
- {
89
- "value": "none"
90
- },
91
- {
92
- "value": "single"
93
- },
94
- {
95
- "value": "multiple"
96
- }
52
+ { "value": "none" },
53
+ { "value": "single" },
54
+ { "value": "multiple" }
97
55
  ]
98
56
  },
99
57
  "isQuiet": {
@@ -152,10 +110,7 @@
152
110
  "default": "none",
153
111
  "description": "Defines the border radius of the list view item."
154
112
  },
155
- "isEmphasized": {
156
- "type": "boolean",
157
- "default": false
158
- },
113
+ "isEmphasized": { "type": "boolean", "default": false },
159
114
  "state": {
160
115
  "type": "string",
161
116
  "enum": ["default", "hover", "dragged"],
@@ -185,10 +140,7 @@
185
140
  "name": "checkbox",
186
141
  "description": "Checkbox control for a list view item in checkbox selection style."
187
142
  },
188
- {
189
- "name": "icon",
190
- "description": "Leading icon of a list view item."
191
- },
143
+ { "name": "icon", "description": "Leading icon of a list view item." },
192
144
  {
193
145
  "name": "thumbnail",
194
146
  "description": "Thumbnail image of a list view item."
@@ -210,24 +162,14 @@
210
162
  "description": "Icon indicating a list view item navigates to a new context."
211
163
  }
212
164
  ],
213
- "lifecycle": {
214
- "introduced": "1.0.0-draft"
215
- },
165
+ "lifecycle": { "introduced": "1.0.0-draft" },
216
166
  "accessibility": {
217
167
  "intents": ["select", "navigate"],
218
168
  "focusable": true,
219
169
  "keyboardIntents": ["navigate-items", "activate", "select-all"],
220
170
  "wcag": [
221
- {
222
- "criterion": "2.1.1",
223
- "level": "A",
224
- "title": "Keyboard"
225
- },
226
- {
227
- "criterion": "4.1.2",
228
- "level": "A",
229
- "title": "Name, Role, Value"
230
- }
171
+ { "criterion": "2.1.1", "level": "A", "title": "Keyboard" },
172
+ { "criterion": "4.1.2", "level": "A", "title": "Name, Role, Value" }
231
173
  ]
232
174
  }
233
175
  }