@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
@@ -1,120 +0,0 @@
1
- {
2
- "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/v0/guideline.schema.json",
3
- "$id": "https://opensource.adobe.com/spectrum-design-data/guidelines/writing-for-errors.json",
4
- "name": "writing-for-errors",
5
- "title": "Writing for errors",
6
- "category": "designing",
7
- "documentBlocks": [
8
- { "type": "purpose", "content": "Writing for errors" },
9
- {
10
- "type": "guideline",
11
- "content": "An error occurs when users expect one thing to happen, but either something else — or nothing — happens. Errors can cause frustration, confusion, a loss of data, or more labor for users. These moments make it harder for people to get things done. At Adobe, the audiences for error messages span a wide variety of people. The language we use can vary depending on the audience and the context. But ultimately, these kinds of messages need to be in service of the end user, regardless of their skill sets or technical familiarity. These messages often bring frustrating news, and can be highly visible and memorable, so they need to be relevant, useful, and clear. We show users error messages to let them know what happened, what the cause of the error was, and what (if anything) they can do to resolve it."
12
- },
13
- {
14
- "type": "guideline",
15
- "content": "Avoid showing a message whenever possible.\n\nThe best error message is no error happening at all. The message — and the error itself — are disruptive to a user’s experience and can stand in the way of them accomplishing their task. Make sure that the system can anticipate and address errors on the back end before showing an error message on the front end. Find ways to avoid the error altogether, like by using in-line validation, visual cues, and disabled states to guide users. Ensure your design is as inclusive as possible by anticipating and accommodating multiple spellings of words in search queries and results. Image: Key example of a correct way to avoid showing an error message in an interaction. A text area component, label Description (required), with two buttons in the disabled state, labels Cancel, Submit. (source: https://preview.spectrum.adobe.com/content/media_1e61427ab0002f3e80d26c2e0ac11419704fbec57.png?width=750&format=png&optimize=medium)Use the disabled states of components to communicate that next steps are unavailable unless a user takes an action first.Image: Key example of an unsatisfactory error message design. A text area component, label Description (required), has two buttons in the active state, labels Cancel and Submit. An animation shows a cursor hovering over the text area, not entering any text, and clicking the Submit button. After clicking, a red error icon and a red in-line error message appear, with the message saying Enter your description. (source: https://preview.spectrum.adobe.com/content/media_10ac9c52026aab5dbb320e4e2b9c020ce5bc85123.png?width=750&format=png&optimize=medium)Don't create unnecessary error messages as a workaround to unintuitive design."
16
- },
17
- {
18
- "type": "guideline",
19
- "content": "Have the system automatically resolve errors.\n\nError messaging should be a last resort. Try whenever possible to design experiences in a way that the UI doesn’t rely on showing error messages or prompting direct user action to resolve an error. For example, if a user were to input “101” when a field can only accept numbers up to 100 (such as showing percentages), automatically revert the entered value to 100. Image: Key example of a design that automatically resolves an error. A user inputs a value of 101 percent into a text field, label Opacity. After the user input, the system automatically changes the value to 100 percent. (source: https://preview.spectrum.adobe.com/content/media_15793c69928d79c629cd0b1aaba24496b0446d332.png?width=750&format=png&optimize=medium)Image: Key example of a design that does not resolve errors on the back end and shows an unnecessary error message. A user inputs a value of 101 percent into a text field, label Opacity. After the user input, the system shows a field error icon and an error message saying Enter a valid percentage. (source: https://preview.spectrum.adobe.com/content/media_1682f75850766460bc478fa21e0520022ec72c8f0.png?width=750&format=png&optimize=medium)"
20
- },
21
- {
22
- "type": "guideline",
23
- "content": "Choose the message first, then the component.\n\nError messages appear in the wrong UI components all too often. A complex message is usually too long and too complicated for a toast, and a short and straightforward message is far too much for an alert dialog. Errors that are lower in signal or consequence shouldn’t warrant a dialog that blocks the entire experience, and errors that are high priority shouldn’t appear in a toast with a timeout of only a few seconds. Write out what the message should say, free of any UI constraints, to understand how you should say it. Then, determine the right component for the message. Learn which component to use, when. Image: Key example of a correct way to choose a proper design component for an error message. An error alert dialog includes an error icon, and contains a high-signal, complex error message. Dialog title, Unable to share. Dialog description, An error occurred while sharing your project. Please verify the email address and try again. One button, label OK. (source: https://preview.spectrum.adobe.com/content/media_14db46b6962d8ca4b7347739733670c7c2eaf446d.png?width=750&format=png&optimize=medium)Image: Key example of an incorrect way to pair a design component with an error message. An error toast includes a message that is too long and high-signal for the component. Toast text, Unable to share. An error occurred while sharing your project. Please verify the email address and try again. (source: https://preview.spectrum.adobe.com/content/media_122449620310426211b0e58d83482205950e4dfda.png?width=750&format=png&optimize=medium)"
24
- },
25
- {
26
- "type": "guideline",
27
- "content": "What happened.\n\nThis should be the first part of the message, like in a headline (if the UI element allows). Be sure to communicate the general outcome of the error. Use plain language and focus on what it means to the user. Image: Key example of a correct usage. Your files didn’t sync. (source: https://preview.spectrum.adobe.com/content/media_13c953812a0b3a9aa2ebd267bc3109a9951099c76.png?width=750&format=png&optimize=medium)Image: Key example of an incorrect usage. FORBIDDEN This operation has failed to execute. (source: https://preview.spectrum.adobe.com/content/media_171e1d7bb948c9d90dfdd3f6d9ea2aed7ef59bf53.png?width=750&format=png&optimize=medium)"
28
- },
29
- {
30
- "type": "guideline",
31
- "content": "The underlying cause.\n\nIt’s helpful to have an explanation of why something happened, if there’s space to include it. Explaining the cause is optional depending on the context; sometimes this can increase a user’s understanding, but sometimes it gets in the way of useful, usable information. Image: Key example of a correct usage. We're unable to install or update {appName} due to insufficient disk space. (Error code: 189) The installer can't download {appName} because Adobe’s servers aren’t reachable. Check the Adobe status page for an outage and retry the installation later. (Error code: 206) (source: https://preview.spectrum.adobe.com/content/media_1346bfb9352b0bb235d3c474510c36be658c35916.png?width=750&format=png&optimize=medium)Image: Key example of an incorrect usage. We're unable to install or update {appName}. The installer cannot download {appName} because Adobe’s servers aren’t reachable. This may be due to user error, employee error, or something else. Check the Adobe status page for an outage and retry the installation later. (Error code: 206) (source: https://preview.spectrum.adobe.com/content/media_1d8de2015fd403a20b7b6262389e8bac99b420bed.png?width=750&format=png&optimize=medium)"
32
- },
33
- {
34
- "type": "guideline",
35
- "content": "How to fix it.\n\nThis part tells the user what they can do about it. If there’s nothing for them to do, then explain what the product is doing. This should be as simple and actionable as possible. Offer a path forward within the error state itself, such as a “Try again” or “Go back” button, or a step-by-step resolution in the error message text. Linking to a help article can be useful, but only if that article is specific and descriptive to the error’s use case. Try to avoid generic, catch-all resolutions like “Contact your IT administrator for details.” Image: Unlabeled image (source: https://preview.spectrum.adobe.com/content/media_14dff668c4712cec2e9dd021c4c0d16c27db0f8e5.png?width=750&format=png&optimize=medium)Image: Key example of an incorrect usage. Upload your files one more time. (source: https://preview.spectrum.adobe.com/content/media_19b86aa2ae85d836e29ad4a172b58540ade1112a2.png?width=750&format=png&optimize=medium)"
36
- },
37
- {
38
- "type": "guideline",
39
- "content": "Center the language around user goals, not system constraints.\n\nSometimes it seems like the best way to resolve an error is to explain the constraints of the system to the user. But, most users don’t care about the constraints of the system — they care about accomplishing their goals. Center the language around what the user is trying to accomplish, why that didn’t happen, and how they might resolve the error. Image: Key example of a correct usage. Accept the End User License Agreement terms. (source: https://preview.spectrum.adobe.com/content/media_1194c219d34db23b7e826eeb5375dd15003f17dcd.png?width=750&format=png&optimize=medium)Image: Key example of an incorrect usage. There was a RAISE without a handler. (source: https://preview.spectrum.adobe.com/content/media_18bba303711ef7520bb47f2d61b5bec940ab75dfe.png?width=750&format=png&optimize=medium)"
40
- },
41
- {
42
- "type": "guideline",
43
- "content": "Use plain language, and avoid jargon.\n\nUsers may not understand server architecture or client-side queries. Know your audience, and write your error messages in plain, usable language so that your user will understand what went wrong and how it’s being resolved. Technical terms are different than jargon. If you’re confident that your audience would be readily familiar with technical terms, and if such terms are relevant to the message, you can include them. Image: Key example of a correct usage. Due to a connection error, some results may be unavailable. (source: https://preview.spectrum.adobe.com/content/media_12f51c5567eb92cbc3d65298e8f70db7b10f55e46.png?width=750&format=png&optimize=medium)Image: Key example of an incorrect usage. Due to a server-side connectivity failure, some results may be unavailable. (source: https://preview.spectrum.adobe.com/content/media_12e5135ff0e69e83869e5cb69fb18f6914f130c9c.png?width=750&format=png&optimize=medium)"
44
- },
45
- {
46
- "type": "guideline",
47
- "content": "Don’t blame the user, even if the error is their fault.\n\nSome errors are outside of a user’s control, but they can happen because of a direct user action. While you want to tell a user what happened, don’t sound accusatory or that you’re blaming them — we want them to feel supported and taken care of in any experience. Image: Key example of a correct usage. Your computer appears to be offline. Connect to the internet and try again. (Error code: 206) (source: https://preview.spectrum.adobe.com/content/media_185cc2d41591a04e2e820643856ff6bccc8c33436.png?width=750&format=png&optimize=medium)Image: Key example of an incorrect usage. You went offline. Connect to the internet and try again. (Error code: 206) (source: https://preview.spectrum.adobe.com/content/media_18689b28dae936d0ddabfd37235a3e6efb168403f.png?width=750&format=png&optimize=medium)"
48
- },
49
- {
50
- "type": "guideline",
51
- "content": "Include error codes only if useful and relevant.\n\nAgain, think about your audience. Include an error code or other technical information if your users would benefit from having it in order to resolve the error. Put error codes at the end of the message so that readers aren’t potentially overwhelmed with information they may not understand at the start. Image: Key example of a correct usage. This profile is currently unavailable. Try reloading the page. (Error code: 10213) (source: https://preview.spectrum.adobe.com/content/media_1efeb1dd17dc343aefc7c5b3ed41bd84aa5d095af.png?width=750&format=png&optimize=medium)This error message shows the error code as a reference for contacting tech support."
52
- },
53
- {
54
- "type": "guideline",
55
- "content": "Use positive framing to keep the focus on what users can do.\n\nWhile a user will want to know what went wrong, be as clear as possible about what they can do to fix the error, or provide them with an alternative workaround. Sometimes it’s simple (“try again in a few minutes”) and sometimes the only solution can be time-intensive or potentially frustrating (“contact your IT administrator”). Avoid putting the focus on the problem, what a user can’t do, or what they did incorrectly. Instead, offer context and help people understand what they can do. Image: Key example of a correct usage. Enter your system administrator password to continue. Check for an OS prompt and follow the instructions. The installer shut down unexpectedly. Please select Retry to restart the process. (Error code: 305) (source: https://preview.spectrum.adobe.com/content/media_114c76fb236ba270f4e05cd2fe5206add7a0ac0e4.png?width=750&format=png&optimize=medium)Image: Key example of an incorrect usage. Enter your system administrator password to continue. The installer shut down unexpectedly. (source: https://preview.spectrum.adobe.com/content/media_10ef359db76235b008fbf15e40252c09ecbf07669.png?width=750&format=png&optimize=medium)"
56
- },
57
- {
58
- "type": "guideline",
59
- "content": "Create error states that are specific to each case whenever possible.\n\nIt may be tempting to write a catch-all error message to accommodate dozens of similar scenarios, but that will tend to be wordier and less concise. When users need to understand multiple causes of the error — and also figure out which one applies in their scenario — that creates a lot of unnecessary cognitive load in an experience. Creating multiple, more specific error messages takes additional effort, but it ultimately creates a better user experience. Having these can also provide clearer insights and analytics that can help identify and resolve common pain points — and show you how to prevent errors from happening in your product in the first place. Image: Key example of a correct usage. Your wifi connection is unstable and affecting download speed. Try switching to an ethernet cable. (source: https://preview.spectrum.adobe.com/content/media_1b322376f77d730247cca8ee098da38582abaa14c.png?width=750&format=png&optimize=medium)Image: Key example of an incorrect usage. There’s an issue wrong with your internet connection. It could be your wifi, router, modem, or ethernet cable. (source: https://preview.spectrum.adobe.com/content/media_1d5417ca0dc7ba9a4c4e19a099d1d5c460a27649e.png?width=750&format=png&optimize=medium)"
60
- },
61
- {
62
- "type": "guideline",
63
- "content": "While the error should be specific, use generic language.\n\nGeneric language allows for better localization, and it also reduces the need to write many different versions of messages for similar use cases. It’s usually unnecessary to include specific filenames, usernames, or folders because a user can get that context from elsewhere in the UI. Image: Key example of a correct usage. Your document could not be saved. Please try again. (source: https://preview.spectrum.adobe.com/content/media_13b3558b2aff04582028409bcf767930ec0709d4d.png?width=750&format=png&optimize=medium)Image: Key example of an incorrect usage. Your document “Final-proposal-May-Monthly-Meeting.indd” could not be saved to the library “May Proposals” (source: https://preview.spectrum.adobe.com/content/media_14f412d6e89149021159b01597be0bf50a8509485.png?width=750&format=png&optimize=medium)"
64
- },
65
- {
66
- "type": "guideline",
67
- "content": "Using voice.\n\nAs with all other in-product writing, error messaging should follow Spectrum’s in-product voice principles: Rational (clear and understandable), Human (friendly, honest, and responsible), and Focused (concise and simple)."
68
- },
69
- {
70
- "type": "guideline",
71
- "content": "Using tone.\n\nTone is a strategic tool to help a user accomplish goals and more easily relate to a system. Tone changes depending on the audience, context, and severity of an error. Here are a few tones for common error messages: Tone When to use Example Instructive For low-volume, low-consequence errors. When you just want to tell users about an error state. Unable to load this page. Reassuring For minor errors. When you know the user is worried about something, and want them to know there's help available. Our servers timed out and we couldn’t save your file. Please try again, and if the problem persists, contact your IT administrator. Supportive For big errors where something bad has happened. When we want to acknowledge that the user is upset and want to inform, guide, and support them. We’re sorry, but we couldn’t renew your subscription because your credit card has expired. You still have 90 days to recover your files and apps by renewing your subscription with an active card. Contact us if we can help you get set up!"
72
- },
73
- {
74
- "type": "guideline",
75
- "content": "Don’t apologize unless it’s warranted.\n\nApologizing for minor mistakes or when the system is not at fault sounds insincere, and it gets in the way of the important parts of a message. Save “sorry” for serious errors: when there’s data loss or something requires a user to take a major action to resolve the issue. Image: Key example of a correct usage. We couldn’t post your comment. Try again (source: https://preview.spectrum.adobe.com/content/media_1319eac32780e566dc22113dd76637417489ca5f8.png?width=750&format=png&optimize=medium)Image: Key example of an incorrect usage. Oops! So sorry, but we couldn’t post your comment. Try again (source: https://preview.spectrum.adobe.com/content/media_193c73440a77193769e109549cfe9841f62d7cdae.png?width=750&format=png&optimize=medium)"
76
- },
77
- {
78
- "type": "guideline",
79
- "content": "Use passive voice sparingly.\n\nTry to write in active voice, which is quicker and easier to parse. Passive voice is useful to soften a message that might otherwise come across as blunt or terse, especially when the error was caused through user action or inaction. Image: Key example of a correct usage. We couldn’t save your changes. Please try again. Your credit card could not be charged. Please add an active card to continue your subscription. (source: https://preview.spectrum.adobe.com/content/media_14cb517f2d37c5e0ae241d7c3789f0c02817a1730.png?width=750&format=png&optimize=medium)Image: Key example of an incorrect usage. Your changes could not be saved. Please try again. You didn’t add a new card after your current card expired, so if you want to continue your subscription, add it now. (source: https://preview.spectrum.adobe.com/content/media_1fa2c3cdb04cb5051867e25a51720583a774b1cb0.png?width=750&format=png&optimize=medium)"
80
- },
81
- {
82
- "type": "guideline",
83
- "content": "Own mistakes, and help users parse complicated actions with “we” and “you”.\n\nWe typically avoid referring to ourselves — meaning “we,” the interface — in UI copy because it adds unnecessary cognitive load. But, directly referring to the interface as \"we\" and to the user as \"you\" in an error message can be a clear and helpful way to answer the questions \"where did this go wrong?\" and \"who needs to take action to fix it?\" Image: Key example of a correct usage. Something went wrong and we couldn’t generate your report. Please try again in a few minutes. (source: https://preview.spectrum.adobe.com/content/media_1e764f83c532512ea7bf6a5ecfebed18f012af61f.png?width=750&format=png&optimize=medium)Image: Key example of an incorrect usage. Experience Cloud encountered an error and this report couldn’t be generated. The user can try again in a few minutes. (source: https://preview.spectrum.adobe.com/content/media_19094c5873c7fb7bc0c4bb1454ee7bcb34e254234.png?width=750&format=png&optimize=medium)"
84
- },
85
- {
86
- "type": "guideline",
87
- "content": "Alert dialog.\n\nConsequence: High Complication: High Action: High Alert dialogs appear over the interface to show important information that a user needs to acknowledge or make a decision about before moving forward. This is a common error message component for letting someone know about a change or action they took or need to take, but it’s often more disruptive than it needs to be. Use alert dialogs consciously; even if the message is important, they are still highly interruptive to an experience. Alert dialogs are associated with task-level (rather than system-level) errors. Use these for consequential, complicated, timely, actionable errors that block a user from moving forward. Some examples of scenarios where an alert dialog may be appropriate are: A message telling the user that a file can’t be shared because of an invalid email address A user can’t sign on because their account has been compromised A CSV with a list of email addresses for a bulk upload couldn’t be processed because it was formatted incorrectly Image: Key example of a red, negative semantic variant alert banner, showing a suitable error message. Text, connection interrupted. (source: https://preview.spectrum.adobe.com/content/media_1c158cc8845c98f858dead28f9e7c7b93dece71e8.png?width=750&format=png&optimize=medium)"
88
- },
89
- {
90
- "type": "guideline",
91
- "content": "Alert banner.\n\nConsequence: Low Complication: Low Action: High Alert banners show system-level, pressing, and high-signal messages. They’re meant to be noticed and prompt users to take an action. The red (negative) and grey (neutral) semantic variants are both associated with error messages. Use an alert banner for a message that isn’t directly related to an action that a user would have just taken, but is still high-signal and needs attention. It's also ideal for communicating connectivity errors. Image: Two key examples of using help text for error messaging with in-line validation. First example, a required text field in an error state, bordered in red and including a red error icon. Text field label, Credit card number. Error message in red text, Enter your credit card number. Second example, a required text field in an error state, bordered in red and including a red error icon. Text field label, Password. Error message in red text, Create a password with at least 8 characters. (source: https://preview.spectrum.adobe.com/content/media_12da76201fe9cdd163460fb5a91930a95a92f894d.png?width=750&format=png&optimize=medium)"
92
- },
93
- {
94
- "type": "guideline",
95
- "content": "Help text.\n\nConsequence: Low Complication: Low Action: High Help text provides an in-line error message that’s associated with an input, giving more context and guidance to help a user successfully complete an interaction. These kinds of error messages communicate what to input or select, or sometimes how to do it. The message can include information such as hints for what kind of information needs to be input or selected to move forward in a flow, or share specific formatting examples or requirements. Multiple instances of help text showing in-line validation errors can be aggregated into an in-line alert. View the guidelines for writing error messages using help text. Image: Key example of a red, negative semantic variant in-line alert showing a suitable error message. Title, Unable to process payment. Description, There was an error processing your payment. Please check that your credit card information is correct, then try again. (source: https://preview.spectrum.adobe.com/content/media_12788d4422ab1d9b36456574abf80117bd54c208f.png?width=750&format=png&optimize=medium)"
96
- },
97
- {
98
- "type": "guideline",
99
- "content": "In-line alert.\n\nConsequence: Any Complication: High Action: High In-line alerts display a non-modal message associated with objects in a view. These are often used in form validation, providing a place to aggregate feedback related to multiple fields into a single message for higher visibility. The red (negative) and orange (notice) semantic variants are for use with error messages. Use in-line alerts to combine multiple input errors into a single error message, or for cases when a dialog would be too interruptive to an experience but an error message still needs to be shown in order for a user to proceed with a task. Image: Key example of a red, negative semantic variant toast, showing a suitable error message. Text, Unable to delete file. (source: https://preview.spectrum.adobe.com/content/media_12a8a23095f1c806cf0a461becbc1a211ad6cd451.png?width=750&format=png&optimize=medium)"
100
- },
101
- {
102
- "type": "guideline",
103
- "content": "Toast.\n\nConsequence: Low Complication: Low Action: Low Toasts display brief, temporary notifications. They’re noticeable but don’t disrupt the user experience, and they don’t require an action to be taken in response to the message. The red (negative) semantic variant is associated with an error message. Use toasts to communicate error messages that are contextual or triggered by a user action (e.g., moving an item, taking an action on something in a canvas). Whenever possible, include an in-line action on a toast with an error message so that a user can readily address it."
104
- }
105
- ],
106
- "sourceUrl": "https://preview.spectrum.adobe.com/content/writing-for-errors",
107
- "lastUpdated": "2026-09-04",
108
- "status": "published",
109
- "tags": [
110
- "error messages",
111
- "error prevention",
112
- "inline validation",
113
- "toast",
114
- "alert dialog",
115
- "disabled states",
116
- "anatomy of an error message",
117
- "underlying cause",
118
- "automatic input correction"
119
- ]
120
- }
@@ -1,119 +0,0 @@
1
- {
2
- "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/v0/guideline.schema.json",
3
- "$id": "https://opensource.adobe.com/spectrum-design-data/guidelines/writing-for-onboarding.json",
4
- "name": "writing-for-onboarding",
5
- "title": "Writing for onboarding",
6
- "category": "designing",
7
- "documentBlocks": [
8
- { "type": "purpose", "content": "Writing for onboarding" },
9
- {
10
- "type": "guideline",
11
- "content": "Onboarding is often used interchangeably with “new user experience,” but this term also refers to the process of introducing information for more experienced users about new products, new features, or new elements. Ongoing user education also falls under onboarding, since every time you teach a person something, you’re onboarding them onto that new concept. A product’s overall onboarding strategy becomes increasingly important over time and is the biggest factor in sustaining its growth and retention. When a product first launches, early adopters are more likely to engage with it and are invested in figuring out how it works. But later in that product’s life when other user groups with different motivations are trying it out, onboarding is a crucial way to maintain interest and ensure continued usage. Ultimately, onboarding is how a promised user experience bridges what is actually delivered. Creating valuable onboarding experiences within a product connects to even earlier communication moments about that product, such as marketing material. Writing for these experiences involves thinking systematically across messaging channels, writing content that accounts for levels of experience and goals, and ensuring that the information complexity of the message fits an appropriate design component. The result shows consistent value through \"a-ha\" moments that retain user interest."
12
- },
13
- {
14
- "type": "guideline",
15
- "content": "First Mile is a gateway to in-app learning. It encompasses the in-app Home screen and the Learn tab in Creative Cloud apps, and its components extend deeper into those products to more educational content. These screens are intended to be dynamic as people interact with a product more and more. According to Adobe research, onboarding experiences address the following user goal hierarchy (adapted from Experience Design: Technology for All the Right Reasons by Marc Hassenzahl): Goal User question Characteristics Motor How should I do something? Feature names, how features work, where features are Be Why should I do something in this app? User-defined; reflecting elements of authorship, creativity, and specificity Do What should I do here? Why to use a skill and/or a certain tool at a certain time, in what meaningful order; if there are any alternatives For first-time users, it’s important to prioritize experiences that can give people a basic understanding of what’s possible in a product and how the product is laid out (motor goals). It’s also essential to consider teaching foundational concepts early on, and what people need to know before they start using an app. For example, you wouldn’t want to direct people into tutorials that are talking about Photoshop layers without first establishing what a layer is and how it works. Learn is a framework for the planning, creation, and improvement of educational content. Tutorials from Learn can show up on any Creative Cloud surface, and these help people complete their self-defined goals through the mastery of tasks, skills, and features. Here's how this breaks down more specifically: A goal is a user-generated, in-app outcome. It results from a real-world user context that can consist of any combination of tasks, skills, and features. A task is an Adobe-generated, in-app outcome that consists of one or more skills in a particular order. A skill is one or more ways of using a feature, with each tutorial or tooltip focusing on a single way. A feature is contextual information on using one in-app tool or product feature. Other Adobe surfaces that use onboarding frameworks include web hubs like Creative Cloud Home, web-based tools like Spark, and Creative Cloud services like Stock and storage. Visit the Learn and First Mile team Wiki for more (in-progress) guidelines on writing, design, and research for onboarding experiences in Creative Cloud apps."
16
- },
17
- {
18
- "type": "guideline",
19
- "content": "Reflect what your users already know.\n\nAre your target users beginners? Advanced? What do they want to know? How much information can they handle at once?"
20
- },
21
- {
22
- "type": "guideline",
23
- "content": "Remember why your users are there.\n\nKeep onboarding top-of-mind as part of a user’s broader goals and experience. For example, the journey for someone using Photoshop to design is different than someone using Photoshop for photography."
24
- },
25
- {
26
- "type": "guideline",
27
- "content": "Sequence topics.\n\nChoose a logical order for the steps that will help a user master the subject. This makes it easier to trim or divide educational content when needed. Also, be sure to mention any prerequisites that people may need to know before they begin."
28
- },
29
- {
30
- "type": "guideline",
31
- "content": "Focus each tutorial on one tool or technique.\n\nDon’t try to combine too many skills or concepts into a single tutorial. Each tutorial should ideally focus on only one tool or technique. If there are multiple ways to accomplish a task, choose one way to highlight per tutorial."
32
- },
33
- {
34
- "type": "guideline",
35
- "content": "Don’t overload your users with steps.\n\nThe longer a tutorial is, the more likely a user will begin to disengage. Try to keep tutorials and product tours under 10 steps. If more steps are needed, consider splitting the subject matter into separate units."
36
- },
37
- {
38
- "type": "guideline",
39
- "content": "Set accurate expectations.\n\nUse the first step of a tutorial to clarify what a person will leave knowing how to do, how many steps it will take, how much time it usually takes, the actual output, and so on."
40
- },
41
- {
42
- "type": "guideline",
43
- "content": "Use lightweight language for learning.\n\nPeople are unlikely to engage with educational topics if they sound stuffy or unappealing. Adobe research has shown that people tend to think of educational content as either only geared toward beginners and/or too “heavy,” requiring a lot of brainpower and investment. Writing in a lightweight way to talk about the activity of learning can help bridge these two and create a more inclusive experience for different levels of expertise with a product. Words and phrases like the following are too heavy: learning, course, class, training, lesson, teaching, instruction, education, homework, exercise Words and phrases like these still accurately portray the content and its intent, but are lighter in tone: tutorial, try it out, explore, practice, do {something}, guided, guidance, session, video, developing skills, going deeper, show how, walk through, grow/develop skills Image: Key example of how to use lightweight language for learning. Title, Try editing your clips. Description, This session shows you how to start editing videos. Button with label, Take in-app tutorial. (source: https://preview.spectrum.adobe.com/content/media_14e452fcbbbd3563b9644c922d19cb2bcbdfcfab1.png?width=750&format=png&optimize=medium)Frame educational content in a lightweight way using language like “try” and “shows you how.”Image: Key example showing how heavy or complex language is not helpful for learning. Title, Learn After Effects with our free course. Description, Take After Effects step by step in our series of short videos. Button with label, Open in browser. (source: https://preview.spectrum.adobe.com/content/media_19c2b3db3fa228d6a97b5c68d1d627e2ff9beeea3.png?width=750&format=png&optimize=medium)Avoid using heavy words such as “course.”"
44
- },
45
- {
46
- "type": "guideline",
47
- "content": "Use jargon with caution.\n\n“Jargon” is words or expressions that specific technical or professional groups use that would be difficult for others to understand. When introducing new words and expressions, it’s important to do so in an inclusive way that makes people feel empowered, not lost. Jargon can be used in a product, but it must be taught judiciously and carefully. Avoid jargon that doesn’t pertain to a product or its industry Jargon is acceptable so long as it’s relevant. For example, a brand-new Photoshop user would likely want to learn jargon common in the photography industry in addition to the names of tools and parts of the app. Don't assume that they already know these things. Avoid buzzwords that a common reader wouldn’t understand, and don’t create new jargon. Use one piece of jargon per sentence It’s sometimes necessary to use jargon to communicate a technical detail. A good way to use technical terms while avoiding a heavy tone is to only use one of those terms per sentence. Explain, then name When you do need to use jargon — for example, “crop tool” (the name of a tool in Photoshop), “aperture” (a photography term), or “Learn” (the name for Adobe’s collection of educational videos and in-app tutorials) — define upon first reference, then give the name. Image: Key example of how to avoid using jargon. Title, Find new ways to hone your skills. Description, Our collection of videos and in-app tutorials, called Learn, is for all experience levels. (source: https://preview.spectrum.adobe.com/content/media_1febbb522d00c09149d6f65af66cf365eb60431fa.png?width=750&format=png&optimize=medium)Define jargon like “Learn,” then explain what it’s called.Image: Key example of how speaking abstractly isn't helpful for encouraging people to learn. Title, Let's develop your skills. Start learning today. Description, Find tutorials for all our apps, track your progress, and revisit completed courses. (source: https://preview.spectrum.adobe.com/content/media_1b128ccf024124644fb0546188ecbe853364747ea.png?width=750&format=png&optimize=medium)Don’t speak abstractly about jargon, especially without explaining why it’s important."
48
- },
49
- {
50
- "type": "guideline",
51
- "content": "Avoid directly referring to the interface.\n\nUnless it’s absolutely necessary for user comprehension, don’t directly refer to interface elements. Directly referencing the UI is not accessible, and doing so also creates issues for scalability and future-proofing in a product. After all, the UI doesn’t look and act the same to all people. For example, Adobe uses the word “Learn” by itself to refer to a concept, content, and location — not “Learn tab” or “Learn section.” We ensure that our translation team has enough context about what the associated UI element is with the string so that it can be properly translated. We avoid saying things such as: tab, panel, menu, page, section (e.g., Learn tab, Learn panel, Learn menu, Learn page, Learn section) Instead, we use “Learn” by itself as a standalone proper noun: Go to Learn, find it in Learn, Learn has more tutorials Image: Key example of how to avoid directly referring to the interface. Title, Want more tutorials? Description, Find our collection of free tutorials in Learn. Button with label, Go to Learn. (source: https://preview.spectrum.adobe.com/content/media_1d03307c27f2350ded601bab9eab99153ce7e8ac3.png?width=750&format=png&optimize=medium)Use as a standalone proper noun to refer to a UI element, place, and/or collection of content.Image: Key example of directly referring to the interface, which is not accessible. Title, Go to more tutorials. Description, Find our collection of free tutorials in the Learn tab. Button with label, Open Learn tab. (source: https://preview.spectrum.adobe.com/content/media_13eadd7bfe3b5abc07a11de5f89c70505fc3f51ba.png?width=750&format=png&optimize=medium)Don’t refer to UI elements, such as “tab.”"
52
- },
53
- {
54
- "type": "guideline",
55
- "content": "Frame educational content as personalized and specific.\n\nEven if it may not be possible to personalize onboarding, a user still needs to feel like they're being shown content that matches their interests and skills — not a random assortment of topics. Try to feature specific material that would be directly relevant to someone, rather than describing everything available in a collection of educational content. Avoid catch-all words and phrases such as: collection, complete set, playlist, all tutorials Imply personalization with additive language like: this tutorial and others, this and many more videos, this and other subjects, advanced, beginner Image: Key example of how to frame educational content as personalized and specific. Title, Today's practice: titles and graphics. Description, Try this hands-on tutorial and many more in Learn. Button with label, Take in-app tutorial. (source: https://preview.spectrum.adobe.com/content/media_10d4ecab26690ddfeef9bf8460c6e5e772389dcca.png?width=750&format=png&optimize=medium)Highlight relevant content or a unique angle before mentioning there’s more available.Image: Key example of how framing educational content as non-personal and broad is not ideal. Title, Go to more tutorials. Description, Find our collection of free tutorials on the web. Button with label, Open in browser. (source: https://preview.spectrum.adobe.com/content/media_1810cab1ad5fb2495ffa8627c6ec6b8c153ae8ddf.png?width=750&format=png&optimize=medium)Don’t speak generically about collections of assorted content."
56
- },
57
- {
58
- "type": "guideline",
59
- "content": "Set positive expectations.\n\nUsing a button label of “Open in browser” sets the expectation that linked content will not be shown in the same view, in-app. But, research has shown that going to a browser window from an app — as well as that button label phrasing — is demotivating and reduces engagement. When it’s necessary to send someone away from an app, tell them as much without explicitly talking about the medium of where the content will appear. When someone completes a tour or tutorial, prioritize the next actions that will take them back to the home view to try more tutorials on another subject, or to the next one in the series. Avoid explicit web- or browser-based language such as: open in browser, view on the web, view online Instead, try subtler approaches: go to, play video, check it out, find out more, back to Learn, back to in-app tutorials, all tutorials on {subject} Image: Key example of how to use language to set positive expectations. Title, Looking for more on color? Description, View all color tutorials to keep developing your skills. Button with label, Go to color tutorials. (source: https://preview.spectrum.adobe.com/content/media_1d8939376ce3abc75c2394e2f7aa59eef5d7965e6.png?width=750&format=png&optimize=medium)Use “go to” to imply that a user will be leaving their current experience.Image: Key example of language that sets ambiguous or unpredictable expectations. Title, Learn Photoshop with our free course. Description, Take Photoshop step by step in our series of short videos. Button with label, Open in browser. (source: https://preview.spectrum.adobe.com/content/media_19138757aa0443e0f482229b92d02c38621d4057b.png?width=750&format=png&optimize=medium)Don’t use “open in browser” as a call-to-action."
60
- },
61
- {
62
- "type": "guideline",
63
- "content": "Prioritize in-app learning.\n\nIf possible, avoid highlighting any experiences in a “home” screen that would take anyone out of the product. Building in-app experiences increases the likelihood that someone will find value and therefore return again and again. Use words that call out an in-app experience such as: in-app, inside the app, in-app tutorial, alongside your work in the app, right here, without leaving the app Image: Key example of how to use language to prioritize in-app learning. Title, Start with the shape tools. Description, This session gives instructions alongside your work in the app. Button with label, Take in-app tutorial. (source: https://preview.spectrum.adobe.com/content/media_126bf69477d555f0df6638883ba768dab4c1ee4d3.png?width=750&format=png&optimize=medium)Emphasize what someone can do without leaving their current experience.Image: Key example of language that doesn't talk about learning something in-app. Title, First up: Using the shape tools. Description, This speedy series teaches you how to use Illustrator. Button with label, Make an icon. (source: https://preview.spectrum.adobe.com/content/media_131da33b9238f97638d8f18f3c20f572698153049.png?width=750&format=png&optimize=medium)Don’t hide the fact that a tutorial is in-app."
64
- },
65
- {
66
- "type": "guideline",
67
- "content": "Banner.\n\nA banner shows a top or highly-ranked suggestion for someone. It includes bounded, actionable content that can be a hybrid of instructional and marketing language. A banner explains why someone should explore the suggested content and what they should expect from it. Use banners to drive people to experiences that correlate to either confirmed or hypothesized “a-ha” moments, or to just generally inform or educate about an onboarding experience. Image: Two examples of banners. Example 1, an illustration of a video player, in editing mode on a video frame of a person on a skateboard, on a purple background with an abstract design. Banner title, Try editing your clips. Description, This session shows you how to start editing videos. Button with label, Take in-app tutorial. Example 2, an illustration of a woman with dark hair wearing a red dress and multicolor flowers on her head, on a yellow background with abstract brushstrokes. Banner title, Introducing Adobe Fresco. Description, The world's largest brush collection that delivers a natural painting and drawing experience. Button with label, Learn more. (source: https://preview.spectrum.adobe.com/content/media_1ee4ef6654684998cf68510cfa766b29d180d4b11.png?width=750&format=png&optimize=medium)"
68
- },
69
- {
70
- "type": "guideline",
71
- "content": "Card.\n\nA card directs people to content experiences which may be related to the current view. It presents onboarding content that is contextual and useful, but may not be as crucial to provoking an “a-ha” moment as what may be shown in a banner. Use cards to promote other beneficial experiences that are lower in hierarchy than banner destinations, or to just generally inform or educate about an onboarding experience. Image: Example of a card for Adobe Illustrator. An illustration of an astronaut in bright colors, with the Illustrator logo. Title, Get started with Illustrator. Description, Learn the basic tools and techniques for using Adobe Illustrator. 10 tutorials. 170 minutes. (source: https://preview.spectrum.adobe.com/content/media_1ccc04d745480caeddfcda703860a84cd5912d5e6.png?width=750&format=png&optimize=medium)Image: Example of a card for a tutorial. An illustration of brightly colored plants and grass. Meta text, How to use. Title, Brush tool. Status, tutorial completed. (source: https://preview.spectrum.adobe.com/content/media_1240990ffe2a4a95007ffb94567ef42b609038bd1.png?width=750&format=png&optimize=medium)"
72
- },
73
- {
74
- "type": "guideline",
75
- "content": "Coach marks are temporary messages that engage users to interact with the UI. They can be chained into a sequence to form a tour or tutorial. Use coach marks to educate about new or unfamiliar experiences that may be unique to the interface, or to guide users to other places in a product. Image: Example of a coach mark with an indicator. Title, Everything's in one spot. Coach mark 1 of 4. Description, In Files, you can view and organize your cloud documents and synced files. Button with label, Next. (source: https://preview.spectrum.adobe.com/content/media_1c909b4fb8042f8612968cdddaecb3686c4258b50.png?width=750&format=png&optimize=medium)Image: Example of a coach mark with an illustration showing an interaction. Title, Pan camera. Coach mark 4 of 8. Description, Switch to the Hand tool then click and drag in the canvas to move your camera up, down, left, and right. Two buttons, Skip tour and Next. (source: https://preview.spectrum.adobe.com/content/media_14c6233dbeeffdf83798ddfd047b4fe4aee5ff002.png?width=750&format=png&optimize=medium)"
76
- },
77
- {
78
- "type": "guideline",
79
- "content": "Empty state.\n\nAn empty state describes what people can do to add things to a view. Someone would see an empty state when they’ve either never added anything to this view, or if they’ve deleted all of what used to be there. Use an empty state to remind users how to add objects or data, and to reinforce or echo one of the more detailed onboarding mechanisms listed here. Image: Key example of an empty state. An illustration of the Adobe Creative Cloud logo connected to icons of tasks and objects such as editing, writing, photos, shapes, and videos. Title, Work smarter with Creative Cloud Libraries. Description, Share, reuse, and manage everything you need for a project. Group together images, colors, fonts, and more. Link, title Learn more about libraries. Two buttons, labels Create new library and Follow public libraries. (source: https://preview.spectrum.adobe.com/content/media_13f615ceecd788e26ed9958a8ff393b69c1bbc8b7.png?width=750&format=png&optimize=medium)Image: Key example of an empty state. An illustration showing the action of dragging and dropping photos, documents, and files. Title, Drag and drop your file. Description, Select a file from your computer or search Adobe stock. In-line links in the description, Select and file and search Adobe Stock. (source: https://preview.spectrum.adobe.com/content/media_161a649d3549d3dec6733493ff40516a6932acc9a.png?width=750&format=png&optimize=medium)"
80
- },
81
- {
82
- "type": "guideline",
83
- "content": "Modal.\n\nThere are two different kinds of modals. An informational modal is a popover window similar to a dialog that contains brief copy and an optional image or two. A rich modal is a popover window that contains a more in-depth content experience, such as an image carousel, video, or GIF. Use an informational model to let people know about a positive, minor change, such as a feature redesign. Use a rich modal to consolidate suggested content into one spot, to help people get to know a subject more deeply, or to show someone why they may want to try any minor benefits that may feel optional to the basic experience or workflow. Image: Example of a modal showing new features in Photoshop CC. Title, What’s new. 6 topics, Overview, Content-aware fill, Symmetry mode, Frame tool, Multiple undo mode, Live blending mode. Call-to-action button, label Next. Selected topic, Content-aware fill. Description, Heal images and adapt content more effectively by changing the source, rotation, scale, and more with the new content-aware fill workspace. (source: https://preview.spectrum.adobe.com/content/media_194c7c6c3c9d799b7ea27b68a8098e76e79a810a6.png?width=750&format=png&optimize=medium)"
84
- },
85
- {
86
- "type": "guideline",
87
- "content": "Tooltip.\n\nA tooltip gives contextual help or information about a specific component on hover or focus. These can be text-only or rich content (accompanied by an animated GIF, related information, and/or calls-to-action to learn more). Use tooltips to encourage discovery and learning through UI interaction. They can also be used as lightweight catch-alls for information when no other onboarding technique may be appropriate for the message. Image: Example of a tooltip. Four icons, a file folder with a plus sign, a cloud with an arrow pointing to it, a bulleted list, and four squares. Tooltip indicating the file folder with a plus sign icon, label Create new folder. (source: https://preview.spectrum.adobe.com/content/media_173a0f92ea8245369d997f8043075ba85dbd3c4b4.png?width=750&format=png&optimize=medium)Image: Example of a tooltip. Four icons, a file folder with a plus sign, a cloud with an arrow pointing to it, a bulleted list, and four squares. Tooltip indicating the bulleted list icon, label List view. (source: https://preview.spectrum.adobe.com/content/media_1e7c5f4021be79cdbed3a929581696d3d70672597.png?width=750&format=png&optimize=medium)"
88
- },
89
- {
90
- "type": "guideline",
91
- "content": "Tour.\n\nA tour is a type of tutorial that introduces the UI. It can take the form of a series of coach marks or a video. Tours differ from other tutorials in that they are specifically used for orienting a user to the interface and helping them understand a basic workflow. Use a tour to show where things are in an experience. Use another onboarding method to show how to do something. Image: Example of a tour showing the parts of a menu and how to navigate it in an app. 3 sections, Main section, 2 items, Home, Apps. 2nd section, label Storage, 2 items, Document Cloud, Creative Cloud. 3rd section, label Shared, 3 items, Send and Track, Reviews, Signatures. Coach mark with indicator showing the Apps menu item. Title, Apps. Step 2 of 6 in tour. Description, Browse the Apps page to download or learn more about the apps in your Creative Cloud plan. Two buttons, labels Skip tour, Next. (source: https://preview.spectrum.adobe.com/content/media_163a43661be0d772b8bfb17020f886bfee5817fc4.png?width=750&format=png&optimize=medium)"
92
- },
93
- {
94
- "type": "guideline",
95
- "content": "Triggered element.\n\nA triggered element is content that surfaces in response to an action. This usually takes the form of a toast or other dismissible pop-up, but it needs to explain where the content can be found again once dismissed. Use triggered elements to respond to repeated actions or activity such as frequent (or infrequent) usage of a feature. Image: Example of a neutral toast acting as a triggered element. Text, Saved to Tips Guide. Actions, View, close. (source: https://preview.spectrum.adobe.com/content/media_1035962ec619cfef5266a650474eab047506fa73c.png?width=750&format=png&optimize=medium)Image: Example of a confirmation toast acting as a triggered element. Text, Copied to clipboard. Action, close. (source: https://preview.spectrum.adobe.com/content/media_11ef1ba936efc26bc51e9a30a465f1603c702eb96.png?width=750&format=png&optimize=medium)"
96
- },
97
- {
98
- "type": "guideline",
99
- "content": "Tutorial.\n\nA tutorial provides practical information about a specific subject, tool, or technique. It builds on other onboarding experiences through written or video instructions. Use tutorials to help people reach a specific outcome after they’ve become familiar with where things are in a product. Image: Example of a tutorial for Adobe Photoshop. Title, Get started with Photoshop. 10 chapters. Get to know Photoshop, 21 minutes. Change the image size, 17 minutes. Work with layers, 20 minutes. Adjust the image quality, 16 minutes. Make selections, 14 minutes. Retouch images, 10 minutes. Use color, 10 minutes. Add text and shapes, 17 minutes. Combine images, 15 minutes. Apply filters, 7 minutes. Selected chapter, Get to know Photoshop. First step, an image of a bright red ladybug sitting on a flower. Title, 1. Open images. Description, Open images and create new images. (source: https://preview.spectrum.adobe.com/content/media_1f6ae2a6a782798a07793b62bef1d4bf96ec37f7a.png?width=750&format=png&optimize=medium)"
100
- },
101
- {
102
- "type": "guideline",
103
- "content": "Video demo.\n\nA video demo shows a person completing a task. Use video demos to inspire people by portraying the experience of a workflow or product. Image: Example of a video demo for Lightroom mobile. Video player with Play button on a frame of a person in a forest touching a plant. Information about the demo, Category, Photography. Other platforms, Lighroom desktop. Information, Languages: Deutsch and 8 more. Title, Overview and key features. Description, Lightroom on mobile lets you craft and share pro-quality images from your smartphone or tablet using simple yet powerful tools built with Adobe Photoshop technology. Perfect your shots in a tap with more than 40 presets. Experiment with color, adjust clarity, and add vignettes. You can even connect to other Adobe apps like Photoshop Fix to retouch and refine your work. Link, Learn more. (source: https://preview.spectrum.adobe.com/content/media_1063626fabfede1034ea750e61f5083249f7f902e.png?width=750&format=png&optimize=medium)"
104
- }
105
- ],
106
- "sourceUrl": "https://preview.spectrum.adobe.com/content/writing-for-onboarding",
107
- "lastUpdated": "2026-09-04",
108
- "status": "published",
109
- "tags": [
110
- "onboarding",
111
- "new user experience",
112
- "in-app learning",
113
- "first mile",
114
- "Adobe Creative Cloud",
115
- "Learn framework",
116
- "user goals",
117
- "tutorials"
118
- ]
119
- }
@@ -1,54 +0,0 @@
1
- {
2
- "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/v0/guideline.schema.json",
3
- "$id": "https://opensource.adobe.com/spectrum-design-data/guidelines/writing-for-readability.json",
4
- "name": "writing-for-readability",
5
- "title": "Writing for readability",
6
- "category": "designing",
7
- "documentBlocks": [
8
- { "type": "purpose", "content": "Writing for readability" },
9
- {
10
- "type": "guideline",
11
- "content": "Choose words consciously.\n\nMost common nouns and actions have synonyms that can add unnecessary complexity. Use words that would be at a 6th-grade reading level. Image: An example showing the correct usage. Help. (source: https://preview.spectrum.adobe.com/content/language-and-inclusivity/media_1844b8b156b2f87131aae2d756bceb3ffe1cf0837.png?width=750&format=png&optimize=medium)Image: An example showing the incorrect usage. Assist. (source: https://preview.spectrum.adobe.com/content/language-and-inclusivity/media_16067fca3f35f7faad8d77ba7015cfde586c2a7fc.png?width=750&format=png&optimize=medium) Preferred Avoid BuyPurchaseHelpAssistAboutApproximatelyLikeSuch as"
12
- },
13
- {
14
- "type": "guideline",
15
- "content": "Avoid internal jargon without explaining what it means.\n\nPut yourself in the mindset of someone who's new to our products, and new to the industry where our products are used. Do they understand the jargon we use every day? Are we giving enough context for them to understand? Image: An example showing the correct usage. Please accept the Terms of Service before continuing. (source: https://preview.spectrum.adobe.com/content/language-and-inclusivity/media_1af0b6d0d56faae5d7362957f0a00ef3c496364fe.png?width=750&format=png&optimize=medium)Image: An example showing the incorrect usage. There was a RAISE without a handler. (source: https://preview.spectrum.adobe.com/content/language-and-inclusivity/media_184c1f97b56242ff6177372a5393d55756084dc77.png?width=750&format=png&optimize=medium) Preferred Avoid Creative Cloud FilesCC FilesXD cloud documents, a new way to collaborate on any deviceIntroducing XD cloud docs!Please accept the Terms of Service before continuing.There was a RAISE without a handler."
16
- },
17
- {
18
- "type": "guideline",
19
- "content": "Avoid colloquial language and slang.\n\nSlang and colloquialisms don’t make sense to all generations. Avoid ageism by using plain, clear language. Image: An example showing the correct usage. Learn more. (source: https://preview.spectrum.adobe.com/content/language-and-inclusivity/media_11fde3bc1f3c1c5efff6dc951b5f248247ccd60de.png?width=750&format=png&optimize=medium)Image: An example showing the incorrect usage. Get the deetz. (source: https://preview.spectrum.adobe.com/content/language-and-inclusivity/media_1d554b7ba72764b3114ab6b0e3007bf466ae485ca.png?width=750&format=png&optimize=medium) Preferred Avoid Select any that applyChoose whatever blows your hair backAgree to terms and conditionsIt be like that sometimesLearn moreGet the deetz"
20
- },
21
- {
22
- "type": "guideline",
23
- "content": "Layout.\n\nLeft-align running text (this will be mirrored along with the UI for right-to-left languages). Full justification of text creates text rivers, or alignment of spaces that creates running gaps through the text. This makes text especially difficult for readers with dyslexia. Avoid switching alignments in a single view. Have line lengths at a maximum of 50-75 characters. Use one column per page."
24
- },
25
- {
26
- "type": "guideline",
27
- "content": "Grammar and mechanics.\n\nUse sentence case. Sentence case is easier to read and is more natural and approachable. Never use all caps except for an acronym. Use camel case for hashtags to help screen readers parse the words correctly (e.g., “#CamelCase”)."
28
- },
29
- {
30
- "type": "guideline",
31
- "content": "Interactions.\n\nAvoid “clear” and ”reset” actions on forms. Someone could select these by accident and erase a lot of painstaking work. Let people save forms so that they can leave and come back. Provide keywords before or inside links."
32
- },
33
- {
34
- "type": "guideline",
35
- "content": "Localization.\n\nExplain branded or technical terms before using them. When using an uncommon abbreviation or acronym, write out the full term on first use and follow it with the shortened version in parentheses. You can also use <abbr> or <acronym> in HTML. Avoid using homonyms (e.g., “bow before the king” vs. “put a bow on it”), or make their meaning clear via context."
36
- }
37
- ],
38
- "sourceUrl": "https://preview.spectrum.adobe.com/content/language-and-inclusivity/writing-for-readability",
39
- "lastUpdated": "2026-09-04",
40
- "status": "published",
41
- "tags": [
42
- "writing",
43
- "readability",
44
- "plain language",
45
- "localization",
46
- "internationalization",
47
- "UX writing",
48
- "jargon",
49
- "passive voice",
50
- "active voice",
51
- "dyslexia accessibility",
52
- "Flesch-Kincaid"
53
- ]
54
- }
@@ -1,70 +0,0 @@
1
- {
2
- "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/v0/guideline.schema.json",
3
- "$id": "https://opensource.adobe.com/spectrum-design-data/guidelines/writing-with-visuals.json",
4
- "name": "writing-with-visuals",
5
- "title": "Writing with visuals",
6
- "category": "designing",
7
- "documentBlocks": [
8
- { "type": "purpose", "content": "Writing with visuals" },
9
- {
10
- "type": "guideline",
11
- "content": "Try different ways of organizing information.\n\nOrganize thoughts chronologically, not spatially. If interfaces are organized around time instead of position (e.g., “before” and “after” instead of “above” and “below”), it alleviates a major pain point for people with visual impairments who rely on screen readers (audio or braille devices) or magnifiers (for example, an interface may be too zoomed-in for it to be apparent that person is in a modal). Doing this also avoids confusion for people with learning disabilities that make it hard to understand directional language. Create content that can be presented in different ways without losing information or structure, sometimes called “modular content.” Perhaps the layout can be simplified, or the order of content can be switched around. Preferred Avoid This article describes linking in more detail.Click here to learn more about linking. Learn how to crop images Take this hands-on tutorial now. [ Start ] This is modular content; all the content pieces could stand alone or be rearranged. Ready to learn? Or are you ready to dig in? How about both? [ Start tutorial / Go back ] This is more traditional content; the content pieces depend on each other in a certain order to make sense. Update your information (step 1 of 3)Confirm your information"
12
- },
13
- {
14
- "type": "guideline",
15
- "content": "Avoid directional language.\n\nOrganize interfaces around time (chronologically) instead of position (spatially) to ensure that you don’t use directional language to describe how to accomplish a task. Preferred Avoid FirstAboveNextBelowIn the menu barOn the leftFinallyAt the bottom"
16
- },
17
- {
18
- "type": "guideline",
19
- "content": "Prevent errors before correcting them.\n\nHelp people avoid and correct mistakes by writing in a predictable and consistent way, and make screens look and act the way people expect. Consistent navigation and identification of components across products and surfaces will aid in this. Especially in forms, label and instruct sufficiently. If an error occurs, describe the problem in text without relying on icons or colors alone."
20
- },
21
- {
22
- "type": "guideline",
23
- "content": "Avoid naming things.\n\nEvery new name is a new concept that a person must learn, which increases cognitive load. But when naming is unavoidable, be consistent. Name actions across experiences and products the same, or at least predictably. Describe and define the name before mentioning it in UI content."
24
- },
25
- {
26
- "type": "guideline",
27
- "content": "Describe what’s happening.\n\nProvide titles to describe a situation, such as in coach marks or a stepped flow, and keep them consistent within the same situation. This helps all people navigate, find content, and determine where they are. If visual content is time-based media, like a tutorial video, text provides descriptive identification and ideally offers an alternative to the visual, such as a transcript, closed captioning, or a step-by-step written guide."
28
- },
29
- {
30
- "type": "guideline",
31
- "content": "Write about actions and their effects.\n\nTake a step back to think about the interaction you’re writing about. Then, write about what controls and buttons do, not what they look like, in the interaction. Control type (e.g., “button” or “slider”) is coded separately, so screen readers will already pick up what it’s called. Give each a name that describes its purpose. Focus your attention on results and UI words, not how people should physically interact with a control. Each person’s accessibility tech will describe the correct interaction for them. Preferred Avoid Enter emailType email addressSaveThe \"Save\" buttonZoom inPinch the trackpadCancelCloseOn/offSwitch/toggle, activateMenuSide drawerEditThe pencil iconSelect, go toClick, tap"
32
- },
33
- {
34
- "type": "guideline",
35
- "content": "Don’t rely only on color or icons.\n\nAdding words to an interface is better than relying on color or icons as the only way of conveying information, indicating an action, prompting a response, or distinguishing a visual element. If you use links in text, make the purpose of each link clear from the link text alone. Screen readers usually inform the reader if a word is a hyperlink, so the words “click here” or “link” get in the way. Additionally, screen readers can’t differentiate between the many times “click here” can appear in one view."
36
- },
37
- {
38
- "type": "guideline",
39
- "content": "Don’t rely on visuals alone to communicate.\n\nThe visual metaphors of emoji and icons can have a wide variety of interpretations, especially across cultures. Describe the interface in terms of actions and tasks, not component color or visual design. Preferred Avoid Secure site🔒Saved to the cloud☁️The number you entered isn’t in our system.❌The Go buttonThe green button"
40
- },
41
- {
42
- "type": "guideline",
43
- "content": "Provide alt text.\n\nAlt text — short strings that describe the function of interface elements and describe images — improves understanding and clarity for everybody using a product, not only people using assistive technology. For example, if you were to hover your mouse over the “search” magnifying glass icon on Adobe.com, it would reveal the alt text “Search Adobe.com.” This provides more context about the available action. Alt text for any non-text content allows it to be changed into other forms that people need, such as large print, braille, speech, symbols, or simpler language. It makes visual cues, like icons and images, legible to people with low vision using assisted services (e.g., Voiceover on iOS, Talkback on Android ). Talk with engineers about providing alt text, hints, and traits for components. For example, an icon-only button that doesn’t have a text label needs to still communicate its purpose using text. Spectrum’s documentation has detailed guidance about building accessible interfaces, and the W3C also has a list of resources and tutorials about alt text that offer a more comprehensive introduction. For alt text for images, view our writing guide. Preferred Avoid alt=”Chicago Bulls player Michael Jordan making his first of 38 points against the Utah Jazz on their home court, despite widespread speculation that he had the flu.”alt=”Basketball player making a basket at an arena”alt=”Animation showing how to use the touch shortcut. Take the tutorial for more info.”alt=”Animation showing the touch shortcut used with the shape tool to create a shape with a constrained aspect ratio”"
44
- },
45
- {
46
- "type": "guideline",
47
- "content": "Photographs and stock images.\n\nIn general, just speak to what something is. One way to approach this is to imagine that you’re describing the image to someone over the phone. Tibetan monk wearing a red robe walking across a wooden bridge covered with multicolor prayer flags."
48
- },
49
- {
50
- "type": "guideline",
51
- "content": "Images that show or function as UI.\n\nMention all parts of the UI and what the content is for each part, if applicable. Write in the order of how a screen reader would read the components in the actual UI. When an image functions as a UI component — for example, an icon-only button or an image being used as a button — use verbs to describe the action instead of the appearance of the iconography. First example: 2 meters showing positive status. First meter labeled Tutorials completed, 2 of 8. Second meter labeled Storage space, 15%. Second example: Send message (Not: “paper airplane in motion”)."
52
- },
53
- {
54
- "type": "guideline",
55
- "content": "Images that describe usage notes or guidelines.\n\nDescribe any specific examples of how to apply (or not to apply) a concept or guideline that has been outlined in other text. Be sure to include any text that’s part of the image. 3 key examples showing correct usage of writing in simple tense. She ran for president. He writes great poetry. Carmen will make the poster."
56
- }
57
- ],
58
- "sourceUrl": "https://main--spectrum-hub--adobe.aem.live/content/language-and-inclusivity/writing-with-visuals",
59
- "lastUpdated": "2026-09-04",
60
- "status": "published",
61
- "tags": [
62
- "writing",
63
- "inclusive imagery",
64
- "modular content",
65
- "directional language",
66
- "screen readers",
67
- "consistent navigation",
68
- "error prevention"
69
- ]
70
- }
@@ -1,58 +0,0 @@
1
- {
2
- "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/platform-extension.json",
3
- "platform": "Web Components",
4
- "platformVersion": "Spectrum Web Components 0.x+",
5
- "description": "Web Components-specific terminology for interaction states",
6
- "extends": "states",
7
- "extensions": [
8
- {
9
- "termId": "hover",
10
- "platformTerm": "hover",
11
- "notes": "Implemented via CSS :hover pseudo-class",
12
- "reference": ":hover pseudo-class",
13
- "codeExample": ":host(:hover) { ... }",
14
- "differences": [
15
- "Automatically handled by browser CSS",
16
- "Works with any pointing device",
17
- "No JavaScript required for basic hover states"
18
- ]
19
- },
20
- {
21
- "termId": "focus",
22
- "platformTerm": "focused",
23
- "platformAliases": ["focus"],
24
- "notes": "Uses :focus and :focus-visible pseudo-classes",
25
- "reference": ":focus-visible",
26
- "codeExample": ":host(:focus-visible) { ... }",
27
- "differences": [
28
- "Distinguishes between programmatic and user-initiated focus",
29
- ":focus-visible shows focus ring only for keyboard navigation",
30
- "Better accessibility with :focus-visible support"
31
- ]
32
- },
33
- {
34
- "termId": "disabled",
35
- "platformTerm": "disabled",
36
- "notes": "Implemented via disabled attribute and :disabled pseudo-class",
37
- "reference": "disabled attribute",
38
- "codeExample": "<sp-button disabled>Label</sp-button>",
39
- "differences": [
40
- "Uses standard HTML disabled attribute",
41
- "Prevents all interactions automatically",
42
- "Affects tab order and screen reader behavior"
43
- ]
44
- },
45
- {
46
- "termId": "keyboard-focus",
47
- "platformTerm": "focus-visible",
48
- "notes": "Modern CSS uses :focus-visible for keyboard-only focus indication",
49
- "reference": ":focus-visible pseudo-class",
50
- "codeExample": ":host(:focus-visible) { outline: 2px solid blue; }",
51
- "differences": [
52
- "Only shows focus indicator for keyboard navigation",
53
- "Hides focus ring for mouse/touch interactions",
54
- "Improves UX while maintaining accessibility"
55
- ]
56
- }
57
- ]
58
- }