@adobe/spectrum-design-data 3.3.0-beta.1 → 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.
- package/components/accordion.json +67 -15
- package/components/action-bar.json +30 -9
- package/components/action-button.json +92 -39
- package/components/action-group.json +137 -18
- package/components/alert-banner.json +27 -8
- package/components/alert-dialog.json +55 -34
- package/components/avatar-group.json +35 -9
- package/components/avatar.json +105 -29
- package/components/badge.json +163 -56
- package/components/breadcrumbs.json +107 -26
- package/components/button-group.json +63 -19
- package/components/button.json +105 -61
- package/components/calendar.json +74 -8
- package/components/card.json +13 -0
- package/components/cards.json +46 -31
- package/components/checkbox-group.json +85 -16
- package/components/checkbox.json +97 -27
- package/components/close-button.json +75 -20
- package/components/coach-indicator.json +44 -14
- package/components/coach-mark.json +26 -8
- package/components/color-area.json +100 -20
- package/components/color-handle.json +46 -25
- package/components/color-loupe.json +14 -2
- package/components/color-slider.json +129 -26
- package/components/color-wheel.json +91 -17
- package/components/combo-box.json +189 -50
- package/components/contextual-help.json +126 -80
- package/components/date-field.json +7 -0
- package/components/date-picker.json +127 -24
- package/components/divider.json +38 -12
- package/components/drop-zone.json +37 -18
- package/components/field-label.json +62 -21
- package/components/heading.json +7 -0
- package/components/help-text.json +53 -16
- package/components/illustrated-message.json +85 -21
- package/components/in-line-alert.json +53 -13
- package/components/link.json +63 -24
- package/components/list-view.json +80 -15
- package/components/menu.json +181 -45
- package/components/meter.json +78 -24
- package/components/number-field.json +175 -34
- package/components/picker.json +188 -42
- package/components/popover.json +126 -37
- package/components/progress-bar.json +108 -23
- package/components/progress-circle.json +55 -12
- package/components/radio-button.json +67 -14
- package/components/radio-group.json +132 -28
- package/components/rating.json +38 -9
- package/components/search-field.json +126 -34
- package/components/segmented-control.json +70 -21
- package/components/select-box.json +103 -29
- package/components/side-navigation.json +69 -28
- package/components/slider.json +155 -39
- package/components/standard-dialog.json +88 -16
- package/components/status-light.json +136 -41
- package/components/steplist.json +24 -5
- package/components/swatch-group.json +55 -19
- package/components/swatch.json +79 -24
- package/components/switch.json +79 -31
- package/components/table.json +73 -26
- package/components/tabs.json +52 -22
- package/components/tag-field.json +60 -14
- package/components/tag-group.json +56 -16
- package/components/tag.json +78 -21
- package/components/takeover-dialog.json +61 -10
- package/components/text-area.json +205 -49
- package/components/text-field.json +170 -42
- package/components/thumbnail.json +63 -22
- package/components/time-field.json +7 -0
- package/components/toast.json +50 -29
- package/components/tooltip.json +87 -27
- package/components/tree-view.json +147 -45
- package/components/user-card.json +7 -0
- package/guidelines/app-frame-content-area.json +81 -0
- package/guidelines/app-frame-creating-bluelines.json +58 -0
- package/guidelines/app-frame-header.json +72 -0
- package/guidelines/app-frame-overview.json +50 -44
- package/guidelines/app-frame-side-navigation.json +138 -0
- package/guidelines/attention-hierarchy.json +21 -12
- package/guidelines/background-layers.json +10 -44
- package/guidelines/brand.json +10 -30
- package/guidelines/colors.json +17 -35
- package/guidelines/containers.json +62 -0
- package/guidelines/developer-overview.json +9 -25
- package/guidelines/faqs.json +9 -96
- package/guidelines/fonts.json +14 -29
- package/guidelines/grays.json +44 -17
- package/guidelines/icon-fundamentals.json +18 -7
- package/guidelines/illustrations.json +111 -0
- package/guidelines/introduction.json +2 -2
- package/guidelines/manifest.json +60 -252
- package/guidelines/motion.json +16 -17
- package/guidelines/object-styles.json +102 -0
- package/guidelines/principles.json +2 -2
- package/guidelines/resources.json +15 -21
- package/guidelines/spacing.json +25 -0
- package/guidelines/states.json +10 -15
- package/guidelines/typography-fundamentals.json +142 -0
- package/guidelines/using-icons.json +44 -33
- package/package.json +2 -2
- package/registry/platform-implementations.json +30 -0
- package/guidelines/ai-resource-guide.json +0 -50
- package/guidelines/applying-the-type-system.json +0 -63
- package/guidelines/bi-directionality.json +0 -57
- package/guidelines/border-width.json +0 -42
- package/guidelines/cognitive.json +0 -197
- package/guidelines/component-spacing.json +0 -49
- package/guidelines/contact-us.json +0 -67
- package/guidelines/content-area-browsing-context.json +0 -65
- package/guidelines/creating-bluelines-browsing-context.json +0 -91
- package/guidelines/design-tokens.json +0 -122
- package/guidelines/drop-shadow.json +0 -56
- package/guidelines/grammar-and-mechanics.json +0 -252
- package/guidelines/header-browsing-context.json +0 -37
- package/guidelines/illustration.json +0 -109
- package/guidelines/in-product-word-list.json +0 -29
- package/guidelines/inclusive-design.json +0 -93
- package/guidelines/inclusive-ux-writing.json +0 -30
- package/guidelines/internationalization.json +0 -87
- package/guidelines/layout-and-structure-containers.json +0 -47
- package/guidelines/layout-spacing.json +0 -39
- package/guidelines/object-styles-overview.json +0 -17
- package/guidelines/rounding.json +0 -61
- package/guidelines/side-navigation-browsing-context.json +0 -71
- package/guidelines/spacing-overview.json +0 -45
- package/guidelines/typography-overview.json +0 -39
- package/guidelines/typography-system.json +0 -168
- package/guidelines/visual-language-containers.json +0 -36
- package/guidelines/voice-and-tone.json +0 -47
- package/guidelines/writing-about-people.json +0 -103
- package/guidelines/writing-for-errors.json +0 -120
- package/guidelines/writing-for-onboarding.json +0 -119
- package/guidelines/writing-for-readability.json +0 -54
- package/guidelines/writing-with-visuals.json +0 -70
- package/registry/platform-extensions/web-components-states.json +0 -58
|
@@ -8,58 +8,52 @@
|
|
|
8
8
|
{ "type": "purpose", "content": "Resources" },
|
|
9
9
|
{
|
|
10
10
|
"type": "guideline",
|
|
11
|
-
"content": "
|
|
11
|
+
"content": "The Spectrum 2 Figma libraries are the primary resource for Spectrum 2 components, styles, and variables. These libraries are stable, so you can use the designs in production."
|
|
12
12
|
},
|
|
13
13
|
{
|
|
14
14
|
"type": "guideline",
|
|
15
|
-
"content": "
|
|
15
|
+
"content": "An example of the Spectrum 2 library: the action button page."
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
18
|
"type": "guideline",
|
|
19
|
-
"content": "
|
|
19
|
+
"content": "This GitHub repository houses Spectrum’s design tokens, which are primarily name-value pairs used to store design decisions and distributed in a way that platforms, implementations, and products can use across design tools and coding languages."
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
22
|
"type": "guideline",
|
|
23
|
-
"content": "
|
|
23
|
+
"content": "This tool allows you to search for token names or values, filter values by scale and theme, and explore the relationship between Spectrum’s tokens by selecting tokens to see their connections."
|
|
24
24
|
},
|
|
25
25
|
{
|
|
26
26
|
"type": "guideline",
|
|
27
|
-
"content": "
|
|
27
|
+
"content": "To support this transition, S2/Color has been removed from the inheritance chain in the Figma libraries. Designers should update their files to replace color styles with color variables. Following the steps in the guide will help ensure your files remain stable and aligned with the Spectrum system moving forward."
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
30
|
"type": "guideline",
|
|
31
|
-
"content": "
|
|
31
|
+
"content": "These changes are for Spectrum 2 libraries. They do not apply to Spectrum 1."
|
|
32
32
|
},
|
|
33
33
|
{
|
|
34
34
|
"type": "guideline",
|
|
35
|
-
"content": "
|
|
35
|
+
"content": "To support the new font, we’ve updated our default line-height values and introduced symmetrical vertical padding token values to our design system. The Spectrum 2 typography guide includes details about what’s changing, what’s staying the same, and options for updating design files or implementations."
|
|
36
36
|
},
|
|
37
37
|
{
|
|
38
38
|
"type": "guideline",
|
|
39
|
-
"content": "
|
|
39
|
+
"content": "These changes are for Spectrum 2 libraries and implementations. They do not apply to Spectrum 1 components."
|
|
40
40
|
},
|
|
41
41
|
{
|
|
42
42
|
"type": "guideline",
|
|
43
|
-
"content": "
|
|
43
|
+
"content": "Spectrum 2 includes two new grays — gray-25 and gray-1000 — plus an update to the rest of the 11 grays. The migration guide goes into more detail about what’s changing and what’s staying the same."
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
46
|
"type": "guideline",
|
|
47
|
-
"content": "
|
|
47
|
+
"content": "Creating interfaces that support right-to-left (RTL) and bi-directional (Bidi) languages is essential to ensuring that our products are inclusive of global audiences. These guides, created by the Adobe International team, offer comprehensive frameworks on how to design and build for both web and mobile components."
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
50
|
"type": "guideline",
|
|
51
|
-
"content": "
|
|
51
|
+
"content": "The Adobe Design Brand team has created Spectrum 2-inspired desktop and mobile backgrounds for you to download."
|
|
52
52
|
}
|
|
53
53
|
],
|
|
54
|
-
"sourceUrl": "https://
|
|
55
|
-
"lastUpdated": "2026-
|
|
54
|
+
"sourceUrl": "https://s2.spectrum.corp.adobe.com/page/resources/",
|
|
55
|
+
"lastUpdated": "2026-02-02",
|
|
56
56
|
"status": "published",
|
|
57
|
-
"tags": [
|
|
58
|
-
|
|
59
|
-
"Design tokens",
|
|
60
|
-
"Spectrum Web Components",
|
|
61
|
-
"implementation",
|
|
62
|
-
"guides",
|
|
63
|
-
"resources"
|
|
64
|
-
]
|
|
57
|
+
"tags": ["support"],
|
|
58
|
+
"related": [{ "ref": "contact" }]
|
|
65
59
|
}
|
|
@@ -0,0 +1,25 @@
|
|
|
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/spacing.json",
|
|
4
|
+
"name": "spacing",
|
|
5
|
+
"title": "Spacing",
|
|
6
|
+
"category": "designing",
|
|
7
|
+
"documentBlocks": [
|
|
8
|
+
{
|
|
9
|
+
"type": "purpose",
|
|
10
|
+
"content": "Spectrum 2 continues with Spectrum's current guidelines for spacing and responsive grids. More detailed guidelines for responsive design are currently in progress.\n\nThe primary update for Spectrum 2 is that **instead of dividers, spacing is used as the primary way to group and divide content**. Different spacing values establish rhythm and create hierarchy within a page. The [spacing values](https://spectrum.corp.adobe.com/page/spacing/#Spacing-values) themselves remain unchanged from Spectrum 1.\n\nSmaller spacing values should generally be used for objects that are closely related. An example of this would be to use a smaller spacing value in between the components that make up a component group, like in a button group or a group of cards.\n\nLarger spacing values should be used for groups of things that are less closely related. An example of this would be to use a larger spacing value to separate two distinct sections of content. Doing this helps to better organize a page.\n\nIn some contexts, a divider can still be appropriate to define larger areas of a page. View more about [border width](https://s2.spectrum.corp.adobe.com/page/object-styles/#border-width).\n\n### Example\n\nIn this example, the side navigation items use a smaller spacing value (spacing-75) in order to show a closer relationship. The side navigation items are grouped with a combination of a section title and a larger spacing value (spacing-400) to divide two distinct sections.\n\nSimilarly, cards that are part of the same group have a smaller spacing value (spacing-300) between them. Each group of cards has a title and a larger spacing value (spacing-500) to show two that the two groups are distinct.\n\nBy using spacing intentionally, the purpose of page content becomes more readily apparent and information can become easier to parse."
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"type": "guideline",
|
|
14
|
+
"content": "Spectrum defines density as the spacing between components or UI elements, regardless of their size and scale. Density can be used alongside component size to create a range of layouts, from spacious to dense."
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"type": "guideline",
|
|
18
|
+
"content": "For example, when creating complex UI layouts, high density is often combined with smaller components and tighter spacing in between elements."
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"sourceUrl": "https://s2.spectrum.corp.adobe.com/page/spacing/",
|
|
22
|
+
"lastUpdated": "2026-02-02",
|
|
23
|
+
"status": "published",
|
|
24
|
+
"tags": ["designing"]
|
|
25
|
+
}
|
package/guidelines/states.json
CHANGED
|
@@ -12,28 +12,23 @@
|
|
|
12
12
|
},
|
|
13
13
|
{
|
|
14
14
|
"type": "guideline",
|
|
15
|
-
"content": "Disabled states generally stay the same from Spectrum 1, but there have been some minor updates to specific components. For example, a text field retains the outline style when disabled, to more closely match its default state."
|
|
15
|
+
"content": "[Disabled states](https://spectrum.corp.adobe.com/page/states/#Disabled) generally stay the same from Spectrum 1, but there have been some minor updates to specific components. For example, a text field retains the outline style when disabled, to more closely match its default state."
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
18
|
"type": "guideline",
|
|
19
|
-
"content": "Selected states use a primary style by default, generally through a gray-800 fill. Some have an accent color option that can be used to draw emphasis. This is primarily helpful in contexts with a specific and narrowly-scoped goal (for example, in a dialog), or when there
|
|
19
|
+
"content": "Selected states use a primary style by default, generally through a gray-800 fill. Some have an accent color option that can be used to draw emphasis. This is primarily helpful in contexts with a specific and narrowly-scoped goal (for example, in a dialog), or when there's a single, clear call to action within a page (for example, a \"Create\" button)."
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
22
|
"type": "guideline",
|
|
23
|
-
"content": "
|
|
23
|
+
"content": "When there's many groups of controls that require the same amount of attention (such as in a panel) the not emphasized option works best. For more details about this concept, view [Attention hierarchy](https://s2.spectrum.corp.adobe.com/page/attention-hierarchy/)."
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"type": "guideline",
|
|
27
|
+
"content": "A dragged state has a unique drop shadow to draw attention to the dragged object. Learn more about [drop shadows](https://s2.spectrum.corp.adobe.com/page/object-styles/#drop-shadow)."
|
|
24
28
|
}
|
|
25
29
|
],
|
|
26
|
-
"sourceUrl": "https://
|
|
27
|
-
"lastUpdated": "2026-
|
|
30
|
+
"sourceUrl": "https://s2.spectrum.corp.adobe.com/page/states/",
|
|
31
|
+
"lastUpdated": "2026-02-02",
|
|
28
32
|
"status": "published",
|
|
29
|
-
"tags": [
|
|
30
|
-
"states",
|
|
31
|
-
"hover",
|
|
32
|
-
"down",
|
|
33
|
-
"keyboard focus",
|
|
34
|
-
"disabled",
|
|
35
|
-
"selected",
|
|
36
|
-
"dragged",
|
|
37
|
-
"drop shadow"
|
|
38
|
-
]
|
|
33
|
+
"tags": ["designing"]
|
|
39
34
|
}
|
|
@@ -0,0 +1,142 @@
|
|
|
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/typography-fundamentals.json",
|
|
4
|
+
"name": "typography-fundamentals",
|
|
5
|
+
"title": "Typography fundamentals",
|
|
6
|
+
"category": "designing",
|
|
7
|
+
"documentBlocks": [
|
|
8
|
+
{
|
|
9
|
+
"type": "purpose",
|
|
10
|
+
"content": "The variable font (VF) is the default typeface for Spectrum 2 web, iOS, and future desktop explorations.\n\n\"There are two major updates, compared with Adobe Clean:\"\n\n\"In general:\"\n\nUpdated (\\*) means that these sizes didn't follow the Major Second type scale in Spectrum 1 and have now been updated to reflect the accurate values\n\nSpectrum 2 uses type styles to help maintain a consistent semantic meaning and create accessible, legible, and on-brand experiences across platforms.\n\nComponent is the type style that is applied to text within UI components.\n\nCode is a typography component used for text that represents code. The default font for showing code is Source Code Pro.\n\nIn this file browsing example, Heading, Title, Component, and Detail style text are used to create hierarchy throughout the page.\n\nIn this commenting example, Title, Body, Component, and Detail style text are used to create hierarchy within the comments panel."
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"type": "guideline",
|
|
14
|
+
"content": "The variable font (VF) is the default typeface for Spectrum 2 web, iOS, and future desktop explorations."
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"type": "guideline",
|
|
18
|
+
"content": "There are two major updates, compared with Adobe Clean:"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"type": "guideline",
|
|
22
|
+
"content": "If you need to deviate from the default typeface (Adobe Clean Spectrum VF), you can use Adobe Clean Spectrum Serif VF, Adobe Clean Han, and Source Code Pro:"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"type": "guideline",
|
|
26
|
+
"content": "Spectrum ensures that different sizes of text can work together harmoniously, on both desktop and mobile. For Spectrum 2, all font sizes follow the Major Second type scale, which has a ratio of 1.125. This means that each size is multiplied or divided by 1.125 from the previous size, starting with the base size (font-size-100), and rounded to the nearest whole number. Custom text (any non-existing typography styles) or modifications to existing type styles should use a font size from this list."
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"type": "guideline",
|
|
30
|
+
"content": "When selecting font sizes to ensure readability, keep in mind that Adobe Clean does not match 1:1 with system font size definitions. It’s generally a size smaller than system fonts such as SF Pro, Segoe UI, Roboto, and others."
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"type": "guideline",
|
|
34
|
+
"content": "Updated (\\*) means that these sizes didn't follow the Major Second type scale in Spectrum 1 and have now been updated to reflect the accurate values"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"type": "guideline",
|
|
38
|
+
"content": "New (\\*\\*) shows Spectrum 2's new additions: font-size-25 is new to accommodate scaling to the smallest detail and body sizes. Font-size-1400 and -1500 are now available to provide consistent scaling to larger sizes. These are often needed in website design and for marketing scenarios."
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"type": "guideline",
|
|
42
|
+
"content": "Spectrum 2 offers guidance for a wider range of font weights to help establish visual hierarchy in layouts, including the specific usages of Black, ExtraBold, and Medium weights."
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"type": "guideline",
|
|
46
|
+
"content": "When used in Adobe Express products, the weight is set to Black in order to align to the Adobe Express brand guidelines. Black weight text should only be used in heading type styles, and never below 18 px font-size, to ensure the text remains legible."
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"type": "guideline",
|
|
50
|
+
"content": "Select elements in the UI use a Bold font weight. Bold text is often used to accentuate the primary focus on a page or in a container, and in many uses, it’s paired with regular body text to create hierarchy. Titles, file names, user names, and button labels all use bold weight."
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"type": "guideline",
|
|
54
|
+
"content": "In Spectrum 2, some components, like action buttons, badges, and tags, use Medium weight labels in order to maintain balance with Spectrum 2’s icons, which use a 1.5 px stroke."
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"type": "guideline",
|
|
58
|
+
"content": "Regular is the default font weight for Spectrum components and body text. It should also be used for any content that’s entered by users, is editable, or longer in form (for example, text fields and text areas)."
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"type": "guideline",
|
|
62
|
+
"content": "Line height values are updated in Spectrum 2 to better accommodate the baseline shift of the new default font — Adobe Clean Spectrum VF — and to position the text as vertically centered in UI components."
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"type": "guideline",
|
|
66
|
+
"content": "To ensure that the space between lines of text appears balanced, the default line-height is adjusted from \\~130% at smaller font-sizes to \\~115% at larger font-sizes, and then rounded to whole even numbers to ensure that text within a component will not sit on a half-pixel."
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"type": "guideline",
|
|
70
|
+
"content": "Body and Code type styles use a more spacious line height multiplier of 1.5x the font-size (line-height-200) to ensure that longform text has more space and is legible. CJK languages use a 1.7x multiplier."
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"type": "guideline",
|
|
74
|
+
"content": "Spectrum 2 uses type styles to help maintain a consistent semantic meaning and create accessible, legible, and on-brand experiences across platforms."
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"type": "guideline",
|
|
78
|
+
"content": "Keep in mind that a single product won’t need all of theses sizes, and especially at the same time. As a starting point, use a t-shirt size from each of the type styles (in Figma, these are known as text styles). For example: pair Heading Medium with Title Medium, Body Medium, and Medium t-shirt sized components."
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"type": "guideline",
|
|
82
|
+
"content": "If you’d like to override these styles, there’s some flexibility for you to define your own typography and hierarchy as long as any customization follows Spectrum guidance for font size and color usage. Use what best fits your context and best supports your users."
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"type": "guideline",
|
|
86
|
+
"content": "Heading text represents the biggest and boldest text on a page, and it draws the most attention. Only the broadest idea, such as the main page title, should use this style."
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"type": "guideline",
|
|
90
|
+
"content": "Body is the type style that’s primarily used for longer-form text that may extend to multiple lines. “Body text” is a frequently used term to describe the text that creates the main content on a page, which is where this style gets its name from."
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"type": "guideline",
|
|
94
|
+
"content": "“Detail text” is a broad term for any kind of text that communicates ideas that are even more specific than body text. Text using the Detail style acts as supporting context to any other information presented."
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"type": "guideline",
|
|
98
|
+
"content": "Detail text often uses Medium weight when paired with iconography, to maintain visual balance with the 1.5 px stroke width of Spectrum 2 icons. It’s also often shown in gray-600 or gray-700 to make it more subdued in terms of visual hierarchy."
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"type": "guideline",
|
|
102
|
+
"content": "The differences between Detail text, Component text, and Body text are nuanced and often come down to applied semantic meaning. The characteristic differences in Detail text are the default weight, size, letter spacing, all-caps treatment for marketing contexts, and color usage. Detail text defaults to Medium weight, a smaller font size, and lighter shades of gray. It also uses the updated per-font-size line height, while Body text uses the spacious line height multiplier of 1.5x font-size."
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"type": "guideline",
|
|
106
|
+
"content": "Component is the type style that is applied to text within UI components."
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"type": "guideline",
|
|
110
|
+
"content": "In Spectrum 1, the “component” line height meant “a line-height applied to text within UI elements.” Spectrum 2 expands on this by having text styles in the Spectrum Figma libraries, to let you quickly apply text formatting to any text element in a design. This will help you stay connected to the system without needing to detach or override other text styles like Body or Title."
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"type": "guideline",
|
|
114
|
+
"content": "The Component type style comes in multiple font weights to support its flexibility across components in the design system. For example, the Spectrum 2 button uses the Component type style with bold weight. Action button uses the Component type style with medium weight, and text field uses the Component type style with regular weight."
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"type": "guideline",
|
|
118
|
+
"content": "Code is a typography component used for text that represents code. The default font for showing code is Source Code Pro."
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"type": "guideline",
|
|
122
|
+
"content": "The following are some general examples to show how the Spectrum 2 typography system all comes together, and how type styles can be used together to create visual hierarchy."
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"type": "guideline",
|
|
126
|
+
"content": "In this file browsing example, Heading, Title, Component, and Detail style text are used to create hierarchy throughout the page."
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"type": "guideline",
|
|
130
|
+
"content": "In this commenting example, Title, Body, Component, and Detail style text are used to create hierarchy within the comments panel."
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"type": "guideline",
|
|
134
|
+
"content": "In instances where Spectrum’s typefaces might fail to load properly, there are defined fallback fonts that have been selected based on operating system consistency and similar anatomical relationships."
|
|
135
|
+
}
|
|
136
|
+
],
|
|
137
|
+
"sourceUrl": "https://s2.spectrum.corp.adobe.com/page/typography-fundamentals/",
|
|
138
|
+
"lastUpdated": "2026-02-02",
|
|
139
|
+
"status": "published",
|
|
140
|
+
"tags": ["designing"],
|
|
141
|
+
"related": [{ "ref": "background-layers" }, { "ref": "fonts" }]
|
|
142
|
+
}
|
|
@@ -8,89 +8,100 @@
|
|
|
8
8
|
{ "type": "purpose", "content": "Using icons" },
|
|
9
9
|
{
|
|
10
10
|
"type": "guideline",
|
|
11
|
-
"content": "
|
|
11
|
+
"content": "Workflow icons are graphical metaphors or symbols that users interact with to navigate and manipulate objects. They maintain a consistent size and style within each platform to ensure visual harmony and usability. While consistency is key, it is now fairly common to combine different icon scales to support hierarchy and context."
|
|
12
12
|
},
|
|
13
13
|
{
|
|
14
14
|
"type": "guideline",
|
|
15
|
-
"content": "
|
|
15
|
+
"content": "UI icons are atomic pieces — like arrows, crosses, or chevrons — that are part of a component. They aren’t metaphorical per se, but they’re an indication of how users interact with a component (for example, what happens when you click on a disclosure chevron or drag handle in a panel). Unlike workflow icons, UI icons come in assorted sizes."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"type": "guideline",
|
|
19
|
+
"content": "Status badges are indicators that communicate a variety of statuses or states, such as presence, validity, completeness, and more. Premium badges indicate that a feature is only available to paying customers."
|
|
16
20
|
},
|
|
17
21
|
{
|
|
18
22
|
"type": "guideline",
|
|
19
|
-
"content": "
|
|
23
|
+
"content": "Spectrum 2 workflow icons come in two sizes per platform, but with one stroke weight: 1.5 px."
|
|
20
24
|
},
|
|
21
25
|
{
|
|
22
26
|
"type": "guideline",
|
|
23
|
-
"content": "
|
|
27
|
+
"content": "The primary size for Desktop/Web is a canvas of 20 px with the icon being \\~18 px. There’s a secondary size for UI areas — like a layers panel, lists, or cards — which require smaller versions and come in a 16 px canvas with the icon being \\~14 px."
|
|
24
28
|
},
|
|
25
29
|
{
|
|
26
30
|
"type": "guideline",
|
|
27
|
-
"content": "
|
|
31
|
+
"content": "The equivalent for Mobile is the primary size of the canvas at 24 px with the icon being \\~22 px. The secondary size canvas is 20 px with the icon being \\~18px."
|
|
28
32
|
},
|
|
29
33
|
{
|
|
30
34
|
"type": "guideline",
|
|
31
|
-
"content": "
|
|
35
|
+
"content": "In Spectrum components, workflow icons scale up or down slightly when they’re used. For example: a 20 px icon in a medium-sized component will be slightly larger in a large-sized component, and smaller in a small-sized component. UI icons come in their respective size range, since Spectrum components treat these differently."
|
|
32
36
|
},
|
|
33
37
|
{
|
|
34
38
|
"type": "guideline",
|
|
35
|
-
"content": "
|
|
39
|
+
"content": "“S2” is the prefix for Spectrum 2 icons."
|
|
36
40
|
},
|
|
37
41
|
{
|
|
38
42
|
"type": "guideline",
|
|
39
|
-
"content": "
|
|
43
|
+
"content": "Here’s a breakdown of each part of the icon naming convention:"
|
|
40
44
|
},
|
|
41
45
|
{
|
|
42
46
|
"type": "guideline",
|
|
43
|
-
"content": "
|
|
47
|
+
"content": "An example of the naming convention for Spectrum 2 (S2) icons."
|
|
44
48
|
},
|
|
45
49
|
{
|
|
46
50
|
"type": "guideline",
|
|
47
|
-
"content": "
|
|
51
|
+
"content": "Keeping one stroke weight consistent within a size range helps to balance out and contrast the visual weight. For Web and Desktop platforms, icons are designed at a 20 px canvas as default with a 1.5 px stroke, resulting in a 1.64 px stroke when sized up to 24 px for mobile. This helps keep a unified look, and it builds icons efficiently since it’s not necessary to redraw them for each platform."
|
|
48
52
|
},
|
|
49
53
|
{
|
|
50
54
|
"type": "guideline",
|
|
51
|
-
"content": "
|
|
55
|
+
"content": "All icons with angles get a 1.5 px rounding treatment to achieve a rounder appearance. Inner corners are slightly rounded, and all stroke ends have rounded end caps. By default, the corner radius can be decreased in case a metaphor requires pointy edges."
|
|
52
56
|
},
|
|
53
57
|
{
|
|
54
58
|
"type": "guideline",
|
|
55
|
-
"content": "
|
|
59
|
+
"content": "Icon designs include a safe area to ensure there’s flexibility for finding the best positioning and balance in a layout. The main shape should be centered, and modifier placement is primarily at the bottom right corner of the canvas. Notification dots appear at the top right corner (these are mostly added programmatically)."
|
|
56
60
|
},
|
|
57
61
|
{
|
|
58
62
|
"type": "guideline",
|
|
59
|
-
"content": "
|
|
63
|
+
"content": "The intersections of badge/modifier placement."
|
|
60
64
|
},
|
|
61
65
|
{
|
|
62
|
-
"type": "
|
|
63
|
-
"content": "
|
|
64
|
-
"dont": "All icons are crafted with a specific stroke weight, size, and canvas to match a larger icon set. Resizing or scaling them can change the appearance, creating inconsistency within a product. Ask for more sizes by submitting a request to the Icons team."
|
|
66
|
+
"type": "guideline",
|
|
67
|
+
"content": "The vertical spacing between icons and text is adjusted to create balance."
|
|
65
68
|
},
|
|
66
69
|
{
|
|
67
|
-
"type": "
|
|
68
|
-
"content": "
|
|
69
|
-
|
|
70
|
+
"type": "guideline",
|
|
71
|
+
"content": "For example: in a medium-sized component, shifting the text box 1 px up and the icon box 1 px down inside a button better balances out the appearance and refines the relationship with text in Adobe Clean Medium."
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"type": "guideline",
|
|
75
|
+
"content": "An example of icon and text alignment in a button."
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"type": "guideline",
|
|
79
|
+
"content": "An example of a quiet action button with a 16 px icon."
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"type": "guideline",
|
|
83
|
+
"content": "The new SVG native format for icons allows for automatic tinting to match different states (hover, selected, etc.) and can programmatically switch depending on UI brightness or color theme. It’s not about tinting the whole SVG in one color, but tinting single elements inside the SVG. To do this, the new SVGs use named CSS variables to set color values for every element. There will be Spectrum tokens for this, so automatic tinting will work out-of-the-box in any product using Spectrum CSS."
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"type": "guideline",
|
|
87
|
+
"content": "For other apps, it will be easier to add the needed color information to their own CSS. Transparencies will be used to achieve tints of the primary icon color, making it easy to use at least the gray tone when it’s not possible to work with CSS variables."
|
|
70
88
|
},
|
|
71
89
|
{
|
|
72
90
|
"type": "guideline",
|
|
73
|
-
"content": "
|
|
91
|
+
"content": "Example of SVG code. The highlighted sections show that two dynamic colors will be changed programmatically, and that there's a white exclamation mark which should always be displayed in white."
|
|
74
92
|
},
|
|
75
93
|
{
|
|
76
94
|
"type": "guideline",
|
|
77
|
-
"content": "
|
|
95
|
+
"content": "If you diverge from Spectrum colors, you’ll need to make sure that your design has enough contrast between the icon and the background. Use subtle fills in light and dark themes to maintain legibility without overpowering the UI. Make sure that the icons remain legible and distinguishable across varied backgrounds and themes."
|
|
78
96
|
},
|
|
79
97
|
{
|
|
80
98
|
"type": "guideline",
|
|
81
|
-
"content": "
|
|
99
|
+
"content": "The library currently only includes a subset of icons, and are for mock-up purposes only. If you need to create a mock-up with an icon that isn’t available yet, just use a placeholder icon. Don’t use unapproved icons in your work (for example, downloaded from Noun Project, or icons you’ve created yourself)."
|
|
82
100
|
}
|
|
83
101
|
],
|
|
84
|
-
"sourceUrl": "https://
|
|
85
|
-
"lastUpdated": "2026-
|
|
102
|
+
"sourceUrl": "https://s2.spectrum.corp.adobe.com/page/using-icons/",
|
|
103
|
+
"lastUpdated": "2026-02-02",
|
|
86
104
|
"status": "published",
|
|
87
|
-
"tags": [
|
|
88
|
-
|
|
89
|
-
"Workfront",
|
|
90
|
-
"Icon Finder",
|
|
91
|
-
"Noun Project",
|
|
92
|
-
"naming convention",
|
|
93
|
-
"UI icons",
|
|
94
|
-
"workflow icons"
|
|
95
|
-
]
|
|
105
|
+
"tags": ["designing"],
|
|
106
|
+
"related": [{ "ref": "icon-fundamentals" }, { "ref": "illustrations" }]
|
|
96
107
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adobe/spectrum-design-data",
|
|
3
|
-
"version": "3.3.0
|
|
3
|
+
"version": "3.3.0",
|
|
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": {
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"devDependencies": {
|
|
63
63
|
"ajv": "^8.12.0",
|
|
64
64
|
"ajv-formats": "^3.0.1",
|
|
65
|
-
"@adobe/design-data-spec": "4.
|
|
65
|
+
"@adobe/design-data-spec": "4.4.0"
|
|
66
66
|
},
|
|
67
67
|
"scripts": {}
|
|
68
68
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/registry-value.json",
|
|
3
|
+
"type": "platform-implementation",
|
|
4
|
+
"description": "Machine-readable ids for platform-manifest implementations (repos or in-monorepo directories that own a Layer 2 platform manifest.json). Distinct from platforms.json, which enumerates device targets (desktop/mobile/web/ios/android) referenced by token names — this registry enumerates concrete implementation projects a manifest's `platform` field may declare (spec/manifest.md#identity-fields). Referencing an id here is a SHOULD, not a MUST: a manifest may declare a `platform` value not yet listed while a new implementation is incubating.",
|
|
5
|
+
"values": [
|
|
6
|
+
{
|
|
7
|
+
"id": "react-spectrum",
|
|
8
|
+
"label": "React Spectrum",
|
|
9
|
+
"description": "Adobe's React implementation of Spectrum, incubating its platform manifest at platforms/react-spectrum/ ahead of an eventual hand-off to the React Spectrum team.",
|
|
10
|
+
"repository": "https://github.com/adobe/react-spectrum"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"id": "web-components",
|
|
14
|
+
"label": "Spectrum Web Components",
|
|
15
|
+
"description": "Adobe's Web Components implementation of Spectrum, incubating its platform manifest at platforms/web-components/ ahead of an eventual hand-off to the Spectrum Web Components team.",
|
|
16
|
+
"repository": "https://github.com/adobe/spectrum-web-components"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"id": "ios",
|
|
20
|
+
"label": "Spectrum iOS",
|
|
21
|
+
"description": "Adobe's iOS implementation of Spectrum, with its platform manifest already externalized (see epic h890.22).",
|
|
22
|
+
"repository": "https://github.com/GarthDB/spectrum-ios-design-data"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"id": "android",
|
|
26
|
+
"label": "Spectrum Android",
|
|
27
|
+
"description": "Adobe's Android implementation of Spectrum. No platform manifest exists yet (see epic h890.22.6, follow-up to the iOS work)."
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
}
|
|
@@ -1,50 +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/ai-resource-guide.json",
|
|
4
|
-
"name": "ai-resource-guide",
|
|
5
|
-
"title": "AI resource guide",
|
|
6
|
-
"category": "support",
|
|
7
|
-
"documentBlocks": [
|
|
8
|
-
{ "type": "purpose", "content": "AI resource guide" },
|
|
9
|
-
{
|
|
10
|
-
"type": "guideline",
|
|
11
|
-
"content": "For component specs, anatomy, usage guidelines, design tokens, and Figma resources. View the Spectrum 2 Design Data website View the Figma MCP (connects Claude to Figma libraries)"
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
"type": "guideline",
|
|
15
|
-
"content": "Protopack is the Design Technology team's streamlined prototyping foundation. Protopack simplifies setup, includes production-ready Spectrum components, integrates with Adobe services, and supports easy deployment. It removes much of the configuration overhead so you can focus on designing, iterating, and exploring ideas.\" View the AD AI Prototyping Quick Start wiki View the Awesome Deployment Platform wiki Join the Protopack Slack channel"
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
"type": "guideline",
|
|
19
|
-
"content": "Protopack for React Spectrum.\n\nDownload Protopack and view the RSP template View the React Spectrum Starter template in the Protopack app View the React Spectrum AI integration overview View the React Spectrum website"
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
"type": "guideline",
|
|
23
|
-
"content": "Protopack for Spectrum Web Components.\n\nDownload Protopack and view the SWC template View the Spectrum 2 Web Components Starter template in the Protopack app View the Spectrum Web Components AI documentation View the Spectrum Web Components website"
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
"type": "guideline",
|
|
27
|
-
"content": "React Spectrum.\n\nView the React Spectrum AI integration overview View the React Spectrum website View the React Spectrum GitHub repository"
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
"type": "guideline",
|
|
31
|
-
"content": "Spectrum Web Components.\n\nView the Spectrum Web Components AI documentation View the Spectrum Web Components website View the Spectrum Web Components GitHub repository"
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
"type": "guideline",
|
|
35
|
-
"content": "Spectrum design data.\n\nView the Spectrum 2 Design Data AI resources View the Spectrum 2 Design Data website View the Spectrum 2 Design Data tools overview View the Spectrum 2 Design Data GitHub repository"
|
|
36
|
-
}
|
|
37
|
-
],
|
|
38
|
-
"sourceUrl": "https://main--spectrum-hub--adobe.aem.live/support/ai-resource-guide",
|
|
39
|
-
"lastUpdated": "2026-08-27",
|
|
40
|
-
"status": "published",
|
|
41
|
-
"tags": [
|
|
42
|
-
"AI tooling",
|
|
43
|
-
"Protopack",
|
|
44
|
-
"Design data",
|
|
45
|
-
"Figma",
|
|
46
|
-
"Claude Enterprise",
|
|
47
|
-
"Prototyping",
|
|
48
|
-
"design-to-code"
|
|
49
|
-
]
|
|
50
|
-
}
|