@adobe/spectrum-design-data 0.4.0 → 0.7.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 +108 -194
- package/components/action-bar.json +64 -97
- package/components/action-button.json +95 -230
- package/components/action-group.json +88 -86
- package/components/alert-banner.json +104 -76
- package/components/alert-dialog.json +78 -126
- package/components/avatar-group.json +61 -119
- package/components/avatar.json +98 -212
- package/components/badge.json +138 -256
- package/components/breadcrumbs.json +95 -89
- package/components/button-group.json +57 -48
- package/components/button.json +151 -368
- package/components/calendar.json +97 -34
- package/components/cards.json +109 -250
- package/components/checkbox-group.json +50 -58
- package/components/checkbox.json +121 -186
- package/components/close-button.json +61 -124
- package/components/coach-indicator.json +63 -72
- package/components/coach-mark.json +89 -93
- package/components/color-area.json +68 -94
- package/components/color-handle.json +39 -79
- package/components/color-loupe.json +35 -52
- package/components/color-slider.json +95 -116
- package/components/color-wheel.json +67 -73
- package/components/combo-box.json +243 -331
- package/components/contextual-help.json +86 -175
- package/components/date-picker.json +139 -179
- package/components/divider.json +30 -69
- package/components/drop-zone.json +51 -92
- package/components/field-label.json +75 -117
- package/components/help-text.json +81 -105
- package/components/illustrated-message.json +106 -73
- package/components/in-line-alert.json +50 -83
- package/components/link.json +63 -85
- package/components/list-view.json +107 -146
- package/components/menu.json +180 -274
- package/components/meter.json +72 -118
- package/components/number-field.json +213 -305
- package/components/picker.json +208 -320
- package/components/popover.json +94 -129
- package/components/progress-bar.json +94 -131
- package/components/progress-circle.json +45 -72
- package/components/radio-button.json +87 -156
- package/components/radio-group.json +107 -74
- package/components/rating.json +66 -99
- package/components/search-field.json +132 -202
- package/components/segmented-control.json +94 -109
- package/components/select-box.json +119 -179
- package/components/side-navigation.json +108 -118
- package/components/slider.json +143 -228
- package/components/standard-dialog.json +96 -114
- package/components/standard-panel.json +105 -53
- package/components/status-light.json +104 -240
- package/components/steplist.json +77 -161
- package/components/swatch-group.json +42 -58
- package/components/swatch.json +75 -162
- package/components/switch.json +101 -189
- package/components/table.json +97 -102
- package/components/tabs.json +77 -104
- package/components/tag-field.json +86 -150
- package/components/tag-group.json +50 -44
- package/components/tag.json +81 -198
- package/components/takeover-dialog.json +59 -57
- package/components/text-area.json +200 -323
- package/components/text-field.json +183 -304
- package/components/thumbnail.json +63 -105
- package/components/toast.json +97 -83
- package/components/tooltip.json +104 -96
- package/components/tree-view.json +169 -181
- 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 +167 -0
- package/guidelines/app-frame-side-navigation.json +138 -0
- package/guidelines/attention-hierarchy.json +42 -0
- package/guidelines/background-layers.json +38 -0
- package/guidelines/brand.json +50 -0
- package/guidelines/colors.json +62 -0
- package/guidelines/containers.json +62 -0
- package/guidelines/developer-overview.json +35 -0
- package/guidelines/faqs.json +35 -0
- package/guidelines/fonts.json +58 -0
- package/guidelines/grays.json +66 -0
- package/guidelines/icon-fundamentals.json +45 -0
- package/guidelines/illustrations.json +111 -0
- package/guidelines/introduction.json +31 -0
- package/guidelines/manifest.json +204 -0
- package/guidelines/motion.json +41 -0
- package/guidelines/object-styles.json +102 -0
- package/guidelines/principles.json +30 -0
- package/guidelines/resources.json +59 -0
- package/guidelines/spacing.json +25 -0
- package/guidelines/states.json +34 -0
- package/guidelines/typography-fundamentals.json +142 -0
- package/guidelines/using-icons.json +107 -0
- package/package.json +4 -2
|
@@ -9,6 +9,96 @@
|
|
|
9
9
|
"category": "feedback",
|
|
10
10
|
"documentationUrl": "https://spectrum.adobe.com/page/illustrated-message/"
|
|
11
11
|
},
|
|
12
|
+
"documentBlocks": [
|
|
13
|
+
{
|
|
14
|
+
"type": "purpose",
|
|
15
|
+
"content": "An illustrated message displays an illustration with a short title and description, often used for empty states or error states."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"type": "guideline",
|
|
19
|
+
"content": "Illustrated messages pair text with imagery to communicate a message with visual emphasis. They’re commonly used in empty states, feedback states, and error messaging."
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"type": "guideline",
|
|
23
|
+
"content": "The secondary button provides a less prominent action that supports the overall message but is not the primary goal. It offers users an alternative path that’s relevant but lower priority."
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"type": "guideline",
|
|
27
|
+
"content": "The primary button serves as the main call to action. It’s the clearest, most direct path forward for the user, and it should align with the purpose of the message. In an illustrated message—where visuals and copy work together to guide attention—the primary button anchors the experience."
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"type": "guideline",
|
|
31
|
+
"content": "The description supports the illustration and buttons by delivering the core message in plain language. It helps users quickly grasp the purpose of the message and decide what to do next."
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"type": "guideline",
|
|
35
|
+
"content": "A clear title for the description section in an illustrated message"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"type": "guideline",
|
|
39
|
+
"content": "Orientation affects how users perceive and interact with content. Illustrated message layout can be horizontal or vertical."
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"type": "guideline",
|
|
43
|
+
"content": "Illustrated messages come in three different sizes: small, medium, and large. The medium size is the default and most frequently used option."
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"type": "guideline",
|
|
47
|
+
"content": "The illustration sets the tone and draws attention. It visually reinforces the message’s purpose and helps users quickly understand the context before reading any text or taking action."
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"type": "guideline",
|
|
51
|
+
"content": "Motion is an optional feature of illustrations, but it is not a requirement. When used, they should feel natural, intentional, and aligned with the emotional and functional goals of the message."
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"type": "guideline",
|
|
55
|
+
"content": "Buttons in an illustrated message are designed to guide users toward a clear next step by translating the message’s intent into direct, actionable choices. They help users understand what will happen next and support decision-making within the context of the message."
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"type": "guideline",
|
|
59
|
+
"content": "Horizontal orientation works best when there’s ample screen space, such as on desktop or wide containers, and when the message needs to sit alongside related content. It allows for a balanced layout where the illustration and text can appear side by side, supporting quick scanning and visual clarity."
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"type": "guideline",
|
|
63
|
+
"content": "Vertical orientation is suited for constrained spaces like mobile screens or narrow containers. It supports a linear, top-to-bottom flow that guides the user through the illustration, description, and action in sequence."
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"type": "guideline",
|
|
67
|
+
"content": "The linear illustration style works well for layouts that feature a number of illustrations together (such as a collection of cards). Linear illustrations draw a lower level of attention and blend in well with the UI, so it’s appropriate to use them in a collection of elements. Gradient illustrations draw a lot of attention in multiples, so they need to be used sparingly and sparsely."
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"type": "guideline",
|
|
71
|
+
"content": "Gradient illustrations draw more attention because they’re very colorful. Using more then one in a given view will make the UI too busy and too loud. Use gradient illustrations sparingly to guide a user’s attention to engaging, high-value actions such as uploads, starting projects, or commenting."
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"type": "guideline",
|
|
75
|
+
"content": "Don’t scale or resize linear illustrations. The stroke weight and the corner radii are already set to work best in the given canvas sizes."
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"type": "guideline",
|
|
79
|
+
"content": "Motion in illustrated messages can be used optionally to enhance engagement and reinforce meaning without overwhelming the user. When applied thoughtfully, they add subtle motion to the illustration—such as a gentle bounce, fade, or loop—that draws attention and supports the tone of the message."
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"type": "guideline",
|
|
83
|
+
"content": "These animations should be purposeful: they can signal success, soften interruptions, or guide the eye toward the primary action. However, they should never distract from the content or slow down the experience. Use them sparingly, especially in system messages or time-sensitive flows, and ensure they perform well across devices."
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"type": "guideline",
|
|
87
|
+
"content": "Errors or critical messages should only use linear illustrations. Gradient illustrations use colors that can be misunderstood as semantic colors (e.g., green for positive, red for negative). They also have an upbeat and inspirational tone, which isn’t appropriate in situations where a user may be frustrated by something that’s an inconvenience or is disruptive to them in accomplishing their work."
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"type": "guideline",
|
|
91
|
+
"content": "Use drag and drop when the user needs to complete a hands-on task—like uploading files, rearranging items, or customizing content. It’s an interaction pattern that supports direct manipulation, giving users a sense of control and immediacy. Drag and drop is ideal when the goal is action-oriented and the interface benefits from tactile engagement."
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"type": "guideline",
|
|
95
|
+
"content": "Use an illustrated message when the goal is to communicate a state, guide a decision, or prompt an action. Illustrated messages are best for moments of transition—empty states, confirmations, errors, or onboarding—where visual context and clear messaging help orient the user. They’re not interactive themselves, but they support interaction by setting expectations and offering clear next steps."
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"type": "guideline",
|
|
99
|
+
"content": "An illustrated message can be interruptive, so make it readily apparent that it’s adding value to a user’s experience or is putting the user on the right path to accomplish their goals. Don’t use an illustrated message for purely promotional purposes or for upsells of unrelated actions."
|
|
100
|
+
}
|
|
101
|
+
],
|
|
12
102
|
"options": {
|
|
13
103
|
"illustration": {
|
|
14
104
|
"type": "string",
|
|
@@ -18,30 +108,13 @@
|
|
|
18
108
|
"type": "string",
|
|
19
109
|
"default": "m",
|
|
20
110
|
"description": "Size of the illustration.",
|
|
21
|
-
"values": [
|
|
22
|
-
{
|
|
23
|
-
"value": "s"
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
"value": "m"
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
"value": "l"
|
|
30
|
-
}
|
|
31
|
-
]
|
|
111
|
+
"values": [{ "value": "s" }, { "value": "m" }, { "value": "l" }]
|
|
32
112
|
},
|
|
33
113
|
"orientation": {
|
|
34
114
|
"type": "string",
|
|
35
115
|
"default": "vertical",
|
|
36
116
|
"description": "Orientation of the illustrated message.",
|
|
37
|
-
"values": [
|
|
38
|
-
{
|
|
39
|
-
"value": "vertical"
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
"value": "horizontal"
|
|
43
|
-
}
|
|
44
|
-
]
|
|
117
|
+
"values": [{ "value": "vertical" }, { "value": "horizontal" }]
|
|
45
118
|
},
|
|
46
119
|
"title": {
|
|
47
120
|
"type": "string",
|
|
@@ -60,9 +133,7 @@
|
|
|
60
133
|
"description": "Label for the secondary action button. If undefined, no secondary action is shown."
|
|
61
134
|
}
|
|
62
135
|
},
|
|
63
|
-
"lifecycle": {
|
|
64
|
-
"introduced": "1.0.0-draft"
|
|
65
|
-
},
|
|
136
|
+
"lifecycle": { "introduced": "1.0.0-draft" },
|
|
66
137
|
"tokenBindings": [
|
|
67
138
|
{
|
|
68
139
|
"token": "illustrated-message-vertical-maximum-width",
|
|
@@ -72,14 +143,8 @@
|
|
|
72
143
|
"token": "illustrated-message-horizontal-maximum-width",
|
|
73
144
|
"context": "Maximum width (Horizontal variant)"
|
|
74
145
|
},
|
|
75
|
-
{
|
|
76
|
-
|
|
77
|
-
"context": "Spacing (Illustration to heading)"
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
"token": "spacing-100",
|
|
81
|
-
"context": "Spacing (Illustration to heading)"
|
|
82
|
-
},
|
|
146
|
+
{ "token": "spacing-200", "context": "Spacing (Illustration to heading)" },
|
|
147
|
+
{ "token": "spacing-100", "context": "Spacing (Illustration to heading)" },
|
|
83
148
|
{
|
|
84
149
|
"token": "spacing-75",
|
|
85
150
|
"context": "Spacing (Heading to description - vertical)"
|
|
@@ -88,22 +153,10 @@
|
|
|
88
153
|
"token": "spacing-300",
|
|
89
154
|
"context": "Spacing (Description to action - vertical)"
|
|
90
155
|
},
|
|
91
|
-
{
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
},
|
|
95
|
-
{
|
|
96
|
-
"token": "title-sans-serif-font-weight",
|
|
97
|
-
"context": "Title"
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
"token": "title-sans-serif-font-style",
|
|
101
|
-
"context": "Title"
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
"token": "title-line-height",
|
|
105
|
-
"context": "Title"
|
|
106
|
-
},
|
|
156
|
+
{ "token": "title-sans-serif-font-family", "context": "Title" },
|
|
157
|
+
{ "token": "title-sans-serif-font-weight", "context": "Title" },
|
|
158
|
+
{ "token": "title-sans-serif-font-style", "context": "Title" },
|
|
159
|
+
{ "token": "title-line-height", "context": "Title" },
|
|
107
160
|
{
|
|
108
161
|
"token": "illustrated-message-small-title-font-size",
|
|
109
162
|
"context": "Title"
|
|
@@ -128,22 +181,10 @@
|
|
|
128
181
|
"token": "illustrated-message-large-cjk-title-font-size",
|
|
129
182
|
"context": "Title"
|
|
130
183
|
},
|
|
131
|
-
{
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
},
|
|
135
|
-
{
|
|
136
|
-
"token": "body-sans-serif-font-weight",
|
|
137
|
-
"context": "Description"
|
|
138
|
-
},
|
|
139
|
-
{
|
|
140
|
-
"token": "body-sans-serif-font-style",
|
|
141
|
-
"context": "Description"
|
|
142
|
-
},
|
|
143
|
-
{
|
|
144
|
-
"token": "line-height-200",
|
|
145
|
-
"context": "Description"
|
|
146
|
-
},
|
|
184
|
+
{ "token": "body-sans-serif-font-family", "context": "Description" },
|
|
185
|
+
{ "token": "body-sans-serif-font-weight", "context": "Description" },
|
|
186
|
+
{ "token": "body-sans-serif-font-style", "context": "Description" },
|
|
187
|
+
{ "token": "line-height-200", "context": "Description" },
|
|
147
188
|
{
|
|
148
189
|
"token": "illustrated-message-small-body-font-size",
|
|
149
190
|
"context": "Description"
|
|
@@ -160,16 +201,8 @@
|
|
|
160
201
|
"token": "neutral-content-color-default",
|
|
161
202
|
"context": "Illustration color"
|
|
162
203
|
},
|
|
163
|
-
{
|
|
164
|
-
|
|
165
|
-
"context": "Heading color"
|
|
166
|
-
},
|
|
167
|
-
{
|
|
168
|
-
"token": "body-color",
|
|
169
|
-
"context": "Description color"
|
|
170
|
-
}
|
|
204
|
+
{ "token": "heading-color", "context": "Heading color" },
|
|
205
|
+
{ "token": "body-color", "context": "Description color" }
|
|
171
206
|
],
|
|
172
|
-
"accessibility": {
|
|
173
|
-
"focusable": false
|
|
174
|
-
}
|
|
207
|
+
"accessibility": { "focusable": false }
|
|
175
208
|
}
|
|
@@ -9,29 +9,44 @@
|
|
|
9
9
|
"category": "feedback",
|
|
10
10
|
"documentationUrl": "https://spectrum.adobe.com/page/in-line-alert/"
|
|
11
11
|
},
|
|
12
|
+
"documentBlocks": [
|
|
13
|
+
{
|
|
14
|
+
"type": "purpose",
|
|
15
|
+
"content": "In-line alerts display a non-modal message associated with objects in a view. These are often used in form validation, providing a place to aggregate feedback related to multiple fields."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"type": "guideline",
|
|
19
|
+
"content": "In-line alerts display non-modal messages connected to elements in a view. They’re often used in forms to show validation feedback across multiple fields."
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"type": "guideline",
|
|
23
|
+
"content": "An in-line alert can have up to one button. This label should be kept concise, and it should only be used when there’s a direct action available that is related to the in-line alert text."
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"type": "guideline",
|
|
27
|
+
"content": "Heading is optional for in-line alerts."
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"type": "guideline",
|
|
31
|
+
"content": "The outline style is the default for in-line alerts."
|
|
32
|
+
},
|
|
33
|
+
{ "type": "guideline", "content": "There are five semantic variants:" },
|
|
34
|
+
{
|
|
35
|
+
"type": "guideline",
|
|
36
|
+
"content": "When the title of an in-line alert is too long for the available horizontal space, it wraps to form another line. The optional icon in the top-right corner stays aligned to the top."
|
|
37
|
+
}
|
|
38
|
+
],
|
|
12
39
|
"options": {
|
|
13
40
|
"variant": {
|
|
14
41
|
"type": "string",
|
|
15
42
|
"default": "neutral",
|
|
16
43
|
"values": [
|
|
17
|
-
{
|
|
18
|
-
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
{
|
|
24
|
-
"value": "positive"
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
"value": "notice"
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
"value": "negative"
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
"value": "accent"
|
|
34
|
-
}
|
|
44
|
+
{ "value": "neutral" },
|
|
45
|
+
{ "value": "informative" },
|
|
46
|
+
{ "value": "positive" },
|
|
47
|
+
{ "value": "notice" },
|
|
48
|
+
{ "value": "negative" },
|
|
49
|
+
{ "value": "accent" }
|
|
35
50
|
]
|
|
36
51
|
},
|
|
37
52
|
"style": {
|
|
@@ -39,15 +54,9 @@
|
|
|
39
54
|
"default": "outline",
|
|
40
55
|
"description": "The visual style of the alert.",
|
|
41
56
|
"values": [
|
|
42
|
-
{
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
{
|
|
46
|
-
"value": "subtle"
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
"value": "outline"
|
|
50
|
-
}
|
|
57
|
+
{ "value": "bold" },
|
|
58
|
+
{ "value": "subtle" },
|
|
59
|
+
{ "value": "outline" }
|
|
51
60
|
]
|
|
52
61
|
},
|
|
53
62
|
"href": {
|
|
@@ -63,50 +72,27 @@
|
|
|
63
72
|
"description": "If undefined, this button does not appear."
|
|
64
73
|
}
|
|
65
74
|
},
|
|
66
|
-
"lifecycle": {
|
|
67
|
-
"introduced": "1.0.0-draft"
|
|
68
|
-
},
|
|
75
|
+
"lifecycle": { "introduced": "1.0.0-draft" },
|
|
69
76
|
"tokenBindings": [
|
|
70
|
-
{
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
"token": "corner-radius-700",
|
|
76
|
-
"context": "Rounding"
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
"token": "workflow-icon-size-100",
|
|
80
|
-
"context": "Icon"
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
"token": "in-line-alert-minimum-width",
|
|
84
|
-
"context": "Minimum width"
|
|
85
|
-
},
|
|
77
|
+
{ "token": "border-width-200", "context": "Border " },
|
|
78
|
+
{ "token": "corner-radius-700", "context": "Rounding" },
|
|
79
|
+
{ "token": "workflow-icon-size-100", "context": "Icon" },
|
|
80
|
+
{ "token": "in-line-alert-minimum-width", "context": "Minimum width" },
|
|
86
81
|
{
|
|
87
82
|
"token": "spacing-300",
|
|
88
83
|
"context": "Spacing (Top/Bottom/Start/End edge to Content)"
|
|
89
84
|
},
|
|
90
|
-
{
|
|
91
|
-
"token": "spacing-100",
|
|
92
|
-
"context": "Spacing (Title to Description) "
|
|
93
|
-
},
|
|
85
|
+
{ "token": "spacing-100", "context": "Spacing (Title to Description) " },
|
|
94
86
|
{
|
|
95
87
|
"token": "spacing-200",
|
|
96
88
|
"context": "Spacing (Description to Link, Description to Button, Link to Button) "
|
|
97
89
|
},
|
|
98
|
-
{
|
|
99
|
-
"token": "component-height-50",
|
|
100
|
-
"context": "Minimum title area height"
|
|
101
|
-
},
|
|
90
|
+
{ "token": "component-height-50", "context": "Minimum title area height" },
|
|
102
91
|
{
|
|
103
92
|
"token": "heading-color",
|
|
104
93
|
"context": "Title and Description (Border fill)"
|
|
105
94
|
},
|
|
106
|
-
{
|
|
107
|
-
"token": "body-color",
|
|
108
|
-
"context": "Title and Description (Border fill)"
|
|
109
|
-
},
|
|
95
|
+
{ "token": "body-color", "context": "Title and Description (Border fill)" },
|
|
110
96
|
{
|
|
111
97
|
"token": "background-layer-2-color",
|
|
112
98
|
"context": "Background (Border fill)"
|
|
@@ -151,10 +137,7 @@
|
|
|
151
137
|
"token": "neutral-subtle-background-color-default",
|
|
152
138
|
"context": "Background and Icon (Subtle fill, Neutral)"
|
|
153
139
|
},
|
|
154
|
-
{
|
|
155
|
-
"token": "white",
|
|
156
|
-
"context": "Title and Description (Bold fill)"
|
|
157
|
-
},
|
|
140
|
+
{ "token": "white", "context": "Title and Description (Bold fill)" },
|
|
158
141
|
{
|
|
159
142
|
"token": "black",
|
|
160
143
|
"context": "Title and Description (Bold fill, Notice)"
|
|
@@ -191,14 +174,8 @@
|
|
|
191
174
|
"token": "heading-sans-serif-font-style",
|
|
192
175
|
"context": "Title and Description"
|
|
193
176
|
},
|
|
194
|
-
{
|
|
195
|
-
|
|
196
|
-
"context": "Title and Description"
|
|
197
|
-
},
|
|
198
|
-
{
|
|
199
|
-
"token": "heading-line-height",
|
|
200
|
-
"context": "Title and Description"
|
|
201
|
-
},
|
|
177
|
+
{ "token": "heading-size-xxs", "context": "Title and Description" },
|
|
178
|
+
{ "token": "heading-line-height", "context": "Title and Description" },
|
|
202
179
|
{
|
|
203
180
|
"token": "body-sans-serif-font-family",
|
|
204
181
|
"context": "Title and Description"
|
|
@@ -211,23 +188,13 @@
|
|
|
211
188
|
"token": "body-sans-serif-font-style",
|
|
212
189
|
"context": "Title and Description"
|
|
213
190
|
},
|
|
214
|
-
{
|
|
215
|
-
|
|
216
|
-
"context": "Title and Description"
|
|
217
|
-
},
|
|
218
|
-
{
|
|
219
|
-
"token": "body-line-height",
|
|
220
|
-
"context": "Title and Description"
|
|
221
|
-
}
|
|
191
|
+
{ "token": "body-size-s", "context": "Title and Description" },
|
|
192
|
+
{ "token": "body-line-height", "context": "Title and Description" }
|
|
222
193
|
],
|
|
223
194
|
"accessibility": {
|
|
224
195
|
"focusable": false,
|
|
225
196
|
"wcag": [
|
|
226
|
-
{
|
|
227
|
-
"criterion": "4.1.3",
|
|
228
|
-
"level": "AA",
|
|
229
|
-
"title": "Status Messages"
|
|
230
|
-
}
|
|
197
|
+
{ "criterion": "4.1.3", "level": "AA", "title": "Status Messages" }
|
|
231
198
|
]
|
|
232
199
|
}
|
|
233
200
|
}
|
package/components/link.json
CHANGED
|
@@ -9,94 +9,89 @@
|
|
|
9
9
|
"category": "actions",
|
|
10
10
|
"documentationUrl": "https://spectrum.adobe.com/page/link/"
|
|
11
11
|
},
|
|
12
|
-
"
|
|
13
|
-
"variant": {
|
|
14
|
-
"type": "string",
|
|
15
|
-
"default": "primary",
|
|
16
|
-
"values": [
|
|
17
|
-
{
|
|
18
|
-
"value": "primary"
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
"value": "secondary"
|
|
22
|
-
}
|
|
23
|
-
]
|
|
24
|
-
},
|
|
25
|
-
"isQuiet": {
|
|
26
|
-
"type": "boolean",
|
|
27
|
-
"default": false
|
|
28
|
-
},
|
|
29
|
-
"staticColor": {
|
|
30
|
-
"type": "string",
|
|
31
|
-
"description": "Static color must not be set for the default version of this component.",
|
|
32
|
-
"values": [
|
|
33
|
-
{
|
|
34
|
-
"value": "white"
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
"value": "black"
|
|
38
|
-
}
|
|
39
|
-
]
|
|
40
|
-
}
|
|
41
|
-
},
|
|
42
|
-
"states": [
|
|
12
|
+
"documentBlocks": [
|
|
43
13
|
{
|
|
44
|
-
"
|
|
45
|
-
"
|
|
14
|
+
"type": "purpose",
|
|
15
|
+
"content": "Links allow users to navigate to a different location. They can be presented inside a paragraph or as standalone text."
|
|
46
16
|
},
|
|
47
17
|
{
|
|
48
|
-
"
|
|
49
|
-
"
|
|
18
|
+
"type": "guideline",
|
|
19
|
+
"content": "Links provide navigation to a different location. They can appear within a paragraph or as standalone text."
|
|
50
20
|
},
|
|
51
21
|
{
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
}
|
|
55
|
-
],
|
|
56
|
-
"lifecycle": {
|
|
57
|
-
"introduced": "1.0.0-draft"
|
|
58
|
-
},
|
|
59
|
-
"tokenBindings": [
|
|
22
|
+
"type": "guideline",
|
|
23
|
+
"content": "Use the static color option when a link needs to be placed on top of a color background or visual. Static color links are available in black or white, regardless of color theme. They can also be placed on top of a custom background that isn’t part of a Spectrum color theme."
|
|
24
|
+
},
|
|
60
25
|
{
|
|
61
|
-
"
|
|
62
|
-
"
|
|
26
|
+
"type": "guideline",
|
|
27
|
+
"content": "Use static black on light color or image backgrounds, and static white on dark color or image backgrounds, regardless of color theme. Make sure that the background and the link color meet the minimum color contrast ratio."
|
|
63
28
|
},
|
|
64
29
|
{
|
|
65
|
-
"
|
|
66
|
-
"
|
|
30
|
+
"type": "guideline",
|
|
31
|
+
"content": "All links can have a quiet style, without an underline. This style should only be used when the placement and context of the link is explicit enough that a visible underline isn’t necessary."
|
|
67
32
|
},
|
|
68
33
|
{
|
|
69
|
-
"
|
|
70
|
-
"
|
|
34
|
+
"type": "guideline",
|
|
35
|
+
"content": "The variant property defines the visual style of a link and includes two options: primary and secondary."
|
|
71
36
|
},
|
|
72
37
|
{
|
|
73
|
-
"
|
|
74
|
-
"
|
|
38
|
+
"type": "guideline",
|
|
39
|
+
"content": "The primary variant is the default style and displays the link in Spectrum blue. It is intended to draw attention to the link and is suitable when the blue color complements the surrounding content without being overwhelming."
|
|
75
40
|
},
|
|
76
41
|
{
|
|
77
|
-
"
|
|
78
|
-
"
|
|
42
|
+
"type": "guideline",
|
|
43
|
+
"content": "The secondary variant uses the same gray color as the surrounding paragraph text. Its subdued appearance is ideal for scenarios where multiple links are present in a block of text and the primary variant would be too visually dominant."
|
|
79
44
|
},
|
|
80
45
|
{
|
|
81
|
-
"
|
|
82
|
-
"
|
|
46
|
+
"type": "guideline",
|
|
47
|
+
"content": "Links are for usage in body copy and are not appropriate in titles. Consider using a different component if you're looking for a larger or more prominent call to action, such as a button."
|
|
83
48
|
},
|
|
84
49
|
{
|
|
85
|
-
"
|
|
86
|
-
"
|
|
50
|
+
"type": "guideline",
|
|
51
|
+
"content": "Be mindful of link placement and language, and create experiences that are inclusive of users navigating with screen readers. Screen readers pull a list of links — only the link text, and not including other surrounding language — to determine the content of the page."
|
|
87
52
|
},
|
|
88
53
|
{
|
|
89
|
-
"
|
|
90
|
-
"
|
|
54
|
+
"type": "guideline",
|
|
55
|
+
"content": "People using screen readers may tab between links without getting the text in between, so very generic link wording like “learn more” or “click here” doesn’t communicate any context from elsewhere in the experience. Identify the target of each link directly in the link text to communicate context and set clear expectations about where the link will go."
|
|
91
56
|
},
|
|
92
57
|
{
|
|
93
|
-
"
|
|
94
|
-
"
|
|
58
|
+
"type": "guideline",
|
|
59
|
+
"content": "Quiet links are less accessible, so don't use them for links that are critical to an experience. Quiet links are commonly used in website footers, where there are several lists of links that are shortcuts to other pages."
|
|
60
|
+
}
|
|
61
|
+
],
|
|
62
|
+
"options": {
|
|
63
|
+
"variant": {
|
|
64
|
+
"type": "string",
|
|
65
|
+
"default": "primary",
|
|
66
|
+
"values": [{ "value": "primary" }, { "value": "secondary" }]
|
|
95
67
|
},
|
|
68
|
+
"isQuiet": { "type": "boolean", "default": false },
|
|
69
|
+
"staticColor": {
|
|
70
|
+
"type": "string",
|
|
71
|
+
"description": "Static color must not be set for the default version of this component.",
|
|
72
|
+
"values": [{ "value": "white" }, { "value": "black" }]
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"states": [
|
|
76
|
+
{ "name": "hover", "trigger": "interaction" },
|
|
77
|
+
{ "name": "down", "trigger": "interaction" },
|
|
78
|
+
{ "name": "keyboard-focus", "trigger": "interaction" }
|
|
79
|
+
],
|
|
80
|
+
"lifecycle": { "introduced": "1.0.0-draft" },
|
|
81
|
+
"tokenBindings": [
|
|
82
|
+
{ "token": "accent-content-color-default", "context": "Text (primary)" },
|
|
83
|
+
{ "token": "accent-content-color-hover", "context": "Text (primary)" },
|
|
84
|
+
{ "token": "accent-content-color-down", "context": "Text (primary)" },
|
|
85
|
+
{ "token": "accent-content-color-key-focus", "context": "Text (primary)" },
|
|
86
|
+
{ "token": "neutral-content-color-default", "context": "Text (secondary)" },
|
|
87
|
+
{ "token": "neutral-content-color-hover", "context": "Text (secondary)" },
|
|
88
|
+
{ "token": "neutral-content-color-down", "context": "Text (secondary)" },
|
|
96
89
|
{
|
|
97
|
-
"token": "
|
|
98
|
-
"context": "Text (
|
|
90
|
+
"token": "neutral-content-color-key-focus",
|
|
91
|
+
"context": "Text (secondary)"
|
|
99
92
|
},
|
|
93
|
+
{ "token": "white", "context": "Text (white)" },
|
|
94
|
+
{ "token": "black", "context": "Text (black)" },
|
|
100
95
|
{
|
|
101
96
|
"token": "default-font-family",
|
|
102
97
|
"context": "Standalone variant, Default style"
|
|
@@ -133,18 +128,9 @@
|
|
|
133
128
|
"token": "regular-font-weight",
|
|
134
129
|
"context": "Inline variant, Default style"
|
|
135
130
|
},
|
|
136
|
-
{
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
"token": "focus-indicator-thickness",
|
|
142
|
-
"context": "Focus ring"
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
"token": "focus-indicator-gap",
|
|
146
|
-
"context": "Focus ring"
|
|
147
|
-
}
|
|
131
|
+
{ "token": "focus-indicator-color", "context": "Focus ring" },
|
|
132
|
+
{ "token": "focus-indicator-thickness", "context": "Focus ring" },
|
|
133
|
+
{ "token": "focus-indicator-gap", "context": "Focus ring" }
|
|
148
134
|
],
|
|
149
135
|
"accessibility": {
|
|
150
136
|
"role": "link",
|
|
@@ -152,16 +138,8 @@
|
|
|
152
138
|
"focusable": true,
|
|
153
139
|
"keyboardIntents": ["activate"],
|
|
154
140
|
"wcag": [
|
|
155
|
-
{
|
|
156
|
-
|
|
157
|
-
"level": "A",
|
|
158
|
-
"title": "Keyboard"
|
|
159
|
-
},
|
|
160
|
-
{
|
|
161
|
-
"criterion": "4.1.2",
|
|
162
|
-
"level": "A",
|
|
163
|
-
"title": "Name, Role, Value"
|
|
164
|
-
}
|
|
141
|
+
{ "criterion": "2.1.1", "level": "A", "title": "Keyboard" },
|
|
142
|
+
{ "criterion": "4.1.2", "level": "A", "title": "Name, Role, Value" }
|
|
165
143
|
]
|
|
166
144
|
}
|
|
167
145
|
}
|