@adobe/spectrum-design-data 3.3.0-beta.2 → 3.3.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 (136) hide show
  1. package/components/accordion.json +67 -15
  2. package/components/action-bar.json +30 -9
  3. package/components/action-button.json +92 -39
  4. package/components/action-group.json +137 -18
  5. package/components/alert-banner.json +27 -8
  6. package/components/alert-dialog.json +55 -34
  7. package/components/avatar-group.json +35 -9
  8. package/components/avatar.json +105 -29
  9. package/components/badge.json +163 -56
  10. package/components/breadcrumbs.json +107 -26
  11. package/components/button-group.json +63 -19
  12. package/components/button.json +105 -61
  13. package/components/calendar.json +74 -8
  14. package/components/card.json +13 -0
  15. package/components/cards.json +46 -31
  16. package/components/checkbox-group.json +85 -16
  17. package/components/checkbox.json +97 -27
  18. package/components/close-button.json +75 -20
  19. package/components/coach-indicator.json +44 -14
  20. package/components/coach-mark.json +26 -8
  21. package/components/color-area.json +100 -20
  22. package/components/color-handle.json +46 -25
  23. package/components/color-loupe.json +14 -2
  24. package/components/color-slider.json +129 -26
  25. package/components/color-wheel.json +91 -17
  26. package/components/combo-box.json +189 -50
  27. package/components/contextual-help.json +126 -80
  28. package/components/date-field.json +7 -0
  29. package/components/date-picker.json +127 -24
  30. package/components/divider.json +38 -12
  31. package/components/drop-zone.json +37 -18
  32. package/components/field-label.json +62 -21
  33. package/components/heading.json +7 -0
  34. package/components/help-text.json +53 -16
  35. package/components/illustrated-message.json +85 -21
  36. package/components/in-line-alert.json +53 -13
  37. package/components/link.json +63 -24
  38. package/components/list-view.json +80 -15
  39. package/components/menu.json +181 -45
  40. package/components/meter.json +78 -24
  41. package/components/number-field.json +175 -34
  42. package/components/picker.json +188 -42
  43. package/components/popover.json +126 -37
  44. package/components/progress-bar.json +108 -23
  45. package/components/progress-circle.json +55 -12
  46. package/components/radio-button.json +67 -14
  47. package/components/radio-group.json +132 -28
  48. package/components/rating.json +38 -9
  49. package/components/search-field.json +126 -34
  50. package/components/segmented-control.json +70 -21
  51. package/components/select-box.json +103 -29
  52. package/components/side-navigation.json +69 -28
  53. package/components/slider.json +155 -39
  54. package/components/standard-dialog.json +88 -16
  55. package/components/status-light.json +136 -41
  56. package/components/steplist.json +24 -5
  57. package/components/swatch-group.json +55 -19
  58. package/components/swatch.json +79 -24
  59. package/components/switch.json +79 -31
  60. package/components/table.json +73 -26
  61. package/components/tabs.json +52 -22
  62. package/components/tag-field.json +60 -14
  63. package/components/tag-group.json +56 -16
  64. package/components/tag.json +78 -21
  65. package/components/takeover-dialog.json +61 -10
  66. package/components/text-area.json +205 -49
  67. package/components/text-field.json +170 -42
  68. package/components/thumbnail.json +63 -22
  69. package/components/time-field.json +7 -0
  70. package/components/toast.json +50 -29
  71. package/components/tooltip.json +87 -27
  72. package/components/tree-view.json +147 -45
  73. package/components/user-card.json +7 -0
  74. package/guidelines/app-frame-overview.json +44 -46
  75. package/guidelines/attention-hierarchy.json +22 -13
  76. package/guidelines/background-layers.json +10 -80
  77. package/guidelines/brand.json +12 -32
  78. package/guidelines/colors.json +17 -47
  79. package/guidelines/developer-overview.json +9 -25
  80. package/guidelines/faqs.json +9 -96
  81. package/guidelines/fonts.json +14 -29
  82. package/guidelines/grays.json +44 -17
  83. package/guidelines/icon-fundamentals.json +18 -7
  84. package/guidelines/manifest.json +15 -367
  85. package/guidelines/motion.json +16 -17
  86. package/guidelines/principles.json +8 -7
  87. package/guidelines/resources.json +15 -21
  88. package/guidelines/states.json +11 -16
  89. package/guidelines/using-icons.json +44 -33
  90. package/package.json +2 -2
  91. package/registry/platform-implementations.json +30 -0
  92. package/guidelines/ai-resource-guide.json +0 -50
  93. package/guidelines/applying-the-type-system.json +0 -67
  94. package/guidelines/bi-directionality.json +0 -57
  95. package/guidelines/border-width.json +0 -58
  96. package/guidelines/cognitive.json +0 -197
  97. package/guidelines/component-spacing.json +0 -61
  98. package/guidelines/contact-us.json +0 -67
  99. package/guidelines/content-area-browsing-context.json +0 -65
  100. package/guidelines/content-design-grammar-and-mechanics.json +0 -241
  101. package/guidelines/content-design-voice-and-tone.json +0 -37
  102. package/guidelines/content-grammar-and-mechanics.json +0 -252
  103. package/guidelines/content-language-and-inclusivity-writing-about-people.json +0 -103
  104. package/guidelines/content-language-and-inclusivity-writing-with-visuals.json +0 -70
  105. package/guidelines/content-voice-and-tone.json +0 -47
  106. package/guidelines/creating-bluelines-browsing-context.json +0 -91
  107. package/guidelines/design-tokens.json +0 -158
  108. package/guidelines/drop-shadow.json +0 -68
  109. package/guidelines/grammar-and-mechanics.json +0 -252
  110. package/guidelines/header-browsing-context.json +0 -40
  111. package/guidelines/illustration.json +0 -105
  112. package/guidelines/in-product-word-list.json +0 -29
  113. package/guidelines/inclusive-design.json +0 -101
  114. package/guidelines/inclusive-ux-writing.json +0 -30
  115. package/guidelines/internationalization.json +0 -87
  116. package/guidelines/language-and-inclusivity-writing-about-people.json +0 -85
  117. package/guidelines/language-and-inclusivity-writing-with-visuals.json +0 -61
  118. package/guidelines/layout-and-structure-containers.json +0 -47
  119. package/guidelines/layout-and-structure-spacing-overview.json +0 -66
  120. package/guidelines/layout-spacing.json +0 -39
  121. package/guidelines/object-styles-overview.json +0 -17
  122. package/guidelines/rounding.json +0 -73
  123. package/guidelines/side-navigation-browsing-context.json +0 -74
  124. package/guidelines/spacing-overview.json +0 -45
  125. package/guidelines/support.json +0 -113
  126. package/guidelines/typography-overview.json +0 -43
  127. package/guidelines/typography-system.json +0 -208
  128. package/guidelines/visual-language-containers.json +0 -36
  129. package/guidelines/voice-and-tone.json +0 -47
  130. package/guidelines/whats-new.json +0 -32
  131. package/guidelines/writing-about-people.json +0 -103
  132. package/guidelines/writing-for-errors.json +0 -120
  133. package/guidelines/writing-for-onboarding.json +0 -119
  134. package/guidelines/writing-for-readability.json +0 -54
  135. package/guidelines/writing-with-visuals.json +0 -70
  136. package/registry/platform-extensions/web-components-states.json +0 -58
@@ -9,6 +9,13 @@
9
9
  "category": "feedback",
10
10
  "documentationUrl": "https://spectrum.adobe.com/page/alert-dialog/"
11
11
  },
12
+ "implementations": [
13
+ {
14
+ "platform": "web",
15
+ "componentName": "AlertDialog",
16
+ "package": "@react-spectrum/s2"
17
+ }
18
+ ],
12
19
  "documentBlocks": [
13
20
  {
14
21
  "type": "purpose",
@@ -16,76 +23,80 @@
16
23
  },
17
24
  {
18
25
  "type": "guideline",
19
- "content": "Text overflow.\n\nWhen the title and description text are too long for the available horizontal space, they wrap to form another line."
20
- },
21
- {
22
- "type": "guideline",
23
- "content": "Button group overflow.\n\nAlert dialogs can include up to three buttons. When horizontal space is limited, the buttons stack vertically. Buttons should be ordered by ascending importance, with the most critical action placed at the end or bottom of the stack."
24
- },
25
- {
26
- "type": "guideline",
27
- "content": "Use alert dialogs sparingly.\n\nAlert dialogs are interruptive, so they should be reserved for important information that users must acknowledge before continuing a task or workflow. Use them only when absolutely necessary—not for low-priority notifications or excessive confirmations."
28
- },
29
- {
30
- "type": "guideline",
31
- "content": "Don’t nest alert dialogs.\n\nAlert dialogs are designed to pause the experience until a decision is made, so only one should appear at a time. Avoid opening an alert dialog from within another. If a situation seems to require a sequence of decisions, consider using a different design pattern."
26
+ "content": "Alert dialogs present critical information that must be acknowledged. They appear over the interface and block further interaction until an action is selected."
32
27
  },
33
28
  {
34
29
  "type": "guideline",
35
- "content": "Writing the title.\n\nAll alert dialogs must have a title. The title communicates the upshot of the message, such as the eventual outcome or conclusion of an action. It should be as close as possible to a complete sentence (subject + verb). Don’t use punctuation at the end of the title. Most alert dialog titles communicate the main effect of whatever a person is about to do. Titles ideally use the same or similar phrasing as the call-to-action that had led someone to the alert dialog in the first place. The title of an error alert dialog communicates the result of the error. Don’t just state that an error has occurred."
30
+ "content": "By default, an alert dialog that includes a button to cancel or go back will be labeled “Cancel.”"
36
31
  },
37
32
  {
38
33
  "type": "guideline",
39
- "content": "Writing the description.\n\nAlert dialog descriptions share any additional information or context that a person needs to know in order to make one of the decisions offered by the actions. Descriptions are written in complete sentences, and any error code is included in parentheses at the end of the last sentence."
34
+ "content": "Alert dialogs can include up to three buttons if a secondary outline button label is defined. If no label is defined, the button won’t appear. The secondary outline button should use a short, actionable phrase that clearly communicates the result of selecting the action—typically describing the previous step or an alternative choice."
40
35
  },
41
36
  {
42
37
  "type": "guideline",
43
- "content": "Writing the actions.\n\nUse a short phrase to succinctly describe the options for next steps. If possible, have the button label use the same language as the action mentioned in the alert dialog title (e.g., if a dialog's title is “Delete conversation,” its primary action button label would be “Delete”)."
38
+ "content": "An alert dialog must include at least one button. The primary action label refers to the rightmost button in the dialog footer for languages that read left to right. It should use a short, actionable phrase that clearly communicates the result of selecting the action—whether that means moving forward or dismissing the dialog."
44
39
  },
45
40
  {
46
41
  "type": "guideline",
47
- "content": "Make button labels specific and actionable.\n\nFor alert dialog buttons, make the labels as specific and actionable as possible. Even if someone were to only read the word or phrase on the button, they should be able to get a summary of the alert dialog’s entire message."
42
+ "content": "Use the appropriate variant based on the context of the message:"
48
43
  },
49
44
  {
50
45
  "type": "guideline",
51
- "content": "Avoid asking questions.\n\nQuestions in alert dialog titles — such as “Are you sure you want to quit?” or “Do you want to cancel?” — are redundant and undermine a user's agency in the decision they've already made by taking a previous action to get to the alert dialog. This phrasing also sets up for a yes/no set of actions, which can become confusing. Instead, reframe the message to focus on the outcome or effect."
46
+ "content": "Alert dialogs should include a description when available. The description briefly communicates any additional information or context a user needs to make a decision based on the options presented."
52
47
  },
53
48
  {
54
49
  "type": "guideline",
55
- "content": "Pair confirmation with distinct actions.\n\nIt’s OK to ask a question in an alert dialog's description to confirm if someone wants to go ahead with a choice that the system is making on their behalf. However, this should still be paired with distinct actions that show that a person has control over what happens next."
50
+ "content": "All alert dialogs must have a title. The title appears at the top of the dialog and uses a few words to convey the outcome of what will happen if a user continues with the primary action."
56
51
  },
57
52
  {
58
53
  "type": "guideline",
59
- "content": "RTL.\n\nFor RTL (right-to-left) languages, the layout of the alert dialog is mirrored. Texts are right-aligned and buttons are left-aligned."
54
+ "content": "When the title and description text are too long for the available horizontal space, they wrap to form another line."
60
55
  },
61
56
  {
62
57
  "type": "guideline",
63
- "content": "Keyboard interactions.\n\nKey Interaction TabMoves focus to the next button inside the alert dialog (last becomes first). If none of the buttons are selected, the focus is set on the first button.Shift + TabMoves focus to the previous button inside the alert dialog (first becomes last). If none of the buttons are selected, the focus is set on the last button.EscDismisses the alert dialog. This is equivalent to choosing “Cancel” or an “OK” confirmation.EscDismisses the alert banner if possible. This is equivalent to selecting the close button."
58
+ "content": "Alert dialogs can include up to three buttons. When horizontal space is limited, the buttons stack vertically. Buttons should be ordered by ascending importance, with the most critical action placed at the end or bottom of the stack."
64
59
  },
65
60
  {
66
61
  "type": "guideline",
67
- "content": "Cursor guidelines.\n\nCursor Usage Default (Arrow)Use the default cursor for non-interactive elements and text within the alert dialog.PointerUse the pointer cursor for any interactive elements, such as buttons, inside the alert dialog."
62
+ "content": "Alert dialogs are interruptive, so they should be reserved for important information that users must acknowledge before continuing a task or workflow. Use them only when absolutely necessary—not for low-priority notifications or excessive confirmations."
68
63
  },
69
64
  {
70
65
  "type": "guideline",
71
- "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 Non-text content 1.1.1 ANon-text elements, such as icons used in alert dialogs, must provide a text alternative that communicates the dialog's purpose. All alert dialogs need an accessible name (for example, via a title, aria-label, or associated text) so screen readers can announce their function.Info and relationships, Identify purpose 1.3.1, 1.3.6 A, AAAAlert dialogs should be understandable by assistive technologies like screen readers. This means using the proper semantic HTML or ARIA role of alertdialog should be utilized.Use of color 1.4.1 AColor is not used as a means to convey information or distinguish elements.Contrast 1.4.3 AAThe visual presentation of text has a contrast ratio of at least 4.5:1.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 illustrations and component states have 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 Requirement Criterion Level 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."
66
+ "content": "Alert dialogs are designed to pause the experience until a decision is made, so only one should appear at a time. Avoid opening an alert dialog from within another. If a situation seems to require a sequence of decisions, consider using a different design pattern."
72
67
  }
73
68
  ],
74
69
  "options": {
75
- "title": { "type": "string" },
76
- "description": { "type": "string" },
70
+ "title": {
71
+ "type": "string"
72
+ },
73
+ "description": {
74
+ "type": "string"
75
+ },
77
76
  "variant": {
78
77
  "type": "string",
79
78
  "default": "confirmation",
80
79
  "values": [
81
- { "value": "confirmation" },
82
- { "value": "information" },
83
- { "value": "warning" },
84
- { "value": "destructive" },
85
- { "value": "error" }
80
+ {
81
+ "value": "confirmation"
82
+ },
83
+ {
84
+ "value": "information"
85
+ },
86
+ {
87
+ "value": "warning"
88
+ },
89
+ {
90
+ "value": "destructive"
91
+ },
92
+ {
93
+ "value": "error"
94
+ }
86
95
  ]
87
96
  },
88
- "primaryActionLabel": { "type": "string" },
97
+ "primaryActionLabel": {
98
+ "type": "string"
99
+ },
89
100
  "secondaryActionLabel": {
90
101
  "type": "string",
91
102
  "description": "If undefined, this button does not appear."
@@ -96,15 +107,25 @@
96
107
  "description": "If undefined, this button does not appear."
97
108
  }
98
109
  },
99
- "lifecycle": { "introduced": "1.0.0-draft" },
110
+ "lifecycle": {
111
+ "introduced": "1.0.0-draft"
112
+ },
100
113
  "accessibility": {
101
114
  "role": "dialog",
102
115
  "intents": ["dismiss"],
103
116
  "focusable": false,
104
117
  "keyboardIntents": ["dismiss"],
105
118
  "wcag": [
106
- { "criterion": "2.4.3", "level": "A", "title": "Focus Order" },
107
- { "criterion": "4.1.2", "level": "A", "title": "Name, Role, Value" }
119
+ {
120
+ "criterion": "2.4.3",
121
+ "level": "A",
122
+ "title": "Focus Order"
123
+ },
124
+ {
125
+ "criterion": "4.1.2",
126
+ "level": "A",
127
+ "title": "Name, Role, Value"
128
+ }
108
129
  ]
109
130
  }
110
131
  }
@@ -9,6 +9,13 @@
9
9
  "category": "actions",
10
10
  "documentationUrl": "https://spectrum.adobe.com/page/avatar-group/"
11
11
  },
12
+ "implementations": [
13
+ {
14
+ "platform": "web",
15
+ "componentName": "AvatarGroup",
16
+ "package": "@react-spectrum/s2"
17
+ }
18
+ ],
12
19
  "documentBlocks": [
13
20
  {
14
21
  "type": "purpose",
@@ -48,16 +55,35 @@
48
55
  "type": "number",
49
56
  "default": 100,
50
57
  "values": [
51
- { "value": 50 },
52
- { "value": 75 },
53
- { "value": 100 },
54
- { "value": 200 },
55
- { "value": 300 },
56
- { "value": 400 },
57
- { "value": 500 }
58
+ {
59
+ "value": 50
60
+ },
61
+ {
62
+ "value": 75
63
+ },
64
+ {
65
+ "value": 100
66
+ },
67
+ {
68
+ "value": 200
69
+ },
70
+ {
71
+ "value": 300
72
+ },
73
+ {
74
+ "value": 400
75
+ },
76
+ {
77
+ "value": 500
78
+ }
58
79
  ]
59
80
  }
60
81
  },
61
- "lifecycle": { "introduced": "1.0.0-draft" },
62
- "accessibility": { "role": "group", "focusable": false }
82
+ "lifecycle": {
83
+ "introduced": "1.0.0-draft"
84
+ },
85
+ "accessibility": {
86
+ "role": "group",
87
+ "focusable": false
88
+ }
63
89
  }
@@ -9,6 +9,19 @@
9
9
  "category": "navigation",
10
10
  "documentationUrl": "https://spectrum.adobe.com/page/avatar/"
11
11
  },
12
+ "implementations": [
13
+ {
14
+ "platform": "web",
15
+ "componentName": "Avatar",
16
+ "package": "@react-spectrum/s2"
17
+ },
18
+ {
19
+ "platform": "web",
20
+ "componentName": "Avatar",
21
+ "importPath": "@adobe/spectrum-wc/components/avatar",
22
+ "notes": "Spectrum 2 web component custom element: swc-avatar."
23
+ }
24
+ ],
12
25
  "documentBlocks": [
13
26
  {
14
27
  "type": "purpose",
@@ -56,44 +69,107 @@
56
69
  "type": "number",
57
70
  "default": 500,
58
71
  "values": [
59
- { "value": 50 },
60
- { "value": 75 },
61
- { "value": 100 },
62
- { "value": 200 },
63
- { "value": 300 },
64
- { "value": 400 },
65
- { "value": 500 },
66
- { "value": 600 },
67
- { "value": 700 },
68
- { "value": 800 },
69
- { "value": 900 },
70
- { "value": 1000 },
71
- { "value": 1100 },
72
- { "value": 1200 },
73
- { "value": 1300 },
74
- { "value": 1400 },
75
- { "value": 1500 }
72
+ {
73
+ "value": 50
74
+ },
75
+ {
76
+ "value": 75
77
+ },
78
+ {
79
+ "value": 100
80
+ },
81
+ {
82
+ "value": 200
83
+ },
84
+ {
85
+ "value": 300
86
+ },
87
+ {
88
+ "value": 400
89
+ },
90
+ {
91
+ "value": 500
92
+ },
93
+ {
94
+ "value": 600
95
+ },
96
+ {
97
+ "value": 700
98
+ },
99
+ {
100
+ "value": 800
101
+ },
102
+ {
103
+ "value": 900
104
+ },
105
+ {
106
+ "value": 1000
107
+ },
108
+ {
109
+ "value": 1100
110
+ },
111
+ {
112
+ "value": 1200
113
+ },
114
+ {
115
+ "value": 1300
116
+ },
117
+ {
118
+ "value": 1400
119
+ },
120
+ {
121
+ "value": 1500
122
+ }
76
123
  ]
77
124
  },
78
125
  "image": {
79
126
  "type": "string",
80
127
  "default": "user image",
81
128
  "values": [
82
- { "value": "user image" },
83
- { "value": "gradient image" },
84
- { "value": "gradient" },
85
- { "value": "guest image" },
86
- { "value": "initials" }
129
+ {
130
+ "value": "user image"
131
+ },
132
+ {
133
+ "value": "gradient image"
134
+ },
135
+ {
136
+ "value": "gradient"
137
+ },
138
+ {
139
+ "value": "guest image"
140
+ },
141
+ {
142
+ "value": "initials"
143
+ }
87
144
  ]
88
145
  },
89
- "isDisabled": { "type": "boolean", "default": false },
90
- "showStroke": { "type": "boolean", "default": false }
146
+ "isDisabled": {
147
+ "type": "boolean",
148
+ "default": false
149
+ },
150
+ "showStroke": {
151
+ "type": "boolean",
152
+ "default": false
153
+ }
91
154
  },
92
155
  "states": [
93
- { "name": "down", "trigger": "interaction" },
94
- { "name": "keyboard-focus", "trigger": "interaction" },
95
- { "name": "disabled", "trigger": "prop" }
156
+ {
157
+ "name": "down",
158
+ "trigger": "interaction"
159
+ },
160
+ {
161
+ "name": "keyboard-focus",
162
+ "trigger": "interaction"
163
+ },
164
+ {
165
+ "name": "disabled",
166
+ "trigger": "prop"
167
+ }
96
168
  ],
97
- "lifecycle": { "introduced": "1.0.0-draft" },
98
- "accessibility": { "focusable": false }
169
+ "lifecycle": {
170
+ "introduced": "1.0.0-draft"
171
+ },
172
+ "accessibility": {
173
+ "focusable": false
174
+ }
99
175
  }