@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,79 +9,66 @@
|
|
|
9
9
|
"category": "actions",
|
|
10
10
|
"documentationUrl": "https://spectrum.adobe.com/page/close-button/"
|
|
11
11
|
},
|
|
12
|
+
"documentBlocks": [
|
|
13
|
+
{
|
|
14
|
+
"type": "purpose",
|
|
15
|
+
"content": "The close button is used inside of other components, like a toast or an action bar, for closing or dismissing its parent component."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"type": "guideline",
|
|
19
|
+
"content": "A close button in a disabled state shows that an action exists, but is not available in that circumstance. This state can be used to maintain layout continuity and to communicate that an action may become available later."
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"type": "guideline",
|
|
23
|
+
"content": "Use this option when a close button needs to be placed on top of a color background or visual. Static color close buttons are available in black or white, regardless of color theme."
|
|
24
|
+
},
|
|
25
|
+
{
|
|
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 close button color meet the minimum color contrast ratio."
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"type": "guideline",
|
|
31
|
+
"content": "The icon inside of the close button comes in two options: regular and large. These scale up and down for each close button size. This is a cross UI icon, not a workflow icon or the letter “x.”"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"type": "guideline",
|
|
35
|
+
"content": "Close buttons come in four different sizes: small, medium, large, and extra-large. The medium size is the default and most frequently used option. Use the other sizes sparingly; they should be used to create a hierarchy of importance within the page."
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"type": "guideline",
|
|
39
|
+
"content": "A close button can be navigated using a keyboard. The keyboard focus state takes the close button’s visual hover state and adds a ring to the button in focus."
|
|
40
|
+
}
|
|
41
|
+
],
|
|
12
42
|
"options": {
|
|
13
43
|
"size": {
|
|
14
44
|
"type": "string",
|
|
15
45
|
"default": "m",
|
|
16
46
|
"values": [
|
|
17
|
-
{
|
|
18
|
-
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
"value": "m"
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
"value": "l"
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
"value": "xl"
|
|
28
|
-
}
|
|
47
|
+
{ "value": "s" },
|
|
48
|
+
{ "value": "m" },
|
|
49
|
+
{ "value": "l" },
|
|
50
|
+
{ "value": "xl" }
|
|
29
51
|
]
|
|
30
52
|
},
|
|
31
|
-
"iconSize": {
|
|
32
|
-
"type": "string"
|
|
33
|
-
},
|
|
53
|
+
"iconSize": { "type": "string" },
|
|
34
54
|
"staticColor": {
|
|
35
55
|
"type": "string",
|
|
36
56
|
"description": "Static color must not be set for the default version of this component.",
|
|
37
|
-
"values": [
|
|
38
|
-
{
|
|
39
|
-
"value": "white"
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
"value": "black"
|
|
43
|
-
}
|
|
44
|
-
]
|
|
57
|
+
"values": [{ "value": "white" }, { "value": "black" }]
|
|
45
58
|
},
|
|
46
|
-
"isDisabled": {
|
|
47
|
-
"type": "boolean",
|
|
48
|
-
"default": false
|
|
49
|
-
}
|
|
59
|
+
"isDisabled": { "type": "boolean", "default": false }
|
|
50
60
|
},
|
|
51
61
|
"states": [
|
|
52
|
-
{
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
"name": "down",
|
|
58
|
-
"trigger": "interaction"
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
"name": "keyboard-focus",
|
|
62
|
-
"trigger": "interaction"
|
|
63
|
-
}
|
|
62
|
+
{ "name": "hover", "trigger": "interaction" },
|
|
63
|
+
{ "name": "down", "trigger": "interaction" },
|
|
64
|
+
{ "name": "keyboard-focus", "trigger": "interaction" }
|
|
64
65
|
],
|
|
65
|
-
"lifecycle": {
|
|
66
|
-
"introduced": "1.0.0-draft"
|
|
67
|
-
},
|
|
66
|
+
"lifecycle": { "introduced": "1.0.0-draft" },
|
|
68
67
|
"tokenBindings": [
|
|
69
|
-
{
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
"token": "component-height-100",
|
|
75
|
-
"context": "Button size"
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
"token": "component-height-200",
|
|
79
|
-
"context": "Button size"
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
"token": "component-height-300",
|
|
83
|
-
"context": "Button size"
|
|
84
|
-
},
|
|
68
|
+
{ "token": "component-height-75", "context": "Button size" },
|
|
69
|
+
{ "token": "component-height-100", "context": "Button size" },
|
|
70
|
+
{ "token": "component-height-200", "context": "Button size" },
|
|
71
|
+
{ "token": "component-height-300", "context": "Button size" },
|
|
85
72
|
{
|
|
86
73
|
"token": "component-size-difference-down",
|
|
87
74
|
"context": "Button size (down)"
|
|
@@ -94,58 +81,19 @@
|
|
|
94
81
|
"token": "component-size-minimum-perspective-down",
|
|
95
82
|
"context": "Button size (down)"
|
|
96
83
|
},
|
|
97
|
-
{
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
},
|
|
109
|
-
{
|
|
110
|
-
"token": "cross-icon-size-500",
|
|
111
|
-
"context": "Cross icon size"
|
|
112
|
-
},
|
|
113
|
-
{
|
|
114
|
-
"token": "focus-indicator-thickness",
|
|
115
|
-
"context": "Focus ring "
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
"token": "focus-indicator-gap",
|
|
119
|
-
"context": "Focus ring "
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
"token": "neutral-content-color-default",
|
|
123
|
-
"context": "Cross icon"
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
"token": "neutral-content-color-hover",
|
|
127
|
-
"context": "Cross icon"
|
|
128
|
-
},
|
|
129
|
-
{
|
|
130
|
-
"token": "neutral-content-color-down",
|
|
131
|
-
"context": "Cross icon"
|
|
132
|
-
},
|
|
133
|
-
{
|
|
134
|
-
"token": "neutral-content-color-key-focus",
|
|
135
|
-
"context": "Cross icon"
|
|
136
|
-
},
|
|
137
|
-
{
|
|
138
|
-
"token": "disabled-content-color",
|
|
139
|
-
"context": "Cross icon"
|
|
140
|
-
},
|
|
141
|
-
{
|
|
142
|
-
"token": "focus-indicator-color",
|
|
143
|
-
"context": "Focus ring"
|
|
144
|
-
},
|
|
145
|
-
{
|
|
146
|
-
"token": "gray-100",
|
|
147
|
-
"context": "Background "
|
|
148
|
-
},
|
|
84
|
+
{ "token": "cross-icon-size-200", "context": "Cross icon size" },
|
|
85
|
+
{ "token": "cross-icon-size-300", "context": "Cross icon size" },
|
|
86
|
+
{ "token": "cross-icon-size-400", "context": "Cross icon size" },
|
|
87
|
+
{ "token": "cross-icon-size-500", "context": "Cross icon size" },
|
|
88
|
+
{ "token": "focus-indicator-thickness", "context": "Focus ring " },
|
|
89
|
+
{ "token": "focus-indicator-gap", "context": "Focus ring " },
|
|
90
|
+
{ "token": "neutral-content-color-default", "context": "Cross icon" },
|
|
91
|
+
{ "token": "neutral-content-color-hover", "context": "Cross icon" },
|
|
92
|
+
{ "token": "neutral-content-color-down", "context": "Cross icon" },
|
|
93
|
+
{ "token": "neutral-content-color-key-focus", "context": "Cross icon" },
|
|
94
|
+
{ "token": "disabled-content-color", "context": "Cross icon" },
|
|
95
|
+
{ "token": "focus-indicator-color", "context": "Focus ring" },
|
|
96
|
+
{ "token": "gray-100", "context": "Background " },
|
|
149
97
|
{
|
|
150
98
|
"token": "transparent-white-800",
|
|
151
99
|
"context": "Cross icon (static white)"
|
|
@@ -182,10 +130,7 @@
|
|
|
182
130
|
"token": "static-black-focus-indicator-color",
|
|
183
131
|
"context": "Focus ring (static black) "
|
|
184
132
|
},
|
|
185
|
-
{
|
|
186
|
-
"token": "transparent-black-100",
|
|
187
|
-
"context": "Background (static black)"
|
|
188
|
-
}
|
|
133
|
+
{ "token": "transparent-black-100", "context": "Background (static black)" }
|
|
189
134
|
],
|
|
190
135
|
"accessibility": {
|
|
191
136
|
"role": "button",
|
|
@@ -193,16 +138,8 @@
|
|
|
193
138
|
"focusable": true,
|
|
194
139
|
"keyboardIntents": ["activate"],
|
|
195
140
|
"wcag": [
|
|
196
|
-
{
|
|
197
|
-
|
|
198
|
-
"level": "A",
|
|
199
|
-
"title": "Keyboard"
|
|
200
|
-
},
|
|
201
|
-
{
|
|
202
|
-
"criterion": "4.1.2",
|
|
203
|
-
"level": "A",
|
|
204
|
-
"title": "Name, Role, Value"
|
|
205
|
-
}
|
|
141
|
+
{ "criterion": "2.1.1", "level": "A", "title": "Keyboard" },
|
|
142
|
+
{ "criterion": "4.1.2", "level": "A", "title": "Name, Role, Value" }
|
|
206
143
|
]
|
|
207
144
|
}
|
|
208
145
|
}
|
|
@@ -9,75 +9,77 @@
|
|
|
9
9
|
"category": "feedback",
|
|
10
10
|
"documentationUrl": "https://spectrum.adobe.com/page/coach-indicator/"
|
|
11
11
|
},
|
|
12
|
+
"documentBlocks": [
|
|
13
|
+
{
|
|
14
|
+
"type": "purpose",
|
|
15
|
+
"content": "Coach indicators help guide users through interfaces by highlighting important areas or features during onboarding and feature discovery."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"type": "guideline",
|
|
19
|
+
"content": "If not set to white, the coach indicator uses the default color."
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"type": "guideline",
|
|
23
|
+
"content": "The rounding of the indicator is determined by the shape of the object that it is highlighting. There are three types of rounding for coach indicators: no rounding, default rounding, and full rounding."
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"type": "guideline",
|
|
27
|
+
"content": "No rounding means that there is no rounding on the object being indicated. In this case, a 6 px border radius rounding is applied to the coach indicator."
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"type": "guideline",
|
|
31
|
+
"content": "Default rounding happens when an object has its own rounding, but isn’t fully rounded. In this case, the coach indicator should have the same rounding of that object with a 2 px gap."
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"type": "guideline",
|
|
35
|
+
"content": "Full rounding occurs when an object already has a rounded style that gives it a pill shape (e.g., a button). In this case, the coach indicator is also rounded."
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"type": "guideline",
|
|
39
|
+
"content": "The animation is always on the coach indicator. When an implementation is unable to animate the coach indicator, it can use a non-animated version to provide a similar experience."
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"type": "guideline",
|
|
43
|
+
"content": "Coach indicators adopt the shape of the object they highlight. A 2 px space separates the indicator from the object’s placement area, creating padding on all sides."
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"type": "guideline",
|
|
47
|
+
"content": "When an indicator needs to be placed on top of a visual, use the static white option. Static white does not change values depending upon the color theme."
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"type": "guideline",
|
|
51
|
+
"content": "Coach indicators are typically paired with coach marks to create accessible user onboarding experiences. When using coach indicators:"
|
|
52
|
+
}
|
|
53
|
+
],
|
|
12
54
|
"options": {
|
|
13
55
|
"cornerRounding": {
|
|
14
56
|
"type": "string",
|
|
15
57
|
"values": [
|
|
16
|
-
{
|
|
17
|
-
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
"value": "corner-radius-300"
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
"value": "corner-radius-400"
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
"value": "corner-radius-500"
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
"value": "corner-radius-600"
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
"value": "corner-radius-700"
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
"value": "corner-radius-800"
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
"value": "full"
|
|
48
|
-
}
|
|
58
|
+
{ "value": "none" },
|
|
59
|
+
{ "value": "corner-radius-75" },
|
|
60
|
+
{ "value": "corner-radius-100" },
|
|
61
|
+
{ "value": "corner-radius-200" },
|
|
62
|
+
{ "value": "corner-radius-300" },
|
|
63
|
+
{ "value": "corner-radius-400" },
|
|
64
|
+
{ "value": "corner-radius-500" },
|
|
65
|
+
{ "value": "corner-radius-600" },
|
|
66
|
+
{ "value": "corner-radius-700" },
|
|
67
|
+
{ "value": "corner-radius-800" },
|
|
68
|
+
{ "value": "full" }
|
|
49
69
|
]
|
|
50
70
|
},
|
|
51
71
|
"staticColor": {
|
|
52
72
|
"type": "string",
|
|
53
73
|
"description": "If not set to white, the coach indicator uses the default color.",
|
|
54
|
-
"values": [
|
|
55
|
-
{
|
|
56
|
-
"value": "white"
|
|
57
|
-
}
|
|
58
|
-
]
|
|
74
|
+
"values": [{ "value": "white" }]
|
|
59
75
|
}
|
|
60
76
|
},
|
|
61
|
-
"lifecycle": {
|
|
62
|
-
"introduced": "1.0.0-draft"
|
|
63
|
-
},
|
|
77
|
+
"lifecycle": { "introduced": "1.0.0-draft" },
|
|
64
78
|
"tokenBindings": [
|
|
65
|
-
{
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
"token": "coach-indicator-expanded-ring-thickness",
|
|
71
|
-
"context": "Ring"
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
"token": "coach-indicator-collapsed-gap",
|
|
75
|
-
"context": "Ring"
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
"token": "coach-indicator-expanded-gap",
|
|
79
|
-
"context": "Ring"
|
|
80
|
-
},
|
|
79
|
+
{ "token": "coach-indicator-collapsed-ring-thickness", "context": "Ring" },
|
|
80
|
+
{ "token": "coach-indicator-expanded-ring-thickness", "context": "Ring" },
|
|
81
|
+
{ "token": "coach-indicator-collapsed-gap", "context": "Ring" },
|
|
82
|
+
{ "token": "coach-indicator-expanded-gap", "context": "Ring" },
|
|
81
83
|
{
|
|
82
84
|
"token": "coach-indicator-collapsed-ring-rounding-increment",
|
|
83
85
|
"context": "Rounding"
|
|
@@ -86,20 +88,9 @@
|
|
|
86
88
|
"token": "coach-indicator-expanded-ring-rounding-increment",
|
|
87
89
|
"context": "Rounding"
|
|
88
90
|
},
|
|
89
|
-
{
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
"token": "coach-indicator-opacity",
|
|
95
|
-
"context": "Indicator (Default)"
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
"token": "white",
|
|
99
|
-
"context": "Indicator (Static white)"
|
|
100
|
-
}
|
|
91
|
+
{ "token": "coach-indicator-color", "context": "Indicator (Default)" },
|
|
92
|
+
{ "token": "coach-indicator-opacity", "context": "Indicator (Default)" },
|
|
93
|
+
{ "token": "white", "context": "Indicator (Static white)" }
|
|
101
94
|
],
|
|
102
|
-
"accessibility": {
|
|
103
|
-
"focusable": false
|
|
104
|
-
}
|
|
95
|
+
"accessibility": { "focusable": false }
|
|
105
96
|
}
|
|
@@ -9,13 +9,75 @@
|
|
|
9
9
|
"category": "feedback",
|
|
10
10
|
"documentationUrl": "https://spectrum.adobe.com/page/coach-mark/"
|
|
11
11
|
},
|
|
12
|
-
"
|
|
13
|
-
|
|
14
|
-
"type": "
|
|
12
|
+
"documentBlocks": [
|
|
13
|
+
{
|
|
14
|
+
"type": "purpose",
|
|
15
|
+
"content": "Coach marks provide contextual guidance to users by highlighting specific interface elements."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"type": "guideline",
|
|
19
|
+
"content": "Coach marks are temporary messages that provide guidance during new or unfamiliar experiences. They can appear as a single message or be sequenced into a tour."
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"type": "guideline",
|
|
23
|
+
"content": "Actions is an area for certain configurations of a Coach mark and can contain an action menu, keyboard shortcut, or both. When both are enabled, the component layout adjusts to display the keyboard shortcut below the title."
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"type": "guideline",
|
|
27
|
+
"content": "Coach marks can contain images or videos that relate to their content, such as demonstrations of gestures, the feature being used, or illustrations."
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"type": "guideline",
|
|
31
|
+
"content": "Coach marks must include a title. Titles appear in bold at the top of the coach mark and use a few words to convey its purpose."
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"type": "guideline",
|
|
35
|
+
"content": "All coach marks must have a description. Descriptions briefly communicate the information and context needed to educate a user about a new or unfamiliar product experience."
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"type": "guideline",
|
|
39
|
+
"content": "When the text of a header or description is too long for the available horizontal space, it wraps to form another line. The steps in a tour are always shown in full and never wrap or truncate."
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"type": "guideline",
|
|
43
|
+
"content": "By default, the step counter appears next to the title. If an action menu is also used, the keyboard shortcut appears below the title instead."
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"type": "guideline",
|
|
47
|
+
"content": "Choose a width for coach marks that is spacious enough to accommodate all of their content. In a tour that includes several coach marks, keep the width consistent across each one."
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"type": "guideline",
|
|
51
|
+
"content": "The “Previous” button should always be a quiet secondary button."
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"type": "guideline",
|
|
55
|
+
"content": "The “Skip tour” and “Restart tour” options should only be available within the more actions menu."
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"type": "guideline",
|
|
59
|
+
"content": "Titles help with way finding and setting context for what a user is learning about. Summarize the description of the coach mark in a few concise words. In a tour, use a different title for each coach mark to keep users active and engaged. Avoid repeating the title in the description."
|
|
15
60
|
},
|
|
16
|
-
|
|
17
|
-
"type": "
|
|
61
|
+
{
|
|
62
|
+
"type": "guideline",
|
|
63
|
+
"content": "Coach marks are meant to provide quick overviews of functionality. Content should be at least a few words, but no more than a few sentences."
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"type": "guideline",
|
|
67
|
+
"content": "The primary action should be brief and consistent. Use \"OK\" for a single coach mark. Within a tour, use “Next” for all but the last step, and “Finish” for the last step. Don’t use different primary action names for every step in a tour."
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"type": "guideline",
|
|
71
|
+
"content": "When a part of the tour is dependent on a user taking an action, it’s okay to put the primary button in the disabled state as long as the user has a way to exit the tour. For a one-off coach mark, this means the primary button should remain as a route to dismiss. In a tour, it’s recommended to have the more actions menu present."
|
|
18
72
|
},
|
|
73
|
+
{
|
|
74
|
+
"type": "guideline",
|
|
75
|
+
"content": "When part of the tour is dependent on a user action, don't force users to confirm that they've taken that action."
|
|
76
|
+
}
|
|
77
|
+
],
|
|
78
|
+
"options": {
|
|
79
|
+
"title": { "type": "string" },
|
|
80
|
+
"description": { "type": "string" },
|
|
19
81
|
"hideImage": {
|
|
20
82
|
"type": "boolean",
|
|
21
83
|
"default": false,
|
|
@@ -49,22 +111,11 @@
|
|
|
49
111
|
}
|
|
50
112
|
}
|
|
51
113
|
},
|
|
52
|
-
"lifecycle": {
|
|
53
|
-
"introduced": "1.0.0-draft"
|
|
54
|
-
},
|
|
114
|
+
"lifecycle": { "introduced": "1.0.0-draft" },
|
|
55
115
|
"tokenBindings": [
|
|
56
|
-
{
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
"token": "coach-mark-minimum-width",
|
|
62
|
-
"context": "Width"
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
"token": "coach-mark-maximum-width",
|
|
66
|
-
"context": "Width"
|
|
67
|
-
},
|
|
116
|
+
{ "token": "coach-mark-width", "context": "Width" },
|
|
117
|
+
{ "token": "coach-mark-minimum-width", "context": "Width" },
|
|
118
|
+
{ "token": "coach-mark-maximum-width", "context": "Width" },
|
|
68
119
|
{
|
|
69
120
|
"token": "coach-mark-edge-to-content",
|
|
70
121
|
"context": "Spacing (top/bottom/start/end edge to text)"
|
|
@@ -81,89 +132,34 @@
|
|
|
81
132
|
"token": "coach-mark-pagination-text-to-bottom-edge",
|
|
82
133
|
"context": "Spacing (pagination to bottom)"
|
|
83
134
|
},
|
|
84
|
-
{
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
|
|
98
|
-
"context": "Title"
|
|
99
|
-
},
|
|
100
|
-
{
|
|
101
|
-
"token": "title-sans-serif-font-weight",
|
|
102
|
-
"context": "Title"
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
"token": "title-serif-font-style",
|
|
106
|
-
"context": "Title"
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
"token": "coach-mark-title-font-size",
|
|
110
|
-
"context": "Title"
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
"token": "title-line-height",
|
|
114
|
-
"context": "Title"
|
|
115
|
-
},
|
|
116
|
-
{
|
|
117
|
-
"token": "body-sans-serif-font-family",
|
|
118
|
-
"context": "Body"
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
"token": "body-sans-serif-font-weight",
|
|
122
|
-
"context": "Body"
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
"token": "body-serif-font-style",
|
|
126
|
-
"context": "Body"
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
"token": "coach-mark-body-font-size",
|
|
130
|
-
"context": "Body"
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
"token": "line-height-200",
|
|
134
|
-
"context": "Body"
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
"token": "medium-font-weight",
|
|
138
|
-
"context": "Pagination"
|
|
139
|
-
},
|
|
135
|
+
{ "token": "coach-mark-media-minimum-height", "context": "Media (16:9)" },
|
|
136
|
+
{ "token": "coach-mark-media-height", "context": "Media (4:3)" },
|
|
137
|
+
{ "token": "spacing-100", "context": "Spacing (action button to menu)" },
|
|
138
|
+
{ "token": "title-sans-serif-font-family", "context": "Title" },
|
|
139
|
+
{ "token": "title-sans-serif-font-weight", "context": "Title" },
|
|
140
|
+
{ "token": "title-serif-font-style", "context": "Title" },
|
|
141
|
+
{ "token": "coach-mark-title-font-size", "context": "Title" },
|
|
142
|
+
{ "token": "title-line-height", "context": "Title" },
|
|
143
|
+
{ "token": "body-sans-serif-font-family", "context": "Body" },
|
|
144
|
+
{ "token": "body-sans-serif-font-weight", "context": "Body" },
|
|
145
|
+
{ "token": "body-serif-font-style", "context": "Body" },
|
|
146
|
+
{ "token": "coach-mark-body-font-size", "context": "Body" },
|
|
147
|
+
{ "token": "line-height-200", "context": "Body" },
|
|
148
|
+
{ "token": "medium-font-weight", "context": "Pagination" },
|
|
140
149
|
{
|
|
141
150
|
"token": "coach-mark-pagination-body-font-size",
|
|
142
151
|
"context": "Pagination"
|
|
143
152
|
},
|
|
144
|
-
{
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
},
|
|
148
|
-
{
|
|
149
|
-
"token": "body-color",
|
|
150
|
-
"context": "Color"
|
|
151
|
-
},
|
|
152
|
-
{
|
|
153
|
-
"token": "coach-mark-pagination-color",
|
|
154
|
-
"context": "Color"
|
|
155
|
-
}
|
|
153
|
+
{ "token": "heading-color", "context": "Color" },
|
|
154
|
+
{ "token": "body-color", "context": "Color" },
|
|
155
|
+
{ "token": "coach-mark-pagination-color", "context": "Color" }
|
|
156
156
|
],
|
|
157
157
|
"accessibility": {
|
|
158
158
|
"intents": ["dismiss"],
|
|
159
159
|
"focusable": true,
|
|
160
160
|
"keyboardIntents": ["dismiss"],
|
|
161
161
|
"wcag": [
|
|
162
|
-
{
|
|
163
|
-
"criterion": "4.1.2",
|
|
164
|
-
"level": "A",
|
|
165
|
-
"title": "Name, Role, Value"
|
|
166
|
-
}
|
|
162
|
+
{ "criterion": "4.1.2", "level": "A", "title": "Name, Role, Value" }
|
|
167
163
|
]
|
|
168
164
|
}
|
|
169
165
|
}
|