@adobe/spectrum-design-data 3.3.0 → 3.4.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 +32 -102
- package/components/action-bar.json +9 -23
- package/components/action-button.json +52 -92
- package/components/action-group.json +18 -129
- package/components/alert-banner.json +8 -27
- package/components/alert-dialog.json +45 -55
- package/components/avatar-group.json +20 -50
- package/components/avatar.json +44 -123
- package/components/badge.json +66 -160
- package/components/breadcrumbs.json +26 -100
- package/components/button-group.json +32 -63
- package/components/button.json +74 -105
- package/components/calendar.json +8 -67
- package/components/cards.json +31 -46
- package/components/checkbox-group.json +22 -84
- package/components/checkbox.json +33 -96
- package/components/close-button.json +31 -73
- 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 +18 -18
- package/components/color-slider.json +26 -122
- package/components/color-wheel.json +17 -84
- package/components/combo-box.json +56 -188
- package/components/contextual-help.json +87 -126
- package/components/date-picker.json +24 -120
- package/components/divider.json +25 -38
- package/components/drop-zone.json +25 -37
- package/components/field-label.json +22 -59
- 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 +31 -63
- package/components/list-view.json +15 -73
- package/components/menu.json +51 -180
- package/components/meter.json +35 -76
- package/components/number-field.json +34 -168
- package/components/picker.json +48 -187
- package/components/popover.json +47 -123
- package/components/progress-bar.json +33 -105
- package/components/progress-circle.json +25 -55
- package/components/radio-button.json +14 -67
- package/components/radio-group.json +34 -131
- package/components/rating.json +9 -38
- package/components/search-field.json +40 -125
- package/components/segmented-control.json +27 -69
- package/components/select-box.json +29 -96
- package/components/side-navigation.json +28 -69
- package/components/slider.json +45 -154
- package/components/standard-dialog.json +16 -88
- package/components/status-light.json +51 -133
- package/components/steplist.json +5 -24
- package/components/swatch-group.json +19 -55
- package/components/swatch.json +24 -79
- package/components/switch.json +42 -79
- package/components/table.json +26 -73
- package/components/tabs.json +35 -52
- package/components/tag-field.json +14 -60
- package/components/tag-group.json +22 -55
- package/components/tag.json +27 -77
- package/components/takeover-dialog.json +10 -61
- package/components/text-area.json +55 -204
- package/components/text-field.json +48 -169
- package/components/thumbnail.json +22 -63
- package/components/toast.json +30 -47
- package/components/tooltip.json +37 -84
- package/components/tree-view.json +51 -146
- package/fields/structure.json +1 -2
- package/guidelines/ai-resource-guide.json +42 -0
- package/guidelines/app-frame-overview.json +45 -44
- package/guidelines/applying-the-type-system.json +71 -0
- package/guidelines/attention-hierarchy.json +13 -22
- package/guidelines/background-layers.json +84 -10
- package/guidelines/bi-directionality.json +57 -0
- package/guidelines/border-width.json +70 -0
- package/guidelines/brand.json +24 -12
- package/guidelines/cognitive.json +229 -0
- package/guidelines/colors.json +55 -17
- package/guidelines/component-spacing.json +65 -0
- package/guidelines/contact-us.json +27 -0
- package/guidelines/containers.json +21 -28
- package/guidelines/content-area-browsing-context.json +73 -0
- package/guidelines/creating-bluelines-browsing-context.json +71 -0
- package/guidelines/design-tokens.json +186 -0
- package/guidelines/developer-overview.json +33 -9
- package/guidelines/drop-shadow.json +76 -0
- package/guidelines/faqs.json +100 -9
- package/guidelines/fonts.json +33 -14
- package/guidelines/grammar-and-mechanics.json +276 -0
- package/guidelines/grays.json +17 -44
- package/guidelines/header-browsing-context.json +40 -0
- package/guidelines/icon-fundamentals.json +7 -18
- package/guidelines/illustration.json +120 -0
- package/guidelines/in-product-word-list.json +25 -0
- package/guidelines/inclusive-design.json +101 -0
- package/guidelines/inclusive-ux-writing.json +34 -0
- package/guidelines/internationalization.json +103 -0
- package/guidelines/layout-spacing.json +39 -0
- package/guidelines/manifest.json +280 -16
- package/guidelines/motion.json +18 -13
- package/guidelines/object-styles-overview.json +17 -0
- package/guidelines/principles.json +7 -8
- package/guidelines/resources.json +29 -15
- package/guidelines/rounding.json +85 -0
- package/guidelines/side-navigation-browsing-context.json +74 -0
- package/guidelines/spacing-overview.json +78 -0
- package/guidelines/states.json +16 -11
- package/guidelines/support.json +125 -0
- package/guidelines/typography-overview.json +39 -0
- package/guidelines/typography-system.json +212 -0
- package/guidelines/using-icons.json +32 -47
- package/guidelines/voice-and-tone.json +51 -0
- package/guidelines/whats-new.json +21 -0
- package/guidelines/writing-about-people.json +99 -0
- package/guidelines/writing-for-errors.json +140 -0
- package/guidelines/writing-for-onboarding.json +123 -0
- package/guidelines/writing-for-readability.json +66 -0
- package/guidelines/writing-with-visuals.json +78 -0
- package/package.json +2 -2
- package/tokens/layout.tokens.json +88 -0
|
@@ -9,13 +9,6 @@
|
|
|
9
9
|
"category": "inputs",
|
|
10
10
|
"documentationUrl": "https://spectrum.adobe.com/page/text-field/"
|
|
11
11
|
},
|
|
12
|
-
"implementations": [
|
|
13
|
-
{
|
|
14
|
-
"platform": "web",
|
|
15
|
-
"componentName": "TextField",
|
|
16
|
-
"package": "@react-spectrum/s2"
|
|
17
|
-
}
|
|
18
|
-
],
|
|
19
12
|
"documentBlocks": [
|
|
20
13
|
{
|
|
21
14
|
"type": "purpose",
|
|
@@ -23,248 +16,134 @@
|
|
|
23
16
|
},
|
|
24
17
|
{
|
|
25
18
|
"type": "guideline",
|
|
26
|
-
"content": "
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
"type": "guideline",
|
|
30
|
-
"content": "Text fields should always have an accessible name, typically provided by a visible text label. In rare cases where context is sufficient and an accessibility expert has reviewed the design, the visible label may be hidden or omitted. When no visible label is present, the input must still expose an accessible name (for example, in HTML via “aria-label” or “aria-labelledby,” and on other platforms via the platform’s accessible-name mechanism)."
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
"type": "guideline",
|
|
34
|
-
"content": "Labels can be placed either on top or on the side. Top labels are the default and are recommended because they work better with long copy, localization, and responsive layouts. Side labels are most useful when vertical space is limited."
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
"type": "guideline",
|
|
38
|
-
"content": "The value shows a user’s entered text."
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
"type": "guideline",
|
|
42
|
-
"content": "The text field’s default width is field-default-width-\\[small/medium/large/extra-large]."
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
"type": "guideline",
|
|
46
|
-
"content": "Text fields 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."
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
"type": "guideline",
|
|
50
|
-
"content": "Text fields can be marked as optional or required, depending on the situation. For required text fields, there are two styling options: a “(required)” label or an asterisk. If you use an asterisk, be sure to include hint text to explain what the asterisk means. Optional text fields are either denoted with text added to the end of the label — “(optional)” — or have no indication at all."
|
|
19
|
+
"content": "Minimum width.\n\nThe minimum width for a text field is 1.5 × the height of the field. This minimum width guarantees that small text fields are readable and easy to target on touch devices."
|
|
51
20
|
},
|
|
52
21
|
{
|
|
53
22
|
"type": "guideline",
|
|
54
|
-
"content": "
|
|
23
|
+
"content": "Text overflow.\n\nWhen the field label is too long for the available horizontal space, it wraps to form another line. The field text itself truncates."
|
|
55
24
|
},
|
|
56
25
|
{
|
|
57
26
|
"type": "guideline",
|
|
58
|
-
"content": "
|
|
27
|
+
"content": "Mixed value.\n\nWhen a text field presents multiple values that are not identical, the field should show an en dash (–)."
|
|
59
28
|
},
|
|
60
29
|
{
|
|
61
30
|
"type": "guideline",
|
|
62
|
-
"content": "
|
|
31
|
+
"content": "Help text overflow.\n\nWhen the help text is too long for the available horizontal space, it wraps to form another line."
|
|
63
32
|
},
|
|
64
33
|
{
|
|
65
34
|
"type": "guideline",
|
|
66
|
-
"content": "
|
|
35
|
+
"content": "Include a label.\n\nEvery text field should have a label. A field without a label is ambiguous and not accessible."
|
|
67
36
|
},
|
|
68
37
|
{
|
|
69
38
|
"type": "guideline",
|
|
70
|
-
"content": "
|
|
39
|
+
"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 should still include an aria-label in HTML (depending on the context, aria-label or aria-labelledby)."
|
|
71
40
|
},
|
|
72
41
|
{
|
|
73
42
|
"type": "guideline",
|
|
74
|
-
"content": "
|
|
43
|
+
"content": "Follow capitalization rules.\n\nField labels should be in sentence case."
|
|
75
44
|
},
|
|
76
45
|
{
|
|
77
46
|
"type": "guideline",
|
|
78
|
-
"content": "
|
|
47
|
+
"content": "Mark the minority of text fields in a form as required or optional.\n\nIn a single form, mark only the required fields or only the optional fields, depending on whichever is less frequent in the entire form. If most of the text fields are optional, only the required fields should be give an asterisk or have labels appended with \"(required)\". If most of the text fields are required, only the optional fields should be appended with \"(optional)\". An asterisk should never be used to note that a text field is optional."
|
|
79
48
|
},
|
|
80
49
|
{
|
|
81
50
|
"type": "guideline",
|
|
82
|
-
"content": "
|
|
51
|
+
"content": "Use help text to show hints, formatting, and requirements.\n\nThe description in the help text is flexible and encompasses a range of guidance. Sometimes this guidance is about what to input, and sometime it's about how to input. This includes information such as: An overall description of the input field Hints for what kind of information needs to be input Specific formatting examples or requirements The help text's message should not simply restate the same information in the label in order to prompt someone to interact with it. Don't add help text if it isn't actually relevant or meaningful to a user in order to try to maintain layout continuity with other inputs that require help text."
|
|
83
52
|
},
|
|
84
53
|
{
|
|
85
|
-
"type": "
|
|
86
|
-
"content": "
|
|
87
|
-
|
|
88
|
-
{
|
|
89
|
-
"type": "guideline",
|
|
90
|
-
"content": "When a text field presents multiple values that are not identical, the field should show an en dash (–)."
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
"type": "guideline",
|
|
94
|
-
"content": "When the help text is too long for the available horizontal space, it wraps to form another line."
|
|
54
|
+
"type": "do-dont",
|
|
55
|
+
"content": "Don't use placeholder text",
|
|
56
|
+
"dont": "Putting instructions for how to complete an input, requirements, or any other essential information into placeholder text is not accessible. Once a value is entered, placeholder text is no longer viewable; if someone is using an automatic form filler, they will never get the information in the placeholder text. Instead, use the help text description to convey requirements or to show any formatting examples that would help user comprehension. If there's placeholder text and help text at the same time, it becomes redundant and distracting, especially if they're communicating the same thing."
|
|
95
57
|
},
|
|
96
58
|
{
|
|
97
59
|
"type": "guideline",
|
|
98
|
-
"content": "
|
|
60
|
+
"content": "Switch help text with error text.\n\nThe help text area also displays an error message. When a text field already includes help text and an error is triggered, the help text is replaced with error text. Once the error is resolved, the help text description reappears below the field. Since one gets replaced by the other, the language of the help text and error text need to work together to convey the same messaging. Help text explains the requirement or adds supplementary context for how to successfully complete the input. Error text tells a user how to fix the error by re-stating the input requirements or describing the necessary interaction. Make sure that the help text and the error text include the same essential information so that it isn't lost if one replaces the other like password requirements."
|
|
99
61
|
},
|
|
100
62
|
{
|
|
101
63
|
"type": "guideline",
|
|
102
|
-
"content": "
|
|
64
|
+
"content": "Write error text that shows a solution.\n\nWrite error messaging in a human-centered way by guiding a user and showing them a solution — don't simply state what's wrong and then leave them guessing as to how to resolve it. Ambiguous error messages can be frustrating and even shame-inducing for users. Also, keep in mind that something that a system may deem an error may not actually be perceived as an error to a user. Error text should be written in 1-2 short, complete sentences and in a clear and straightforward way. End sentences with a period, and never with an exclamation point. For text fields, the nature of the error is often related to something that needs to be fixed for in-line validation, so a helpful tone is most appropriate. For example, if someone were to miss filling out a required field that asks for their email address, write the error text like you're offering a hint or a tip to help guide them to understand what needs to go in the missing field: \"Enter your email address."
|
|
103
65
|
},
|
|
104
66
|
{
|
|
105
67
|
"type": "guideline",
|
|
106
|
-
"content": "
|
|
68
|
+
"content": "RTL.\n\nIn right‑to‑left languages, the text‑field layout is mirrored. The label is right‑aligned, and elements such as the character count, validation marker and error icon are left‑aligned. Keep in mind that some content, including email addresses, does not change direction or translate."
|
|
107
69
|
},
|
|
108
70
|
{
|
|
109
71
|
"type": "guideline",
|
|
110
|
-
"content": "
|
|
72
|
+
"content": "Keyboard interactions.\n\nKey Interaction Tab Tabbing into a text field moves focus into the field and selects the existing text. Shift + Tab Moves focus to the previous focusable element. Printable characters Inserts text at the caret position. Left / Right Arrow Moves caret one character left/right. Home / End Moves caret to start/end of field value. Backspace / Delete Removes character before/after caret. Ctrl / Cmd + A Selects all text. Enter Submits the enclosing form or triggers the form’s default action (implementation/context dependent)."
|
|
111
73
|
},
|
|
112
74
|
{
|
|
113
75
|
"type": "guideline",
|
|
114
|
-
"content": "
|
|
76
|
+
"content": "Cursor guidelines.\n\nCursor Description Text Use over the field to indicate to the user that text is editable within the field. Pointer Any clickable control that is part of the text field (e.g., clear/reveal/help icon) uses the pointer cursor."
|
|
115
77
|
},
|
|
116
78
|
{
|
|
117
79
|
"type": "guideline",
|
|
118
|
-
"content": "
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
"content": "The help text area also displays an error message. When a text field already includes help text and an error is triggered, the help text is replaced with error text. Once the error is resolved, the help text description reappears below the field."
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
"type": "guideline",
|
|
126
|
-
"content": "Since one gets replaced by the other, the language of the help text and error text need to work together to convey the same messaging. Help text explains the requirement or adds supplementary context for how to successfully complete the input. Error text tells a user how to fix the error by re-stating the input requirements or describing the necessary interaction. Make sure that the help text and the error text include the same essential information so that it isn’t lost if one replaces the other like password requirements."
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
"type": "guideline",
|
|
130
|
-
"content": "Write error messaging in a human-centered way by guiding a user and showing them a solution — don’t simply state what’s wrong and then leave them guessing as to how to resolve it. Ambiguous error messages can be frustrating and even shame-inducing for users. Also, keep in mind that something that a system may deem an error may not actually be perceived as an error to a user."
|
|
131
|
-
},
|
|
80
|
+
"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 A Non-text elements, such as icons used inside text fields (e.g., validation, clear, or affordance icons), must provide a text alternative that communicates their purpose. All text fields need an accessible name so screen readers can announce their function. Info and relationships, Identify purpose 1.3.1, 1.3.6 A, AAA Text fields and their labels, descriptions, and error messages should be understandable by assistive technologies like screen readers. This means the proper semantic HTML or ARIA role should be utilized. Contrast 1.4.3 AA The visual presentation of text has a contrast ratio of at least 4.5:1. Resize text 1.4.4 AA Text fields can be resized up to 200% without loss of content or functionality and without assistive technology. Visual presentation 1.4.8 AAA The 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 AA The visual presentation of illustrations, icons, and component states have a contrast ratio of at least 3:1. Not applicable for empty fields. Text spacing 1.4.12 AA Line 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, AAA All functionality of the component is operable through a keyboard without specific timing for keystrokes. Keyboard traps 2.1.2 A Focus 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, AAA There is no flashing content or unnecessary motion or animation in this component. Focus order 2.4.3 A Navigation sequences receive focus in an order that preserves meaning and operability. Focus visible 2.4.7 AA Keyboard states use an indicator that is visible with at least 3:1 contrast."
|
|
81
|
+
}
|
|
82
|
+
],
|
|
83
|
+
"implementations": [
|
|
132
84
|
{
|
|
133
|
-
"
|
|
134
|
-
"
|
|
85
|
+
"platform": "web",
|
|
86
|
+
"componentName": "TextField",
|
|
87
|
+
"package": "@react-spectrum/s2"
|
|
135
88
|
}
|
|
136
89
|
],
|
|
137
90
|
"options": {
|
|
138
|
-
"label": {
|
|
139
|
-
"type": "string"
|
|
140
|
-
},
|
|
91
|
+
"label": { "type": "string" },
|
|
141
92
|
"labelPosition": {
|
|
142
93
|
"type": "string",
|
|
143
94
|
"default": "top",
|
|
144
|
-
"values": [
|
|
145
|
-
{
|
|
146
|
-
"value": "top"
|
|
147
|
-
},
|
|
148
|
-
{
|
|
149
|
-
"value": "side"
|
|
150
|
-
}
|
|
151
|
-
]
|
|
152
|
-
},
|
|
153
|
-
"hideLabel": {
|
|
154
|
-
"type": "boolean",
|
|
155
|
-
"default": false
|
|
156
|
-
},
|
|
157
|
-
"value": {
|
|
158
|
-
"type": "string",
|
|
159
|
-
"description": "from minValue to maxValue"
|
|
160
|
-
},
|
|
161
|
-
"width": {
|
|
162
|
-
"type": "number"
|
|
95
|
+
"values": [{ "value": "top" }, { "value": "side" }]
|
|
163
96
|
},
|
|
97
|
+
"hideLabel": { "type": "boolean", "default": false },
|
|
98
|
+
"value": { "type": "string", "description": "from minValue to maxValue" },
|
|
99
|
+
"width": { "type": "number" },
|
|
164
100
|
"size": {
|
|
165
101
|
"type": "string",
|
|
166
102
|
"default": "m",
|
|
167
103
|
"values": [
|
|
168
|
-
{
|
|
169
|
-
|
|
170
|
-
},
|
|
171
|
-
{
|
|
172
|
-
"value": "m"
|
|
173
|
-
},
|
|
174
|
-
{
|
|
175
|
-
"value": "l"
|
|
176
|
-
},
|
|
177
|
-
{
|
|
178
|
-
"value": "xl"
|
|
179
|
-
}
|
|
104
|
+
{ "value": "s" },
|
|
105
|
+
{ "value": "m" },
|
|
106
|
+
{ "value": "l" },
|
|
107
|
+
{ "value": "xl" }
|
|
180
108
|
]
|
|
181
109
|
},
|
|
182
110
|
"necessityIndicator": {
|
|
183
111
|
"type": "string",
|
|
184
112
|
"default": "icon",
|
|
185
|
-
"values": [
|
|
186
|
-
{
|
|
187
|
-
"value": "text"
|
|
188
|
-
},
|
|
189
|
-
{
|
|
190
|
-
"value": "icon"
|
|
191
|
-
}
|
|
192
|
-
]
|
|
193
|
-
},
|
|
194
|
-
"isRequired": {
|
|
195
|
-
"type": "boolean",
|
|
196
|
-
"default": false
|
|
197
|
-
},
|
|
198
|
-
"hasCharacterCount": {
|
|
199
|
-
"type": "boolean",
|
|
200
|
-
"default": false
|
|
201
|
-
},
|
|
202
|
-
"showValidIcon": {
|
|
203
|
-
"type": "boolean",
|
|
204
|
-
"default": false
|
|
113
|
+
"values": [{ "value": "text" }, { "value": "icon" }]
|
|
205
114
|
},
|
|
115
|
+
"isRequired": { "type": "boolean", "default": false },
|
|
116
|
+
"hasCharacterCount": { "type": "boolean", "default": false },
|
|
117
|
+
"showValidIcon": { "type": "boolean", "default": false },
|
|
206
118
|
"isError": {
|
|
207
119
|
"type": "boolean",
|
|
208
120
|
"default": false,
|
|
209
121
|
"description": "If there is an error, this property overrides show valid icon."
|
|
210
122
|
},
|
|
211
|
-
"isDisabled": {
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
},
|
|
215
|
-
"helpText": {
|
|
216
|
-
"type": "string"
|
|
217
|
-
},
|
|
218
|
-
"errorMessage": {
|
|
219
|
-
"type": "string"
|
|
220
|
-
}
|
|
123
|
+
"isDisabled": { "type": "boolean", "default": false },
|
|
124
|
+
"helpText": { "type": "string" },
|
|
125
|
+
"errorMessage": { "type": "string" }
|
|
221
126
|
},
|
|
222
127
|
"states": [
|
|
223
|
-
{
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
}
|
|
227
|
-
{
|
|
228
|
-
"name": "focus-+-hover",
|
|
229
|
-
"trigger": "prop"
|
|
230
|
-
},
|
|
231
|
-
{
|
|
232
|
-
"name": "focus-+-not-hover",
|
|
233
|
-
"trigger": "prop"
|
|
234
|
-
},
|
|
235
|
-
{
|
|
236
|
-
"name": "keyboard-focus",
|
|
237
|
-
"trigger": "interaction"
|
|
238
|
-
}
|
|
128
|
+
{ "name": "hover", "trigger": "interaction" },
|
|
129
|
+
{ "name": "focus-+-hover", "trigger": "prop" },
|
|
130
|
+
{ "name": "focus-+-not-hover", "trigger": "prop" },
|
|
131
|
+
{ "name": "keyboard-focus", "trigger": "interaction" }
|
|
239
132
|
],
|
|
240
|
-
"lifecycle": {
|
|
241
|
-
"introduced": "1.0.0-draft"
|
|
242
|
-
},
|
|
133
|
+
"lifecycle": { "introduced": "1.0.0-draft" },
|
|
243
134
|
"accessibility": {
|
|
244
135
|
"role": "textbox",
|
|
245
136
|
"intents": ["input"],
|
|
246
137
|
"focusable": true,
|
|
247
138
|
"wcag": [
|
|
248
|
-
{
|
|
249
|
-
"criterion": "1.3.1",
|
|
250
|
-
"level": "A",
|
|
251
|
-
"title": "Info and Relationships"
|
|
252
|
-
},
|
|
139
|
+
{ "criterion": "1.3.1", "level": "A", "title": "Info and Relationships" },
|
|
253
140
|
{
|
|
254
141
|
"criterion": "1.3.5",
|
|
255
142
|
"level": "AA",
|
|
256
143
|
"title": "Identify Input Purpose"
|
|
257
144
|
},
|
|
258
|
-
{
|
|
259
|
-
|
|
260
|
-
"level": "A",
|
|
261
|
-
"title": "Keyboard"
|
|
262
|
-
},
|
|
263
|
-
{
|
|
264
|
-
"criterion": "4.1.2",
|
|
265
|
-
"level": "A",
|
|
266
|
-
"title": "Name, Role, Value"
|
|
267
|
-
}
|
|
145
|
+
{ "criterion": "2.1.1", "level": "A", "title": "Keyboard" },
|
|
146
|
+
{ "criterion": "4.1.2", "level": "A", "title": "Name, Role, Value" }
|
|
268
147
|
]
|
|
269
148
|
}
|
|
270
149
|
}
|
|
@@ -16,94 +16,53 @@
|
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
18
|
"type": "guideline",
|
|
19
|
-
"content": "
|
|
19
|
+
"content": "Keyboard focus.\n\nThumbnails can be navigated using a keyboard in certain scenarios, such as layers or layer masks. When a thumbnail is used as pure representation of an item, focus should be set on the component the thumbnail is used within."
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
22
|
"type": "guideline",
|
|
23
|
-
"content": "
|
|
23
|
+
"content": "Image.\n\nThumbnails feature rounded corners and may include images with transparency. A subtle inset border helps distinguish images that might otherwise blend into the product's theme colors."
|
|
24
24
|
},
|
|
25
25
|
{
|
|
26
26
|
"type": "guideline",
|
|
27
|
-
"content": "
|
|
27
|
+
"content": "Layer.\n\nWhen thumbnails are used in layer management (such as Treeview, Compact or Detail Layers panels), the thumbnail is given a thick gray border."
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
30
|
"type": "guideline",
|
|
31
|
-
"content": "
|
|
31
|
+
"content": "Selected layer.\n\nWhen a user selects a thumbnail in layer management, such as in Treeview, Compact or Detail Layers panels, it is highlighted with a thick blue border."
|
|
32
32
|
},
|
|
33
33
|
{
|
|
34
34
|
"type": "guideline",
|
|
35
|
-
"content": "
|
|
35
|
+
"content": "Using thumbnails in treeview.\n\nTree view items can show thumbnails as an alternative to icons. Thumbnails are best used when a user needs to have a preview of the content represented by the tree view item. Icons can be used as a fallback for when an image is unavailable, but should be appropriately sized to match the thumbnail."
|
|
36
36
|
},
|
|
37
37
|
{
|
|
38
38
|
"type": "guideline",
|
|
39
|
-
"content": "
|
|
39
|
+
"content": "Be mindful of thumbnail size and proportions.\n\nTree views with thumbnails should use a thumbnail size that is appropriate to the size of the tree view itself. For example, an extra-large tree view would not work well with small thumbnails; those proportions may be better suited for using icons instead."
|
|
40
40
|
},
|
|
41
41
|
{
|
|
42
42
|
"type": "guideline",
|
|
43
|
-
"content": "
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
"type": "guideline",
|
|
47
|
-
"content": "Tree views with thumbnails should use a thumbnail size that is appropriate to the size of the tree view itself. For example, an extra-large tree view would not work well with small thumbnails; those proportions may be better suited for using icons instead."
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
"type": "guideline",
|
|
51
|
-
"content": "In some cases, multiple thumbnails need to be displayed in-line with the tree view item (e.g., layer masks). These thumbnails should be individually selectable and inherit all other behaviors of a standard tree view item, such as drag-and-drop behavior. Don't use more than 3 thumbnails per tree view item."
|
|
43
|
+
"content": "Multiple thumbnail.\n\nIn some cases, multiple thumbnails need to be displayed in-line with the tree view item (e.g., layer masks). These thumbnails should be individually selectable and inherit all other behaviors of a standard tree view item, such as drag-and-drop behavior. Don't use more than 3 thumbnails per tree view item."
|
|
52
44
|
}
|
|
53
45
|
],
|
|
54
46
|
"options": {
|
|
55
47
|
"size": {
|
|
56
48
|
"type": "number",
|
|
57
49
|
"values": [
|
|
58
|
-
{
|
|
59
|
-
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
|
|
66
|
-
},
|
|
67
|
-
{
|
|
68
|
-
|
|
69
|
-
}
|
|
70
|
-
{
|
|
71
|
-
"value": 300
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
"value": 400
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
"value": 500
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
"value": 600
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
"value": 700
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
"value": 800
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
"value": 900
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
"value": 1000
|
|
93
|
-
}
|
|
50
|
+
{ "value": 50 },
|
|
51
|
+
{ "value": 75 },
|
|
52
|
+
{ "value": 100 },
|
|
53
|
+
{ "value": 200 },
|
|
54
|
+
{ "value": 300 },
|
|
55
|
+
{ "value": 400 },
|
|
56
|
+
{ "value": 500 },
|
|
57
|
+
{ "value": 600 },
|
|
58
|
+
{ "value": 700 },
|
|
59
|
+
{ "value": 800 },
|
|
60
|
+
{ "value": 900 },
|
|
61
|
+
{ "value": 1000 }
|
|
94
62
|
]
|
|
95
63
|
}
|
|
96
64
|
},
|
|
97
|
-
"states": [
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
"trigger": "prop"
|
|
101
|
-
}
|
|
102
|
-
],
|
|
103
|
-
"lifecycle": {
|
|
104
|
-
"introduced": "1.0.0-draft"
|
|
105
|
-
},
|
|
106
|
-
"accessibility": {
|
|
107
|
-
"focusable": false
|
|
108
|
-
}
|
|
65
|
+
"states": [{ "name": "disabled", "trigger": "prop" }],
|
|
66
|
+
"lifecycle": { "introduced": "1.0.0-draft" },
|
|
67
|
+
"accessibility": { "focusable": false }
|
|
109
68
|
}
|