@adobe/spectrum-design-data 3.3.0 → 3.4.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 (121) hide show
  1. package/components/accordion.json +32 -102
  2. package/components/action-bar.json +9 -23
  3. package/components/action-button.json +52 -92
  4. package/components/action-group.json +18 -129
  5. package/components/alert-banner.json +8 -27
  6. package/components/alert-dialog.json +45 -55
  7. package/components/avatar-group.json +20 -50
  8. package/components/avatar.json +44 -123
  9. package/components/badge.json +66 -160
  10. package/components/breadcrumbs.json +26 -100
  11. package/components/button-group.json +32 -63
  12. package/components/button.json +74 -105
  13. package/components/calendar.json +8 -67
  14. package/components/cards.json +31 -46
  15. package/components/checkbox-group.json +22 -84
  16. package/components/checkbox.json +33 -96
  17. package/components/close-button.json +31 -73
  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 +18 -18
  23. package/components/color-slider.json +26 -122
  24. package/components/color-wheel.json +17 -84
  25. package/components/combo-box.json +56 -188
  26. package/components/contextual-help.json +87 -126
  27. package/components/date-picker.json +24 -120
  28. package/components/divider.json +25 -38
  29. package/components/drop-zone.json +25 -37
  30. package/components/field-label.json +22 -59
  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 +31 -63
  35. package/components/list-view.json +15 -73
  36. package/components/menu.json +51 -180
  37. package/components/meter.json +35 -76
  38. package/components/number-field.json +34 -168
  39. package/components/picker.json +48 -187
  40. package/components/popover.json +47 -123
  41. package/components/progress-bar.json +33 -105
  42. package/components/progress-circle.json +25 -55
  43. package/components/radio-button.json +14 -67
  44. package/components/radio-group.json +34 -131
  45. package/components/rating.json +9 -38
  46. package/components/search-field.json +40 -125
  47. package/components/segmented-control.json +27 -69
  48. package/components/select-box.json +29 -96
  49. package/components/side-navigation.json +28 -69
  50. package/components/slider.json +45 -154
  51. package/components/standard-dialog.json +16 -88
  52. package/components/status-light.json +51 -133
  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 +42 -79
  57. package/components/table.json +26 -73
  58. package/components/tabs.json +35 -52
  59. package/components/tag-field.json +14 -60
  60. package/components/tag-group.json +22 -55
  61. package/components/tag.json +27 -77
  62. package/components/takeover-dialog.json +10 -61
  63. package/components/text-area.json +55 -204
  64. package/components/text-field.json +48 -169
  65. package/components/thumbnail.json +22 -63
  66. package/components/toast.json +30 -47
  67. package/components/tooltip.json +37 -84
  68. package/components/tree-view.json +51 -146
  69. package/fields/structure.json +1 -2
  70. package/guidelines/ai-resource-guide.json +42 -0
  71. package/guidelines/app-frame-overview.json +45 -44
  72. package/guidelines/applying-the-type-system.json +71 -0
  73. package/guidelines/attention-hierarchy.json +13 -22
  74. package/guidelines/background-layers.json +84 -10
  75. package/guidelines/bi-directionality.json +57 -0
  76. package/guidelines/border-width.json +70 -0
  77. package/guidelines/brand.json +24 -12
  78. package/guidelines/cognitive.json +229 -0
  79. package/guidelines/colors.json +55 -17
  80. package/guidelines/component-spacing.json +65 -0
  81. package/guidelines/contact-us.json +27 -0
  82. package/guidelines/containers.json +21 -28
  83. package/guidelines/content-area-browsing-context.json +73 -0
  84. package/guidelines/creating-bluelines-browsing-context.json +71 -0
  85. package/guidelines/design-tokens.json +186 -0
  86. package/guidelines/developer-overview.json +33 -9
  87. package/guidelines/drop-shadow.json +76 -0
  88. package/guidelines/faqs.json +100 -9
  89. package/guidelines/fonts.json +33 -14
  90. package/guidelines/grammar-and-mechanics.json +276 -0
  91. package/guidelines/grays.json +17 -44
  92. package/guidelines/header-browsing-context.json +40 -0
  93. package/guidelines/icon-fundamentals.json +7 -18
  94. package/guidelines/illustration.json +120 -0
  95. package/guidelines/in-product-word-list.json +25 -0
  96. package/guidelines/inclusive-design.json +101 -0
  97. package/guidelines/inclusive-ux-writing.json +34 -0
  98. package/guidelines/internationalization.json +103 -0
  99. package/guidelines/layout-spacing.json +39 -0
  100. package/guidelines/manifest.json +280 -16
  101. package/guidelines/motion.json +18 -13
  102. package/guidelines/object-styles-overview.json +17 -0
  103. package/guidelines/principles.json +7 -8
  104. package/guidelines/resources.json +29 -15
  105. package/guidelines/rounding.json +85 -0
  106. package/guidelines/side-navigation-browsing-context.json +74 -0
  107. package/guidelines/spacing-overview.json +78 -0
  108. package/guidelines/states.json +16 -11
  109. package/guidelines/support.json +125 -0
  110. package/guidelines/typography-overview.json +39 -0
  111. package/guidelines/typography-system.json +212 -0
  112. package/guidelines/using-icons.json +32 -47
  113. package/guidelines/voice-and-tone.json +51 -0
  114. package/guidelines/whats-new.json +21 -0
  115. package/guidelines/writing-about-people.json +99 -0
  116. package/guidelines/writing-for-errors.json +140 -0
  117. package/guidelines/writing-for-onboarding.json +123 -0
  118. package/guidelines/writing-for-readability.json +66 -0
  119. package/guidelines/writing-with-visuals.json +78 -0
  120. package/package.json +2 -2
  121. package/tokens/layout.tokens.json +88 -0
@@ -96,35 +96,22 @@
96
96
  }
97
97
  ],
98
98
  "options": {
99
- "text": {
100
- "type": "string"
101
- },
99
+ "text": { "type": "string" },
102
100
  "variant": {
103
101
  "type": "string",
104
102
  "default": "neutral",
105
103
  "values": [
106
- {
107
- "value": "neutral"
108
- },
109
- {
110
- "value": "informative"
111
- },
112
- {
113
- "value": "negative"
114
- },
115
- {
116
- "value": "accent"
117
- }
104
+ { "value": "neutral" },
105
+ { "value": "informative" },
106
+ { "value": "negative" },
107
+ { "value": "accent" }
118
108
  ]
119
109
  },
120
110
  "actionLabel": {
121
111
  "type": "string",
122
112
  "description": "If undefined, this button does not appear."
123
113
  },
124
- "isDismissible": {
125
- "type": "boolean",
126
- "default": false
127
- }
114
+ "isDismissible": { "type": "boolean", "default": false }
128
115
  },
129
116
  "anatomy": [
130
117
  {
@@ -132,17 +119,11 @@
132
119
  "description": "Icon indicating the alert's severity."
133
120
  }
134
121
  ],
135
- "lifecycle": {
136
- "introduced": "1.0.0-draft"
137
- },
122
+ "lifecycle": { "introduced": "1.0.0-draft" },
138
123
  "accessibility": {
139
124
  "focusable": false,
140
125
  "wcag": [
141
- {
142
- "criterion": "4.1.3",
143
- "level": "AA",
144
- "title": "Status Messages"
145
- }
126
+ { "criterion": "4.1.3", "level": "AA", "title": "Status Messages" }
146
127
  ]
147
128
  }
148
129
  }
@@ -9,13 +9,6 @@
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
- ],
19
12
  "documentBlocks": [
20
13
  {
21
14
  "type": "purpose",
@@ -23,80 +16,87 @@
23
16
  },
24
17
  {
25
18
  "type": "guideline",
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."
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."
32
+ },
33
+ {
34
+ "type": "guideline",
35
+ "content": "Writing for alert dialogs starts by determining the nature of the message. Each Spectrum alert dialog variant has its own communication goal and tone that work in partnership with its visual design. Alert dialog variant Goal Tone Confirmation Asking a user to confirm an action they want to take. Instructive Information Sharing important information that a user needs to acknowledge. Helpful Warning Sharing time-sensitive information that a user needs to consider, but won’t block them from proceeding. Instructive to helpful Destructive Telling a user that if they are to proceed with an action they want to take, it may impact their data in a negative way. Instructive Error Communicating critical information about an issue that a user needs to resolve before they can move forward with a task. Supportive"
27
36
  },
28
37
  {
29
38
  "type": "guideline",
30
- "content": "By default, an alert dialog that includes a button to cancel or go back will be labeled “Cancel.”"
39
+ "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."
31
40
  },
32
41
  {
33
42
  "type": "guideline",
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."
43
+ "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."
35
44
  },
36
45
  {
37
46
  "type": "guideline",
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."
47
+ "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”)."
39
48
  },
40
49
  {
41
50
  "type": "guideline",
42
- "content": "Use the appropriate variant based on the context of the message:"
51
+ "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."
43
52
  },
44
53
  {
45
54
  "type": "guideline",
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."
55
+ "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."
47
56
  },
48
57
  {
49
58
  "type": "guideline",
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."
59
+ "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."
51
60
  },
52
61
  {
53
62
  "type": "guideline",
54
- "content": "When the title and description text are too long for the available horizontal space, they wrap to form another line."
63
+ "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."
55
64
  },
56
65
  {
57
66
  "type": "guideline",
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."
67
+ "content": "Keyboard interactions.\n\nKey Interaction Tab Moves 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 + Tab Moves 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. Esc Dismisses the alert dialog. This is equivalent to choosing “Cancel” or an “OK” confirmation. Esc Dismisses the alert banner if possible. This is equivalent to selecting the close button."
59
68
  },
60
69
  {
61
70
  "type": "guideline",
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."
71
+ "content": "Cursor guidelines.\n\nCursor Usage Default (Arrow) Use the default cursor for non-interactive elements and text within the alert dialog. Pointer Use the pointer cursor for any interactive elements, such as buttons, inside the alert dialog."
63
72
  },
64
73
  {
65
74
  "type": "guideline",
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."
75
+ "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 A Non-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, AAA Alert 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 A Color is not used as a means to convey information or distinguish elements. Contrast 1.4.3 AA The visual presentation of text has a contrast ratio of at least 4.5:1. Visual presentation 1.4.8 AAA The 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 AA The visual presentation of illustrations and component states have a contrast ratio of at least 3:1. Text spacing 1.4.12 AA Line 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, AAA All functionality of the component is operable through a keyboard without specific timing for keystrokes. Keyboard traps 2.1.2 A Focus 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, AAA There is no flashing content or unnecessary motion or animation in this component. Focus order 2.4.3 A Navigation sequences receive focus in an order that preserves meaning and operability. Focus visible 2.4.7 AA Keyboard states use an indicator that is visible with at least 3:1 contrast."
76
+ }
77
+ ],
78
+ "implementations": [
79
+ {
80
+ "platform": "web",
81
+ "componentName": "AlertDialog",
82
+ "package": "@react-spectrum/s2"
67
83
  }
68
84
  ],
69
85
  "options": {
70
- "title": {
71
- "type": "string"
72
- },
73
- "description": {
74
- "type": "string"
75
- },
86
+ "title": { "type": "string" },
87
+ "description": { "type": "string" },
76
88
  "variant": {
77
89
  "type": "string",
78
90
  "default": "confirmation",
79
91
  "values": [
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
- }
92
+ { "value": "confirmation" },
93
+ { "value": "information" },
94
+ { "value": "warning" },
95
+ { "value": "destructive" },
96
+ { "value": "error" }
95
97
  ]
96
98
  },
97
- "primaryActionLabel": {
98
- "type": "string"
99
- },
99
+ "primaryActionLabel": { "type": "string" },
100
100
  "secondaryActionLabel": {
101
101
  "type": "string",
102
102
  "description": "If undefined, this button does not appear."
@@ -107,25 +107,15 @@
107
107
  "description": "If undefined, this button does not appear."
108
108
  }
109
109
  },
110
- "lifecycle": {
111
- "introduced": "1.0.0-draft"
112
- },
110
+ "lifecycle": { "introduced": "1.0.0-draft" },
113
111
  "accessibility": {
114
112
  "role": "dialog",
115
113
  "intents": ["dismiss"],
116
114
  "focusable": false,
117
115
  "keyboardIntents": ["dismiss"],
118
116
  "wcag": [
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
- }
117
+ { "criterion": "2.4.3", "level": "A", "title": "Focus Order" },
118
+ { "criterion": "4.1.2", "level": "A", "title": "Name, Role, Value" }
129
119
  ]
130
120
  }
131
121
  }
@@ -9,13 +9,6 @@
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
- ],
19
12
  "documentBlocks": [
20
13
  {
21
14
  "type": "purpose",
@@ -23,27 +16,23 @@
23
16
  },
24
17
  {
25
18
  "type": "guideline",
26
- "content": "An avatar group displays a set of related avatars together. It’s typically used to represent a collection of people or entities."
27
- },
28
- {
29
- "type": "guideline",
30
- "content": "Avatar sizes scale exponentially, based on the Spectrum type scale. Avatar has preset sizes to flex across all surfaces and can also be customized to fit appropriately for your context."
19
+ "content": "Keyboard focus.\n\nIndividual avatars inside Avatar group can be navigated using a keyboard. The keyboard focus state adds a focus ring around the avatar."
31
20
  },
32
21
  {
33
22
  "type": "guideline",
34
- "content": "An Avatar group can have an optional text label that clearly describes the group or number of users that it represents."
23
+ "content": "Adjusting stroke color to match neutral backgrounds.\n\nEach individual avatar has a stroke applied to better show distinction between individual users in the group. By default, the outline color is a neutral gray, but the stroke color should be adjusted manually to match the background where the avatar group is placed."
35
24
  },
36
25
  {
37
- "type": "guideline",
38
- "content": "Individual avatars inside Avatar group can be navigated using a keyboard. The keyboard focus state adds a focus ring around the avatar."
39
- },
40
- {
41
- "type": "guideline",
42
- "content": "Each individual avatar has a stroke applied to better show distinction between individual users in the group. By default, the outline color is a neutral gray, but the stroke color should be adjusted manually to match the background where the avatar group is placed."
43
- },
26
+ "type": "do-dont",
27
+ "content": "Do not adjust stroke color on a colored background",
28
+ "dont": "When using a colored background the avatar stroke color should remain set as default for both light and dark themes."
29
+ }
30
+ ],
31
+ "implementations": [
44
32
  {
45
- "type": "guideline",
46
- "content": "When using a colored background the avatar stroke color should remain set as default for both light and dark themes."
33
+ "platform": "web",
34
+ "componentName": "AvatarGroup",
35
+ "package": "@react-spectrum/s2"
47
36
  }
48
37
  ],
49
38
  "options": {
@@ -55,35 +44,16 @@
55
44
  "type": "number",
56
45
  "default": 100,
57
46
  "values": [
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
- }
47
+ { "value": 50 },
48
+ { "value": 75 },
49
+ { "value": 100 },
50
+ { "value": 200 },
51
+ { "value": 300 },
52
+ { "value": 400 },
53
+ { "value": 500 }
79
54
  ]
80
55
  }
81
56
  },
82
- "lifecycle": {
83
- "introduced": "1.0.0-draft"
84
- },
85
- "accessibility": {
86
- "role": "group",
87
- "focusable": false
88
- }
57
+ "lifecycle": { "introduced": "1.0.0-draft" },
58
+ "accessibility": { "role": "group", "focusable": false }
89
59
  }
@@ -9,19 +9,6 @@
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
- ],
25
12
  "documentBlocks": [
26
13
  {
27
14
  "type": "purpose",
@@ -29,39 +16,36 @@
29
16
  },
30
17
  {
31
18
  "type": "guideline",
32
- "content": "An avatar in a disabled state shows that an avatar exists, but is not available or a user is not active in that circumstance. This can be used to maintain layout continuity and communicate that an avatar may become available or active later."
33
- },
34
- {
35
- "type": "guideline",
36
- "content": "When used as an individual Avatar, showStroke is false by default. When used in Avatar group, showStroke is true by default to create separation between the stacked group of Avatar components."
19
+ "content": "Keyboard focus.\n\nAn avatar can be navigated using a keyboard. The keyboard focus state adds a blue ring to the avatar in focus."
37
20
  },
38
21
  {
39
22
  "type": "guideline",
40
- "content": "Avatar sizes scale exponentially, based on the Spectrum type scale. Avatar has preset sizes to flex across all surfaces and can also be customized to fit appropriately for your context."
23
+ "content": "Multiple avatars in a group.\n\nAn avatar group displays a set of related avatars together. It’s typically used to represent a collection of people or entities."
41
24
  },
42
25
  {
43
26
  "type": "guideline",
44
- "content": "An avatar has multiple visual styles, depending on the user preference. These show up as branded gradient images, initials of the user’s name, as well as any image that a user uploads. For users who do not have Adobe accounts, they will default to the guest avatar."
27
+ "content": "Use gradient image avatars when a user image is undefined.\n\nUse branded generic avatars when a user has not set their avatar image. These images are designed to be abstracted from all genders, locales, and cultures."
45
28
  },
46
29
  {
47
30
  "type": "guideline",
48
- "content": "An avatar can be navigated using a keyboard. The keyboard focus state adds a blue ring to the avatar in focus."
31
+ "content": "Use the initials avatar style for users with latin characters only.\n\nThe initials avatar is designed to work with latin characters only and supports 1 or 2 characters that are programmatically identified by the first name and last name in a user's account settings. For users with non-latin characters, their default avatar should be the gradient image style."
49
32
  },
50
33
  {
51
34
  "type": "guideline",
52
- "content": "An avatar group displays a set of related avatars together. It’s typically used to represent a collection of people or entities."
53
- },
54
- {
55
- "type": "guideline",
56
- "content": "Use branded generic avatars when a user has not set their avatar image. These images are designed to be abstracted from all genders, locales, and cultures."
57
- },
35
+ "content": "Use the guest avatar style for users without an Adobe account.\n\nThe guest avatar style is designed for users who may be interacting with Adobe products, but are not logged in or do not have an Adobe account."
36
+ }
37
+ ],
38
+ "implementations": [
58
39
  {
59
- "type": "guideline",
60
- "content": "The initials avatar is designed to work with latin characters only and supports 1 or 2 characters that are programmatically identified by the first name and last name in a user’s account settings. For users with non-latin characters, their default avatar should be the gradient image style."
40
+ "platform": "web",
41
+ "componentName": "Avatar",
42
+ "package": "@react-spectrum/s2"
61
43
  },
62
44
  {
63
- "type": "guideline",
64
- "content": "The guest avatar style is designed for users who may be interacting with Adobe products, but are not logged in or do not have an Adobe account."
45
+ "platform": "web",
46
+ "componentName": "Avatar",
47
+ "importPath": "@adobe/spectrum-wc/components/avatar",
48
+ "notes": "Spectrum 2 web component custom element: swc-avatar."
65
49
  }
66
50
  ],
67
51
  "options": {
@@ -69,107 +53,44 @@
69
53
  "type": "number",
70
54
  "default": 500,
71
55
  "values": [
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
- }
56
+ { "value": 50 },
57
+ { "value": 75 },
58
+ { "value": 100 },
59
+ { "value": 200 },
60
+ { "value": 300 },
61
+ { "value": 400 },
62
+ { "value": 500 },
63
+ { "value": 600 },
64
+ { "value": 700 },
65
+ { "value": 800 },
66
+ { "value": 900 },
67
+ { "value": 1000 },
68
+ { "value": 1100 },
69
+ { "value": 1200 },
70
+ { "value": 1300 },
71
+ { "value": 1400 },
72
+ { "value": 1500 }
123
73
  ]
124
74
  },
125
75
  "image": {
126
76
  "type": "string",
127
77
  "default": "user image",
128
78
  "values": [
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
- }
79
+ { "value": "user image" },
80
+ { "value": "gradient image" },
81
+ { "value": "gradient" },
82
+ { "value": "guest image" },
83
+ { "value": "initials" }
144
84
  ]
145
85
  },
146
- "isDisabled": {
147
- "type": "boolean",
148
- "default": false
149
- },
150
- "showStroke": {
151
- "type": "boolean",
152
- "default": false
153
- }
86
+ "isDisabled": { "type": "boolean", "default": false },
87
+ "showStroke": { "type": "boolean", "default": false }
154
88
  },
155
89
  "states": [
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
- }
90
+ { "name": "down", "trigger": "interaction" },
91
+ { "name": "keyboard-focus", "trigger": "interaction" },
92
+ { "name": "disabled", "trigger": "prop" }
168
93
  ],
169
- "lifecycle": {
170
- "introduced": "1.0.0-draft"
171
- },
172
- "accessibility": {
173
- "focusable": false
174
- }
94
+ "lifecycle": { "introduced": "1.0.0-draft" },
95
+ "accessibility": { "focusable": false }
175
96
  }