@adobe/spectrum-design-data 0.3.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/LICENSE +1 -1
  2. package/components/accordion.json +108 -194
  3. package/components/action-bar.json +64 -97
  4. package/components/action-button.json +95 -230
  5. package/components/action-group.json +88 -86
  6. package/components/alert-banner.json +104 -76
  7. package/components/alert-dialog.json +78 -126
  8. package/components/avatar-group.json +61 -119
  9. package/components/avatar.json +98 -212
  10. package/components/badge.json +138 -256
  11. package/components/breadcrumbs.json +95 -89
  12. package/components/button-group.json +57 -48
  13. package/components/button.json +151 -368
  14. package/components/calendar.json +97 -34
  15. package/components/cards.json +109 -250
  16. package/components/checkbox-group.json +50 -58
  17. package/components/checkbox.json +121 -186
  18. package/components/close-button.json +61 -124
  19. package/components/coach-indicator.json +63 -72
  20. package/components/coach-mark.json +89 -93
  21. package/components/color-area.json +68 -94
  22. package/components/color-handle.json +39 -79
  23. package/components/color-loupe.json +35 -52
  24. package/components/color-slider.json +95 -116
  25. package/components/color-wheel.json +67 -73
  26. package/components/combo-box.json +243 -331
  27. package/components/contextual-help.json +86 -175
  28. package/components/date-picker.json +139 -179
  29. package/components/divider.json +30 -69
  30. package/components/drop-zone.json +51 -92
  31. package/components/field-label.json +75 -117
  32. package/components/help-text.json +81 -105
  33. package/components/illustrated-message.json +106 -73
  34. package/components/in-line-alert.json +50 -83
  35. package/components/link.json +63 -85
  36. package/components/list-view.json +107 -146
  37. package/components/menu.json +180 -274
  38. package/components/meter.json +72 -118
  39. package/components/number-field.json +213 -305
  40. package/components/picker.json +208 -320
  41. package/components/popover.json +94 -129
  42. package/components/progress-bar.json +94 -131
  43. package/components/progress-circle.json +45 -72
  44. package/components/radio-button.json +87 -156
  45. package/components/radio-group.json +107 -74
  46. package/components/rating.json +66 -99
  47. package/components/search-field.json +132 -202
  48. package/components/segmented-control.json +94 -109
  49. package/components/select-box.json +119 -179
  50. package/components/side-navigation.json +108 -118
  51. package/components/slider.json +143 -228
  52. package/components/standard-dialog.json +96 -114
  53. package/components/standard-panel.json +105 -53
  54. package/components/status-light.json +104 -240
  55. package/components/steplist.json +77 -161
  56. package/components/swatch-group.json +42 -58
  57. package/components/swatch.json +75 -162
  58. package/components/switch.json +101 -189
  59. package/components/table.json +97 -102
  60. package/components/tabs.json +77 -104
  61. package/components/tag-field.json +86 -150
  62. package/components/tag-group.json +50 -44
  63. package/components/tag.json +81 -198
  64. package/components/takeover-dialog.json +59 -57
  65. package/components/text-area.json +200 -323
  66. package/components/text-field.json +183 -304
  67. package/components/thumbnail.json +63 -105
  68. package/components/toast.json +97 -83
  69. package/components/tooltip.json +104 -96
  70. package/components/tree-view.json +169 -181
  71. package/guidelines/app-frame-content-area.json +87 -0
  72. package/guidelines/app-frame-creating-bluelines.json +61 -0
  73. package/guidelines/app-frame-header.json +75 -0
  74. package/guidelines/app-frame-overview.json +167 -0
  75. package/guidelines/app-frame-side-navigation.json +138 -0
  76. package/guidelines/attention-hierarchy.json +42 -0
  77. package/guidelines/background-layers.json +41 -0
  78. package/guidelines/brand.json +50 -0
  79. package/guidelines/colors.json +65 -0
  80. package/guidelines/containers.json +65 -0
  81. package/guidelines/developer-overview.json +38 -0
  82. package/guidelines/faqs.json +35 -0
  83. package/guidelines/fonts.json +58 -0
  84. package/guidelines/grays.json +69 -0
  85. package/guidelines/icon-fundamentals.json +45 -0
  86. package/guidelines/illustrations.json +114 -0
  87. package/guidelines/introduction.json +34 -0
  88. package/guidelines/manifest.json +204 -0
  89. package/guidelines/motion.json +41 -0
  90. package/guidelines/object-styles.json +105 -0
  91. package/guidelines/principles.json +30 -0
  92. package/guidelines/resources.json +59 -0
  93. package/guidelines/spacing.json +25 -0
  94. package/guidelines/states.json +34 -0
  95. package/guidelines/typography-fundamentals.json +145 -0
  96. package/guidelines/using-icons.json +110 -0
  97. package/package.json +5 -2
  98. package/tokens/layout-component.tokens.json +72 -36
  99. package/tokens/layout.tokens.json +207 -92
@@ -0,0 +1,145 @@
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": [
142
+ { "ref": "background-layers", "kind": "guideline" },
143
+ { "ref": "fonts", "kind": "guideline" }
144
+ ]
145
+ }
@@ -0,0 +1,110 @@
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/using-icons.json",
4
+ "name": "using-icons",
5
+ "title": "Using icons",
6
+ "category": "designing",
7
+ "documentBlocks": [
8
+ { "type": "purpose", "content": "Using icons" },
9
+ {
10
+ "type": "guideline",
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
+ },
13
+ {
14
+ "type": "guideline",
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."
20
+ },
21
+ {
22
+ "type": "guideline",
23
+ "content": "Spectrum 2 workflow icons come in two sizes per platform, but with one stroke weight: 1.5 px."
24
+ },
25
+ {
26
+ "type": "guideline",
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."
28
+ },
29
+ {
30
+ "type": "guideline",
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."
32
+ },
33
+ {
34
+ "type": "guideline",
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."
36
+ },
37
+ {
38
+ "type": "guideline",
39
+ "content": "“S2” is the prefix for Spectrum 2 icons."
40
+ },
41
+ {
42
+ "type": "guideline",
43
+ "content": "Here’s a breakdown of each part of the icon naming convention:"
44
+ },
45
+ {
46
+ "type": "guideline",
47
+ "content": "An example of the naming convention for Spectrum 2 (S2) icons."
48
+ },
49
+ {
50
+ "type": "guideline",
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."
52
+ },
53
+ {
54
+ "type": "guideline",
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."
56
+ },
57
+ {
58
+ "type": "guideline",
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)."
60
+ },
61
+ {
62
+ "type": "guideline",
63
+ "content": "The intersections of badge/modifier placement."
64
+ },
65
+ {
66
+ "type": "guideline",
67
+ "content": "The vertical spacing between icons and text is adjusted to create balance."
68
+ },
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."
88
+ },
89
+ {
90
+ "type": "guideline",
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."
92
+ },
93
+ {
94
+ "type": "guideline",
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."
96
+ },
97
+ {
98
+ "type": "guideline",
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)."
100
+ }
101
+ ],
102
+ "sourceUrl": "https://s2.spectrum.corp.adobe.com/page/using-icons/",
103
+ "lastUpdated": "2026-02-02",
104
+ "status": "published",
105
+ "tags": ["designing"],
106
+ "related": [
107
+ { "ref": "icon-fundamentals", "kind": "guideline" },
108
+ { "ref": "illustrations", "kind": "guideline" }
109
+ ]
110
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adobe/spectrum-design-data",
3
- "version": "0.3.0",
3
+ "version": "0.6.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": {
@@ -22,6 +22,8 @@
22
22
  "./components/*": "./components/*.json",
23
23
  "./fields/*": "./fields/*.json",
24
24
  "./mode-sets/*": "./mode-sets/*.json",
25
+ "./guidelines/manifest.json": "./guidelines/manifest.json",
26
+ "./guidelines/*": "./guidelines/*.json",
25
27
  "./registry/sizes.json": "./registry/sizes.json",
26
28
  "./registry/states.json": "./registry/states.json",
27
29
  "./registry/variants.json": "./registry/variants.json",
@@ -54,13 +56,14 @@
54
56
  "components/",
55
57
  "fields/",
56
58
  "mode-sets/",
59
+ "guidelines/",
57
60
  "registry/",
58
61
  "README.md"
59
62
  ],
60
63
  "devDependencies": {
61
64
  "ajv": "^8.12.0",
62
65
  "ajv-formats": "^3.0.1",
63
- "@adobe/design-data-spec": "2.2.0"
66
+ "@adobe/design-data-spec": "2.4.0"
64
67
  },
65
68
  "scripts": {}
66
69
  }