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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/components/accordion.json +15 -54
  2. package/components/action-bar.json +9 -23
  3. package/components/action-button.json +39 -79
  4. package/components/action-group.json +18 -129
  5. package/components/alert-banner.json +8 -27
  6. package/components/alert-dialog.json +34 -48
  7. package/components/avatar-group.json +9 -28
  8. package/components/avatar.json +29 -92
  9. package/components/badge.json +56 -150
  10. package/components/breadcrumbs.json +26 -100
  11. package/components/button-group.json +19 -50
  12. package/components/button.json +61 -92
  13. package/components/calendar.json +8 -67
  14. package/components/cards.json +31 -46
  15. package/components/checkbox-group.json +16 -78
  16. package/components/checkbox.json +27 -90
  17. package/components/close-button.json +20 -62
  18. package/components/coach-indicator.json +14 -44
  19. package/components/coach-mark.json +8 -26
  20. package/components/color-area.json +20 -93
  21. package/components/color-handle.json +25 -38
  22. package/components/color-loupe.json +2 -6
  23. package/components/color-slider.json +26 -122
  24. package/components/color-wheel.json +17 -84
  25. package/components/combo-box.json +50 -182
  26. package/components/contextual-help.json +80 -119
  27. package/components/date-picker.json +24 -120
  28. package/components/divider.json +12 -25
  29. package/components/drop-zone.json +18 -30
  30. package/components/field-label.json +21 -62
  31. package/components/help-text.json +16 -53
  32. package/components/illustrated-message.json +21 -72
  33. package/components/in-line-alert.json +13 -53
  34. package/components/link.json +24 -56
  35. package/components/list-view.json +15 -73
  36. package/components/menu.json +45 -174
  37. package/components/meter.json +24 -65
  38. package/components/number-field.json +34 -168
  39. package/components/picker.json +42 -181
  40. package/components/popover.json +37 -113
  41. package/components/progress-bar.json +23 -95
  42. package/components/progress-circle.json +12 -42
  43. package/components/radio-button.json +14 -67
  44. package/components/radio-group.json +28 -125
  45. package/components/rating.json +9 -38
  46. package/components/search-field.json +34 -119
  47. package/components/segmented-control.json +21 -63
  48. package/components/select-box.json +29 -96
  49. package/components/side-navigation.json +28 -69
  50. package/components/slider.json +39 -148
  51. package/components/standard-dialog.json +16 -88
  52. package/components/status-light.json +41 -123
  53. package/components/steplist.json +5 -24
  54. package/components/swatch-group.json +19 -55
  55. package/components/swatch.json +24 -79
  56. package/components/switch.json +31 -72
  57. package/components/table.json +26 -73
  58. package/components/tabs.json +22 -39
  59. package/components/tag-field.json +14 -60
  60. package/components/tag-group.json +16 -49
  61. package/components/tag.json +21 -71
  62. package/components/takeover-dialog.json +10 -61
  63. package/components/text-area.json +49 -198
  64. package/components/text-field.json +42 -163
  65. package/components/thumbnail.json +22 -63
  66. package/components/toast.json +29 -50
  67. package/components/tooltip.json +27 -74
  68. package/components/tree-view.json +45 -140
  69. package/guidelines/ai-resource-guide.json +50 -0
  70. package/guidelines/app-frame-overview.json +44 -50
  71. package/guidelines/applying-the-type-system.json +63 -0
  72. package/guidelines/attention-hierarchy.json +12 -21
  73. package/guidelines/background-layers.json +44 -10
  74. package/guidelines/bi-directionality.json +57 -0
  75. package/guidelines/border-width.json +42 -0
  76. package/guidelines/brand.json +30 -10
  77. package/guidelines/cognitive.json +197 -0
  78. package/guidelines/colors.json +35 -17
  79. package/guidelines/component-spacing.json +49 -0
  80. package/guidelines/contact-us.json +67 -0
  81. package/guidelines/content-area-browsing-context.json +65 -0
  82. package/guidelines/creating-bluelines-browsing-context.json +91 -0
  83. package/guidelines/design-tokens.json +122 -0
  84. package/guidelines/developer-overview.json +25 -9
  85. package/guidelines/drop-shadow.json +56 -0
  86. package/guidelines/faqs.json +96 -9
  87. package/guidelines/fonts.json +29 -14
  88. package/guidelines/grammar-and-mechanics.json +252 -0
  89. package/guidelines/grays.json +17 -44
  90. package/guidelines/header-browsing-context.json +37 -0
  91. package/guidelines/icon-fundamentals.json +7 -18
  92. package/guidelines/illustration.json +109 -0
  93. package/guidelines/in-product-word-list.json +29 -0
  94. package/guidelines/inclusive-design.json +93 -0
  95. package/guidelines/inclusive-ux-writing.json +30 -0
  96. package/guidelines/internationalization.json +87 -0
  97. package/guidelines/introduction.json +2 -2
  98. package/guidelines/layout-and-structure-containers.json +47 -0
  99. package/guidelines/layout-spacing.json +39 -0
  100. package/guidelines/manifest.json +252 -60
  101. package/guidelines/motion.json +17 -16
  102. package/guidelines/object-styles-overview.json +17 -0
  103. package/guidelines/principles.json +2 -2
  104. package/guidelines/resources.json +21 -15
  105. package/guidelines/rounding.json +61 -0
  106. package/guidelines/side-navigation-browsing-context.json +71 -0
  107. package/guidelines/spacing-overview.json +45 -0
  108. package/guidelines/states.json +15 -10
  109. package/guidelines/typography-overview.json +39 -0
  110. package/guidelines/typography-system.json +168 -0
  111. package/guidelines/using-icons.json +33 -44
  112. package/guidelines/visual-language-containers.json +36 -0
  113. package/guidelines/voice-and-tone.json +47 -0
  114. package/guidelines/writing-about-people.json +103 -0
  115. package/guidelines/writing-for-errors.json +120 -0
  116. package/guidelines/writing-for-onboarding.json +119 -0
  117. package/guidelines/writing-for-readability.json +54 -0
  118. package/guidelines/writing-with-visuals.json +70 -0
  119. package/package.json +1 -1
  120. package/guidelines/app-frame-content-area.json +0 -81
  121. package/guidelines/app-frame-creating-bluelines.json +0 -58
  122. package/guidelines/app-frame-header.json +0 -72
  123. package/guidelines/app-frame-side-navigation.json +0 -138
  124. package/guidelines/containers.json +0 -62
  125. package/guidelines/illustrations.json +0 -111
  126. package/guidelines/object-styles.json +0 -102
  127. package/guidelines/spacing.json +0 -25
  128. package/guidelines/typography-fundamentals.json +0 -142
@@ -0,0 +1,119 @@
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 Frame educational content in a lightweight way using language like “try” and “shows you how.”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. Define jargon like “Learn,” then explain what it’s called.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 Use as a standalone proper noun to refer to a UI element, place, and/or collection of content.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 Highlight relevant content or a unique angle before mentioning there’s more available.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} Use “go to” to imply that a user will be leaving their current experience.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 Emphasize what someone can do without leaving their current experience.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."
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."
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."
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."
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."
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."
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."
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."
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."
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."
104
+ }
105
+ ],
106
+ "sourceUrl": "https://main--spectrum-hub--adobe.aem.live/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
+ }
@@ -0,0 +1,54 @@
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. 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? 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. 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://main--spectrum-hub--adobe.aem.live/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
+ }
@@ -0,0 +1,70 @@
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
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adobe/spectrum-design-data",
3
- "version": "3.2.3",
3
+ "version": "3.3.0-beta.1",
4
4
  "description": "Spectrum design tokens in cascade format — the canonical source of truth for @adobe/spectrum-tokens",
5
5
  "type": "module",
6
6
  "repository": {
@@ -1,81 +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/app-frame-content-area.json",
4
- "name": "app-frame-content-area",
5
- "title": "App frame content area (browsing context)",
6
- "category": "designing",
7
- "documentBlocks": [
8
- {
9
- "type": "purpose",
10
- "content": "App frame content area (browsing context)"
11
- },
12
- {
13
- "type": "guideline",
14
- "content": "This layout is suitable when all content is related and unified by the primary purpose of the page. This single section can be subdivided using full-width dividers, or by creating visual groupings of content using proximity and spacing."
15
- },
16
- {
17
- "type": "guideline",
18
- "content": "Dividers are useful to separate content when using spacing alone wouldn’t be clear enough to mark the boundaries of distinct areas. Generally, more complex content with a varying alignment of objects will benefit the most from using a divider."
19
- },
20
- {
21
- "type": "guideline",
22
- "content": "The top section can also be useful to visually indicate that the content is separate and has additional affordances, such as the ability to be minimized. For example, “welcome” type content might be shown in the top section, and recent files might be shown below."
23
- },
24
- {
25
- "type": "guideline",
26
- "content": "When using horizontal sections, the page should scroll as a single unit. Consider other ways to minimize the top section if needed, such as through an additional control to show and hide content."
27
- },
28
- {
29
- "type": "guideline",
30
- "content": "The top section of a horizontal layout should be reserved for high-attention marketing messages or quick actions, and it should not be scrollable. Put infinite scrolling and longer content in the bottom section."
31
- },
32
- {
33
- "type": "guideline",
34
- "content": "This layout is suitable to separate content that’s not semantically related, and if one of the content areas can be minimized. For example, this might apply for onboarding tutorials, or to include an AI assistant."
35
- },
36
- {
37
- "type": "guideline",
38
- "content": "This layout is suitable to separate multiple groups of content that aren’t semantically related. For example, this could show several widgets and distinct marketing messages. This layout can also be useful if a user is able to customize the page."
39
- },
40
- {
41
- "type": "guideline",
42
- "content": "Make sure to consider smaller breakpoints and decide how content areas should reflow, hide, or combine. In general, show the most important information at the top, and if possible, then progressively disclose the not-as-important information."
43
- },
44
- {
45
- "type": "guideline",
46
- "content": "Backgrounds that use gradients are always placed within the app frame intentionally and with a strategic meaning. They should contribute to the visual hierarchy, not distract from it. And, their colors are directly tied to product brand color palettes."
47
- },
48
- {
49
- "type": "guideline",
50
- "content": "For example, on a Home screen, gradient backgrounds might call attention to new AI features in the product. On a Learn screen, gradient backgrounds might call attention to tutorials from new creators. On a Files screen, gradient backgrounds might not be used at all in order to focus attention on asset previews. In any context, consider where you want to draw attention and what you want to highlight for the user, what the user’s intentions might be, and how gradient backgrounds may add or detract from the goals of the page."
51
- },
52
- {
53
- "type": "guideline",
54
- "content": "While there isn’t an objective scale for each style, it can be helpful to think about backgrounds in terms of how much attention they draw, on a scale of low-to-high."
55
- },
56
- {
57
- "type": "guideline",
58
- "content": "While you may have seen past Spectrum 2 explorations showing gradients as the background in header and navigational areas, they should not be used in that context. This is because gradients that appear in the navigation of every page distract from more important information on the page, clash with other imagery, and might not work for some product segments."
59
- },
60
- {
61
- "type": "guideline",
62
- "content": "By using gradients in the content areas as backgrounds instead, there’s more flexibility to direct attention to different content and messages, depending on what’s important in the context of that page or workflow."
63
- },
64
- {
65
- "type": "guideline",
66
- "content": "Gradients are used to draw attention to important content and features. They can be used in the background of content areas. Using gradients in more than one content area results in multiple areas competing for attention. This is distracting from the task-at-hand workflows on the page."
67
- },
68
- {
69
- "type": "guideline",
70
- "content": "Gradients should always be delivered directly from the Spectrum Brand team and used as-is. Do not modify them."
71
- }
72
- ],
73
- "sourceUrl": "https://s2.spectrum.corp.adobe.com/page/app-frame-content-area/",
74
- "lastUpdated": "2026-02-02",
75
- "status": "published",
76
- "tags": ["designing"],
77
- "related": [
78
- { "ref": "s2-app-frame-side-navigation-browsing-context" },
79
- { "ref": "s2-app-frame-creating-bluelines-browsing-context" }
80
- ]
81
- }
@@ -1,58 +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/app-frame-creating-bluelines.json",
4
- "name": "app-frame-creating-bluelines",
5
- "title": "Creating bluelines (browsing context)",
6
- "category": "designing",
7
- "documentBlocks": [
8
- { "type": "purpose", "content": "Creating bluelines (browsing context)" },
9
- {
10
- "type": "guideline",
11
- "content": "Accessible names vary depending on the content. Accessible names must be defined for controls that don’t have visible text labels."
12
- },
13
- {
14
- "type": "guideline",
15
- "content": "Here are some guidelines to keep in mind as you define accessible names in the app frame:"
16
- },
17
- {
18
- "type": "guideline",
19
- "content": "Any non-text element in a digital interface with a text label must have a text alternative. Here’s an example of how you might name landmark regions in an app frame:"
20
- },
21
- {
22
- "type": "guideline",
23
- "content": "Here’s an example of how you might structure heading annotations for this screen:"
24
- },
25
- {
26
- "type": "guideline",
27
- "content": "Keyboard focus order will depend on what controls are available on the page. Here’s an example of how you might define the order in the app frame:"
28
- },
29
- {
30
- "type": "guideline",
31
- "content": "Example of correct usage, support for keyboard focus for size navigation. The side navigation width is focusable and resizable by using the left and right arrow keys."
32
- },
33
- {
34
- "type": "guideline",
35
- "content": "Example of correct usage, inclusion of a Skip to main content button within the app frame header."
36
- },
37
- {
38
- "type": "guideline",
39
- "content": "When properly supported, the F6 key allows keyboard users to navigate through different regions of an application efficiently. Without this support, keyboard-only users have no means to jump to specific areas of the application, resulting in an excessive number of keystrokes to reach their desired goal."
40
- },
41
- {
42
- "type": "guideline",
43
- "content": "Here are some key quality factors to consider:"
44
- },
45
- {
46
- "type": "guideline",
47
- "content": "For mobile breakpoints, a tray is used to open and close the app frame side navigation. In this example, the keyboard focus order starts at the “Create” button and ends at the close button. Clicking on esc should also close the tray."
48
- }
49
- ],
50
- "sourceUrl": "https://s2.spectrum.corp.adobe.com/page/app-frame-creating-bluelines/",
51
- "lastUpdated": "2026-02-02",
52
- "status": "published",
53
- "tags": ["designing"],
54
- "related": [
55
- { "ref": "s2-app-frame-content-area-browsing-context" },
56
- { "ref": "brand" }
57
- ]
58
- }
@@ -1,72 +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/app-frame-header.json",
4
- "name": "app-frame-header",
5
- "title": "App frame header (browsing context)",
6
- "category": "designing",
7
- "documentBlocks": [
8
- { "type": "purpose", "content": "App frame header (browsing context)" },
9
- {
10
- "type": "guideline",
11
- "content": "There are several parts of the header that are consistent across all Adobe products:"
12
- },
13
- {
14
- "type": "guideline",
15
- "content": "Shows a hamburger button on the far left of the header. This controls whether the minimized style of the side navigation (partial/full)."
16
- },
17
- { "type": "guideline", "content": "Shows navigation items in the header." },
18
- { "type": "guideline", "content": "Shows a search option in the header." },
19
- {
20
- "type": "guideline",
21
- "content": "Defines the style of the search option that's shown."
22
- },
23
- {
24
- "type": "guideline",
25
- "content": "The “skip to main content” button helps improve keyboard navigation by creating a shortcut to the main content of the page. This button is an accessibility feature to allow skipping to the first navigable HTML item."
26
- },
27
- {
28
- "type": "guideline",
29
- "content": "Shows an icon to represent the header navigation item."
30
- },
31
- {
32
- "type": "guideline",
33
- "content": "The text that is displayed as the label of the header navigation item."
34
- },
35
- {
36
- "type": "guideline",
37
- "content": "Presents the header side navigation as selected or not selected."
38
- },
39
- {
40
- "type": "guideline",
41
- "content": "Changes the header navigation item to the disabled state."
42
- },
43
- {
44
- "type": "guideline",
45
- "content": "Shows a chevron next to the label that indicates an additional menu."
46
- },
47
- {
48
- "type": "guideline",
49
- "content": "The text that is displayed as the label of the tooltip."
50
- },
51
- {
52
- "type": "guideline",
53
- "content": "As a general rule, only use one call-to-action (CTA) button, aside from any buttons used to log in or log out, as defined in the universal nav. When too many CTAs are shown at once, the messages compete for attention and dilute the ability for a focused attention hierarchy."
54
- },
55
- {
56
- "type": "guideline",
57
- "content": "If there are multiple actions, consider combining them into a single menu or use other button types. The button should represent the most important CTA across the product; for example, “Share” and “Get desktop app” are common CTAs."
58
- },
59
- {
60
- "type": "guideline",
61
- "content": "Diagram with notes about the app frame header in the editing context. If there’s a menu represented by a hamburger icon, such as the application menu in Creative Cloud, it should be shown to the left of the product logo for continuity with the browsing context. The product name can be hidden in the editing context in order to provide more room for other actions. The height of the header should be the same as in the browsing context (56 px)."
62
- }
63
- ],
64
- "sourceUrl": "https://s2.spectrum.corp.adobe.com/page/app-frame-header/",
65
- "lastUpdated": "2026-02-02",
66
- "status": "published",
67
- "tags": ["designing"],
68
- "related": [
69
- { "ref": "s2-app-frame" },
70
- { "ref": "s2-app-frame-side-navigation-browsing-context" }
71
- ]
72
- }
@@ -1,138 +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/app-frame-side-navigation.json",
4
- "name": "app-frame-side-navigation",
5
- "title": "App frame side navigation (browsing context)",
6
- "category": "designing",
7
- "documentBlocks": [
8
- {
9
- "type": "purpose",
10
- "content": "App frame side navigation (browsing context)"
11
- },
12
- {
13
- "type": "guideline",
14
- "content": "The side navigation is always used in partnership with the header, and never instead of it. When used, the side navigation holds the main categories of product functionality, such as workflow-related navigational items (e.g., Home, Files, Learn, Dashboards). Don’t use this for categorizing marketing pages."
15
- },
16
- {
17
- "type": "guideline",
18
- "content": "Side navigation consists of a few parts:"
19
- },
20
- {
21
- "type": "guideline",
22
- "content": "Additionally, this button should not be used outside of the app frame context. It has unique animations between expanding and collapsing that are optimized for the app frame side navigation panel."
23
- },
24
- {
25
- "type": "guideline",
26
- "content": "Allows the side navigation to be minimized by the user."
27
- },
28
- {
29
- "type": "guideline",
30
- "content": "The partial style displays icon-only side navigation items when minimized. The full style hides the side navigation when minimized."
31
- },
32
- {
33
- "type": "guideline",
34
- "content": "Shows a create button at the top of the panel."
35
- },
36
- { "type": "guideline", "content": "Enables drag on the side navigation." },
37
- {
38
- "type": "guideline",
39
- "content": "If the side navigation panel can be minimized (Can be minimized: true), dragging to the min width (expanded) will collapse the side navigation into the minimized state."
40
- },
41
- {
42
- "type": "guideline",
43
- "content": "The minimum width that the side navigation panel can be adjusted to."
44
- },
45
- {
46
- "type": "guideline",
47
- "content": "The default width that the side navigation panel appears in."
48
- },
49
- {
50
- "type": "guideline",
51
- "content": "The text that is displayed as the label of the app frame side navigation item, to supplement the icon."
52
- },
53
- {
54
- "type": "guideline",
55
- "content": "Hides the label, making the app frame side navigation item icon-only."
56
- },
57
- {
58
- "type": "guideline",
59
- "content": "The number of lines that is shown before the label is truncated."
60
- },
61
- {
62
- "type": "guideline",
63
- "content": "After the user clicks on an app frame side navigation item, the left visual bar will turn gray-800, text will bold, and color will change to content-neutral."
64
- },
65
- {
66
- "type": "guideline",
67
- "content": "Changes the side navigation item to the disabled state."
68
- },
69
- {
70
- "type": "guideline",
71
- "content": "The text that is displayed as the label of the tooltip."
72
- },
73
- {
74
- "type": "guideline",
75
- "content": "Use the overlay variant of the app frame: side navigation (browsing) component for smaller breakpoints. The overlay is triggered via the hamburger menu in the header (rather than a touchpoint at the bottom)."
76
- },
77
- {
78
- "type": "guideline",
79
- "content": "Although 768 px is the recommended breakpoint to begin displaying the overlay designs, each product team should determine which breakpoint best suits their needs."
80
- },
81
- {
82
- "type": "guideline",
83
- "content": "The divider at the bottom of the side navigation is an intentional visual element that separates overflow side navigation items and end section items from the state control icon."
84
- },
85
- {
86
- "type": "guideline",
87
- "content": "The end section is optional and used to contain navigation items in a separate category that is secondary to the main navigation items. Categories, when defined, should readily communicate a clear purpose and be meaningful to users. Items placed here sit on a separate area. When resized to a smaller height, the items should append onto the start section and scroll together."
88
- },
89
- {
90
- "type": "guideline",
91
- "content": "The minimum width is customizable, depending on the number of levels:"
92
- },
93
- {
94
- "type": "guideline",
95
- "content": "If the side navigation contains user-generated content (like shortcuts to folders and files), enabling resizing can be a good way to improve usability by respecting user content, without needing to predict the length of labels that users might input."
96
- },
97
- {
98
- "type": "guideline",
99
- "content": "Along with being descriptive, the labels of navigation items should be succinct. Keep navigation strings to 1 or 2 and no more than 3 concise words (in U.S. English, which is the source locale). Reduce any unnecessary words in order to ensure simplicity."
100
- },
101
- {
102
- "type": "guideline",
103
- "content": "Navigation items should never be so long that they require truncation, except in instances where navigation is user-generated (e.g., folder and file names)."
104
- },
105
- {
106
- "type": "guideline",
107
- "content": "If possible, the default width should auto-adjust to the longest string in the navigation in order to accommodate all translations. As a last resort for long strings, specific line breaks can be built into the implementation. These line breaks depend on the content, and requires manual handling by Globalization engineers."
108
- },
109
- {
110
- "type": "guideline",
111
- "content": "When navigation items are shown in both the side navigation and header at the same time, the hierarchy and relationships between them become unclear. If the side navigation is used, don’t put any navigation items in the header."
112
- },
113
- {
114
- "type": "guideline",
115
- "content": "Supporting multiple states (default, and partial or fully minimized style) provides users with the option to choose their preferred layout based on their own preferences. In user studies, individual preference is the biggest factor when it comes to whether or not people want to view labels by default."
116
- },
117
- {
118
- "type": "guideline",
119
- "content": "If supporting multiple states, consider showing the side navigation in the expanded state by default, and preserve user preferences across pages and sessions. If minimizing the side navigation is not supported, show the side navigation in the expanded state. Showing labels by default increases recognition and familiarity."
120
- },
121
- {
122
- "type": "guideline",
123
- "content": "There are some app frame-specific constraints for the side navigation. Icons are required at the parent level. Nested items can have no icon, but the parent level must have an icon."
124
- },
125
- {
126
- "type": "guideline",
127
- "content": "Diagram describing notes about the side navigation for the app frame, in the editing context. While toolbars share the same location as the app frame side navigation in a browsing context, toolbars in an editing context serve a different purpose: to readily select commonly used tools, rather than to navigate between pages. The behavior and interaction of toolbars doesn’t need to mirror the side navigation and should instead best serve user needs in an editing context. For example, the option to show and hide tool labels can be an additional customization option and doesn’t need to be controlled by the hamburger menu, which is used to display the application menu in Creative Cloud."
128
- }
129
- ],
130
- "sourceUrl": "https://s2.spectrum.corp.adobe.com/page/app-frame-side-navigation/",
131
- "lastUpdated": "2026-02-02",
132
- "status": "published",
133
- "tags": ["designing"],
134
- "related": [
135
- { "ref": "s2-app-frame-header-browsing-context" },
136
- { "ref": "s2-app-frame-content-area-browsing-context" }
137
- ]
138
- }