@adobe/spectrum-design-data 3.3.0-beta.0 → 3.3.0-beta.2
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 +15 -54
- package/components/action-bar.json +9 -23
- package/components/action-button.json +39 -79
- package/components/action-group.json +18 -129
- package/components/alert-banner.json +8 -27
- package/components/alert-dialog.json +34 -48
- package/components/avatar-group.json +9 -28
- package/components/avatar.json +29 -92
- package/components/badge.json +56 -150
- package/components/breadcrumbs.json +26 -100
- package/components/button-group.json +19 -50
- package/components/button.json +61 -92
- package/components/calendar.json +8 -67
- package/components/cards.json +31 -46
- package/components/checkbox-group.json +16 -78
- package/components/checkbox.json +27 -90
- package/components/close-button.json +20 -62
- package/components/coach-indicator.json +14 -44
- package/components/coach-mark.json +8 -26
- package/components/color-area.json +20 -93
- package/components/color-handle.json +25 -38
- package/components/color-loupe.json +2 -6
- package/components/color-slider.json +26 -122
- package/components/color-wheel.json +17 -84
- package/components/combo-box.json +50 -182
- package/components/contextual-help.json +80 -119
- package/components/date-picker.json +24 -120
- package/components/divider.json +12 -25
- package/components/drop-zone.json +18 -30
- package/components/field-label.json +21 -62
- package/components/help-text.json +16 -53
- package/components/illustrated-message.json +21 -72
- package/components/in-line-alert.json +13 -53
- package/components/link.json +24 -56
- package/components/list-view.json +15 -73
- package/components/menu.json +45 -174
- package/components/meter.json +24 -65
- package/components/number-field.json +34 -168
- package/components/picker.json +42 -181
- package/components/popover.json +37 -113
- package/components/progress-bar.json +23 -95
- package/components/progress-circle.json +12 -42
- package/components/radio-button.json +14 -67
- package/components/radio-group.json +28 -125
- package/components/rating.json +9 -38
- package/components/search-field.json +34 -119
- package/components/segmented-control.json +21 -63
- package/components/select-box.json +29 -96
- package/components/side-navigation.json +28 -69
- package/components/slider.json +39 -148
- package/components/standard-dialog.json +16 -88
- package/components/status-light.json +41 -123
- package/components/steplist.json +5 -24
- package/components/swatch-group.json +19 -55
- package/components/swatch.json +24 -79
- package/components/switch.json +31 -72
- package/components/table.json +26 -73
- package/components/tabs.json +22 -39
- package/components/tag-field.json +14 -60
- package/components/tag-group.json +16 -49
- package/components/tag.json +21 -71
- package/components/takeover-dialog.json +10 -61
- package/components/text-area.json +49 -198
- package/components/text-field.json +42 -163
- package/components/thumbnail.json +22 -63
- package/components/toast.json +29 -50
- package/components/tooltip.json +27 -74
- package/components/tree-view.json +45 -140
- package/guidelines/app-frame-overview.json +18 -10
- package/guidelines/applying-the-type-system.json +14 -10
- package/guidelines/attention-hierarchy.json +3 -3
- package/guidelines/background-layers.json +41 -5
- package/guidelines/bi-directionality.json +8 -8
- package/guidelines/border-width.json +17 -1
- package/guidelines/brand.json +6 -6
- package/guidelines/colors.json +24 -12
- package/guidelines/component-spacing.json +14 -2
- package/guidelines/contact-us.json +1 -1
- package/guidelines/content-area-browsing-context.json +11 -11
- package/guidelines/content-design-grammar-and-mechanics.json +241 -0
- package/guidelines/content-design-voice-and-tone.json +37 -0
- package/guidelines/content-grammar-and-mechanics.json +252 -0
- package/guidelines/content-language-and-inclusivity-writing-about-people.json +103 -0
- package/guidelines/content-language-and-inclusivity-writing-with-visuals.json +70 -0
- package/guidelines/content-voice-and-tone.json +47 -0
- package/guidelines/creating-bluelines-browsing-context.json +9 -9
- package/guidelines/design-tokens.json +50 -14
- package/guidelines/drop-shadow.json +13 -1
- package/guidelines/grays.json +5 -5
- package/guidelines/header-browsing-context.json +7 -4
- package/guidelines/icon-fundamentals.json +4 -4
- package/guidelines/illustration.json +21 -25
- package/guidelines/in-product-word-list.json +1 -1
- package/guidelines/inclusive-design.json +14 -6
- package/guidelines/inclusive-ux-writing.json +1 -1
- package/guidelines/internationalization.json +13 -13
- package/guidelines/language-and-inclusivity-writing-about-people.json +85 -0
- package/guidelines/language-and-inclusivity-writing-with-visuals.json +61 -0
- package/guidelines/layout-and-structure-containers.json +7 -7
- package/guidelines/layout-and-structure-spacing-overview.json +66 -0
- package/guidelines/layout-spacing.json +4 -4
- package/guidelines/manifest.json +126 -38
- package/guidelines/motion.json +5 -5
- package/guidelines/object-styles-overview.json +2 -2
- package/guidelines/principles.json +7 -8
- package/guidelines/rounding.json +15 -3
- package/guidelines/side-navigation-browsing-context.json +16 -13
- package/guidelines/spacing-overview.json +7 -7
- package/guidelines/states.json +4 -4
- package/guidelines/support.json +113 -0
- package/guidelines/typography-overview.json +7 -3
- package/guidelines/typography-system.json +56 -16
- package/guidelines/using-icons.json +14 -14
- package/guidelines/visual-language-containers.json +7 -7
- package/guidelines/whats-new.json +32 -0
- package/guidelines/writing-for-errors.json +21 -21
- package/guidelines/writing-for-onboarding.json +17 -17
- package/guidelines/writing-for-readability.json +4 -4
- package/package.json +1 -1
package/components/slider.json
CHANGED
|
@@ -16,130 +16,77 @@
|
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
18
|
"type": "guideline",
|
|
19
|
-
"content": "
|
|
19
|
+
"content": "Keyboard focus.\n\nA slider can be navigated using a keyboard. The keyboard focus state takes the slider's visual hover state and adds a blue ring to the slider handle in focus."
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
22
|
"type": "guideline",
|
|
23
|
-
"content": "
|
|
23
|
+
"content": "Value placement.\n\nThe value follows the placement of the label: on top when the label is on top, and on the side when the label is on the side. The exception to this rule is when the value is editable in a text field, either standard or quiet style. In that case, the editable input is always placed on the side and should include an ARIA label for accessibility, using either aria-labelledby or aria-label."
|
|
24
24
|
},
|
|
25
25
|
{
|
|
26
26
|
"type": "guideline",
|
|
27
|
-
"content": "
|
|
27
|
+
"content": "Mixed value.\n\nA slider representing multiple non-identical values appears as indeterminate, with an en dash (–) in place of the value. The handle position corresponds to the first selected value."
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
30
|
"type": "guideline",
|
|
31
|
-
"content": "
|
|
31
|
+
"content": "Text overflow.\n\nWhen the label is too long for the available horizontal space, it wraps to form another line."
|
|
32
32
|
},
|
|
33
33
|
{
|
|
34
34
|
"type": "guideline",
|
|
35
|
-
"content": "
|
|
35
|
+
"content": "Double-click to reset.\n\nAfter a slider has been adjusted, it can be reset to the default value by double-clicking the handle."
|
|
36
36
|
},
|
|
37
37
|
{
|
|
38
38
|
"type": "guideline",
|
|
39
|
-
"content": "
|
|
39
|
+
"content": "Include a label.\n\nEvery slider should have a label. A slider without a label is ambiguous and not accessible. Write the label in sentence case."
|
|
40
40
|
},
|
|
41
41
|
{
|
|
42
42
|
"type": "guideline",
|
|
43
|
-
"content": "
|
|
43
|
+
"content": "Review label-less designs.\n\nIn rare cases where context is sufficient and a label could be absent, make sure to have the design reviewed and approved by an accessibility expert. These sliders must still include an ARIA label in HTML, using either aria-label or aria-labelledby depending on context."
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
46
|
"type": "guideline",
|
|
47
|
-
"content": "
|
|
47
|
+
"content": "Allow a hot text option when needed.\n\nIn addition to dragging the handle, sliders can offer other ways to change the value, known as \"hot text.\" Users can click the value text and drag up or down, or scroll up or down while hovering over the value text."
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
50
|
"type": "guideline",
|
|
51
|
-
"content": "
|
|
51
|
+
"content": "Show value units to help provide context.\n\nSlider values can include a unit when it adds context, such as \"%\" or \"px.\" When the value is shown within a text field, the unit disappears on focus."
|
|
52
52
|
},
|
|
53
53
|
{
|
|
54
54
|
"type": "guideline",
|
|
55
|
-
"content": "
|
|
55
|
+
"content": "Prefix positive/negative values.\n\nIf the value ranges from negative to positive, prefix the value with a plus (+) or minus (-) sign. When the sign is shown within a text field, it remains visible on focus. When the sign is shown outside the text field, there should be a space between the sign and the numerical value for readability."
|
|
56
56
|
},
|
|
57
57
|
{
|
|
58
58
|
"type": "guideline",
|
|
59
|
-
"content": "
|
|
59
|
+
"content": "RTL.\n\nFor RTL (right-to-left) languages, the layout of the slider is mirrored. The label is right-aligned, the value is left-aligned, and the fill progresses from right to left. Keep in mind that the placement of the percent sign differs depending on the locale."
|
|
60
60
|
},
|
|
61
61
|
{
|
|
62
62
|
"type": "guideline",
|
|
63
|
-
"content": "
|
|
63
|
+
"content": "Keyboard interactions.\n\nKey Interaction TabMoves focus onto or off of the button.Space or EnterExecutes the button action. The focus remains on the button except if the button opens or closes the current container. In this case, the focus moves to the target or back to the caller."
|
|
64
64
|
},
|
|
65
65
|
{
|
|
66
66
|
"type": "guideline",
|
|
67
|
-
"content": "
|
|
67
|
+
"content": "Cursor guidelines.\n\nCursor Usage PointerUse the pointer cursor for all interactive components."
|
|
68
68
|
},
|
|
69
69
|
{
|
|
70
70
|
"type": "guideline",
|
|
71
|
-
"content": "
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
"type": "guideline",
|
|
75
|
-
"content": "A slider can be navigated using a keyboard. The keyboard focus state takes the slider’s visual hover state and adds a blue ring to the slider handle in focus."
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
"type": "guideline",
|
|
79
|
-
"content": "A slider representing multiple non-identical values appears as indeterminate, with an en dash (–) in place of the value. The handle position corresponds to the first selected value."
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
"type": "guideline",
|
|
83
|
-
"content": "When the label is too long for the available horizontal space, it wraps to form another line."
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
"type": "guideline",
|
|
87
|
-
"content": "After a slider has been adjusted, it can be reset to the default value by double-clicking the handle."
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
"type": "guideline",
|
|
91
|
-
"content": "Every slider should have a label. A slider without a label is ambiguous and not accessible. Write the label in sentence case."
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
"type": "guideline",
|
|
95
|
-
"content": "In addition to dragging the handle, sliders can offer other ways to change the value, known as “hot text.” Users can click the value text and drag up or down, or scroll up or down while hovering over the value text."
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
"type": "guideline",
|
|
99
|
-
"content": "Slider values can include a unit when it adds context, such as “%” or “px.” When the value is shown within a text field, the unit disappears on focus."
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
"type": "guideline",
|
|
103
|
-
"content": "If the value ranges from negative to positive, prefix the value with a plus (+) or minus (-) sign. When the sign is shown within a text field, it remains visible on focus. When the sign is shown outside the text field, there should be a space between the sign and the numerical value for readability."
|
|
71
|
+
"content": "WCAG 2.2 compliance.\n\nAny criterion not mention in the below table are not applicable to this component or are resolved with underlying requirements, engineering, and styles of the entire system. 1. Perceivable Requirement Criterion Level Compliance Non-text content 1.1.1 ANon‑text elements—such as icons used in buttons—must provide a text alternative that communicates the button’s purpose. All buttons, especially icon‑only buttons, need an accessible name (for example, via a title, aria‑label, or associated text) so screen readers can announce their function.Info and relationships, Identify purpose 1.3.1, 1.3.6 A, AAAButtons should be understandable by assistive technologies like screen readers. This means using the proper semantic HTML or ARIA role of buttons should be utilized.Use of color 1.4.1 AColor is never used as the sole way to convey meaning in buttons. While negative buttons do use red to reinforce their purpose, every button also includes a clear text label that communicates the action it performs.Text contrast minimums 1.4.3 AALarge text has a contrast ratio of at least 3:1, and small text has a contrast ratio of at least 4.5:1. Incidental text such as disabled, hidden, or decorative text has no contrast requirement.Resize text 1.4.4 AAButtons should be built in such a way that they can be resized without assistive technology up to 200%.Visual presentation 1.4.8 AAAThe width of text blocks is no more than 80 characters (40 for CJK languages), and text is never justified.Non-text contrast 1.4.11 AAThe visual presentation of icons and various states have a contrast ratio of at least 3:1.Text spacing 1.4.12 AALine height of text is at least 1.5x the font size. 2. Operable Requirement Criterion Level Compliance Keyboard 2.1.1, 2.1.3 A, AAAAll functionality of the component is operable through a keyboard without specific timing for keystrokes.Keyboard traps 2.1.2 AFocus can be moved away from the component using only a keyboard.Seizures and physical reactions 2.3.1, 2.3.2, 2.3.3 A, AAA, AAAThere is no flashing content or unnecessary motion or animation in this component.Focus order 2.4.3 ANavigation sequences receive focus in an order that preserves meaning and operability.Focus visible 2.4.7 AAKeyboard states use an indicator that is visible with at least 3:1 contrast."
|
|
104
72
|
}
|
|
105
73
|
],
|
|
106
74
|
"options": {
|
|
107
|
-
"label": {
|
|
108
|
-
"type": "string"
|
|
109
|
-
},
|
|
75
|
+
"label": { "type": "string" },
|
|
110
76
|
"labelPosition": {
|
|
111
77
|
"type": "string",
|
|
112
78
|
"default": "top",
|
|
113
|
-
"values": [
|
|
114
|
-
{
|
|
115
|
-
"value": "top"
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
"value": "side"
|
|
119
|
-
}
|
|
120
|
-
]
|
|
121
|
-
},
|
|
122
|
-
"value": {
|
|
123
|
-
"type": "number",
|
|
124
|
-
"description": "from minValue to maxValue"
|
|
125
|
-
},
|
|
126
|
-
"minValue": {
|
|
127
|
-
"type": "number",
|
|
128
|
-
"default": 0
|
|
129
|
-
},
|
|
130
|
-
"maxValue": {
|
|
131
|
-
"type": "number",
|
|
132
|
-
"default": 100
|
|
79
|
+
"values": [{ "value": "top" }, { "value": "side" }]
|
|
133
80
|
},
|
|
81
|
+
"value": { "type": "number", "description": "from minValue to maxValue" },
|
|
82
|
+
"minValue": { "type": "number", "default": 0 },
|
|
83
|
+
"maxValue": { "type": "number", "default": 100 },
|
|
134
84
|
"isRange": {
|
|
135
85
|
"type": "boolean",
|
|
136
86
|
"default": false,
|
|
137
87
|
"description": "If true, the slider will allow selection of a range of values by displaying two handles."
|
|
138
88
|
},
|
|
139
|
-
"step": {
|
|
140
|
-
"type": "number",
|
|
141
|
-
"default": 1
|
|
142
|
-
},
|
|
89
|
+
"step": { "type": "number", "default": 1 },
|
|
143
90
|
"valueFormat": {
|
|
144
91
|
"type": "string",
|
|
145
92
|
"description": "This will vary depending on implementation."
|
|
@@ -147,92 +94,36 @@
|
|
|
147
94
|
"progressionScale": {
|
|
148
95
|
"type": "string",
|
|
149
96
|
"default": "linear",
|
|
150
|
-
"values": [
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
},
|
|
159
|
-
"width": {
|
|
160
|
-
"type": "number"
|
|
161
|
-
},
|
|
162
|
-
"hasFill": {
|
|
163
|
-
"type": "boolean",
|
|
164
|
-
"default": false
|
|
165
|
-
},
|
|
166
|
-
"fillStart": {
|
|
167
|
-
"type": "number",
|
|
168
|
-
"default": 0
|
|
169
|
-
},
|
|
170
|
-
"hasGradient": {
|
|
171
|
-
"type": "boolean",
|
|
172
|
-
"default": false
|
|
173
|
-
},
|
|
174
|
-
"isEditable": {
|
|
175
|
-
"type": "boolean",
|
|
176
|
-
"default": false
|
|
177
|
-
},
|
|
178
|
-
"isDisabled": {
|
|
179
|
-
"type": "boolean",
|
|
180
|
-
"default": false
|
|
181
|
-
}
|
|
97
|
+
"values": [{ "value": "linear" }, { "value": "log" }]
|
|
98
|
+
},
|
|
99
|
+
"width": { "type": "number" },
|
|
100
|
+
"hasFill": { "type": "boolean", "default": false },
|
|
101
|
+
"fillStart": { "type": "number", "default": 0 },
|
|
102
|
+
"hasGradient": { "type": "boolean", "default": false },
|
|
103
|
+
"isEditable": { "type": "boolean", "default": false },
|
|
104
|
+
"isDisabled": { "type": "boolean", "default": false }
|
|
182
105
|
},
|
|
183
106
|
"anatomy": [
|
|
184
|
-
{
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
}
|
|
188
|
-
{
|
|
189
|
-
"name": "handle"
|
|
190
|
-
},
|
|
191
|
-
{
|
|
192
|
-
"name": "track"
|
|
193
|
-
},
|
|
194
|
-
{
|
|
195
|
-
"name": "control"
|
|
196
|
-
}
|
|
107
|
+
{ "name": "text-field", "description": "Editable numeric value field." },
|
|
108
|
+
{ "name": "handle" },
|
|
109
|
+
{ "name": "track" },
|
|
110
|
+
{ "name": "control" }
|
|
197
111
|
],
|
|
198
112
|
"states": [
|
|
199
|
-
{
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
},
|
|
203
|
-
{
|
|
204
|
-
"name": "down",
|
|
205
|
-
"trigger": "interaction"
|
|
206
|
-
},
|
|
207
|
-
{
|
|
208
|
-
"name": "keyboard-focus",
|
|
209
|
-
"trigger": "interaction"
|
|
210
|
-
}
|
|
113
|
+
{ "name": "hover", "trigger": "interaction" },
|
|
114
|
+
{ "name": "down", "trigger": "interaction" },
|
|
115
|
+
{ "name": "keyboard-focus", "trigger": "interaction" }
|
|
211
116
|
],
|
|
212
|
-
"lifecycle": {
|
|
213
|
-
"introduced": "1.0.0-draft"
|
|
214
|
-
},
|
|
117
|
+
"lifecycle": { "introduced": "1.0.0-draft" },
|
|
215
118
|
"accessibility": {
|
|
216
119
|
"role": "slider",
|
|
217
120
|
"intents": ["choose"],
|
|
218
121
|
"focusable": true,
|
|
219
122
|
"keyboardIntents": ["increment", "decrement"],
|
|
220
123
|
"wcag": [
|
|
221
|
-
{
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
"title": "Info and Relationships"
|
|
225
|
-
},
|
|
226
|
-
{
|
|
227
|
-
"criterion": "2.1.1",
|
|
228
|
-
"level": "A",
|
|
229
|
-
"title": "Keyboard"
|
|
230
|
-
},
|
|
231
|
-
{
|
|
232
|
-
"criterion": "4.1.2",
|
|
233
|
-
"level": "A",
|
|
234
|
-
"title": "Name, Role, Value"
|
|
235
|
-
}
|
|
124
|
+
{ "criterion": "1.3.1", "level": "A", "title": "Info and Relationships" },
|
|
125
|
+
{ "criterion": "2.1.1", "level": "A", "title": "Keyboard" },
|
|
126
|
+
{ "criterion": "4.1.2", "level": "A", "title": "Name, Role, Value" }
|
|
236
127
|
]
|
|
237
128
|
}
|
|
238
129
|
}
|
|
@@ -16,80 +16,33 @@
|
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
18
|
"type": "guideline",
|
|
19
|
-
"content": "
|
|
19
|
+
"content": "Placement.\n\nStandard dialogs appear in the center of the screen."
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
22
|
"type": "guideline",
|
|
23
|
-
"content": "
|
|
23
|
+
"content": "Text overflow.\n\nWhen the title and description text are too long for the available horizontal space, they wrap to form another line."
|
|
24
24
|
},
|
|
25
25
|
{
|
|
26
26
|
"type": "guideline",
|
|
27
|
-
"content": "
|
|
27
|
+
"content": "Button group overflow.\n\nStandard dialogs can include up to three buttons. When horizontal space is limited, the buttons stack vertically. Buttons should be ordered by ascending importance, with the most critical action placed at the end or bottom of the stack."
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
30
|
"type": "guideline",
|
|
31
|
-
"content": "
|
|
31
|
+
"content": "Dismissible or not?\n\nWhether a dialog is dismissible is controlled by the hideCloseButton prop. A dialog with a close button can be dismissed by clicking the button or the background overlay. Avoid using a dismissible dialog when the user needs to confirm an action or make a decision. Instead, use a dismissible dialog for information that is optional or nice to know—content that can be quickly dismissed without requiring user action."
|
|
32
32
|
},
|
|
33
33
|
{
|
|
34
|
-
"type": "
|
|
35
|
-
"content": "
|
|
36
|
-
|
|
37
|
-
{
|
|
38
|
-
"type": "guideline",
|
|
39
|
-
"content": "In both cases, pressing the Escape key should close the dialog and return the page to its previous state. This action should behave the same as clicking a close or cancel button."
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
"type": "guideline",
|
|
43
|
-
"content": "Standard dialogs are available in three widths:"
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
"type": "guideline",
|
|
47
|
-
"content": "Dialogs automatically scale down to 90% of the screen width on smaller viewports. Height is flexible and adjusts to fit the content."
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
"type": "guideline",
|
|
51
|
-
"content": "Standard dialogs can include a full-bleed cover image at the top. Dialogs with a cover image should not be dismissible and rely on buttons in the footer area to close the dialog."
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
"type": "guideline",
|
|
55
|
-
"content": "Standard dialogs can include an optional description. Use the description to briefly provide additional context or information that helps users make an informed decision based on the available actions."
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
"type": "guideline",
|
|
59
|
-
"content": "All standard dialogs must include a title. The title appears at the top of the dialog and should briefly describe the expected outcome if the user proceeds with the primary action. If a cover image is shown, the title will appear below it."
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
"type": "guideline",
|
|
63
|
-
"content": "Standard dialogs appear in the center of the screen."
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
"type": "guideline",
|
|
67
|
-
"content": "When the title and description text are too long for the available horizontal space, they wrap to form another line."
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
"type": "guideline",
|
|
71
|
-
"content": "Standard dialogs can include up to three buttons. When horizontal space is limited, the buttons stack vertically. Buttons should be ordered by ascending importance, with the most critical action placed at the end or bottom of the stack."
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
"type": "guideline",
|
|
75
|
-
"content": "Avoid using a dismissible dialog when the user needs to confirm an action or make a decision. Instead, use a dismissible dialog for information that is optional or nice to know—content that can be quickly dismissed without requiring user action."
|
|
34
|
+
"type": "do-dont",
|
|
35
|
+
"content": "Don't include buttons when dismissible",
|
|
36
|
+
"dont": "A dismissible dialog should not include buttons in the footer. Instead, the dialog is dismissed by clicking the close button or the background overlay."
|
|
76
37
|
},
|
|
77
38
|
{
|
|
78
39
|
"type": "guideline",
|
|
79
|
-
"content": "
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
"type": "guideline",
|
|
83
|
-
"content": "Most dialog titles should communicate the primary action of the dialog. When possible, the button label should use the same language as the action mentioned in the title. For example, if the title is “Delete conversation,” the primary action button label should be “Delete.”"
|
|
40
|
+
"content": "Use similar language for dialog titles and actions.\n\nMost dialog titles should communicate the primary action of the dialog. When possible, the button label should use the same language as the action mentioned in the title. For example, if the title is \"Delete conversation,\" the primary action button label should be \"Delete."
|
|
84
41
|
}
|
|
85
42
|
],
|
|
86
43
|
"options": {
|
|
87
|
-
"title": {
|
|
88
|
-
|
|
89
|
-
},
|
|
90
|
-
"description": {
|
|
91
|
-
"type": "string"
|
|
92
|
-
},
|
|
44
|
+
"title": { "type": "string" },
|
|
45
|
+
"description": { "type": "string" },
|
|
93
46
|
"hideImage": {
|
|
94
47
|
"type": "boolean",
|
|
95
48
|
"default": false,
|
|
@@ -98,29 +51,14 @@
|
|
|
98
51
|
"size": {
|
|
99
52
|
"type": "string",
|
|
100
53
|
"default": "m",
|
|
101
|
-
"values": [
|
|
102
|
-
{
|
|
103
|
-
"value": "s"
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
"value": "m"
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
"value": "l"
|
|
110
|
-
}
|
|
111
|
-
]
|
|
112
|
-
},
|
|
113
|
-
"hideCloseButton": {
|
|
114
|
-
"type": "boolean",
|
|
115
|
-
"default": false
|
|
54
|
+
"values": [{ "value": "s" }, { "value": "m" }, { "value": "l" }]
|
|
116
55
|
},
|
|
56
|
+
"hideCloseButton": { "type": "boolean", "default": false },
|
|
117
57
|
"footerContent": {
|
|
118
58
|
"type": "string",
|
|
119
59
|
"description": "Optional footer content to display in the dialog footer like a checkbox."
|
|
120
60
|
},
|
|
121
|
-
"primaryActionLabel": {
|
|
122
|
-
"type": "string"
|
|
123
|
-
},
|
|
61
|
+
"primaryActionLabel": { "type": "string" },
|
|
124
62
|
"secondaryActionLabel": {
|
|
125
63
|
"type": "string",
|
|
126
64
|
"description": "If undefined, this button does not appear."
|
|
@@ -131,25 +69,15 @@
|
|
|
131
69
|
"description": "If undefined, this button does not appear."
|
|
132
70
|
}
|
|
133
71
|
},
|
|
134
|
-
"lifecycle": {
|
|
135
|
-
"introduced": "1.0.0-draft"
|
|
136
|
-
},
|
|
72
|
+
"lifecycle": { "introduced": "1.0.0-draft" },
|
|
137
73
|
"accessibility": {
|
|
138
74
|
"role": "dialog",
|
|
139
75
|
"intents": ["dismiss"],
|
|
140
76
|
"focusable": false,
|
|
141
77
|
"keyboardIntents": ["dismiss"],
|
|
142
78
|
"wcag": [
|
|
143
|
-
{
|
|
144
|
-
|
|
145
|
-
"level": "A",
|
|
146
|
-
"title": "Focus Order"
|
|
147
|
-
},
|
|
148
|
-
{
|
|
149
|
-
"criterion": "4.1.2",
|
|
150
|
-
"level": "A",
|
|
151
|
-
"title": "Name, Role, Value"
|
|
152
|
-
}
|
|
79
|
+
{ "criterion": "2.4.3", "level": "A", "title": "Focus Order" },
|
|
80
|
+
{ "criterion": "4.1.2", "level": "A", "title": "Name, Role, Value" }
|
|
153
81
|
]
|
|
154
82
|
}
|
|
155
83
|
}
|
|
@@ -16,160 +16,78 @@
|
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
18
|
"type": "guideline",
|
|
19
|
-
"content": "
|
|
19
|
+
"content": "Text overflow.\n\nWhen the text is too long for the horizontal space available, it wraps to form another line."
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
22
|
"type": "guideline",
|
|
23
|
-
"content": "
|
|
23
|
+
"content": "Use the appropriate variation.\n\nSemantic status lights should never be used for color coding categories or labels, and vice versa."
|
|
24
24
|
},
|
|
25
25
|
{
|
|
26
26
|
"type": "guideline",
|
|
27
|
-
"content": "
|
|
27
|
+
"content": "Status light text.\n\nA status light should always include a label with text that clearly communicates about the kind of status being shown. Do not change the text color to match the dot."
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
30
|
"type": "guideline",
|
|
31
|
-
"content": "
|
|
31
|
+
"content": "RTL.\n\nFor RTL (right-to-left) languages, the layout of the status light is mirrored. The dot is placed on the right side of the text."
|
|
32
32
|
},
|
|
33
33
|
{
|
|
34
34
|
"type": "guideline",
|
|
35
|
-
"content": "
|
|
35
|
+
"content": "Cursor Description Default (Arrow)Use the default cursor for non-interactive components like status light."
|
|
36
36
|
},
|
|
37
37
|
{
|
|
38
38
|
"type": "guideline",
|
|
39
|
-
"content": "
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
"type": "guideline",
|
|
43
|
-
"content": "Semantic status lights should never be used for color coding categories or labels, and vice versa."
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
"type": "guideline",
|
|
47
|
-
"content": "A status light should always include a label with text that clearly communicates about the kind of status being shown. Do not change the text color to match the dot."
|
|
39
|
+
"content": "Any criterion not mention in the below table are not applicable to this component or are resolved with underlying requirements, engineering, and styles of the entire system. 1. Perceivable Requirement Criterion Level Compliance Info and relationships, Identify purpose 1.3.1, 1.3.6 A, AAAStatus lights should be understandable by assistive technologies like screen readers. This means using the proper semantic HTML or ARIA role should be utilized.Use of color 1.4.1 AColor is never used as the sole way to convey meaning in status lights. While color is used to reinforce their meaning, every status light also includes a clear text label that communicates the status.Text contrast minimums 1.4.3 AALarge text has a contrast ratio of at least 3:1, and small text has a contrast ratio of at least 4.5:1. Incidental text such as disabled, hidden, or decorative text has no contrast requirement.Visual presentation 1.4.8 AAAThe width of text blocks is no more than 80 characters (40 for CJK languages), and text is never justified.Non-text contrast 1.4.11 AAThe visual presentation of the status light dot has a contrast ratio of at least 3:1.Text spacing 1.4.12 AALine height of text is at least 1.5x the font size when wrapped. 2. Operable RequirementCriterionLevel Compliance Seizures and physical reactions 2.3.1, 2.3.2, 2.3.3 A, AAA, AAAThere is no flashing content or unnecessary motion or animation in this component."
|
|
48
40
|
}
|
|
49
41
|
],
|
|
50
42
|
"options": {
|
|
51
|
-
"label": {
|
|
52
|
-
"type": "string"
|
|
53
|
-
},
|
|
43
|
+
"label": { "type": "string" },
|
|
54
44
|
"variant": {
|
|
55
45
|
"type": "string",
|
|
56
46
|
"default": "informative",
|
|
57
47
|
"values": [
|
|
58
|
-
{
|
|
59
|
-
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
|
|
66
|
-
},
|
|
67
|
-
{
|
|
68
|
-
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
"value": "yellow"
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
"value": "magenta"
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
"value": "fuchsia"
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
"value": "purple"
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
"value": "seafoam"
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
"value": "pink"
|
|
99
|
-
},
|
|
100
|
-
{
|
|
101
|
-
"value": "turquoise"
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
"value": "cinnamon"
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
"value": "brown"
|
|
108
|
-
},
|
|
109
|
-
{
|
|
110
|
-
"value": "silver"
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
"value": "gray"
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
"value": "red"
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
"value": "orange"
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
"value": "green"
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
"value": "cyan"
|
|
126
|
-
}
|
|
48
|
+
{ "value": "informative" },
|
|
49
|
+
{ "value": "neutral" },
|
|
50
|
+
{ "value": "positive" },
|
|
51
|
+
{ "value": "notice" },
|
|
52
|
+
{ "value": "negative" },
|
|
53
|
+
{ "value": "indigo" },
|
|
54
|
+
{ "value": "celery" },
|
|
55
|
+
{ "value": "chartreuse" },
|
|
56
|
+
{ "value": "yellow" },
|
|
57
|
+
{ "value": "magenta" },
|
|
58
|
+
{ "value": "fuchsia" },
|
|
59
|
+
{ "value": "purple" },
|
|
60
|
+
{ "value": "seafoam" },
|
|
61
|
+
{ "value": "pink" },
|
|
62
|
+
{ "value": "turquoise" },
|
|
63
|
+
{ "value": "cinnamon" },
|
|
64
|
+
{ "value": "brown" },
|
|
65
|
+
{ "value": "silver" },
|
|
66
|
+
{ "value": "gray" },
|
|
67
|
+
{ "value": "red" },
|
|
68
|
+
{ "value": "orange" },
|
|
69
|
+
{ "value": "green" },
|
|
70
|
+
{ "value": "cyan" }
|
|
127
71
|
]
|
|
128
72
|
},
|
|
129
73
|
"size": {
|
|
130
74
|
"type": "string",
|
|
131
75
|
"default": "m",
|
|
132
76
|
"values": [
|
|
133
|
-
{
|
|
134
|
-
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
"value": "m"
|
|
138
|
-
},
|
|
139
|
-
{
|
|
140
|
-
"value": "l"
|
|
141
|
-
},
|
|
142
|
-
{
|
|
143
|
-
"value": "xl"
|
|
144
|
-
}
|
|
77
|
+
{ "value": "s" },
|
|
78
|
+
{ "value": "m" },
|
|
79
|
+
{ "value": "l" },
|
|
80
|
+
{ "value": "xl" }
|
|
145
81
|
]
|
|
146
82
|
}
|
|
147
83
|
},
|
|
148
84
|
"anatomy": [
|
|
149
|
-
{
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
},
|
|
153
|
-
{
|
|
154
|
-
"name": "visual-100",
|
|
155
|
-
"description": "Severity dot, 100 size variant."
|
|
156
|
-
},
|
|
157
|
-
{
|
|
158
|
-
"name": "visual-200",
|
|
159
|
-
"description": "Severity dot, 200 size variant."
|
|
160
|
-
},
|
|
161
|
-
{
|
|
162
|
-
"name": "visual-300",
|
|
163
|
-
"description": "Severity dot, 300 size variant."
|
|
164
|
-
},
|
|
165
|
-
{
|
|
166
|
-
"name": "dot"
|
|
167
|
-
}
|
|
85
|
+
{ "name": "visual-75", "description": "Severity dot, 75 size variant." },
|
|
86
|
+
{ "name": "visual-100", "description": "Severity dot, 100 size variant." },
|
|
87
|
+
{ "name": "visual-200", "description": "Severity dot, 200 size variant." },
|
|
88
|
+
{ "name": "visual-300", "description": "Severity dot, 300 size variant." },
|
|
89
|
+
{ "name": "dot" }
|
|
168
90
|
],
|
|
169
|
-
"lifecycle": {
|
|
170
|
-
|
|
171
|
-
},
|
|
172
|
-
"accessibility": {
|
|
173
|
-
"focusable": false
|
|
174
|
-
}
|
|
91
|
+
"lifecycle": { "introduced": "1.0.0-draft" },
|
|
92
|
+
"accessibility": { "focusable": false }
|
|
175
93
|
}
|