open-ds 0.0.0-stage → 0.1.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/LICENSE +21 -0
- package/README.md +66 -2
- package/assets/schemes/accessible-first.json +3093 -0
- package/assets/schemes/brand-expressive.json +3124 -0
- package/assets/schemes/content-first.json +3110 -0
- package/assets/schemes/dense-data.json +3489 -0
- package/assets/schemes/grammar.json +3903 -0
- package/assets/schemes/multi-brand.json +4359 -0
- package/assets/skills/open-ds/SKILL.md +50 -0
- package/assets/skills/open-ds-build/SKILL.md +19 -0
- package/assets/skills/open-ds-change/SKILL.md +19 -0
- package/assets/skills/open-ds-choose/SKILL.md +18 -0
- package/assets/skills/open-ds-review/SKILL.md +22 -0
- package/assets/skills/open-ds-write/SKILL.md +13 -0
- package/assets/stories/accordion.stories.tsx +46 -0
- package/assets/stories/alert-dialog.stories.tsx +65 -0
- package/assets/stories/alert.stories.tsx +44 -0
- package/assets/stories/aspect-ratio.stories.tsx +37 -0
- package/assets/stories/avatar.stories.tsx +42 -0
- package/assets/stories/badge.stories.tsx +39 -0
- package/assets/stories/breadcrumb.stories.tsx +54 -0
- package/assets/stories/button.stories.tsx +46 -0
- package/assets/stories/calendar.stories.tsx +30 -0
- package/assets/stories/card.stories.tsx +50 -0
- package/assets/stories/carousel.stories.tsx +64 -0
- package/assets/stories/chart.stories.tsx +61 -0
- package/assets/stories/checkbox.stories.tsx +29 -0
- package/assets/stories/collapsible.stories.tsx +39 -0
- package/assets/stories/combobox.stories.tsx +57 -0
- package/assets/stories/command.stories.tsx +60 -0
- package/assets/stories/context-menu.stories.tsx +55 -0
- package/assets/stories/data-table.stories.tsx +93 -0
- package/assets/stories/date-picker.stories.tsx +27 -0
- package/assets/stories/dialog.stories.tsx +70 -0
- package/assets/stories/drawer.stories.tsx +62 -0
- package/assets/stories/dropdown-menu.stories.tsx +65 -0
- package/assets/stories/empty.stories.tsx +39 -0
- package/assets/stories/field.stories.tsx +42 -0
- package/assets/stories/form.stories.tsx +56 -0
- package/assets/stories/input-group.stories.tsx +41 -0
- package/assets/stories/input-otp.stories.tsx +48 -0
- package/assets/stories/input.stories.tsx +32 -0
- package/assets/stories/kbd.stories.tsx +30 -0
- package/assets/stories/label.stories.tsx +26 -0
- package/assets/stories/native-select.stories.tsx +39 -0
- package/assets/stories/navigation-menu.stories.tsx +41 -0
- package/assets/stories/pagination.stories.tsx +61 -0
- package/assets/stories/popover.stories.tsx +37 -0
- package/assets/stories/progress.stories.tsx +30 -0
- package/assets/stories/radio-group.stories.tsx +45 -0
- package/assets/stories/resizable.stories.tsx +54 -0
- package/assets/stories/scroll-area.stories.tsx +47 -0
- package/assets/stories/select.stories.tsx +57 -0
- package/assets/stories/separator.stories.tsx +28 -0
- package/assets/stories/sheet.stories.tsx +46 -0
- package/assets/stories/sidebar.stories.tsx +62 -0
- package/assets/stories/skeleton.stories.tsx +27 -0
- package/assets/stories/slider.stories.tsx +44 -0
- package/assets/stories/spinner.stories.tsx +25 -0
- package/assets/stories/switch.stories.tsx +29 -0
- package/assets/stories/table.stories.tsx +97 -0
- package/assets/stories/tabs.stories.tsx +55 -0
- package/assets/stories/textarea.stories.tsx +28 -0
- package/assets/stories/toast.stories.tsx +30 -0
- package/assets/stories/toggle-group.stories.tsx +41 -0
- package/assets/stories/toggle.stories.tsx +20 -0
- package/assets/stories/tooltip.stories.tsx +49 -0
- package/assets/tokens/accessible-first/content.json +32 -0
- package/assets/tokens/accessible-first/dark.tokens.json +581 -0
- package/assets/tokens/accessible-first/light.tokens.json +581 -0
- package/assets/tokens/accessible-first/shadcn.css +21 -0
- package/assets/tokens/accessible-first/theme.css +101 -0
- package/assets/tokens/accessible-first/tokens.css +331 -0
- package/assets/tokens/accessible-first/tokens.json +1616 -0
- package/assets/tokens/accessible-first/tokens.scoped.css +333 -0
- package/assets/tokens/brand-expressive/content.json +32 -0
- package/assets/tokens/brand-expressive/dark.tokens.json +585 -0
- package/assets/tokens/brand-expressive/light.tokens.json +585 -0
- package/assets/tokens/brand-expressive/shadcn.css +21 -0
- package/assets/tokens/brand-expressive/theme.css +101 -0
- package/assets/tokens/brand-expressive/tokens.css +331 -0
- package/assets/tokens/brand-expressive/tokens.json +1651 -0
- package/assets/tokens/brand-expressive/tokens.scoped.css +333 -0
- package/assets/tokens/content-first/content.json +32 -0
- package/assets/tokens/content-first/dark.tokens.json +582 -0
- package/assets/tokens/content-first/light.tokens.json +582 -0
- package/assets/tokens/content-first/shadcn.css +21 -0
- package/assets/tokens/content-first/theme.css +101 -0
- package/assets/tokens/content-first/tokens.css +331 -0
- package/assets/tokens/content-first/tokens.json +1631 -0
- package/assets/tokens/content-first/tokens.scoped.css +333 -0
- package/assets/tokens/dense-data/content.json +32 -0
- package/assets/tokens/dense-data/dark.tokens.json +580 -0
- package/assets/tokens/dense-data/light.tokens.json +580 -0
- package/assets/tokens/dense-data/shadcn.css +21 -0
- package/assets/tokens/dense-data/theme.css +101 -0
- package/assets/tokens/dense-data/tokens.css +331 -0
- package/assets/tokens/dense-data/tokens.json +1623 -0
- package/assets/tokens/dense-data/tokens.scoped.css +333 -0
- package/assets/tokens/index.json +143 -0
- package/assets/tokens/multi-brand/aster-dark.tokens.json +625 -0
- package/assets/tokens/multi-brand/aster-light.tokens.json +625 -0
- package/assets/tokens/multi-brand/birch-dark.tokens.json +625 -0
- package/assets/tokens/multi-brand/birch-light.tokens.json +625 -0
- package/assets/tokens/multi-brand/content.json +32 -0
- package/assets/tokens/multi-brand/coral-dark.tokens.json +625 -0
- package/assets/tokens/multi-brand/coral-light.tokens.json +625 -0
- package/assets/tokens/multi-brand/shadcn.css +21 -0
- package/assets/tokens/multi-brand/theme.css +101 -0
- package/assets/tokens/multi-brand/tokens.css +1002 -0
- package/assets/tokens/multi-brand/tokens.json +1754 -0
- package/assets/tokens/multi-brand/tokens.scoped.css +1022 -0
- package/assets/tokens/shadcn-map.json +34 -0
- package/assets/ui/components/accordion.tsx +60 -0
- package/assets/ui/components/alert-dialog.tsx +171 -0
- package/assets/ui/components/alert.tsx +56 -0
- package/assets/ui/components/aspect-ratio.tsx +17 -0
- package/assets/ui/components/avatar.tsx +96 -0
- package/assets/ui/components/badge.tsx +36 -0
- package/assets/ui/components/breadcrumb.tsx +99 -0
- package/assets/ui/components/button.tsx +53 -0
- package/assets/ui/components/calendar.tsx +169 -0
- package/assets/ui/components/card.tsx +72 -0
- package/assets/ui/components/carousel.tsx +224 -0
- package/assets/ui/components/chart.tsx +315 -0
- package/assets/ui/components/checkbox.tsx +29 -0
- package/assets/ui/components/collapsible.tsx +25 -0
- package/assets/ui/components/combobox.tsx +275 -0
- package/assets/ui/components/command.tsx +145 -0
- package/assets/ui/components/context-menu.tsx +218 -0
- package/assets/ui/components/data-table.tsx +307 -0
- package/assets/ui/components/date-picker.tsx +79 -0
- package/assets/ui/components/dialog.tsx +68 -0
- package/assets/ui/components/drawer.tsx +115 -0
- package/assets/ui/components/dropdown-menu.tsx +58 -0
- package/assets/ui/components/empty.tsx +92 -0
- package/assets/ui/components/field.tsx +234 -0
- package/assets/ui/components/form.tsx +146 -0
- package/assets/ui/components/input-group.tsx +154 -0
- package/assets/ui/components/input-otp.tsx +75 -0
- package/assets/ui/components/input.tsx +25 -0
- package/assets/ui/components/kbd.tsx +30 -0
- package/assets/ui/components/label.tsx +22 -0
- package/assets/ui/components/native-select.tsx +59 -0
- package/assets/ui/components/navigation-menu.tsx +149 -0
- package/assets/ui/components/pagination.tsx +108 -0
- package/assets/ui/components/popover.tsx +61 -0
- package/assets/ui/components/progress.tsx +31 -0
- package/assets/ui/components/radio-group.tsx +40 -0
- package/assets/ui/components/resizable.tsx +54 -0
- package/assets/ui/components/scroll-area.tsx +55 -0
- package/assets/ui/components/select.tsx +81 -0
- package/assets/ui/components/separator.tsx +35 -0
- package/assets/ui/components/sheet.tsx +114 -0
- package/assets/ui/components/sidebar.tsx +685 -0
- package/assets/ui/components/skeleton.tsx +15 -0
- package/assets/ui/components/slider.tsx +70 -0
- package/assets/ui/components/spinner.tsx +16 -0
- package/assets/ui/components/switch.tsx +32 -0
- package/assets/ui/components/table.tsx +78 -0
- package/assets/ui/components/tabs.tsx +49 -0
- package/assets/ui/components/textarea.tsx +25 -0
- package/assets/ui/components/toast.tsx +54 -0
- package/assets/ui/components/toggle-group.tsx +88 -0
- package/assets/ui/components/toggle.tsx +48 -0
- package/assets/ui/components/tooltip.tsx +34 -0
- package/assets/ui/lib/use-mobile.ts +20 -0
- package/assets/ui/lib/utils.ts +7 -0
- package/assets/ui/styles.css +27 -0
- package/bin/open-ds.js +6 -0
- package/package.json +56 -4
- package/src/agents.mjs +150 -0
- package/src/cli.mjs +445 -0
- package/src/components.mjs +69 -0
- package/src/context.mjs +143 -0
- package/src/create.mjs +377 -0
- package/src/docs.mjs +570 -0
- package/src/guidance.mjs +63 -0
- package/src/index.mjs +20 -0
- package/src/mcp.mjs +660 -0
- package/src/readmes.mjs +106 -0
- package/src/schemes.mjs +188 -0
- package/src/tokens.mjs +127 -0
- package/templates/project/.github/workflows/ci.yml +15 -0
- package/templates/project/.storybook/component-docs.mdx +26 -0
- package/templates/project/.storybook/main.ts +17 -0
- package/templates/project/.storybook/manager-head.html +3 -0
- package/templates/project/.storybook/manager.ts +37 -0
- package/templates/project/.storybook/preview-head.html +3 -0
- package/templates/project/.storybook/preview.tsx +82 -0
- package/templates/project/docs/docusaurus.config.ts +64 -0
- package/templates/project/docs/sidebars.ts +8 -0
- package/templates/project/docs/src/css/custom.css +275 -0
- package/templates/project/gitignore +6 -0
- package/templates/project/src/styles/index.css +16 -0
- package/templates/project/src/vite-env.d.ts +7 -0
- package/templates/project/stories/docs-blocks.tsx +190 -0
- package/templates/project/stories/samples.tsx +102 -0
- package/templates/project/stories/usage.tsx +31 -0
- package/templates/project/tokens/build.mjs +468 -0
- package/templates/project/tsconfig.json +15 -0
|
@@ -0,0 +1,3093 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../schema/scheme.schema.json",
|
|
3
|
+
"id": "accessible-first",
|
|
4
|
+
"name": "Accessible first",
|
|
5
|
+
"version": "0.1.0",
|
|
6
|
+
"status": "draft",
|
|
7
|
+
"summary": "Large text, large targets and AAA contrast, so everyone can finish the task.",
|
|
8
|
+
"description": "Accessible first is an Open DS scheme: a full set of answers to the Open DS grammar, with the reasons behind each, usage rules, voice and tone, and the tokens that follow. Large text, large targets and AAA contrast, so everyone can finish the task.",
|
|
9
|
+
"ai": {
|
|
10
|
+
"use_when": "Public services, health, government and any product that must work for everyone.",
|
|
11
|
+
"avoid_when": "Dense expert tools where screen space matters more than size.",
|
|
12
|
+
"example_products": [
|
|
13
|
+
"Benefits application",
|
|
14
|
+
"Health booking",
|
|
15
|
+
"Public form",
|
|
16
|
+
"Council services"
|
|
17
|
+
]
|
|
18
|
+
},
|
|
19
|
+
"scenarios": [
|
|
20
|
+
{
|
|
21
|
+
"text": "A person with low vision zooms to 200% and applies for a benefit with a screen magnifier.",
|
|
22
|
+
"follows": [
|
|
23
|
+
"scenarios.q1",
|
|
24
|
+
"people.q1",
|
|
25
|
+
"people.q2"
|
|
26
|
+
]
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"text": "A person with a tremor completes a form on a tablet.",
|
|
30
|
+
"follows": [
|
|
31
|
+
"scenarios.q1",
|
|
32
|
+
"scenarios.q2",
|
|
33
|
+
"tasks.q1"
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
"voice": {
|
|
38
|
+
"summary": {
|
|
39
|
+
"text": "Plain and direct. Every sentence is easy to read on the first try.",
|
|
40
|
+
"follows": [
|
|
41
|
+
"voice.values",
|
|
42
|
+
"people.q1"
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
"principles": [
|
|
46
|
+
{
|
|
47
|
+
"text": "Use common words. Explain any term you must use.",
|
|
48
|
+
"follows": [
|
|
49
|
+
"voice.definition",
|
|
50
|
+
"people.q1"
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"text": "One idea per sentence. Put the action first.",
|
|
55
|
+
"follows": [
|
|
56
|
+
"human.q1"
|
|
57
|
+
]
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"text": "Never blame the person.",
|
|
61
|
+
"follows": [
|
|
62
|
+
"voice.values"
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
],
|
|
66
|
+
"words": {
|
|
67
|
+
"use": [
|
|
68
|
+
"Continue",
|
|
69
|
+
"Change",
|
|
70
|
+
"Start",
|
|
71
|
+
"You"
|
|
72
|
+
],
|
|
73
|
+
"avoid": [
|
|
74
|
+
"Invalid",
|
|
75
|
+
"Utilise",
|
|
76
|
+
"Submit",
|
|
77
|
+
"Error code"
|
|
78
|
+
],
|
|
79
|
+
"follows": [
|
|
80
|
+
"voice.definition"
|
|
81
|
+
]
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
"inventory": {
|
|
85
|
+
"description": "The components this system carries, picked from the grammar catalogue by the components answers. Anything not listed is out.",
|
|
86
|
+
"follows": [
|
|
87
|
+
"components.roles",
|
|
88
|
+
"components.count",
|
|
89
|
+
"components.definition"
|
|
90
|
+
],
|
|
91
|
+
"in": [
|
|
92
|
+
{
|
|
93
|
+
"id": "button",
|
|
94
|
+
"why": "Every action, with a large target."
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"id": "input",
|
|
98
|
+
"why": "Text answers."
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"id": "textarea",
|
|
102
|
+
"why": "Longer answers."
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"id": "label",
|
|
106
|
+
"why": "Names every control."
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"id": "field",
|
|
110
|
+
"why": "Label, hint and error in the same place on every question."
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"id": "checkbox",
|
|
114
|
+
"why": "Many choices, each with a large target."
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"id": "radio-group",
|
|
118
|
+
"why": "One choice from a short, visible list."
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"id": "native-select",
|
|
122
|
+
"why": "A browser select that every assistive technology understands."
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"id": "alert",
|
|
126
|
+
"why": "Errors and important notes that stay on the page."
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"id": "progress",
|
|
130
|
+
"why": "Shows how far through the steps a person is."
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"id": "breadcrumb",
|
|
134
|
+
"why": "Shows where a person is in the service."
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"id": "card",
|
|
138
|
+
"why": "Groups a summary before submitting."
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"id": "separator",
|
|
142
|
+
"why": "Breaks between groups of questions."
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"id": "dialog",
|
|
146
|
+
"why": "Only to confirm leaving with unsaved answers."
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"id": "collapsible",
|
|
150
|
+
"why": "Optional help a person can open."
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"id": "spinner",
|
|
154
|
+
"why": "Says that the page is working."
|
|
155
|
+
}
|
|
156
|
+
],
|
|
157
|
+
"out": [
|
|
158
|
+
{
|
|
159
|
+
"id": "tooltip",
|
|
160
|
+
"why": "Hover-only hints fail touch, magnifier and keyboard users."
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"id": "select",
|
|
164
|
+
"why": "A custom listbox is harder for screen readers than the native select."
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"id": "slider",
|
|
168
|
+
"why": "Dragging is hard with a tremor; a text field is exact."
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"id": "toast",
|
|
172
|
+
"why": "Messages that disappear can be missed; alerts stay."
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"id": "switch",
|
|
176
|
+
"why": "A checkbox is clearer about what on and off mean."
|
|
177
|
+
}
|
|
178
|
+
]
|
|
179
|
+
},
|
|
180
|
+
"samples": {
|
|
181
|
+
"description": "Sample content for showing this system: written from its use scenarios, in its voice, with every status mapped to a meaning. Storybook, the site and the docs read it; it is never shared between schemes.",
|
|
182
|
+
"follows": [
|
|
183
|
+
"scenarios.q1",
|
|
184
|
+
"content.q1",
|
|
185
|
+
"tasks.q1",
|
|
186
|
+
"voice.values"
|
|
187
|
+
],
|
|
188
|
+
"screen": "Apply for support with housing costs",
|
|
189
|
+
"actions": {
|
|
190
|
+
"primary": "Continue",
|
|
191
|
+
"secondary": "Save and come back later"
|
|
192
|
+
},
|
|
193
|
+
"statuses": [
|
|
194
|
+
{
|
|
195
|
+
"label": "Not started",
|
|
196
|
+
"meaning": "neutral",
|
|
197
|
+
"why": "Nothing has happened yet."
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"label": "Completed",
|
|
201
|
+
"meaning": "success",
|
|
202
|
+
"why": "This step is done."
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"label": "Check your answers",
|
|
206
|
+
"meaning": "warning",
|
|
207
|
+
"why": "Something needs a second look before you continue."
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"label": "Upload failed",
|
|
211
|
+
"meaning": "danger",
|
|
212
|
+
"why": "The file did not reach us and must be sent again."
|
|
213
|
+
}
|
|
214
|
+
],
|
|
215
|
+
"metrics": [
|
|
216
|
+
{
|
|
217
|
+
"label": "Steps done",
|
|
218
|
+
"value": "2 of 4"
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"label": "Documents sent",
|
|
222
|
+
"value": "3"
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"label": "Time left to apply",
|
|
226
|
+
"value": "12 days"
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
"label": "Time this takes",
|
|
230
|
+
"value": "About 10 minutes"
|
|
231
|
+
}
|
|
232
|
+
],
|
|
233
|
+
"field": {
|
|
234
|
+
"label": "Date of birth",
|
|
235
|
+
"placeholder": "",
|
|
236
|
+
"hint": "For example, 27 3 1980.",
|
|
237
|
+
"error": "Enter your date of birth. For example, 27 3 1980.",
|
|
238
|
+
"invalid": "27/3"
|
|
239
|
+
},
|
|
240
|
+
"checkbox": [
|
|
241
|
+
"I have read the guidance",
|
|
242
|
+
"Someone is helping me fill in this form",
|
|
243
|
+
"Contact me by text message"
|
|
244
|
+
],
|
|
245
|
+
"confirm": {
|
|
246
|
+
"trigger": "Cancel application",
|
|
247
|
+
"title": "Do you want to cancel your application?",
|
|
248
|
+
"body": "Your answers will be deleted.",
|
|
249
|
+
"confirm": "Yes, cancel it",
|
|
250
|
+
"cancel": "No, go back"
|
|
251
|
+
},
|
|
252
|
+
"card": {
|
|
253
|
+
"title": "Step 2 of 4: Your home",
|
|
254
|
+
"description": "About 3 minutes. You will need your rent agreement.",
|
|
255
|
+
"status": "Not started",
|
|
256
|
+
"primary": "Start this step",
|
|
257
|
+
"secondary": "Change earlier answers"
|
|
258
|
+
}
|
|
259
|
+
},
|
|
260
|
+
"themes": [
|
|
261
|
+
{
|
|
262
|
+
"id": "light",
|
|
263
|
+
"brand": "default",
|
|
264
|
+
"mode": "light"
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
"id": "dark",
|
|
268
|
+
"brand": "default",
|
|
269
|
+
"mode": "dark"
|
|
270
|
+
}
|
|
271
|
+
],
|
|
272
|
+
"answers": [
|
|
273
|
+
{
|
|
274
|
+
"question": "business.q1",
|
|
275
|
+
"option": "serve-public",
|
|
276
|
+
"why": "A public service everyone must be able to use.",
|
|
277
|
+
"because": []
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
"question": "business.q2",
|
|
281
|
+
"option": "one",
|
|
282
|
+
"why": "One service, one brand.",
|
|
283
|
+
"because": []
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
"question": "people.q1",
|
|
287
|
+
"option": "everyone",
|
|
288
|
+
"why": "Everyone, including people with low vision, motor and cognitive needs.",
|
|
289
|
+
"because": [
|
|
290
|
+
"business.q1"
|
|
291
|
+
]
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
"question": "people.q2",
|
|
295
|
+
"option": "aaa",
|
|
296
|
+
"why": "AAA where it applies; nobody is left out.",
|
|
297
|
+
"because": [
|
|
298
|
+
"people.q1"
|
|
299
|
+
]
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
"question": "content.q1",
|
|
303
|
+
"option": "forms",
|
|
304
|
+
"why": "Most screens are forms and steps.",
|
|
305
|
+
"because": [
|
|
306
|
+
"business.q1"
|
|
307
|
+
]
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
"question": "content.q2",
|
|
311
|
+
"option": "one-idea",
|
|
312
|
+
"why": "One question per screen lowers effort.",
|
|
313
|
+
"because": [
|
|
314
|
+
"people.q1"
|
|
315
|
+
]
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
"question": "tasks.q1",
|
|
319
|
+
"option": "complete",
|
|
320
|
+
"why": "People must finish the form.",
|
|
321
|
+
"because": [
|
|
322
|
+
"content.q1"
|
|
323
|
+
]
|
|
324
|
+
},
|
|
325
|
+
{
|
|
326
|
+
"question": "tasks.q2",
|
|
327
|
+
"option": "rarely",
|
|
328
|
+
"why": "People do this once or twice a year.",
|
|
329
|
+
"because": [
|
|
330
|
+
"business.q1"
|
|
331
|
+
]
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
"question": "human.q1",
|
|
335
|
+
"option": "effort",
|
|
336
|
+
"why": "Low effort to understand each step.",
|
|
337
|
+
"because": [
|
|
338
|
+
"people.q1"
|
|
339
|
+
]
|
|
340
|
+
},
|
|
341
|
+
{
|
|
342
|
+
"question": "human.q2",
|
|
343
|
+
"option": "fresh",
|
|
344
|
+
"why": "Nobody remembers the interface from last time.",
|
|
345
|
+
"because": [
|
|
346
|
+
"tasks.q2"
|
|
347
|
+
]
|
|
348
|
+
},
|
|
349
|
+
{
|
|
350
|
+
"question": "outcomes.q1",
|
|
351
|
+
"option": "completion",
|
|
352
|
+
"why": "Completion without errors is the measure.",
|
|
353
|
+
"because": [
|
|
354
|
+
"tasks.q1"
|
|
355
|
+
]
|
|
356
|
+
},
|
|
357
|
+
{
|
|
358
|
+
"question": "outcomes.q2",
|
|
359
|
+
"option": "failed-task",
|
|
360
|
+
"why": "A failed form can cost someone a benefit.",
|
|
361
|
+
"because": [
|
|
362
|
+
"tasks.q1"
|
|
363
|
+
]
|
|
364
|
+
},
|
|
365
|
+
{
|
|
366
|
+
"question": "brand.q1",
|
|
367
|
+
"option": "calm-clear",
|
|
368
|
+
"why": "Calm and clear, never clever.",
|
|
369
|
+
"because": [
|
|
370
|
+
"human.q1"
|
|
371
|
+
]
|
|
372
|
+
},
|
|
373
|
+
{
|
|
374
|
+
"question": "brand.q2",
|
|
375
|
+
"option": "quiet",
|
|
376
|
+
"why": "The brand stays out of the way.",
|
|
377
|
+
"because": [
|
|
378
|
+
"human.q1"
|
|
379
|
+
]
|
|
380
|
+
},
|
|
381
|
+
{
|
|
382
|
+
"question": "scenarios.q1",
|
|
383
|
+
"option": "anywhere",
|
|
384
|
+
"why": "Public services are used on any device, with any assistive technology.",
|
|
385
|
+
"because": [
|
|
386
|
+
"people.q1"
|
|
387
|
+
]
|
|
388
|
+
},
|
|
389
|
+
{
|
|
390
|
+
"question": "scenarios.q2",
|
|
391
|
+
"option": "one-sitting",
|
|
392
|
+
"why": "An application is finished in one sitting, or saved and resumed.",
|
|
393
|
+
"because": [
|
|
394
|
+
"tasks.q1"
|
|
395
|
+
]
|
|
396
|
+
},
|
|
397
|
+
{
|
|
398
|
+
"question": "team.q1",
|
|
399
|
+
"option": "platform",
|
|
400
|
+
"why": "A platform team serves many services.",
|
|
401
|
+
"because": []
|
|
402
|
+
},
|
|
403
|
+
{
|
|
404
|
+
"question": "team.q2",
|
|
405
|
+
"option": "stable",
|
|
406
|
+
"why": "Changes are rare and tested.",
|
|
407
|
+
"because": []
|
|
408
|
+
},
|
|
409
|
+
{
|
|
410
|
+
"question": "typography.roles",
|
|
411
|
+
"option": "core",
|
|
412
|
+
"why": "Few roles keep pages predictable.",
|
|
413
|
+
"because": [
|
|
414
|
+
"human.q1"
|
|
415
|
+
]
|
|
416
|
+
},
|
|
417
|
+
{
|
|
418
|
+
"question": "typography.count",
|
|
419
|
+
"option": "few",
|
|
420
|
+
"why": "Only the sizes the screens need, each clearly different.",
|
|
421
|
+
"because": [
|
|
422
|
+
"human.q1"
|
|
423
|
+
]
|
|
424
|
+
},
|
|
425
|
+
{
|
|
426
|
+
"question": "typography.definition",
|
|
427
|
+
"option": "ratio-proportional",
|
|
428
|
+
"why": "Line height grows with text size for zoom users.",
|
|
429
|
+
"because": [
|
|
430
|
+
"people.q2"
|
|
431
|
+
]
|
|
432
|
+
},
|
|
433
|
+
{
|
|
434
|
+
"question": "typography.values",
|
|
435
|
+
"option": "large",
|
|
436
|
+
"why": "Large text is readable for more people.",
|
|
437
|
+
"because": [
|
|
438
|
+
"people.q1"
|
|
439
|
+
]
|
|
440
|
+
},
|
|
441
|
+
{
|
|
442
|
+
"question": "typography.lands",
|
|
443
|
+
"option": "forms",
|
|
444
|
+
"why": "Type matters most in form labels and hints.",
|
|
445
|
+
"because": [
|
|
446
|
+
"content.q1"
|
|
447
|
+
]
|
|
448
|
+
},
|
|
449
|
+
{
|
|
450
|
+
"question": "color.roles",
|
|
451
|
+
"option": "core",
|
|
452
|
+
"why": "Few color roles, each with one clear meaning.",
|
|
453
|
+
"because": [
|
|
454
|
+
"human.q1"
|
|
455
|
+
]
|
|
456
|
+
},
|
|
457
|
+
{
|
|
458
|
+
"question": "color.count",
|
|
459
|
+
"option": "two",
|
|
460
|
+
"why": "Primary and secondary only; fewer choices, fewer errors.",
|
|
461
|
+
"because": [
|
|
462
|
+
"human.q1"
|
|
463
|
+
]
|
|
464
|
+
},
|
|
465
|
+
{
|
|
466
|
+
"question": "color.definition",
|
|
467
|
+
"option": "neutral-brand",
|
|
468
|
+
"why": "True neutrals and one strong blue, checked for contrast.",
|
|
469
|
+
"because": [
|
|
470
|
+
"people.q2"
|
|
471
|
+
]
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
"question": "color.values",
|
|
475
|
+
"option": "balanced",
|
|
476
|
+
"why": "Strong but not loud color.",
|
|
477
|
+
"because": [
|
|
478
|
+
"brand.q1"
|
|
479
|
+
]
|
|
480
|
+
},
|
|
481
|
+
{
|
|
482
|
+
"question": "color.lands",
|
|
483
|
+
"option": "links-actions",
|
|
484
|
+
"why": "Links and actions must be found by everyone.",
|
|
485
|
+
"because": [
|
|
486
|
+
"outcomes.q1"
|
|
487
|
+
]
|
|
488
|
+
},
|
|
489
|
+
{
|
|
490
|
+
"question": "spacing.roles",
|
|
491
|
+
"option": "gap-inset-row",
|
|
492
|
+
"why": "Large rows matter for touch and zoom.",
|
|
493
|
+
"because": [
|
|
494
|
+
"people.q1"
|
|
495
|
+
]
|
|
496
|
+
},
|
|
497
|
+
{
|
|
498
|
+
"question": "spacing.count",
|
|
499
|
+
"option": "one",
|
|
500
|
+
"why": "One density; no compact mode to fail people.",
|
|
501
|
+
"because": [
|
|
502
|
+
"people.q1"
|
|
503
|
+
]
|
|
504
|
+
},
|
|
505
|
+
{
|
|
506
|
+
"question": "spacing.definition",
|
|
507
|
+
"option": "coarse",
|
|
508
|
+
"why": "Big, even steps lower effort.",
|
|
509
|
+
"because": [
|
|
510
|
+
"human.q1"
|
|
511
|
+
]
|
|
512
|
+
},
|
|
513
|
+
{
|
|
514
|
+
"question": "spacing.values",
|
|
515
|
+
"option": "spacious",
|
|
516
|
+
"why": "Space lowers effort and mis-taps.",
|
|
517
|
+
"because": [
|
|
518
|
+
"human.q1"
|
|
519
|
+
]
|
|
520
|
+
},
|
|
521
|
+
{
|
|
522
|
+
"question": "spacing.lands",
|
|
523
|
+
"option": "fields",
|
|
524
|
+
"why": "Space between fields prevents mis-taps.",
|
|
525
|
+
"because": [
|
|
526
|
+
"content.q1"
|
|
527
|
+
]
|
|
528
|
+
},
|
|
529
|
+
{
|
|
530
|
+
"question": "shape.roles",
|
|
531
|
+
"option": "control-badge-container",
|
|
532
|
+
"why": "Badges keep a clear rectangle.",
|
|
533
|
+
"because": [
|
|
534
|
+
"human.q1"
|
|
535
|
+
]
|
|
536
|
+
},
|
|
537
|
+
{
|
|
538
|
+
"question": "shape.count",
|
|
539
|
+
"option": "three",
|
|
540
|
+
"why": "Control, badge and container corners differ.",
|
|
541
|
+
"because": [
|
|
542
|
+
"shape.roles"
|
|
543
|
+
]
|
|
544
|
+
},
|
|
545
|
+
{
|
|
546
|
+
"question": "shape.definition",
|
|
547
|
+
"option": "fixed",
|
|
548
|
+
"why": "One brand, one set of corners.",
|
|
549
|
+
"because": [
|
|
550
|
+
"business.q2"
|
|
551
|
+
]
|
|
552
|
+
},
|
|
553
|
+
{
|
|
554
|
+
"question": "shape.values",
|
|
555
|
+
"option": "slightly-rounded",
|
|
556
|
+
"why": "Clear, slightly rounded controls.",
|
|
557
|
+
"because": [
|
|
558
|
+
"brand.q1"
|
|
559
|
+
]
|
|
560
|
+
},
|
|
561
|
+
{
|
|
562
|
+
"question": "shape.lands",
|
|
563
|
+
"option": "controls-cards",
|
|
564
|
+
"why": "Corners show on controls and step cards.",
|
|
565
|
+
"because": [
|
|
566
|
+
"content.q1"
|
|
567
|
+
]
|
|
568
|
+
},
|
|
569
|
+
{
|
|
570
|
+
"question": "elevation.roles",
|
|
571
|
+
"option": "nothing",
|
|
572
|
+
"why": "Flat is easier to read at high zoom.",
|
|
573
|
+
"because": [
|
|
574
|
+
"people.q2"
|
|
575
|
+
]
|
|
576
|
+
},
|
|
577
|
+
{
|
|
578
|
+
"question": "elevation.count",
|
|
579
|
+
"option": "none",
|
|
580
|
+
"why": "No shadows.",
|
|
581
|
+
"because": [
|
|
582
|
+
"elevation.roles"
|
|
583
|
+
]
|
|
584
|
+
},
|
|
585
|
+
{
|
|
586
|
+
"question": "elevation.definition",
|
|
587
|
+
"option": "lines",
|
|
588
|
+
"why": "Strong borders separate groups at any zoom.",
|
|
589
|
+
"because": [
|
|
590
|
+
"people.q2"
|
|
591
|
+
]
|
|
592
|
+
},
|
|
593
|
+
{
|
|
594
|
+
"question": "elevation.values",
|
|
595
|
+
"option": "none",
|
|
596
|
+
"why": "No shadows; borders do the work.",
|
|
597
|
+
"because": [
|
|
598
|
+
"elevation.roles"
|
|
599
|
+
]
|
|
600
|
+
},
|
|
601
|
+
{
|
|
602
|
+
"question": "elevation.lands",
|
|
603
|
+
"option": "dialogs-only",
|
|
604
|
+
"why": "Only dialogs separate, with a dimmed page and a border.",
|
|
605
|
+
"because": [
|
|
606
|
+
"elevation.roles"
|
|
607
|
+
]
|
|
608
|
+
},
|
|
609
|
+
{
|
|
610
|
+
"question": "motion.roles",
|
|
611
|
+
"option": "feedback",
|
|
612
|
+
"why": "Motion only confirms an action.",
|
|
613
|
+
"because": [
|
|
614
|
+
"people.q1"
|
|
615
|
+
]
|
|
616
|
+
},
|
|
617
|
+
{
|
|
618
|
+
"question": "motion.count",
|
|
619
|
+
"option": "one",
|
|
620
|
+
"why": "One speed.",
|
|
621
|
+
"because": [
|
|
622
|
+
"motion.roles"
|
|
623
|
+
]
|
|
624
|
+
},
|
|
625
|
+
{
|
|
626
|
+
"question": "motion.definition",
|
|
627
|
+
"option": "standard",
|
|
628
|
+
"why": "A standard ease-out is easy to follow.",
|
|
629
|
+
"because": [
|
|
630
|
+
"people.q1"
|
|
631
|
+
]
|
|
632
|
+
},
|
|
633
|
+
{
|
|
634
|
+
"question": "motion.values",
|
|
635
|
+
"option": "moderate",
|
|
636
|
+
"why": "Moderate speed is easy to follow.",
|
|
637
|
+
"because": [
|
|
638
|
+
"people.q1"
|
|
639
|
+
]
|
|
640
|
+
},
|
|
641
|
+
{
|
|
642
|
+
"question": "motion.lands",
|
|
643
|
+
"option": "state-only",
|
|
644
|
+
"why": "Only state changes move.",
|
|
645
|
+
"because": [
|
|
646
|
+
"motion.roles"
|
|
647
|
+
]
|
|
648
|
+
},
|
|
649
|
+
{
|
|
650
|
+
"question": "iconography.roles",
|
|
651
|
+
"option": "actions-status",
|
|
652
|
+
"why": "Icons support words; they never replace them.",
|
|
653
|
+
"because": [
|
|
654
|
+
"human.q2"
|
|
655
|
+
]
|
|
656
|
+
},
|
|
657
|
+
{
|
|
658
|
+
"question": "iconography.count",
|
|
659
|
+
"option": "one",
|
|
660
|
+
"why": "One size, larger than the text.",
|
|
661
|
+
"because": [
|
|
662
|
+
"iconography.values"
|
|
663
|
+
]
|
|
664
|
+
},
|
|
665
|
+
{
|
|
666
|
+
"question": "iconography.definition",
|
|
667
|
+
"option": "filled",
|
|
668
|
+
"why": "Filled icons stay visible at low vision.",
|
|
669
|
+
"because": [
|
|
670
|
+
"people.q1"
|
|
671
|
+
]
|
|
672
|
+
},
|
|
673
|
+
{
|
|
674
|
+
"question": "iconography.values",
|
|
675
|
+
"option": "larger",
|
|
676
|
+
"why": "Larger icons are easier to see.",
|
|
677
|
+
"because": [
|
|
678
|
+
"people.q1"
|
|
679
|
+
]
|
|
680
|
+
},
|
|
681
|
+
{
|
|
682
|
+
"question": "iconography.lands",
|
|
683
|
+
"option": "status",
|
|
684
|
+
"why": "Icons work hardest beside status words and errors.",
|
|
685
|
+
"because": [
|
|
686
|
+
"accessibility.count"
|
|
687
|
+
]
|
|
688
|
+
},
|
|
689
|
+
{
|
|
690
|
+
"question": "theming.roles",
|
|
691
|
+
"option": "mode",
|
|
692
|
+
"why": "One brand, so only the mode changes.",
|
|
693
|
+
"because": [
|
|
694
|
+
"business.q2"
|
|
695
|
+
]
|
|
696
|
+
},
|
|
697
|
+
{
|
|
698
|
+
"question": "theming.count",
|
|
699
|
+
"option": "two",
|
|
700
|
+
"why": "Light and dark.",
|
|
701
|
+
"because": [
|
|
702
|
+
"theming.values"
|
|
703
|
+
]
|
|
704
|
+
},
|
|
705
|
+
{
|
|
706
|
+
"question": "theming.definition",
|
|
707
|
+
"option": "single",
|
|
708
|
+
"why": "One service, one brand.",
|
|
709
|
+
"because": [
|
|
710
|
+
"business.q2"
|
|
711
|
+
]
|
|
712
|
+
},
|
|
713
|
+
{
|
|
714
|
+
"question": "theming.values",
|
|
715
|
+
"option": "light-dark",
|
|
716
|
+
"why": "Light and dark ship as standard; both hold AAA text.",
|
|
717
|
+
"because": [
|
|
718
|
+
"people.q2"
|
|
719
|
+
]
|
|
720
|
+
},
|
|
721
|
+
{
|
|
722
|
+
"question": "theming.lands",
|
|
723
|
+
"option": "colors",
|
|
724
|
+
"why": "Only colors change.",
|
|
725
|
+
"because": [
|
|
726
|
+
"theming.roles"
|
|
727
|
+
]
|
|
728
|
+
},
|
|
729
|
+
{
|
|
730
|
+
"question": "accessibility.roles",
|
|
731
|
+
"option": "all",
|
|
732
|
+
"why": "Every state, including loading, gets its own value.",
|
|
733
|
+
"because": [
|
|
734
|
+
"people.q2"
|
|
735
|
+
]
|
|
736
|
+
},
|
|
737
|
+
{
|
|
738
|
+
"question": "accessibility.count",
|
|
739
|
+
"option": "color-icon-word",
|
|
740
|
+
"why": "Never color alone.",
|
|
741
|
+
"because": [
|
|
742
|
+
"people.q2"
|
|
743
|
+
]
|
|
744
|
+
},
|
|
745
|
+
{
|
|
746
|
+
"question": "accessibility.definition",
|
|
747
|
+
"option": "aaa-text",
|
|
748
|
+
"why": "AAA contrast for text.",
|
|
749
|
+
"because": [
|
|
750
|
+
"people.q2"
|
|
751
|
+
]
|
|
752
|
+
},
|
|
753
|
+
{
|
|
754
|
+
"question": "accessibility.values",
|
|
755
|
+
"option": "large",
|
|
756
|
+
"why": "Large targets for tremor and touch.",
|
|
757
|
+
"because": [
|
|
758
|
+
"people.q1"
|
|
759
|
+
]
|
|
760
|
+
},
|
|
761
|
+
{
|
|
762
|
+
"question": "accessibility.lands",
|
|
763
|
+
"option": "forms",
|
|
764
|
+
"why": "Forms are where people are blocked.",
|
|
765
|
+
"because": [
|
|
766
|
+
"content.q1"
|
|
767
|
+
]
|
|
768
|
+
},
|
|
769
|
+
{
|
|
770
|
+
"question": "naming.roles",
|
|
771
|
+
"option": "tokens-keys",
|
|
772
|
+
"why": "Components get their own keys.",
|
|
773
|
+
"because": [
|
|
774
|
+
"team.q2"
|
|
775
|
+
]
|
|
776
|
+
},
|
|
777
|
+
{
|
|
778
|
+
"question": "naming.count",
|
|
779
|
+
"option": "three",
|
|
780
|
+
"why": "Primitives, semantics and component keys.",
|
|
781
|
+
"because": [
|
|
782
|
+
"team.q2"
|
|
783
|
+
]
|
|
784
|
+
},
|
|
785
|
+
{
|
|
786
|
+
"question": "naming.definition",
|
|
787
|
+
"option": "by-role",
|
|
788
|
+
"why": "Role names survive a redesign.",
|
|
789
|
+
"because": [
|
|
790
|
+
"team.q1"
|
|
791
|
+
]
|
|
792
|
+
},
|
|
793
|
+
{
|
|
794
|
+
"question": "naming.values",
|
|
795
|
+
"option": "kebab-paths",
|
|
796
|
+
"why": "Lowercase paths read the same everywhere.",
|
|
797
|
+
"because": [
|
|
798
|
+
"team.q1"
|
|
799
|
+
]
|
|
800
|
+
},
|
|
801
|
+
{
|
|
802
|
+
"question": "naming.lands",
|
|
803
|
+
"option": "keys",
|
|
804
|
+
"why": "A component API keeps changes local.",
|
|
805
|
+
"because": [
|
|
806
|
+
"team.q2"
|
|
807
|
+
]
|
|
808
|
+
},
|
|
809
|
+
{
|
|
810
|
+
"question": "voice.roles",
|
|
811
|
+
"option": "ui-help",
|
|
812
|
+
"why": "Hints and help text carry people through each step.",
|
|
813
|
+
"because": [
|
|
814
|
+
"content.q1"
|
|
815
|
+
]
|
|
816
|
+
},
|
|
817
|
+
{
|
|
818
|
+
"question": "voice.count",
|
|
819
|
+
"option": "one",
|
|
820
|
+
"why": "One plain tone everywhere; no surprises.",
|
|
821
|
+
"because": [
|
|
822
|
+
"human.q1"
|
|
823
|
+
]
|
|
824
|
+
},
|
|
825
|
+
{
|
|
826
|
+
"question": "voice.definition",
|
|
827
|
+
"option": "word-list",
|
|
828
|
+
"why": "A word list of common words, with terms to avoid.",
|
|
829
|
+
"because": [
|
|
830
|
+
"people.q1"
|
|
831
|
+
]
|
|
832
|
+
},
|
|
833
|
+
{
|
|
834
|
+
"question": "voice.values",
|
|
835
|
+
"option": "plain",
|
|
836
|
+
"why": "Every sentence is easy to read on the first try.",
|
|
837
|
+
"because": [
|
|
838
|
+
"people.q1",
|
|
839
|
+
"brand.q1"
|
|
840
|
+
]
|
|
841
|
+
},
|
|
842
|
+
{
|
|
843
|
+
"question": "voice.lands",
|
|
844
|
+
"option": "forms",
|
|
845
|
+
"why": "Words decide whether a form gets finished.",
|
|
846
|
+
"because": [
|
|
847
|
+
"outcomes.q1"
|
|
848
|
+
]
|
|
849
|
+
},
|
|
850
|
+
{
|
|
851
|
+
"question": "components.roles",
|
|
852
|
+
"option": "core",
|
|
853
|
+
"why": "Forms, steps and feedback are all a public service needs.",
|
|
854
|
+
"because": [
|
|
855
|
+
"content.q1",
|
|
856
|
+
"people.q1"
|
|
857
|
+
]
|
|
858
|
+
},
|
|
859
|
+
{
|
|
860
|
+
"question": "components.count",
|
|
861
|
+
"option": "few",
|
|
862
|
+
"why": "Only the parts in use, each tested with assistive technology.",
|
|
863
|
+
"because": [
|
|
864
|
+
"people.q2",
|
|
865
|
+
"team.q2"
|
|
866
|
+
]
|
|
867
|
+
},
|
|
868
|
+
{
|
|
869
|
+
"question": "components.definition",
|
|
870
|
+
"option": "inclusive",
|
|
871
|
+
"why": "A component joins only when it works with any device and assistive technology.",
|
|
872
|
+
"because": [
|
|
873
|
+
"people.q1",
|
|
874
|
+
"people.q2"
|
|
875
|
+
]
|
|
876
|
+
},
|
|
877
|
+
{
|
|
878
|
+
"question": "components.values",
|
|
879
|
+
"option": "few",
|
|
880
|
+
"why": "One clear way to do each thing.",
|
|
881
|
+
"because": [
|
|
882
|
+
"people.q1",
|
|
883
|
+
"brand.q1"
|
|
884
|
+
]
|
|
885
|
+
},
|
|
886
|
+
{
|
|
887
|
+
"question": "components.lands",
|
|
888
|
+
"option": "forms",
|
|
889
|
+
"why": "Components do their work in forms and steps.",
|
|
890
|
+
"because": [
|
|
891
|
+
"content.q1",
|
|
892
|
+
"tasks.q1"
|
|
893
|
+
]
|
|
894
|
+
}
|
|
895
|
+
],
|
|
896
|
+
"usage": [
|
|
897
|
+
{
|
|
898
|
+
"situation": "page-title",
|
|
899
|
+
"use": "type.title",
|
|
900
|
+
"not": "type.display",
|
|
901
|
+
"why": "A clear, consistent title on every page.",
|
|
902
|
+
"because": [
|
|
903
|
+
"human.q1"
|
|
904
|
+
]
|
|
905
|
+
},
|
|
906
|
+
{
|
|
907
|
+
"situation": "number-in-table",
|
|
908
|
+
"use": "type.body",
|
|
909
|
+
"not": "A small or mono font",
|
|
910
|
+
"why": "Every number must be readable at large size.",
|
|
911
|
+
"because": [
|
|
912
|
+
"people.q1"
|
|
913
|
+
]
|
|
914
|
+
},
|
|
915
|
+
{
|
|
916
|
+
"situation": "paragraph",
|
|
917
|
+
"use": "type.body, short sentences",
|
|
918
|
+
"not": "type.caption",
|
|
919
|
+
"why": "Large text and short lines lower effort.",
|
|
920
|
+
"because": [
|
|
921
|
+
"human.q1"
|
|
922
|
+
]
|
|
923
|
+
},
|
|
924
|
+
{
|
|
925
|
+
"situation": "field-label",
|
|
926
|
+
"use": "type.label, above the field, always visible",
|
|
927
|
+
"not": "A placeholder as the label",
|
|
928
|
+
"why": "Labels must stay visible while typing.",
|
|
929
|
+
"because": [
|
|
930
|
+
"people.q2",
|
|
931
|
+
"tasks.q1"
|
|
932
|
+
]
|
|
933
|
+
},
|
|
934
|
+
{
|
|
935
|
+
"situation": "selected-row",
|
|
936
|
+
"use": "color.surface.selected and a check icon",
|
|
937
|
+
"not": "Color alone",
|
|
938
|
+
"why": "Selection never relies on color alone.",
|
|
939
|
+
"because": [
|
|
940
|
+
"accessibility.count"
|
|
941
|
+
]
|
|
942
|
+
},
|
|
943
|
+
{
|
|
944
|
+
"situation": "error-message",
|
|
945
|
+
"use": "color.status.danger, an icon and a sentence next to the field",
|
|
946
|
+
"not": "Color alone",
|
|
947
|
+
"why": "People must know what went wrong and where.",
|
|
948
|
+
"because": [
|
|
949
|
+
"accessibility.count",
|
|
950
|
+
"outcomes.q2"
|
|
951
|
+
]
|
|
952
|
+
},
|
|
953
|
+
{
|
|
954
|
+
"situation": "link",
|
|
955
|
+
"use": "color.text.link, underlined",
|
|
956
|
+
"not": "Color only",
|
|
957
|
+
"why": "Underline works without color perception.",
|
|
958
|
+
"because": [
|
|
959
|
+
"people.q2"
|
|
960
|
+
]
|
|
961
|
+
},
|
|
962
|
+
{
|
|
963
|
+
"situation": "status-label",
|
|
964
|
+
"use": "Badge with an icon and a word",
|
|
965
|
+
"not": "Color alone",
|
|
966
|
+
"why": "Status must survive no color and a screen reader.",
|
|
967
|
+
"because": [
|
|
968
|
+
"accessibility.count"
|
|
969
|
+
]
|
|
970
|
+
},
|
|
971
|
+
{
|
|
972
|
+
"situation": "related-items",
|
|
973
|
+
"use": "space.gap.default",
|
|
974
|
+
"not": "space.gap.tight",
|
|
975
|
+
"why": "Generous space lowers mis-taps.",
|
|
976
|
+
"because": [
|
|
977
|
+
"spacing.values"
|
|
978
|
+
]
|
|
979
|
+
},
|
|
980
|
+
{
|
|
981
|
+
"situation": "between-sections",
|
|
982
|
+
"use": "space.gap.section",
|
|
983
|
+
"not": "A thin line",
|
|
984
|
+
"why": "Space is easy to see; thin lines are not.",
|
|
985
|
+
"because": [
|
|
986
|
+
"elevation.definition"
|
|
987
|
+
]
|
|
988
|
+
},
|
|
989
|
+
{
|
|
990
|
+
"situation": "table-row",
|
|
991
|
+
"use": "size.row (large)",
|
|
992
|
+
"not": "A compact row",
|
|
993
|
+
"why": "Large rows are easy to read and tap.",
|
|
994
|
+
"because": [
|
|
995
|
+
"accessibility.values"
|
|
996
|
+
]
|
|
997
|
+
},
|
|
998
|
+
{
|
|
999
|
+
"situation": "control-corner",
|
|
1000
|
+
"use": "radius.control",
|
|
1001
|
+
"not": "A pill",
|
|
1002
|
+
"why": "Clear rectangles read as fields and buttons.",
|
|
1003
|
+
"because": [
|
|
1004
|
+
"shape.values"
|
|
1005
|
+
]
|
|
1006
|
+
},
|
|
1007
|
+
{
|
|
1008
|
+
"situation": "status-shape",
|
|
1009
|
+
"use": "radius.badge (rectangle)",
|
|
1010
|
+
"not": "A pill",
|
|
1011
|
+
"why": "Clear shapes with a word inside.",
|
|
1012
|
+
"because": [
|
|
1013
|
+
"shape.roles"
|
|
1014
|
+
]
|
|
1015
|
+
},
|
|
1016
|
+
{
|
|
1017
|
+
"situation": "card",
|
|
1018
|
+
"use": "A strong border, no shadow",
|
|
1019
|
+
"not": "A shadow",
|
|
1020
|
+
"why": "Shadows are hard to see; borders are not.",
|
|
1021
|
+
"because": [
|
|
1022
|
+
"elevation.roles"
|
|
1023
|
+
]
|
|
1024
|
+
},
|
|
1025
|
+
{
|
|
1026
|
+
"situation": "menu-or-dialog",
|
|
1027
|
+
"use": "A strong border and a dimmed page",
|
|
1028
|
+
"not": "A shadow only",
|
|
1029
|
+
"why": "The dimmed page makes the dialog obvious.",
|
|
1030
|
+
"because": [
|
|
1031
|
+
"elevation.lands"
|
|
1032
|
+
]
|
|
1033
|
+
},
|
|
1034
|
+
{
|
|
1035
|
+
"situation": "hover-feedback",
|
|
1036
|
+
"use": "motion.duration.feedback (moderate)",
|
|
1037
|
+
"not": "Fast flicker",
|
|
1038
|
+
"why": "Moderate speed is easy to follow.",
|
|
1039
|
+
"because": [
|
|
1040
|
+
"motion.values"
|
|
1041
|
+
]
|
|
1042
|
+
},
|
|
1043
|
+
{
|
|
1044
|
+
"situation": "reduced-motion",
|
|
1045
|
+
"use": "No motion",
|
|
1046
|
+
"not": "Reduced motion",
|
|
1047
|
+
"why": "When people ask for less motion, nothing moves.",
|
|
1048
|
+
"because": [
|
|
1049
|
+
"motion.roles"
|
|
1050
|
+
]
|
|
1051
|
+
},
|
|
1052
|
+
{
|
|
1053
|
+
"situation": "icon-alone",
|
|
1054
|
+
"use": "Not used: always add a word",
|
|
1055
|
+
"not": "An icon button",
|
|
1056
|
+
"why": "Icons alone are guesswork.",
|
|
1057
|
+
"because": [
|
|
1058
|
+
"iconography.roles"
|
|
1059
|
+
]
|
|
1060
|
+
},
|
|
1061
|
+
{
|
|
1062
|
+
"situation": "dark-mode",
|
|
1063
|
+
"use": "The dark semantic mode, or high contrast",
|
|
1064
|
+
"not": "One mode only",
|
|
1065
|
+
"why": "People pick the mode they can read.",
|
|
1066
|
+
"because": [
|
|
1067
|
+
"theming.values"
|
|
1068
|
+
]
|
|
1069
|
+
},
|
|
1070
|
+
{
|
|
1071
|
+
"situation": "keyboard-focus",
|
|
1072
|
+
"use": "button/focus-ring at border-width.focus, with an offset",
|
|
1073
|
+
"not": "A thin or faint outline",
|
|
1074
|
+
"why": "Focus must be seen by everyone.",
|
|
1075
|
+
"because": [
|
|
1076
|
+
"people.q2"
|
|
1077
|
+
]
|
|
1078
|
+
},
|
|
1079
|
+
{
|
|
1080
|
+
"situation": "smallest-target",
|
|
1081
|
+
"use": "size.control.default (large)",
|
|
1082
|
+
"not": "Touch-minimum size",
|
|
1083
|
+
"why": "Large targets help people with motor needs.",
|
|
1084
|
+
"because": [
|
|
1085
|
+
"accessibility.values"
|
|
1086
|
+
]
|
|
1087
|
+
},
|
|
1088
|
+
{
|
|
1089
|
+
"situation": "commit-action",
|
|
1090
|
+
"use": "Button primary, one per page",
|
|
1091
|
+
"not": "Two primaries",
|
|
1092
|
+
"why": "One clear next step.",
|
|
1093
|
+
"because": [
|
|
1094
|
+
"color.count"
|
|
1095
|
+
]
|
|
1096
|
+
},
|
|
1097
|
+
{
|
|
1098
|
+
"situation": "alternative-action",
|
|
1099
|
+
"use": "Button secondary",
|
|
1100
|
+
"not": "A text link",
|
|
1101
|
+
"why": "Every action looks like a button people can find.",
|
|
1102
|
+
"because": [
|
|
1103
|
+
"human.q2"
|
|
1104
|
+
]
|
|
1105
|
+
},
|
|
1106
|
+
{
|
|
1107
|
+
"situation": "destructive-action",
|
|
1108
|
+
"use": "Button secondary, then a confirm page",
|
|
1109
|
+
"not": "Button primary",
|
|
1110
|
+
"why": "A confirm step prevents a costly error.",
|
|
1111
|
+
"because": [
|
|
1112
|
+
"outcomes.q2"
|
|
1113
|
+
]
|
|
1114
|
+
},
|
|
1115
|
+
{
|
|
1116
|
+
"situation": "row-action",
|
|
1117
|
+
"use": "Button secondary with a word",
|
|
1118
|
+
"not": "An icon on its own",
|
|
1119
|
+
"why": "A word says what will happen.",
|
|
1120
|
+
"because": [
|
|
1121
|
+
"human.q2"
|
|
1122
|
+
]
|
|
1123
|
+
},
|
|
1124
|
+
{
|
|
1125
|
+
"situation": "missing-token",
|
|
1126
|
+
"use": "The closest semantic token, then ask for a new one",
|
|
1127
|
+
"not": "A raw value in the component",
|
|
1128
|
+
"why": "A raw value skips the contrast checks every token passed.",
|
|
1129
|
+
"because": [
|
|
1130
|
+
"naming.lands",
|
|
1131
|
+
"accessibility.definition"
|
|
1132
|
+
]
|
|
1133
|
+
},
|
|
1134
|
+
{
|
|
1135
|
+
"situation": "button-label",
|
|
1136
|
+
"use": "A common verb that says what happens next",
|
|
1137
|
+
"not": "\"Submit\" or \"Proceed\"",
|
|
1138
|
+
"why": "Common words are understood by the most people.",
|
|
1139
|
+
"because": [
|
|
1140
|
+
"voice.definition",
|
|
1141
|
+
"voice.values"
|
|
1142
|
+
],
|
|
1143
|
+
"example": "Continue"
|
|
1144
|
+
},
|
|
1145
|
+
{
|
|
1146
|
+
"situation": "error-words",
|
|
1147
|
+
"use": "Say what is wrong, where, and exactly how to fix it",
|
|
1148
|
+
"not": "\"Invalid input\"",
|
|
1149
|
+
"why": "People must be able to fix the error without help.",
|
|
1150
|
+
"because": [
|
|
1151
|
+
"voice.values",
|
|
1152
|
+
"voice.lands"
|
|
1153
|
+
],
|
|
1154
|
+
"example": "Enter your date of birth. For example, 27 3 1980."
|
|
1155
|
+
},
|
|
1156
|
+
{
|
|
1157
|
+
"situation": "success-words",
|
|
1158
|
+
"use": "Confirm what happened and what comes next",
|
|
1159
|
+
"not": "A confirmation with no next step",
|
|
1160
|
+
"why": "People need to know the task is finished and what happens now.",
|
|
1161
|
+
"because": [
|
|
1162
|
+
"voice.values",
|
|
1163
|
+
"outcomes.q1"
|
|
1164
|
+
],
|
|
1165
|
+
"example": "We have your application. We will email you within 5 working days."
|
|
1166
|
+
},
|
|
1167
|
+
{
|
|
1168
|
+
"situation": "empty-words",
|
|
1169
|
+
"use": "Explain what will appear here and how to start",
|
|
1170
|
+
"not": "A blank page",
|
|
1171
|
+
"why": "A blank page leaves people unsure if something failed.",
|
|
1172
|
+
"because": [
|
|
1173
|
+
"voice.values"
|
|
1174
|
+
],
|
|
1175
|
+
"example": "You have no saved applications. Start a new one below."
|
|
1176
|
+
},
|
|
1177
|
+
{
|
|
1178
|
+
"situation": "confirm-words",
|
|
1179
|
+
"use": "Say what will happen in plain words, and offer a way back",
|
|
1180
|
+
"not": "A double negative",
|
|
1181
|
+
"why": "Plain words prevent a choice people did not mean.",
|
|
1182
|
+
"because": [
|
|
1183
|
+
"voice.values",
|
|
1184
|
+
"outcomes.q2"
|
|
1185
|
+
],
|
|
1186
|
+
"example": "Do you want to cancel your application? Your answers will be deleted."
|
|
1187
|
+
},
|
|
1188
|
+
{
|
|
1189
|
+
"situation": "first-visit",
|
|
1190
|
+
"use": "Say how many steps there are and how long it takes",
|
|
1191
|
+
"not": "Marketing copy",
|
|
1192
|
+
"why": "Knowing the length lowers effort and anxiety.",
|
|
1193
|
+
"because": [
|
|
1194
|
+
"human.q1",
|
|
1195
|
+
"scenarios.q2"
|
|
1196
|
+
],
|
|
1197
|
+
"example": "This takes about 10 minutes. There are 4 steps."
|
|
1198
|
+
},
|
|
1199
|
+
{
|
|
1200
|
+
"situation": "missing-component",
|
|
1201
|
+
"use": "a native HTML element with a label and a hint",
|
|
1202
|
+
"not": "a custom widget that needs hover, drag or precise pointing",
|
|
1203
|
+
"why": "Native elements work with every assistive technology without extra work.",
|
|
1204
|
+
"because": [
|
|
1205
|
+
"people.q1",
|
|
1206
|
+
"components.definition"
|
|
1207
|
+
]
|
|
1208
|
+
}
|
|
1209
|
+
],
|
|
1210
|
+
"tokens": {
|
|
1211
|
+
"primitive": {
|
|
1212
|
+
"color": {
|
|
1213
|
+
"$description": "Colour options: raw hue ramps. Each hue has a light ramp and a dark ramp (the same steps tuned for dark backgrounds). Steps only: each theme decides its own base (@). Themes pick from these; components never read them.",
|
|
1214
|
+
"gray": {
|
|
1215
|
+
"$type": "color",
|
|
1216
|
+
"$description": "The gray hue: a light ramp, a dark ramp and its base value.",
|
|
1217
|
+
"light": {
|
|
1218
|
+
"0": {
|
|
1219
|
+
"$value": "#FFFFFF"
|
|
1220
|
+
},
|
|
1221
|
+
"50": {
|
|
1222
|
+
"$value": "#F7F7F7"
|
|
1223
|
+
},
|
|
1224
|
+
"100": {
|
|
1225
|
+
"$value": "#EDEDED"
|
|
1226
|
+
},
|
|
1227
|
+
"200": {
|
|
1228
|
+
"$value": "#D6D6D6"
|
|
1229
|
+
},
|
|
1230
|
+
"300": {
|
|
1231
|
+
"$value": "#949494"
|
|
1232
|
+
},
|
|
1233
|
+
"400": {
|
|
1234
|
+
"$value": "#767676",
|
|
1235
|
+
"$description": "Derived: the OKLab midpoint of 300 and 500. Added so muted text can pass 4.5:1 and stay quieter than secondary."
|
|
1236
|
+
},
|
|
1237
|
+
"500": {
|
|
1238
|
+
"$value": "#595959"
|
|
1239
|
+
},
|
|
1240
|
+
"600": {
|
|
1241
|
+
"$value": "#464646",
|
|
1242
|
+
"$description": "Derived: the OKLab midpoint of 500 and 700. Added so muted text can pass 4.5:1 and stay quieter than secondary."
|
|
1243
|
+
},
|
|
1244
|
+
"700": {
|
|
1245
|
+
"$value": "#333333"
|
|
1246
|
+
},
|
|
1247
|
+
"800": {
|
|
1248
|
+
"$value": "#222222"
|
|
1249
|
+
},
|
|
1250
|
+
"900": {
|
|
1251
|
+
"$value": "#141414"
|
|
1252
|
+
},
|
|
1253
|
+
"950": {
|
|
1254
|
+
"$value": "#0A0A0A"
|
|
1255
|
+
}
|
|
1256
|
+
},
|
|
1257
|
+
"dark": {
|
|
1258
|
+
"0": {
|
|
1259
|
+
"$value": "#0A0A0A"
|
|
1260
|
+
},
|
|
1261
|
+
"50": {
|
|
1262
|
+
"$value": "#141414"
|
|
1263
|
+
},
|
|
1264
|
+
"100": {
|
|
1265
|
+
"$value": "#222222"
|
|
1266
|
+
},
|
|
1267
|
+
"200": {
|
|
1268
|
+
"$value": "#333333"
|
|
1269
|
+
},
|
|
1270
|
+
"300": {
|
|
1271
|
+
"$value": "#595959"
|
|
1272
|
+
},
|
|
1273
|
+
"400": {
|
|
1274
|
+
"$value": "#767676",
|
|
1275
|
+
"$description": "Derived: the OKLab midpoint of 300 and 500. Added so muted text can pass 4.5:1 and stay quieter than secondary."
|
|
1276
|
+
},
|
|
1277
|
+
"500": {
|
|
1278
|
+
"$value": "#949494"
|
|
1279
|
+
},
|
|
1280
|
+
"600": {
|
|
1281
|
+
"$value": "#B4B4B4",
|
|
1282
|
+
"$description": "Derived: the OKLab midpoint of 500 and 700. Added so muted text can pass 4.5:1 and stay quieter than secondary."
|
|
1283
|
+
},
|
|
1284
|
+
"700": {
|
|
1285
|
+
"$value": "#D6D6D6"
|
|
1286
|
+
},
|
|
1287
|
+
"800": {
|
|
1288
|
+
"$value": "#EDEDED"
|
|
1289
|
+
},
|
|
1290
|
+
"900": {
|
|
1291
|
+
"$value": "#F7F7F7"
|
|
1292
|
+
},
|
|
1293
|
+
"950": {
|
|
1294
|
+
"$value": "#FFFFFF"
|
|
1295
|
+
}
|
|
1296
|
+
}
|
|
1297
|
+
},
|
|
1298
|
+
"blue": {
|
|
1299
|
+
"$type": "color",
|
|
1300
|
+
"$description": "The blue hue: a light ramp, a dark ramp and its base value.",
|
|
1301
|
+
"light": {
|
|
1302
|
+
"100": {
|
|
1303
|
+
"$value": "#E1ECFF"
|
|
1304
|
+
},
|
|
1305
|
+
"300": {
|
|
1306
|
+
"$value": "#8AB4F8"
|
|
1307
|
+
},
|
|
1308
|
+
"500": {
|
|
1309
|
+
"$value": "#1A5DD0"
|
|
1310
|
+
},
|
|
1311
|
+
"600": {
|
|
1312
|
+
"$value": "#0B4FC0"
|
|
1313
|
+
},
|
|
1314
|
+
"700": {
|
|
1315
|
+
"$value": "#083C93"
|
|
1316
|
+
},
|
|
1317
|
+
"800": {
|
|
1318
|
+
"$value": "#062C6E"
|
|
1319
|
+
}
|
|
1320
|
+
},
|
|
1321
|
+
"dark": {
|
|
1322
|
+
"100": {
|
|
1323
|
+
"$value": "#062C6E"
|
|
1324
|
+
},
|
|
1325
|
+
"300": {
|
|
1326
|
+
"$value": "#083C93"
|
|
1327
|
+
},
|
|
1328
|
+
"500": {
|
|
1329
|
+
"$value": "#0B4FC0"
|
|
1330
|
+
},
|
|
1331
|
+
"600": {
|
|
1332
|
+
"$value": "#1A5DD0"
|
|
1333
|
+
},
|
|
1334
|
+
"700": {
|
|
1335
|
+
"$value": "#8AB4F8"
|
|
1336
|
+
},
|
|
1337
|
+
"800": {
|
|
1338
|
+
"$value": "#E1ECFF"
|
|
1339
|
+
}
|
|
1340
|
+
}
|
|
1341
|
+
},
|
|
1342
|
+
"green": {
|
|
1343
|
+
"$type": "color",
|
|
1344
|
+
"$description": "The green hue: a light ramp, a dark ramp and its base value.",
|
|
1345
|
+
"light": {
|
|
1346
|
+
"100": {
|
|
1347
|
+
"$value": "#E3F4EA"
|
|
1348
|
+
},
|
|
1349
|
+
"300": {
|
|
1350
|
+
"$value": "#5CC283"
|
|
1351
|
+
},
|
|
1352
|
+
"700": {
|
|
1353
|
+
"$value": "#1F7A3A"
|
|
1354
|
+
},
|
|
1355
|
+
"900": {
|
|
1356
|
+
"$value": "#123322"
|
|
1357
|
+
}
|
|
1358
|
+
},
|
|
1359
|
+
"dark": {
|
|
1360
|
+
"100": {
|
|
1361
|
+
"$value": "#123322"
|
|
1362
|
+
},
|
|
1363
|
+
"300": {
|
|
1364
|
+
"$value": "#1F7A3A"
|
|
1365
|
+
},
|
|
1366
|
+
"700": {
|
|
1367
|
+
"$value": "#5CC283"
|
|
1368
|
+
},
|
|
1369
|
+
"900": {
|
|
1370
|
+
"$value": "#E3F4EA"
|
|
1371
|
+
}
|
|
1372
|
+
}
|
|
1373
|
+
},
|
|
1374
|
+
"amber": {
|
|
1375
|
+
"$type": "color",
|
|
1376
|
+
"$description": "The amber hue: a light ramp, a dark ramp and its base value.",
|
|
1377
|
+
"light": {
|
|
1378
|
+
"100": {
|
|
1379
|
+
"$value": "#FFF3D6"
|
|
1380
|
+
},
|
|
1381
|
+
"300": {
|
|
1382
|
+
"$value": "#F2B84B"
|
|
1383
|
+
},
|
|
1384
|
+
"700": {
|
|
1385
|
+
"$value": "#8A5600"
|
|
1386
|
+
},
|
|
1387
|
+
"900": {
|
|
1388
|
+
"$value": "#3A2A05"
|
|
1389
|
+
}
|
|
1390
|
+
},
|
|
1391
|
+
"dark": {
|
|
1392
|
+
"100": {
|
|
1393
|
+
"$value": "#3A2A05"
|
|
1394
|
+
},
|
|
1395
|
+
"300": {
|
|
1396
|
+
"$value": "#8A5600"
|
|
1397
|
+
},
|
|
1398
|
+
"700": {
|
|
1399
|
+
"$value": "#F2B84B"
|
|
1400
|
+
},
|
|
1401
|
+
"900": {
|
|
1402
|
+
"$value": "#FFF3D6"
|
|
1403
|
+
}
|
|
1404
|
+
}
|
|
1405
|
+
},
|
|
1406
|
+
"red": {
|
|
1407
|
+
"$type": "color",
|
|
1408
|
+
"$description": "The red hue: a light ramp, a dark ramp and its base value.",
|
|
1409
|
+
"light": {
|
|
1410
|
+
"100": {
|
|
1411
|
+
"$value": "#FDE7E7"
|
|
1412
|
+
},
|
|
1413
|
+
"300": {
|
|
1414
|
+
"$value": "#F28B8B"
|
|
1415
|
+
},
|
|
1416
|
+
"700": {
|
|
1417
|
+
"$value": "#C42B2B"
|
|
1418
|
+
},
|
|
1419
|
+
"900": {
|
|
1420
|
+
"$value": "#3D1414"
|
|
1421
|
+
}
|
|
1422
|
+
},
|
|
1423
|
+
"dark": {
|
|
1424
|
+
"100": {
|
|
1425
|
+
"$value": "#3D1414"
|
|
1426
|
+
},
|
|
1427
|
+
"300": {
|
|
1428
|
+
"$value": "#C42B2B"
|
|
1429
|
+
},
|
|
1430
|
+
"700": {
|
|
1431
|
+
"$value": "#F28B8B"
|
|
1432
|
+
},
|
|
1433
|
+
"900": {
|
|
1434
|
+
"$value": "#FDE7E7"
|
|
1435
|
+
}
|
|
1436
|
+
}
|
|
1437
|
+
},
|
|
1438
|
+
"black": {
|
|
1439
|
+
"$type": "color",
|
|
1440
|
+
"$description": "See-through black for scrims behind dialogs, light and dark.",
|
|
1441
|
+
"light": {
|
|
1442
|
+
"scrim": {
|
|
1443
|
+
"$value": "#0000008C"
|
|
1444
|
+
}
|
|
1445
|
+
},
|
|
1446
|
+
"dark": {
|
|
1447
|
+
"scrim": {
|
|
1448
|
+
"$value": "#000000B3"
|
|
1449
|
+
}
|
|
1450
|
+
}
|
|
1451
|
+
},
|
|
1452
|
+
"teal": {
|
|
1453
|
+
"$type": "color",
|
|
1454
|
+
"$description": "Teal ramp for the info status and categories. Same values as the multi-brand teal ramp: borrowed, not invented.",
|
|
1455
|
+
"light": {
|
|
1456
|
+
"100": {
|
|
1457
|
+
"$value": "#E0F2F1"
|
|
1458
|
+
},
|
|
1459
|
+
"300": {
|
|
1460
|
+
"$value": "#7FCFC6"
|
|
1461
|
+
},
|
|
1462
|
+
"500": {
|
|
1463
|
+
"$value": "#14918A"
|
|
1464
|
+
},
|
|
1465
|
+
"600": {
|
|
1466
|
+
"$value": "#0F766E"
|
|
1467
|
+
},
|
|
1468
|
+
"700": {
|
|
1469
|
+
"$value": "#0B5B55"
|
|
1470
|
+
},
|
|
1471
|
+
"800": {
|
|
1472
|
+
"$value": "#08423E"
|
|
1473
|
+
}
|
|
1474
|
+
},
|
|
1475
|
+
"dark": {
|
|
1476
|
+
"100": {
|
|
1477
|
+
"$value": "#08423E"
|
|
1478
|
+
},
|
|
1479
|
+
"300": {
|
|
1480
|
+
"$value": "#0B5B55"
|
|
1481
|
+
},
|
|
1482
|
+
"500": {
|
|
1483
|
+
"$value": "#0F766E"
|
|
1484
|
+
},
|
|
1485
|
+
"600": {
|
|
1486
|
+
"$value": "#14918A"
|
|
1487
|
+
},
|
|
1488
|
+
"700": {
|
|
1489
|
+
"$value": "#7FCFC6"
|
|
1490
|
+
},
|
|
1491
|
+
"800": {
|
|
1492
|
+
"$value": "#E0F2F1"
|
|
1493
|
+
}
|
|
1494
|
+
}
|
|
1495
|
+
}
|
|
1496
|
+
},
|
|
1497
|
+
"space": {
|
|
1498
|
+
"12": {
|
|
1499
|
+
"$type": "dimension",
|
|
1500
|
+
"$value": "0.75rem"
|
|
1501
|
+
},
|
|
1502
|
+
"16": {
|
|
1503
|
+
"$type": "dimension",
|
|
1504
|
+
"$value": "1rem"
|
|
1505
|
+
},
|
|
1506
|
+
"24": {
|
|
1507
|
+
"$type": "dimension",
|
|
1508
|
+
"$value": "1.5rem"
|
|
1509
|
+
},
|
|
1510
|
+
"32": {
|
|
1511
|
+
"$type": "dimension",
|
|
1512
|
+
"$value": "2rem"
|
|
1513
|
+
},
|
|
1514
|
+
"48": {
|
|
1515
|
+
"$type": "dimension",
|
|
1516
|
+
"$value": "3rem"
|
|
1517
|
+
},
|
|
1518
|
+
"$description": "Space options. Names give the size in pixels at the default text size; values are rem."
|
|
1519
|
+
},
|
|
1520
|
+
"size": {
|
|
1521
|
+
"16": {
|
|
1522
|
+
"$type": "dimension",
|
|
1523
|
+
"$value": "1rem"
|
|
1524
|
+
},
|
|
1525
|
+
"20": {
|
|
1526
|
+
"$type": "dimension",
|
|
1527
|
+
"$value": "1.25rem"
|
|
1528
|
+
},
|
|
1529
|
+
"24": {
|
|
1530
|
+
"$type": "dimension",
|
|
1531
|
+
"$value": "1.5rem"
|
|
1532
|
+
},
|
|
1533
|
+
"48": {
|
|
1534
|
+
"$type": "dimension",
|
|
1535
|
+
"$value": "3rem"
|
|
1536
|
+
},
|
|
1537
|
+
"52": {
|
|
1538
|
+
"$type": "dimension",
|
|
1539
|
+
"$value": "3.25rem"
|
|
1540
|
+
},
|
|
1541
|
+
"56": {
|
|
1542
|
+
"$type": "dimension",
|
|
1543
|
+
"$value": "3.5rem"
|
|
1544
|
+
},
|
|
1545
|
+
"$description": "Size options for controls, rows and icons."
|
|
1546
|
+
},
|
|
1547
|
+
"radius": {
|
|
1548
|
+
"0": {
|
|
1549
|
+
"$type": "dimension",
|
|
1550
|
+
"$value": "0rem"
|
|
1551
|
+
},
|
|
1552
|
+
"4": {
|
|
1553
|
+
"$type": "dimension",
|
|
1554
|
+
"$value": "0.25rem"
|
|
1555
|
+
},
|
|
1556
|
+
"6": {
|
|
1557
|
+
"$type": "dimension",
|
|
1558
|
+
"$value": "0.375rem"
|
|
1559
|
+
},
|
|
1560
|
+
"8": {
|
|
1561
|
+
"$type": "dimension",
|
|
1562
|
+
"$value": "0.5rem"
|
|
1563
|
+
},
|
|
1564
|
+
"$description": "Corner options.",
|
|
1565
|
+
"full": {
|
|
1566
|
+
"$type": "dimension",
|
|
1567
|
+
"$value": "9999px",
|
|
1568
|
+
"$description": "Fully round."
|
|
1569
|
+
}
|
|
1570
|
+
},
|
|
1571
|
+
"border-width": {
|
|
1572
|
+
"2": {
|
|
1573
|
+
"$type": "dimension",
|
|
1574
|
+
"$value": "2px"
|
|
1575
|
+
},
|
|
1576
|
+
"3": {
|
|
1577
|
+
"$type": "dimension",
|
|
1578
|
+
"$value": "3px"
|
|
1579
|
+
},
|
|
1580
|
+
"$description": "Border width options."
|
|
1581
|
+
},
|
|
1582
|
+
"font": {
|
|
1583
|
+
"size": {
|
|
1584
|
+
"16": {
|
|
1585
|
+
"$type": "dimension",
|
|
1586
|
+
"$value": "1rem"
|
|
1587
|
+
},
|
|
1588
|
+
"18": {
|
|
1589
|
+
"$type": "dimension",
|
|
1590
|
+
"$value": "1.125rem"
|
|
1591
|
+
},
|
|
1592
|
+
"19": {
|
|
1593
|
+
"$type": "dimension",
|
|
1594
|
+
"$value": "1.1875rem"
|
|
1595
|
+
},
|
|
1596
|
+
"22": {
|
|
1597
|
+
"$type": "dimension",
|
|
1598
|
+
"$value": "1.375rem"
|
|
1599
|
+
},
|
|
1600
|
+
"28": {
|
|
1601
|
+
"$type": "dimension",
|
|
1602
|
+
"$value": "1.75rem"
|
|
1603
|
+
},
|
|
1604
|
+
"36": {
|
|
1605
|
+
"$type": "dimension",
|
|
1606
|
+
"$value": "2.25rem"
|
|
1607
|
+
},
|
|
1608
|
+
"$description": "Type size options. Names are pixels at the default text size; values are rem, so text grows with the user's setting."
|
|
1609
|
+
},
|
|
1610
|
+
"weight": {
|
|
1611
|
+
"400": {
|
|
1612
|
+
"$type": "fontWeight",
|
|
1613
|
+
"$value": 400
|
|
1614
|
+
},
|
|
1615
|
+
"700": {
|
|
1616
|
+
"$type": "fontWeight",
|
|
1617
|
+
"$value": 700
|
|
1618
|
+
}
|
|
1619
|
+
},
|
|
1620
|
+
"line-height": {
|
|
1621
|
+
"1_2": {
|
|
1622
|
+
"$type": "number",
|
|
1623
|
+
"$value": 1.2,
|
|
1624
|
+
"$description": "A ratio of the text size."
|
|
1625
|
+
},
|
|
1626
|
+
"1_25": {
|
|
1627
|
+
"$type": "number",
|
|
1628
|
+
"$value": 1.25,
|
|
1629
|
+
"$description": "A ratio of the text size."
|
|
1630
|
+
},
|
|
1631
|
+
"1_3": {
|
|
1632
|
+
"$type": "number",
|
|
1633
|
+
"$value": 1.3,
|
|
1634
|
+
"$description": "A ratio of the text size."
|
|
1635
|
+
},
|
|
1636
|
+
"1_4": {
|
|
1637
|
+
"$type": "number",
|
|
1638
|
+
"$value": 1.4,
|
|
1639
|
+
"$description": "A ratio of the text size."
|
|
1640
|
+
},
|
|
1641
|
+
"1_5": {
|
|
1642
|
+
"$type": "number",
|
|
1643
|
+
"$value": 1.5,
|
|
1644
|
+
"$description": "A ratio of the text size."
|
|
1645
|
+
},
|
|
1646
|
+
"1_6": {
|
|
1647
|
+
"$type": "number",
|
|
1648
|
+
"$value": 1.6,
|
|
1649
|
+
"$description": "A ratio of the text size."
|
|
1650
|
+
}
|
|
1651
|
+
},
|
|
1652
|
+
"family": {
|
|
1653
|
+
"$description": "Font family options. Each brand's theme picks its display, body, interface and data fonts from these.",
|
|
1654
|
+
"atkinson-hyperlegible": {
|
|
1655
|
+
"$type": "fontFamily",
|
|
1656
|
+
"$value": "\"Atkinson Hyperlegible\", Verdana, sans-serif"
|
|
1657
|
+
},
|
|
1658
|
+
"ibm-plex-mono": {
|
|
1659
|
+
"$type": "fontFamily",
|
|
1660
|
+
"$value": "\"IBM Plex Mono\", ui-monospace, monospace"
|
|
1661
|
+
}
|
|
1662
|
+
}
|
|
1663
|
+
},
|
|
1664
|
+
"duration": {
|
|
1665
|
+
"fast": {
|
|
1666
|
+
"$type": "duration",
|
|
1667
|
+
"$value": "120ms",
|
|
1668
|
+
"$description": "Fast: the usual convention for feedback, about 120ms."
|
|
1669
|
+
},
|
|
1670
|
+
"moderate": {
|
|
1671
|
+
"$type": "duration",
|
|
1672
|
+
"$value": "200ms",
|
|
1673
|
+
"$description": "Moderate: a calm, easy-to-follow speed, about 200ms."
|
|
1674
|
+
},
|
|
1675
|
+
"relaxed": {
|
|
1676
|
+
"$type": "duration",
|
|
1677
|
+
"$value": "320ms",
|
|
1678
|
+
"$description": "Relaxed: a slower, springy speed for expressive motion, about 320ms."
|
|
1679
|
+
}
|
|
1680
|
+
},
|
|
1681
|
+
"easing": {
|
|
1682
|
+
"standard": {
|
|
1683
|
+
"$type": "cubicBezier",
|
|
1684
|
+
"$value": [
|
|
1685
|
+
0.2,
|
|
1686
|
+
0,
|
|
1687
|
+
0,
|
|
1688
|
+
1
|
|
1689
|
+
],
|
|
1690
|
+
"$description": "The easing for feedback transitions."
|
|
1691
|
+
}
|
|
1692
|
+
},
|
|
1693
|
+
"opacity": {
|
|
1694
|
+
"50": {
|
|
1695
|
+
"$type": "number",
|
|
1696
|
+
"$value": 0.5,
|
|
1697
|
+
"$description": "An opacity option."
|
|
1698
|
+
}
|
|
1699
|
+
},
|
|
1700
|
+
"shadow": {
|
|
1701
|
+
"$description": "Raw shadows. Elevation semantics point at these.",
|
|
1702
|
+
"none": {
|
|
1703
|
+
"$type": "shadow",
|
|
1704
|
+
"$value": {
|
|
1705
|
+
"color": "#00000000",
|
|
1706
|
+
"offsetX": "0px",
|
|
1707
|
+
"offsetY": "0px",
|
|
1708
|
+
"blur": "0px",
|
|
1709
|
+
"spread": "0px"
|
|
1710
|
+
},
|
|
1711
|
+
"$description": "No shadow: flat surfaces."
|
|
1712
|
+
}
|
|
1713
|
+
}
|
|
1714
|
+
},
|
|
1715
|
+
"brands": {
|
|
1716
|
+
"default": {
|
|
1717
|
+
"label": "Accessible first",
|
|
1718
|
+
"description": "The single brand: strong blue on true neutral, high contrast everywhere.",
|
|
1719
|
+
"theme": {
|
|
1720
|
+
"$description": "The Accessible first theme: what each brand-dependent semantic key picks, in light and dark, plus mode-free picks (fonts, corners) in base. Info uses teal, kept apart from the brand colour so it never reads as an action. Categories 1 to 5 are blue, teal, green, amber, gray: distinct hues for tags and chart series, with no meaning. Disabled uses the neutral gray.",
|
|
1721
|
+
"base": {
|
|
1722
|
+
"radius": {
|
|
1723
|
+
"control": {
|
|
1724
|
+
"$type": "dimension",
|
|
1725
|
+
"$value": "{radius.6}"
|
|
1726
|
+
},
|
|
1727
|
+
"badge": {
|
|
1728
|
+
"$type": "dimension",
|
|
1729
|
+
"$value": "{radius.4}"
|
|
1730
|
+
},
|
|
1731
|
+
"container": {
|
|
1732
|
+
"$type": "dimension",
|
|
1733
|
+
"$value": "{radius.8}"
|
|
1734
|
+
}
|
|
1735
|
+
},
|
|
1736
|
+
"type": {
|
|
1737
|
+
"display": {
|
|
1738
|
+
"font-family": {
|
|
1739
|
+
"$type": "fontFamily",
|
|
1740
|
+
"$value": "{font.family.atkinson-hyperlegible}"
|
|
1741
|
+
}
|
|
1742
|
+
},
|
|
1743
|
+
"title": {
|
|
1744
|
+
"font-family": {
|
|
1745
|
+
"$type": "fontFamily",
|
|
1746
|
+
"$value": "{font.family.atkinson-hyperlegible}"
|
|
1747
|
+
}
|
|
1748
|
+
},
|
|
1749
|
+
"heading": {
|
|
1750
|
+
"font-family": {
|
|
1751
|
+
"$type": "fontFamily",
|
|
1752
|
+
"$value": "{font.family.atkinson-hyperlegible}"
|
|
1753
|
+
}
|
|
1754
|
+
},
|
|
1755
|
+
"body": {
|
|
1756
|
+
"font-family": {
|
|
1757
|
+
"$type": "fontFamily",
|
|
1758
|
+
"$value": "{font.family.atkinson-hyperlegible}"
|
|
1759
|
+
}
|
|
1760
|
+
},
|
|
1761
|
+
"label": {
|
|
1762
|
+
"font-family": {
|
|
1763
|
+
"$type": "fontFamily",
|
|
1764
|
+
"$value": "{font.family.atkinson-hyperlegible}"
|
|
1765
|
+
}
|
|
1766
|
+
},
|
|
1767
|
+
"caption": {
|
|
1768
|
+
"font-family": {
|
|
1769
|
+
"$type": "fontFamily",
|
|
1770
|
+
"$value": "{font.family.atkinson-hyperlegible}"
|
|
1771
|
+
}
|
|
1772
|
+
},
|
|
1773
|
+
"data": {
|
|
1774
|
+
"font-family": {
|
|
1775
|
+
"$type": "fontFamily",
|
|
1776
|
+
"$value": "{font.family.atkinson-hyperlegible}"
|
|
1777
|
+
}
|
|
1778
|
+
}
|
|
1779
|
+
}
|
|
1780
|
+
},
|
|
1781
|
+
"light": {
|
|
1782
|
+
"color": {
|
|
1783
|
+
"surface": {
|
|
1784
|
+
"canvas": {
|
|
1785
|
+
"$type": "color",
|
|
1786
|
+
"$value": "{color.gray.light.50}"
|
|
1787
|
+
},
|
|
1788
|
+
"default": {
|
|
1789
|
+
"$type": "color",
|
|
1790
|
+
"$value": "{color.gray.light.0}"
|
|
1791
|
+
},
|
|
1792
|
+
"raised": {
|
|
1793
|
+
"$type": "color",
|
|
1794
|
+
"$value": "{color.gray.light.0}"
|
|
1795
|
+
},
|
|
1796
|
+
"sunken": {
|
|
1797
|
+
"$type": "color",
|
|
1798
|
+
"$value": "{color.gray.light.100}"
|
|
1799
|
+
},
|
|
1800
|
+
"selected": {
|
|
1801
|
+
"$type": "color",
|
|
1802
|
+
"$value": "{color.blue.light.100}"
|
|
1803
|
+
},
|
|
1804
|
+
"inverse": {
|
|
1805
|
+
"$type": "color",
|
|
1806
|
+
"$value": "{color.gray.light.900}"
|
|
1807
|
+
},
|
|
1808
|
+
"scrim": {
|
|
1809
|
+
"$type": "color",
|
|
1810
|
+
"$value": "{color.black.light.scrim}"
|
|
1811
|
+
}
|
|
1812
|
+
},
|
|
1813
|
+
"text": {
|
|
1814
|
+
"primary": {
|
|
1815
|
+
"$type": "color",
|
|
1816
|
+
"$value": "{color.gray.light.900}"
|
|
1817
|
+
},
|
|
1818
|
+
"secondary": {
|
|
1819
|
+
"$type": "color",
|
|
1820
|
+
"$value": "{color.gray.light.700}"
|
|
1821
|
+
},
|
|
1822
|
+
"muted": {
|
|
1823
|
+
"$type": "color",
|
|
1824
|
+
"$value": "{color.gray.light.500}"
|
|
1825
|
+
},
|
|
1826
|
+
"inverse": {
|
|
1827
|
+
"$type": "color",
|
|
1828
|
+
"$value": "{color.gray.light.0}"
|
|
1829
|
+
},
|
|
1830
|
+
"on-action": {
|
|
1831
|
+
"$type": "color",
|
|
1832
|
+
"$value": "{color.gray.light.0}"
|
|
1833
|
+
},
|
|
1834
|
+
"link": {
|
|
1835
|
+
"$type": "color",
|
|
1836
|
+
"$value": "{color.blue.light.700}"
|
|
1837
|
+
}
|
|
1838
|
+
},
|
|
1839
|
+
"border": {
|
|
1840
|
+
"default": {
|
|
1841
|
+
"$type": "color",
|
|
1842
|
+
"$value": "{color.gray.light.200}"
|
|
1843
|
+
},
|
|
1844
|
+
"strong": {
|
|
1845
|
+
"$type": "color",
|
|
1846
|
+
"$value": "{color.gray.light.500}"
|
|
1847
|
+
},
|
|
1848
|
+
"focus": {
|
|
1849
|
+
"$type": "color",
|
|
1850
|
+
"$value": "{color.blue.light.600}"
|
|
1851
|
+
}
|
|
1852
|
+
},
|
|
1853
|
+
"action": {
|
|
1854
|
+
"primary": {
|
|
1855
|
+
"@": {
|
|
1856
|
+
"$type": "color",
|
|
1857
|
+
"$value": "{color.blue.light.600}"
|
|
1858
|
+
},
|
|
1859
|
+
"hover": {
|
|
1860
|
+
"$type": "color",
|
|
1861
|
+
"$value": "{color.blue.light.700}"
|
|
1862
|
+
}
|
|
1863
|
+
},
|
|
1864
|
+
"secondary": {
|
|
1865
|
+
"@": {
|
|
1866
|
+
"$type": "color",
|
|
1867
|
+
"$value": "{color.gray.light.0}"
|
|
1868
|
+
},
|
|
1869
|
+
"hover": {
|
|
1870
|
+
"$type": "color",
|
|
1871
|
+
"$value": "{color.gray.light.100}"
|
|
1872
|
+
}
|
|
1873
|
+
}
|
|
1874
|
+
},
|
|
1875
|
+
"status": {
|
|
1876
|
+
"info": {
|
|
1877
|
+
"@": {
|
|
1878
|
+
"$type": "color",
|
|
1879
|
+
"$value": "{color.teal.light.700}"
|
|
1880
|
+
},
|
|
1881
|
+
"subtle": {
|
|
1882
|
+
"$type": "color",
|
|
1883
|
+
"$value": "{color.teal.light.100}"
|
|
1884
|
+
}
|
|
1885
|
+
},
|
|
1886
|
+
"success": {
|
|
1887
|
+
"@": {
|
|
1888
|
+
"$type": "color",
|
|
1889
|
+
"$value": "{color.green.light.700}"
|
|
1890
|
+
},
|
|
1891
|
+
"subtle": {
|
|
1892
|
+
"$type": "color",
|
|
1893
|
+
"$value": "{color.green.light.100}"
|
|
1894
|
+
}
|
|
1895
|
+
},
|
|
1896
|
+
"warning": {
|
|
1897
|
+
"@": {
|
|
1898
|
+
"$type": "color",
|
|
1899
|
+
"$value": "{color.amber.light.700}"
|
|
1900
|
+
},
|
|
1901
|
+
"subtle": {
|
|
1902
|
+
"$type": "color",
|
|
1903
|
+
"$value": "{color.amber.light.100}"
|
|
1904
|
+
}
|
|
1905
|
+
},
|
|
1906
|
+
"danger": {
|
|
1907
|
+
"@": {
|
|
1908
|
+
"$type": "color",
|
|
1909
|
+
"$value": "{color.red.light.700}"
|
|
1910
|
+
},
|
|
1911
|
+
"subtle": {
|
|
1912
|
+
"$type": "color",
|
|
1913
|
+
"$value": "{color.red.light.100}"
|
|
1914
|
+
}
|
|
1915
|
+
}
|
|
1916
|
+
},
|
|
1917
|
+
"category": {
|
|
1918
|
+
"1": {
|
|
1919
|
+
"@": {
|
|
1920
|
+
"$type": "color",
|
|
1921
|
+
"$value": "{color.blue.light.600}"
|
|
1922
|
+
},
|
|
1923
|
+
"subtle": {
|
|
1924
|
+
"$type": "color",
|
|
1925
|
+
"$value": "{color.blue.light.100}"
|
|
1926
|
+
}
|
|
1927
|
+
},
|
|
1928
|
+
"2": {
|
|
1929
|
+
"@": {
|
|
1930
|
+
"$type": "color",
|
|
1931
|
+
"$value": "{color.teal.light.600}"
|
|
1932
|
+
},
|
|
1933
|
+
"subtle": {
|
|
1934
|
+
"$type": "color",
|
|
1935
|
+
"$value": "{color.teal.light.100}"
|
|
1936
|
+
}
|
|
1937
|
+
},
|
|
1938
|
+
"3": {
|
|
1939
|
+
"@": {
|
|
1940
|
+
"$type": "color",
|
|
1941
|
+
"$value": "{color.green.light.700}"
|
|
1942
|
+
},
|
|
1943
|
+
"subtle": {
|
|
1944
|
+
"$type": "color",
|
|
1945
|
+
"$value": "{color.green.light.100}"
|
|
1946
|
+
}
|
|
1947
|
+
},
|
|
1948
|
+
"4": {
|
|
1949
|
+
"@": {
|
|
1950
|
+
"$type": "color",
|
|
1951
|
+
"$value": "{color.amber.light.700}"
|
|
1952
|
+
},
|
|
1953
|
+
"subtle": {
|
|
1954
|
+
"$type": "color",
|
|
1955
|
+
"$value": "{color.amber.light.100}"
|
|
1956
|
+
}
|
|
1957
|
+
},
|
|
1958
|
+
"5": {
|
|
1959
|
+
"@": {
|
|
1960
|
+
"$type": "color",
|
|
1961
|
+
"$value": "{color.gray.light.500}"
|
|
1962
|
+
},
|
|
1963
|
+
"subtle": {
|
|
1964
|
+
"$type": "color",
|
|
1965
|
+
"$value": "{color.gray.light.100}"
|
|
1966
|
+
}
|
|
1967
|
+
}
|
|
1968
|
+
},
|
|
1969
|
+
"disabled": {
|
|
1970
|
+
"text": {
|
|
1971
|
+
"$type": "color",
|
|
1972
|
+
"$value": "{color.gray.light.500}"
|
|
1973
|
+
},
|
|
1974
|
+
"surface": {
|
|
1975
|
+
"$type": "color",
|
|
1976
|
+
"$value": "{color.gray.light.100}"
|
|
1977
|
+
},
|
|
1978
|
+
"border": {
|
|
1979
|
+
"$type": "color",
|
|
1980
|
+
"$value": "{color.gray.light.200}"
|
|
1981
|
+
}
|
|
1982
|
+
}
|
|
1983
|
+
},
|
|
1984
|
+
"elevation": {
|
|
1985
|
+
"card": {
|
|
1986
|
+
"$type": "shadow",
|
|
1987
|
+
"$value": "{shadow.none}"
|
|
1988
|
+
},
|
|
1989
|
+
"overlay": {
|
|
1990
|
+
"$type": "shadow",
|
|
1991
|
+
"$value": "{shadow.none}"
|
|
1992
|
+
}
|
|
1993
|
+
}
|
|
1994
|
+
},
|
|
1995
|
+
"dark": {
|
|
1996
|
+
"color": {
|
|
1997
|
+
"surface": {
|
|
1998
|
+
"canvas": {
|
|
1999
|
+
"$type": "color",
|
|
2000
|
+
"$value": "{color.gray.dark.0}"
|
|
2001
|
+
},
|
|
2002
|
+
"default": {
|
|
2003
|
+
"$type": "color",
|
|
2004
|
+
"$value": "{color.gray.dark.50}"
|
|
2005
|
+
},
|
|
2006
|
+
"raised": {
|
|
2007
|
+
"$type": "color",
|
|
2008
|
+
"$value": "{color.gray.dark.100}"
|
|
2009
|
+
},
|
|
2010
|
+
"sunken": {
|
|
2011
|
+
"$type": "color",
|
|
2012
|
+
"$value": "{color.gray.dark.100}"
|
|
2013
|
+
},
|
|
2014
|
+
"selected": {
|
|
2015
|
+
"$type": "color",
|
|
2016
|
+
"$value": "{color.blue.dark.100}"
|
|
2017
|
+
},
|
|
2018
|
+
"inverse": {
|
|
2019
|
+
"$type": "color",
|
|
2020
|
+
"$value": "{color.gray.dark.900}"
|
|
2021
|
+
},
|
|
2022
|
+
"scrim": {
|
|
2023
|
+
"$type": "color",
|
|
2024
|
+
"$value": "{color.black.dark.scrim}"
|
|
2025
|
+
}
|
|
2026
|
+
},
|
|
2027
|
+
"text": {
|
|
2028
|
+
"primary": {
|
|
2029
|
+
"$type": "color",
|
|
2030
|
+
"$value": "{color.gray.dark.900}"
|
|
2031
|
+
},
|
|
2032
|
+
"secondary": {
|
|
2033
|
+
"$type": "color",
|
|
2034
|
+
"$value": "{color.gray.dark.600}"
|
|
2035
|
+
},
|
|
2036
|
+
"muted": {
|
|
2037
|
+
"$type": "color",
|
|
2038
|
+
"$value": "{color.gray.dark.500}"
|
|
2039
|
+
},
|
|
2040
|
+
"inverse": {
|
|
2041
|
+
"$type": "color",
|
|
2042
|
+
"$value": "{color.gray.dark.50}"
|
|
2043
|
+
},
|
|
2044
|
+
"on-action": {
|
|
2045
|
+
"$type": "color",
|
|
2046
|
+
"$value": "{color.gray.dark.0}"
|
|
2047
|
+
},
|
|
2048
|
+
"link": {
|
|
2049
|
+
"$type": "color",
|
|
2050
|
+
"$value": "{color.blue.dark.700}"
|
|
2051
|
+
}
|
|
2052
|
+
},
|
|
2053
|
+
"border": {
|
|
2054
|
+
"default": {
|
|
2055
|
+
"$type": "color",
|
|
2056
|
+
"$value": "{color.gray.dark.100}"
|
|
2057
|
+
},
|
|
2058
|
+
"strong": {
|
|
2059
|
+
"$type": "color",
|
|
2060
|
+
"$value": "{color.gray.dark.400}"
|
|
2061
|
+
},
|
|
2062
|
+
"focus": {
|
|
2063
|
+
"$type": "color",
|
|
2064
|
+
"$value": "{color.blue.dark.700}"
|
|
2065
|
+
}
|
|
2066
|
+
},
|
|
2067
|
+
"action": {
|
|
2068
|
+
"primary": {
|
|
2069
|
+
"@": {
|
|
2070
|
+
"$type": "color",
|
|
2071
|
+
"$value": "{color.blue.dark.700}"
|
|
2072
|
+
},
|
|
2073
|
+
"hover": {
|
|
2074
|
+
"$type": "color",
|
|
2075
|
+
"$value": "{color.blue.dark.800}"
|
|
2076
|
+
}
|
|
2077
|
+
},
|
|
2078
|
+
"secondary": {
|
|
2079
|
+
"@": {
|
|
2080
|
+
"$type": "color",
|
|
2081
|
+
"$value": "{color.gray.dark.50}"
|
|
2082
|
+
},
|
|
2083
|
+
"hover": {
|
|
2084
|
+
"$type": "color",
|
|
2085
|
+
"$value": "{color.gray.dark.100}"
|
|
2086
|
+
}
|
|
2087
|
+
}
|
|
2088
|
+
},
|
|
2089
|
+
"status": {
|
|
2090
|
+
"info": {
|
|
2091
|
+
"@": {
|
|
2092
|
+
"$type": "color",
|
|
2093
|
+
"$value": "{color.teal.dark.700}"
|
|
2094
|
+
},
|
|
2095
|
+
"subtle": {
|
|
2096
|
+
"$type": "color",
|
|
2097
|
+
"$value": "{color.teal.dark.100}"
|
|
2098
|
+
}
|
|
2099
|
+
},
|
|
2100
|
+
"success": {
|
|
2101
|
+
"@": {
|
|
2102
|
+
"$type": "color",
|
|
2103
|
+
"$value": "{color.green.dark.700}"
|
|
2104
|
+
},
|
|
2105
|
+
"subtle": {
|
|
2106
|
+
"$type": "color",
|
|
2107
|
+
"$value": "{color.green.dark.100}"
|
|
2108
|
+
}
|
|
2109
|
+
},
|
|
2110
|
+
"warning": {
|
|
2111
|
+
"@": {
|
|
2112
|
+
"$type": "color",
|
|
2113
|
+
"$value": "{color.amber.dark.700}"
|
|
2114
|
+
},
|
|
2115
|
+
"subtle": {
|
|
2116
|
+
"$type": "color",
|
|
2117
|
+
"$value": "{color.amber.dark.100}"
|
|
2118
|
+
}
|
|
2119
|
+
},
|
|
2120
|
+
"danger": {
|
|
2121
|
+
"@": {
|
|
2122
|
+
"$type": "color",
|
|
2123
|
+
"$value": "{color.red.dark.700}"
|
|
2124
|
+
},
|
|
2125
|
+
"subtle": {
|
|
2126
|
+
"$type": "color",
|
|
2127
|
+
"$value": "{color.red.dark.100}"
|
|
2128
|
+
}
|
|
2129
|
+
}
|
|
2130
|
+
},
|
|
2131
|
+
"category": {
|
|
2132
|
+
"1": {
|
|
2133
|
+
"@": {
|
|
2134
|
+
"$type": "color",
|
|
2135
|
+
"$value": "{color.blue.dark.700}"
|
|
2136
|
+
},
|
|
2137
|
+
"subtle": {
|
|
2138
|
+
"$type": "color",
|
|
2139
|
+
"$value": "{color.blue.dark.100}"
|
|
2140
|
+
}
|
|
2141
|
+
},
|
|
2142
|
+
"2": {
|
|
2143
|
+
"@": {
|
|
2144
|
+
"$type": "color",
|
|
2145
|
+
"$value": "{color.teal.dark.700}"
|
|
2146
|
+
},
|
|
2147
|
+
"subtle": {
|
|
2148
|
+
"$type": "color",
|
|
2149
|
+
"$value": "{color.teal.dark.100}"
|
|
2150
|
+
}
|
|
2151
|
+
},
|
|
2152
|
+
"3": {
|
|
2153
|
+
"@": {
|
|
2154
|
+
"$type": "color",
|
|
2155
|
+
"$value": "{color.green.dark.700}"
|
|
2156
|
+
},
|
|
2157
|
+
"subtle": {
|
|
2158
|
+
"$type": "color",
|
|
2159
|
+
"$value": "{color.green.dark.100}"
|
|
2160
|
+
}
|
|
2161
|
+
},
|
|
2162
|
+
"4": {
|
|
2163
|
+
"@": {
|
|
2164
|
+
"$type": "color",
|
|
2165
|
+
"$value": "{color.amber.dark.700}"
|
|
2166
|
+
},
|
|
2167
|
+
"subtle": {
|
|
2168
|
+
"$type": "color",
|
|
2169
|
+
"$value": "{color.amber.dark.100}"
|
|
2170
|
+
}
|
|
2171
|
+
},
|
|
2172
|
+
"5": {
|
|
2173
|
+
"@": {
|
|
2174
|
+
"$type": "color",
|
|
2175
|
+
"$value": "{color.gray.dark.700}"
|
|
2176
|
+
},
|
|
2177
|
+
"subtle": {
|
|
2178
|
+
"$type": "color",
|
|
2179
|
+
"$value": "{color.gray.dark.100}"
|
|
2180
|
+
}
|
|
2181
|
+
}
|
|
2182
|
+
},
|
|
2183
|
+
"disabled": {
|
|
2184
|
+
"text": {
|
|
2185
|
+
"$type": "color",
|
|
2186
|
+
"$value": "{color.gray.dark.500}"
|
|
2187
|
+
},
|
|
2188
|
+
"surface": {
|
|
2189
|
+
"$type": "color",
|
|
2190
|
+
"$value": "{color.gray.dark.100}"
|
|
2191
|
+
},
|
|
2192
|
+
"border": {
|
|
2193
|
+
"$type": "color",
|
|
2194
|
+
"$value": "{color.gray.dark.200}"
|
|
2195
|
+
}
|
|
2196
|
+
}
|
|
2197
|
+
},
|
|
2198
|
+
"elevation": {
|
|
2199
|
+
"card": {
|
|
2200
|
+
"$type": "shadow",
|
|
2201
|
+
"$value": "{shadow.none}"
|
|
2202
|
+
},
|
|
2203
|
+
"overlay": {
|
|
2204
|
+
"$type": "shadow",
|
|
2205
|
+
"$value": "{shadow.none}"
|
|
2206
|
+
}
|
|
2207
|
+
}
|
|
2208
|
+
}
|
|
2209
|
+
}
|
|
2210
|
+
}
|
|
2211
|
+
},
|
|
2212
|
+
"semantic": {
|
|
2213
|
+
"space": {
|
|
2214
|
+
"gap": {
|
|
2215
|
+
"tight": {
|
|
2216
|
+
"$type": "dimension",
|
|
2217
|
+
"$value": "{space.12}",
|
|
2218
|
+
"$description": "Between things that belong together."
|
|
2219
|
+
},
|
|
2220
|
+
"default": {
|
|
2221
|
+
"$type": "dimension",
|
|
2222
|
+
"$value": "{space.16}",
|
|
2223
|
+
"$description": "Between items in one group."
|
|
2224
|
+
},
|
|
2225
|
+
"group": {
|
|
2226
|
+
"$type": "dimension",
|
|
2227
|
+
"$value": "{space.32}",
|
|
2228
|
+
"$description": "Between groups."
|
|
2229
|
+
},
|
|
2230
|
+
"section": {
|
|
2231
|
+
"$type": "dimension",
|
|
2232
|
+
"$value": "{space.48}",
|
|
2233
|
+
"$description": "Between page sections."
|
|
2234
|
+
}
|
|
2235
|
+
},
|
|
2236
|
+
"inset": {
|
|
2237
|
+
"control-x": {
|
|
2238
|
+
"$type": "dimension",
|
|
2239
|
+
"$value": "{space.24}",
|
|
2240
|
+
"$description": "Horizontal padding inside controls."
|
|
2241
|
+
},
|
|
2242
|
+
"container": {
|
|
2243
|
+
"$type": "dimension",
|
|
2244
|
+
"$value": "{space.24}",
|
|
2245
|
+
"$description": "Padding inside cards and dialogs."
|
|
2246
|
+
},
|
|
2247
|
+
"cell-x": {
|
|
2248
|
+
"$type": "dimension",
|
|
2249
|
+
"$value": "{space.16}",
|
|
2250
|
+
"$description": "Horizontal padding inside table cells."
|
|
2251
|
+
}
|
|
2252
|
+
}
|
|
2253
|
+
},
|
|
2254
|
+
"size": {
|
|
2255
|
+
"control": {
|
|
2256
|
+
"default": {
|
|
2257
|
+
"$type": "dimension",
|
|
2258
|
+
"$value": "{size.52}",
|
|
2259
|
+
"$description": "Height of buttons and inputs, and the smallest target."
|
|
2260
|
+
},
|
|
2261
|
+
"compact": {
|
|
2262
|
+
"$type": "dimension",
|
|
2263
|
+
"$value": "{size.48}",
|
|
2264
|
+
"$description": "Height of compact controls."
|
|
2265
|
+
}
|
|
2266
|
+
},
|
|
2267
|
+
"row": {
|
|
2268
|
+
"$type": "dimension",
|
|
2269
|
+
"$value": "{size.56}",
|
|
2270
|
+
"$description": "Height of one table row."
|
|
2271
|
+
},
|
|
2272
|
+
"icon": {
|
|
2273
|
+
"$type": "dimension",
|
|
2274
|
+
"$value": "{size.20}",
|
|
2275
|
+
"$description": "Icon size next to text."
|
|
2276
|
+
}
|
|
2277
|
+
},
|
|
2278
|
+
"radius": {
|
|
2279
|
+
"control": {
|
|
2280
|
+
"$type": "dimension",
|
|
2281
|
+
"$value": "{theme.radius.control}",
|
|
2282
|
+
"$description": "Corner of buttons and inputs."
|
|
2283
|
+
},
|
|
2284
|
+
"badge": {
|
|
2285
|
+
"$type": "dimension",
|
|
2286
|
+
"$value": "{theme.radius.badge}",
|
|
2287
|
+
"$description": "Corner of badges and checkboxes."
|
|
2288
|
+
},
|
|
2289
|
+
"container": {
|
|
2290
|
+
"$type": "dimension",
|
|
2291
|
+
"$value": "{theme.radius.container}",
|
|
2292
|
+
"$description": "Corner of cards, menus and dialogs."
|
|
2293
|
+
},
|
|
2294
|
+
"round": {
|
|
2295
|
+
"$type": "dimension",
|
|
2296
|
+
"$value": "{radius.full}",
|
|
2297
|
+
"$description": "Fully round: avatars and dots."
|
|
2298
|
+
}
|
|
2299
|
+
},
|
|
2300
|
+
"border-width": {
|
|
2301
|
+
"default": {
|
|
2302
|
+
"$type": "dimension",
|
|
2303
|
+
"$value": "{border-width.2}",
|
|
2304
|
+
"$description": "Every border."
|
|
2305
|
+
},
|
|
2306
|
+
"focus": {
|
|
2307
|
+
"$type": "dimension",
|
|
2308
|
+
"$value": "{border-width.3}",
|
|
2309
|
+
"$description": "The focus ring."
|
|
2310
|
+
}
|
|
2311
|
+
},
|
|
2312
|
+
"type": {
|
|
2313
|
+
"display": {
|
|
2314
|
+
"font-family": {
|
|
2315
|
+
"$type": "fontFamily",
|
|
2316
|
+
"$value": "{theme.type.display.font-family}"
|
|
2317
|
+
},
|
|
2318
|
+
"font-size": {
|
|
2319
|
+
"$type": "dimension",
|
|
2320
|
+
"$value": "{font.size.36}"
|
|
2321
|
+
},
|
|
2322
|
+
"line-height": {
|
|
2323
|
+
"$type": "number",
|
|
2324
|
+
"$value": "{font.line-height.1_2}"
|
|
2325
|
+
},
|
|
2326
|
+
"font-weight": {
|
|
2327
|
+
"$type": "fontWeight",
|
|
2328
|
+
"$value": "{font.weight.700}"
|
|
2329
|
+
},
|
|
2330
|
+
"$description": "The display text role."
|
|
2331
|
+
},
|
|
2332
|
+
"title": {
|
|
2333
|
+
"font-family": {
|
|
2334
|
+
"$type": "fontFamily",
|
|
2335
|
+
"$value": "{theme.type.title.font-family}"
|
|
2336
|
+
},
|
|
2337
|
+
"font-size": {
|
|
2338
|
+
"$type": "dimension",
|
|
2339
|
+
"$value": "{font.size.28}"
|
|
2340
|
+
},
|
|
2341
|
+
"line-height": {
|
|
2342
|
+
"$type": "number",
|
|
2343
|
+
"$value": "{font.line-height.1_25}"
|
|
2344
|
+
},
|
|
2345
|
+
"font-weight": {
|
|
2346
|
+
"$type": "fontWeight",
|
|
2347
|
+
"$value": "{font.weight.700}"
|
|
2348
|
+
},
|
|
2349
|
+
"$description": "The title text role."
|
|
2350
|
+
},
|
|
2351
|
+
"heading": {
|
|
2352
|
+
"font-family": {
|
|
2353
|
+
"$type": "fontFamily",
|
|
2354
|
+
"$value": "{theme.type.heading.font-family}"
|
|
2355
|
+
},
|
|
2356
|
+
"font-size": {
|
|
2357
|
+
"$type": "dimension",
|
|
2358
|
+
"$value": "{font.size.22}"
|
|
2359
|
+
},
|
|
2360
|
+
"line-height": {
|
|
2361
|
+
"$type": "number",
|
|
2362
|
+
"$value": "{font.line-height.1_3}"
|
|
2363
|
+
},
|
|
2364
|
+
"font-weight": {
|
|
2365
|
+
"$type": "fontWeight",
|
|
2366
|
+
"$value": "{font.weight.700}"
|
|
2367
|
+
},
|
|
2368
|
+
"$description": "The heading text role."
|
|
2369
|
+
},
|
|
2370
|
+
"body": {
|
|
2371
|
+
"font-family": {
|
|
2372
|
+
"$type": "fontFamily",
|
|
2373
|
+
"$value": "{theme.type.body.font-family}"
|
|
2374
|
+
},
|
|
2375
|
+
"font-size": {
|
|
2376
|
+
"$type": "dimension",
|
|
2377
|
+
"$value": "{font.size.19}"
|
|
2378
|
+
},
|
|
2379
|
+
"line-height": {
|
|
2380
|
+
"$type": "number",
|
|
2381
|
+
"$value": "{font.line-height.1_6}"
|
|
2382
|
+
},
|
|
2383
|
+
"font-weight": {
|
|
2384
|
+
"$type": "fontWeight",
|
|
2385
|
+
"$value": "{font.weight.400}"
|
|
2386
|
+
},
|
|
2387
|
+
"$description": "The body text role."
|
|
2388
|
+
},
|
|
2389
|
+
"label": {
|
|
2390
|
+
"font-family": {
|
|
2391
|
+
"$type": "fontFamily",
|
|
2392
|
+
"$value": "{theme.type.label.font-family}"
|
|
2393
|
+
},
|
|
2394
|
+
"font-size": {
|
|
2395
|
+
"$type": "dimension",
|
|
2396
|
+
"$value": "{font.size.18}"
|
|
2397
|
+
},
|
|
2398
|
+
"line-height": {
|
|
2399
|
+
"$type": "number",
|
|
2400
|
+
"$value": "{font.line-height.1_4}"
|
|
2401
|
+
},
|
|
2402
|
+
"font-weight": {
|
|
2403
|
+
"$type": "fontWeight",
|
|
2404
|
+
"$value": "{font.weight.700}"
|
|
2405
|
+
},
|
|
2406
|
+
"$description": "The label text role."
|
|
2407
|
+
},
|
|
2408
|
+
"caption": {
|
|
2409
|
+
"font-family": {
|
|
2410
|
+
"$type": "fontFamily",
|
|
2411
|
+
"$value": "{theme.type.caption.font-family}"
|
|
2412
|
+
},
|
|
2413
|
+
"font-size": {
|
|
2414
|
+
"$type": "dimension",
|
|
2415
|
+
"$value": "{font.size.16}"
|
|
2416
|
+
},
|
|
2417
|
+
"line-height": {
|
|
2418
|
+
"$type": "number",
|
|
2419
|
+
"$value": "{font.line-height.1_5}"
|
|
2420
|
+
},
|
|
2421
|
+
"font-weight": {
|
|
2422
|
+
"$type": "fontWeight",
|
|
2423
|
+
"$value": "{font.weight.400}"
|
|
2424
|
+
},
|
|
2425
|
+
"$description": "The caption text role."
|
|
2426
|
+
},
|
|
2427
|
+
"data": {
|
|
2428
|
+
"font-family": {
|
|
2429
|
+
"$type": "fontFamily",
|
|
2430
|
+
"$value": "{theme.type.data.font-family}"
|
|
2431
|
+
},
|
|
2432
|
+
"font-size": {
|
|
2433
|
+
"$type": "dimension",
|
|
2434
|
+
"$value": "{font.size.19}"
|
|
2435
|
+
},
|
|
2436
|
+
"line-height": {
|
|
2437
|
+
"$type": "number",
|
|
2438
|
+
"$value": "{font.line-height.1_6}"
|
|
2439
|
+
},
|
|
2440
|
+
"font-weight": {
|
|
2441
|
+
"$type": "fontWeight",
|
|
2442
|
+
"$value": "{font.weight.400}"
|
|
2443
|
+
},
|
|
2444
|
+
"$description": "The data text role."
|
|
2445
|
+
}
|
|
2446
|
+
},
|
|
2447
|
+
"motion": {
|
|
2448
|
+
"duration": {
|
|
2449
|
+
"feedback": {
|
|
2450
|
+
"$type": "duration",
|
|
2451
|
+
"$value": "{duration.moderate}",
|
|
2452
|
+
"$description": "Feedback speed: moderate."
|
|
2453
|
+
}
|
|
2454
|
+
},
|
|
2455
|
+
"easing": {
|
|
2456
|
+
"standard": {
|
|
2457
|
+
"$type": "cubicBezier",
|
|
2458
|
+
"$value": "{easing.standard}",
|
|
2459
|
+
"$description": "Feedback easing."
|
|
2460
|
+
}
|
|
2461
|
+
}
|
|
2462
|
+
},
|
|
2463
|
+
"opacity": {
|
|
2464
|
+
"disabled": {
|
|
2465
|
+
"$type": "number",
|
|
2466
|
+
"$value": "{opacity.50}",
|
|
2467
|
+
"$description": "Disabled controls."
|
|
2468
|
+
}
|
|
2469
|
+
},
|
|
2470
|
+
"color": {
|
|
2471
|
+
"surface": {
|
|
2472
|
+
"canvas": {
|
|
2473
|
+
"$type": "color",
|
|
2474
|
+
"$description": "The page background.",
|
|
2475
|
+
"$value": "{theme.color.surface.canvas}"
|
|
2476
|
+
},
|
|
2477
|
+
"default": {
|
|
2478
|
+
"$type": "color",
|
|
2479
|
+
"$description": "Cards, inputs and tables.",
|
|
2480
|
+
"$value": "{theme.color.surface.default}"
|
|
2481
|
+
},
|
|
2482
|
+
"raised": {
|
|
2483
|
+
"$type": "color",
|
|
2484
|
+
"$description": "Menus, dialogs, toasts.",
|
|
2485
|
+
"$value": "{theme.color.surface.raised}"
|
|
2486
|
+
},
|
|
2487
|
+
"sunken": {
|
|
2488
|
+
"$type": "color",
|
|
2489
|
+
"$description": "Table headers and wells.",
|
|
2490
|
+
"$value": "{theme.color.surface.sunken}"
|
|
2491
|
+
},
|
|
2492
|
+
"selected": {
|
|
2493
|
+
"$type": "color",
|
|
2494
|
+
"$description": "A selected row or item.",
|
|
2495
|
+
"$value": "{theme.color.surface.selected}"
|
|
2496
|
+
},
|
|
2497
|
+
"inverse": {
|
|
2498
|
+
"$type": "color",
|
|
2499
|
+
"$description": "Tooltips.",
|
|
2500
|
+
"$value": "{theme.color.surface.inverse}"
|
|
2501
|
+
},
|
|
2502
|
+
"scrim": {
|
|
2503
|
+
"$type": "color",
|
|
2504
|
+
"$description": "Dims the page behind a dialog.",
|
|
2505
|
+
"$value": "{theme.color.surface.scrim}"
|
|
2506
|
+
}
|
|
2507
|
+
},
|
|
2508
|
+
"text": {
|
|
2509
|
+
"primary": {
|
|
2510
|
+
"$type": "color",
|
|
2511
|
+
"$description": "Main text.",
|
|
2512
|
+
"$value": "{theme.color.text.primary}"
|
|
2513
|
+
},
|
|
2514
|
+
"secondary": {
|
|
2515
|
+
"$type": "color",
|
|
2516
|
+
"$description": "Supporting text; passes AA.",
|
|
2517
|
+
"$value": "{theme.color.text.secondary}"
|
|
2518
|
+
},
|
|
2519
|
+
"muted": {
|
|
2520
|
+
"$type": "color",
|
|
2521
|
+
"$description": "Hints and placeholders.",
|
|
2522
|
+
"$value": "{theme.color.text.muted}"
|
|
2523
|
+
},
|
|
2524
|
+
"inverse": {
|
|
2525
|
+
"$type": "color",
|
|
2526
|
+
"$description": "Text on inverse surfaces.",
|
|
2527
|
+
"$value": "{theme.color.text.inverse}"
|
|
2528
|
+
},
|
|
2529
|
+
"on-action": {
|
|
2530
|
+
"$type": "color",
|
|
2531
|
+
"$description": "Text on the primary action.",
|
|
2532
|
+
"$value": "{theme.color.text.on-action}"
|
|
2533
|
+
},
|
|
2534
|
+
"link": {
|
|
2535
|
+
"$type": "color",
|
|
2536
|
+
"$description": "Links.",
|
|
2537
|
+
"$value": "{theme.color.text.link}"
|
|
2538
|
+
}
|
|
2539
|
+
},
|
|
2540
|
+
"border": {
|
|
2541
|
+
"default": {
|
|
2542
|
+
"$type": "color",
|
|
2543
|
+
"$description": "Row lines and card borders.",
|
|
2544
|
+
"$value": "{theme.color.border.default}"
|
|
2545
|
+
},
|
|
2546
|
+
"strong": {
|
|
2547
|
+
"$type": "color",
|
|
2548
|
+
"$description": "Input and secondary button borders.",
|
|
2549
|
+
"$value": "{theme.color.border.strong}"
|
|
2550
|
+
},
|
|
2551
|
+
"focus": {
|
|
2552
|
+
"$type": "color",
|
|
2553
|
+
"$description": "The keyboard focus ring.",
|
|
2554
|
+
"$value": "{theme.color.border.focus}"
|
|
2555
|
+
}
|
|
2556
|
+
},
|
|
2557
|
+
"action": {
|
|
2558
|
+
"primary": {
|
|
2559
|
+
"@": {
|
|
2560
|
+
"$type": "color",
|
|
2561
|
+
"$description": "The primary action.",
|
|
2562
|
+
"$value": "{theme.color.action.primary.@}"
|
|
2563
|
+
},
|
|
2564
|
+
"hover": {
|
|
2565
|
+
"$type": "color",
|
|
2566
|
+
"$description": "Primary action on hover.",
|
|
2567
|
+
"$value": "{theme.color.action.primary.hover}"
|
|
2568
|
+
}
|
|
2569
|
+
},
|
|
2570
|
+
"secondary": {
|
|
2571
|
+
"@": {
|
|
2572
|
+
"$type": "color",
|
|
2573
|
+
"$description": "Secondary action fill.",
|
|
2574
|
+
"$value": "{theme.color.action.secondary.@}"
|
|
2575
|
+
},
|
|
2576
|
+
"hover": {
|
|
2577
|
+
"$type": "color",
|
|
2578
|
+
"$description": "Secondary action on hover.",
|
|
2579
|
+
"$value": "{theme.color.action.secondary.hover}"
|
|
2580
|
+
}
|
|
2581
|
+
}
|
|
2582
|
+
},
|
|
2583
|
+
"status": {
|
|
2584
|
+
"info": {
|
|
2585
|
+
"@": {
|
|
2586
|
+
"$type": "color",
|
|
2587
|
+
"$description": "Info text and icons: neutral news, no action needed.",
|
|
2588
|
+
"$value": "{theme.color.status.info.@}"
|
|
2589
|
+
},
|
|
2590
|
+
"subtle": {
|
|
2591
|
+
"$type": "color",
|
|
2592
|
+
"$description": "Info badge and banner fill.",
|
|
2593
|
+
"$value": "{theme.color.status.info.subtle}"
|
|
2594
|
+
}
|
|
2595
|
+
},
|
|
2596
|
+
"success": {
|
|
2597
|
+
"@": {
|
|
2598
|
+
"$type": "color",
|
|
2599
|
+
"$description": "Success text and icons.",
|
|
2600
|
+
"$value": "{theme.color.status.success.@}"
|
|
2601
|
+
},
|
|
2602
|
+
"subtle": {
|
|
2603
|
+
"$type": "color",
|
|
2604
|
+
"$description": "Success badge fill.",
|
|
2605
|
+
"$value": "{theme.color.status.success.subtle}"
|
|
2606
|
+
}
|
|
2607
|
+
},
|
|
2608
|
+
"warning": {
|
|
2609
|
+
"@": {
|
|
2610
|
+
"$type": "color",
|
|
2611
|
+
"$description": "Warning text and icons.",
|
|
2612
|
+
"$value": "{theme.color.status.warning.@}"
|
|
2613
|
+
},
|
|
2614
|
+
"subtle": {
|
|
2615
|
+
"$type": "color",
|
|
2616
|
+
"$description": "Warning badge fill.",
|
|
2617
|
+
"$value": "{theme.color.status.warning.subtle}"
|
|
2618
|
+
}
|
|
2619
|
+
},
|
|
2620
|
+
"danger": {
|
|
2621
|
+
"@": {
|
|
2622
|
+
"$type": "color",
|
|
2623
|
+
"$description": "Danger text and icons.",
|
|
2624
|
+
"$value": "{theme.color.status.danger.@}"
|
|
2625
|
+
},
|
|
2626
|
+
"subtle": {
|
|
2627
|
+
"$type": "color",
|
|
2628
|
+
"$description": "Danger badge fill.",
|
|
2629
|
+
"$value": "{theme.color.status.danger.subtle}"
|
|
2630
|
+
}
|
|
2631
|
+
}
|
|
2632
|
+
},
|
|
2633
|
+
"category": {
|
|
2634
|
+
"$description": "Identity colours for tags, labels and chart series. They tell items apart and carry no meaning.",
|
|
2635
|
+
"1": {
|
|
2636
|
+
"@": {
|
|
2637
|
+
"$type": "color",
|
|
2638
|
+
"$description": "Category 1: chart series, tag dots and icons. Tag text uses color.text.primary.",
|
|
2639
|
+
"$value": "{theme.color.category.1.@}"
|
|
2640
|
+
},
|
|
2641
|
+
"subtle": {
|
|
2642
|
+
"$type": "color",
|
|
2643
|
+
"$description": "Category 1: tag fill.",
|
|
2644
|
+
"$value": "{theme.color.category.1.subtle}"
|
|
2645
|
+
}
|
|
2646
|
+
},
|
|
2647
|
+
"2": {
|
|
2648
|
+
"@": {
|
|
2649
|
+
"$type": "color",
|
|
2650
|
+
"$description": "Category 2: chart series, tag dots and icons. Tag text uses color.text.primary.",
|
|
2651
|
+
"$value": "{theme.color.category.2.@}"
|
|
2652
|
+
},
|
|
2653
|
+
"subtle": {
|
|
2654
|
+
"$type": "color",
|
|
2655
|
+
"$description": "Category 2: tag fill.",
|
|
2656
|
+
"$value": "{theme.color.category.2.subtle}"
|
|
2657
|
+
}
|
|
2658
|
+
},
|
|
2659
|
+
"3": {
|
|
2660
|
+
"@": {
|
|
2661
|
+
"$type": "color",
|
|
2662
|
+
"$description": "Category 3: chart series, tag dots and icons. Tag text uses color.text.primary.",
|
|
2663
|
+
"$value": "{theme.color.category.3.@}"
|
|
2664
|
+
},
|
|
2665
|
+
"subtle": {
|
|
2666
|
+
"$type": "color",
|
|
2667
|
+
"$description": "Category 3: tag fill.",
|
|
2668
|
+
"$value": "{theme.color.category.3.subtle}"
|
|
2669
|
+
}
|
|
2670
|
+
},
|
|
2671
|
+
"4": {
|
|
2672
|
+
"@": {
|
|
2673
|
+
"$type": "color",
|
|
2674
|
+
"$description": "Category 4: chart series, tag dots and icons. Tag text uses color.text.primary.",
|
|
2675
|
+
"$value": "{theme.color.category.4.@}"
|
|
2676
|
+
},
|
|
2677
|
+
"subtle": {
|
|
2678
|
+
"$type": "color",
|
|
2679
|
+
"$description": "Category 4: tag fill.",
|
|
2680
|
+
"$value": "{theme.color.category.4.subtle}"
|
|
2681
|
+
}
|
|
2682
|
+
},
|
|
2683
|
+
"5": {
|
|
2684
|
+
"@": {
|
|
2685
|
+
"$type": "color",
|
|
2686
|
+
"$description": "Category 5: chart series, tag dots and icons. Tag text uses color.text.primary.",
|
|
2687
|
+
"$value": "{theme.color.category.5.@}"
|
|
2688
|
+
},
|
|
2689
|
+
"subtle": {
|
|
2690
|
+
"$type": "color",
|
|
2691
|
+
"$description": "Category 5: tag fill.",
|
|
2692
|
+
"$value": "{theme.color.category.5.subtle}"
|
|
2693
|
+
}
|
|
2694
|
+
}
|
|
2695
|
+
},
|
|
2696
|
+
"disabled": {
|
|
2697
|
+
"$description": "The shared look of controls that cannot be used right now.",
|
|
2698
|
+
"text": {
|
|
2699
|
+
"$type": "color",
|
|
2700
|
+
"$description": "Text and icons of a disabled control.",
|
|
2701
|
+
"$value": "{theme.color.disabled.text}"
|
|
2702
|
+
},
|
|
2703
|
+
"surface": {
|
|
2704
|
+
"$type": "color",
|
|
2705
|
+
"$description": "Fill of a disabled control.",
|
|
2706
|
+
"$value": "{theme.color.disabled.surface}"
|
|
2707
|
+
},
|
|
2708
|
+
"border": {
|
|
2709
|
+
"$type": "color",
|
|
2710
|
+
"$description": "Border of a disabled control.",
|
|
2711
|
+
"$value": "{theme.color.disabled.border}"
|
|
2712
|
+
}
|
|
2713
|
+
}
|
|
2714
|
+
},
|
|
2715
|
+
"elevation": {
|
|
2716
|
+
"card": {
|
|
2717
|
+
"$type": "shadow",
|
|
2718
|
+
"$description": "No shadow in this scheme.",
|
|
2719
|
+
"$value": "{theme.elevation.card}"
|
|
2720
|
+
},
|
|
2721
|
+
"overlay": {
|
|
2722
|
+
"$type": "shadow",
|
|
2723
|
+
"$description": "No shadow in this scheme.",
|
|
2724
|
+
"$value": "{theme.elevation.overlay}"
|
|
2725
|
+
}
|
|
2726
|
+
}
|
|
2727
|
+
},
|
|
2728
|
+
"component": {
|
|
2729
|
+
"button": {
|
|
2730
|
+
"primary": {
|
|
2731
|
+
"background": {
|
|
2732
|
+
"@": {
|
|
2733
|
+
"$value": "{color.action.primary.@}",
|
|
2734
|
+
"$description": "Primary button fill."
|
|
2735
|
+
},
|
|
2736
|
+
"hover": {
|
|
2737
|
+
"$value": "{color.action.primary.hover}",
|
|
2738
|
+
"$description": "Primary button fill on hover."
|
|
2739
|
+
}
|
|
2740
|
+
},
|
|
2741
|
+
"label": {
|
|
2742
|
+
"$value": "{color.text.on-action}",
|
|
2743
|
+
"$description": "Primary button label color."
|
|
2744
|
+
}
|
|
2745
|
+
},
|
|
2746
|
+
"secondary": {
|
|
2747
|
+
"background": {
|
|
2748
|
+
"@": {
|
|
2749
|
+
"$value": "{color.action.secondary.@}",
|
|
2750
|
+
"$description": "Secondary button fill."
|
|
2751
|
+
},
|
|
2752
|
+
"hover": {
|
|
2753
|
+
"$value": "{color.action.secondary.hover}",
|
|
2754
|
+
"$description": "Secondary button fill on hover."
|
|
2755
|
+
}
|
|
2756
|
+
},
|
|
2757
|
+
"label": {
|
|
2758
|
+
"$value": "{color.text.primary}",
|
|
2759
|
+
"$description": "Secondary button label color."
|
|
2760
|
+
},
|
|
2761
|
+
"border": {
|
|
2762
|
+
"$value": "{color.border.strong}",
|
|
2763
|
+
"$description": "Secondary button border."
|
|
2764
|
+
}
|
|
2765
|
+
},
|
|
2766
|
+
"ghost": {
|
|
2767
|
+
"background-hover": {
|
|
2768
|
+
"$value": "{color.surface.sunken}",
|
|
2769
|
+
"$description": "Ghost button fill on hover."
|
|
2770
|
+
},
|
|
2771
|
+
"label": {
|
|
2772
|
+
"$value": "{color.text.link}",
|
|
2773
|
+
"$description": "Ghost button label color."
|
|
2774
|
+
}
|
|
2775
|
+
},
|
|
2776
|
+
"height": {
|
|
2777
|
+
"$value": "{size.control.default}",
|
|
2778
|
+
"$description": "Button height."
|
|
2779
|
+
},
|
|
2780
|
+
"padding-x": {
|
|
2781
|
+
"$value": "{space.inset.control-x}",
|
|
2782
|
+
"$description": "Horizontal padding inside a button."
|
|
2783
|
+
},
|
|
2784
|
+
"radius": {
|
|
2785
|
+
"$value": "{radius.control}",
|
|
2786
|
+
"$description": "Button corner radius."
|
|
2787
|
+
},
|
|
2788
|
+
"font-size": {
|
|
2789
|
+
"$value": "{type.label.font-size}",
|
|
2790
|
+
"$description": "Button label size."
|
|
2791
|
+
},
|
|
2792
|
+
"font-weight": {
|
|
2793
|
+
"$value": "{type.label.font-weight}",
|
|
2794
|
+
"$description": "Button label weight."
|
|
2795
|
+
},
|
|
2796
|
+
"focus-ring": {
|
|
2797
|
+
"$value": "{color.border.focus}",
|
|
2798
|
+
"$description": "Focus ring color on any button."
|
|
2799
|
+
},
|
|
2800
|
+
"icon-size": {
|
|
2801
|
+
"$value": "{size.icon}",
|
|
2802
|
+
"$description": "Size of an icon inside a button."
|
|
2803
|
+
},
|
|
2804
|
+
"disabled": {
|
|
2805
|
+
"background": {
|
|
2806
|
+
"$value": "{color.disabled.surface}",
|
|
2807
|
+
"$description": "Fill of a disabled button."
|
|
2808
|
+
},
|
|
2809
|
+
"label": {
|
|
2810
|
+
"$value": "{color.disabled.text}",
|
|
2811
|
+
"$description": "Label of a disabled button."
|
|
2812
|
+
},
|
|
2813
|
+
"border": {
|
|
2814
|
+
"$value": "{color.disabled.border}",
|
|
2815
|
+
"$description": "Border of a disabled secondary button."
|
|
2816
|
+
}
|
|
2817
|
+
}
|
|
2818
|
+
},
|
|
2819
|
+
"input": {
|
|
2820
|
+
"background": {
|
|
2821
|
+
"$value": "{color.surface.default}",
|
|
2822
|
+
"$description": "Input fill."
|
|
2823
|
+
},
|
|
2824
|
+
"border": {
|
|
2825
|
+
"@": {
|
|
2826
|
+
"$value": "{color.border.strong}",
|
|
2827
|
+
"$description": "Input border at rest."
|
|
2828
|
+
},
|
|
2829
|
+
"focus": {
|
|
2830
|
+
"$value": "{color.border.focus}",
|
|
2831
|
+
"$description": "Input border when focused."
|
|
2832
|
+
}
|
|
2833
|
+
},
|
|
2834
|
+
"text": {
|
|
2835
|
+
"$value": "{color.text.primary}",
|
|
2836
|
+
"$description": "Typed text color."
|
|
2837
|
+
},
|
|
2838
|
+
"placeholder": {
|
|
2839
|
+
"$value": "{color.text.muted}",
|
|
2840
|
+
"$description": "Placeholder text color."
|
|
2841
|
+
},
|
|
2842
|
+
"height": {
|
|
2843
|
+
"$value": "{size.control.default}",
|
|
2844
|
+
"$description": "Input height."
|
|
2845
|
+
},
|
|
2846
|
+
"padding-x": {
|
|
2847
|
+
"$value": "{space.inset.control-x}",
|
|
2848
|
+
"$description": "Horizontal padding inside an input."
|
|
2849
|
+
},
|
|
2850
|
+
"radius": {
|
|
2851
|
+
"$value": "{radius.control}",
|
|
2852
|
+
"$description": "Input corner radius."
|
|
2853
|
+
},
|
|
2854
|
+
"font-size": {
|
|
2855
|
+
"$value": "{type.body.font-size}",
|
|
2856
|
+
"$description": "Typed text size."
|
|
2857
|
+
},
|
|
2858
|
+
"disabled": {
|
|
2859
|
+
"background": {
|
|
2860
|
+
"$value": "{color.disabled.surface}",
|
|
2861
|
+
"$description": "Fill of a disabled input."
|
|
2862
|
+
},
|
|
2863
|
+
"border": {
|
|
2864
|
+
"$value": "{color.disabled.border}",
|
|
2865
|
+
"$description": "Border of a disabled input."
|
|
2866
|
+
},
|
|
2867
|
+
"text": {
|
|
2868
|
+
"$value": "{color.disabled.text}",
|
|
2869
|
+
"$description": "Text in a disabled input."
|
|
2870
|
+
}
|
|
2871
|
+
}
|
|
2872
|
+
},
|
|
2873
|
+
"control": {
|
|
2874
|
+
"checked": {
|
|
2875
|
+
"$value": "{color.action.primary.@}",
|
|
2876
|
+
"$description": "Fill of a checked checkbox or an on switch."
|
|
2877
|
+
},
|
|
2878
|
+
"track": {
|
|
2879
|
+
"$value": "{color.border.strong}",
|
|
2880
|
+
"$description": "Track of an off switch."
|
|
2881
|
+
},
|
|
2882
|
+
"thumb": {
|
|
2883
|
+
"$value": "{color.surface.default}",
|
|
2884
|
+
"$description": "Switch thumb and checkmark color."
|
|
2885
|
+
},
|
|
2886
|
+
"radius": {
|
|
2887
|
+
"$value": "{radius.badge}",
|
|
2888
|
+
"$description": "Checkbox corner radius."
|
|
2889
|
+
}
|
|
2890
|
+
},
|
|
2891
|
+
"badge": {
|
|
2892
|
+
"radius": {
|
|
2893
|
+
"$value": "{radius.badge}",
|
|
2894
|
+
"$description": "Badge corner radius."
|
|
2895
|
+
},
|
|
2896
|
+
"padding-x": {
|
|
2897
|
+
"$value": "{space.gap.tight}",
|
|
2898
|
+
"$description": "Horizontal padding inside a badge."
|
|
2899
|
+
},
|
|
2900
|
+
"font-size": {
|
|
2901
|
+
"$value": "{type.caption.font-size}",
|
|
2902
|
+
"$description": "Badge label size."
|
|
2903
|
+
},
|
|
2904
|
+
"neutral": {
|
|
2905
|
+
"background": {
|
|
2906
|
+
"$value": "{color.surface.sunken}",
|
|
2907
|
+
"$description": "Neutral badge fill."
|
|
2908
|
+
},
|
|
2909
|
+
"label": {
|
|
2910
|
+
"$value": "{color.text.secondary}",
|
|
2911
|
+
"$description": "Neutral badge label."
|
|
2912
|
+
}
|
|
2913
|
+
},
|
|
2914
|
+
"success": {
|
|
2915
|
+
"background": {
|
|
2916
|
+
"$value": "{color.status.success.subtle}",
|
|
2917
|
+
"$description": "Success badge fill."
|
|
2918
|
+
},
|
|
2919
|
+
"label": {
|
|
2920
|
+
"$value": "{color.status.success.@}",
|
|
2921
|
+
"$description": "Success badge label."
|
|
2922
|
+
}
|
|
2923
|
+
},
|
|
2924
|
+
"warning": {
|
|
2925
|
+
"background": {
|
|
2926
|
+
"$value": "{color.status.warning.subtle}",
|
|
2927
|
+
"$description": "Warning badge fill."
|
|
2928
|
+
},
|
|
2929
|
+
"label": {
|
|
2930
|
+
"$value": "{color.status.warning.@}",
|
|
2931
|
+
"$description": "Warning badge label."
|
|
2932
|
+
}
|
|
2933
|
+
},
|
|
2934
|
+
"danger": {
|
|
2935
|
+
"background": {
|
|
2936
|
+
"$value": "{color.status.danger.subtle}",
|
|
2937
|
+
"$description": "Danger badge fill."
|
|
2938
|
+
},
|
|
2939
|
+
"label": {
|
|
2940
|
+
"$value": "{color.status.danger.@}",
|
|
2941
|
+
"$description": "Danger badge label."
|
|
2942
|
+
}
|
|
2943
|
+
},
|
|
2944
|
+
"info": {
|
|
2945
|
+
"background": {
|
|
2946
|
+
"$value": "{color.status.info.subtle}",
|
|
2947
|
+
"$description": "Info badge fill."
|
|
2948
|
+
},
|
|
2949
|
+
"label": {
|
|
2950
|
+
"$value": "{color.status.info.@}",
|
|
2951
|
+
"$description": "Info badge label."
|
|
2952
|
+
}
|
|
2953
|
+
}
|
|
2954
|
+
},
|
|
2955
|
+
"card": {
|
|
2956
|
+
"background": {
|
|
2957
|
+
"$value": "{color.surface.default}",
|
|
2958
|
+
"$description": "Card fill."
|
|
2959
|
+
},
|
|
2960
|
+
"border": {
|
|
2961
|
+
"$value": "{color.border.default}",
|
|
2962
|
+
"$description": "Card border."
|
|
2963
|
+
},
|
|
2964
|
+
"radius": {
|
|
2965
|
+
"$value": "{radius.container}",
|
|
2966
|
+
"$description": "Card corner radius."
|
|
2967
|
+
},
|
|
2968
|
+
"padding": {
|
|
2969
|
+
"$value": "{space.inset.container}",
|
|
2970
|
+
"$description": "Padding inside a card."
|
|
2971
|
+
},
|
|
2972
|
+
"shadow": {
|
|
2973
|
+
"$value": "{elevation.card}",
|
|
2974
|
+
"$description": "Card shadow."
|
|
2975
|
+
}
|
|
2976
|
+
},
|
|
2977
|
+
"table": {
|
|
2978
|
+
"header-background": {
|
|
2979
|
+
"$value": "{color.surface.sunken}",
|
|
2980
|
+
"$description": "Header row fill."
|
|
2981
|
+
},
|
|
2982
|
+
"row-height": {
|
|
2983
|
+
"$value": "{size.row}",
|
|
2984
|
+
"$description": "Height of one data row."
|
|
2985
|
+
},
|
|
2986
|
+
"cell-padding-x": {
|
|
2987
|
+
"$value": "{space.inset.cell-x}",
|
|
2988
|
+
"$description": "Horizontal padding inside a cell."
|
|
2989
|
+
},
|
|
2990
|
+
"row-border": {
|
|
2991
|
+
"$value": "{color.border.default}",
|
|
2992
|
+
"$description": "Line between rows."
|
|
2993
|
+
},
|
|
2994
|
+
"row-selected": {
|
|
2995
|
+
"$value": "{color.surface.selected}",
|
|
2996
|
+
"$description": "Fill of a selected row."
|
|
2997
|
+
},
|
|
2998
|
+
"font-size": {
|
|
2999
|
+
"$value": "{type.data.font-size}",
|
|
3000
|
+
"$description": "Cell text size."
|
|
3001
|
+
}
|
|
3002
|
+
},
|
|
3003
|
+
"tabs": {
|
|
3004
|
+
"indicator": {
|
|
3005
|
+
"$value": "{color.action.primary.@}",
|
|
3006
|
+
"$description": "Active tab indicator."
|
|
3007
|
+
},
|
|
3008
|
+
"label": {
|
|
3009
|
+
"@": {
|
|
3010
|
+
"$value": "{color.text.secondary}",
|
|
3011
|
+
"$description": "Inactive tab label."
|
|
3012
|
+
},
|
|
3013
|
+
"active": {
|
|
3014
|
+
"$value": "{color.text.primary}",
|
|
3015
|
+
"$description": "Active tab label."
|
|
3016
|
+
}
|
|
3017
|
+
}
|
|
3018
|
+
},
|
|
3019
|
+
"overlay": {
|
|
3020
|
+
"background": {
|
|
3021
|
+
"$value": "{color.surface.raised}",
|
|
3022
|
+
"$description": "Fill of a dialog, menu or toast."
|
|
3023
|
+
},
|
|
3024
|
+
"radius": {
|
|
3025
|
+
"$value": "{radius.container}",
|
|
3026
|
+
"$description": "Corner radius of overlays."
|
|
3027
|
+
},
|
|
3028
|
+
"shadow": {
|
|
3029
|
+
"$value": "{elevation.overlay}",
|
|
3030
|
+
"$description": "Shadow of overlays."
|
|
3031
|
+
},
|
|
3032
|
+
"scrim": {
|
|
3033
|
+
"$value": "{color.surface.scrim}",
|
|
3034
|
+
"$description": "Color that dims the page behind a dialog."
|
|
3035
|
+
},
|
|
3036
|
+
"item-height": {
|
|
3037
|
+
"$value": "{size.control.default}",
|
|
3038
|
+
"$description": "Height of a menu item."
|
|
3039
|
+
}
|
|
3040
|
+
},
|
|
3041
|
+
"tooltip": {
|
|
3042
|
+
"background": {
|
|
3043
|
+
"$value": "{color.surface.inverse}",
|
|
3044
|
+
"$description": "Tooltip fill."
|
|
3045
|
+
},
|
|
3046
|
+
"label": {
|
|
3047
|
+
"$value": "{color.text.inverse}",
|
|
3048
|
+
"$description": "Tooltip text."
|
|
3049
|
+
}
|
|
3050
|
+
},
|
|
3051
|
+
"transition": {
|
|
3052
|
+
"duration": {
|
|
3053
|
+
"$value": "{motion.duration.feedback}",
|
|
3054
|
+
"$description": "Duration of feedback transitions."
|
|
3055
|
+
},
|
|
3056
|
+
"easing": {
|
|
3057
|
+
"$value": "{motion.easing.standard}",
|
|
3058
|
+
"$description": "Easing of feedback transitions."
|
|
3059
|
+
}
|
|
3060
|
+
}
|
|
3061
|
+
},
|
|
3062
|
+
"content": {
|
|
3063
|
+
"$description": "Voice tokens: the words components use for common actions. Text, not CSS.",
|
|
3064
|
+
"action": {
|
|
3065
|
+
"commit": {
|
|
3066
|
+
"$type": "string",
|
|
3067
|
+
"$value": "Continue",
|
|
3068
|
+
"$description": "The label of the action that completes a task."
|
|
3069
|
+
},
|
|
3070
|
+
"cancel": {
|
|
3071
|
+
"$type": "string",
|
|
3072
|
+
"$value": "Go back",
|
|
3073
|
+
"$description": "The label of the way out next to the main action."
|
|
3074
|
+
},
|
|
3075
|
+
"destroy": {
|
|
3076
|
+
"$type": "string",
|
|
3077
|
+
"$value": "Delete",
|
|
3078
|
+
"$description": "The label of an action that deletes data."
|
|
3079
|
+
},
|
|
3080
|
+
"retry": {
|
|
3081
|
+
"$type": "string",
|
|
3082
|
+
"$value": "Try again",
|
|
3083
|
+
"$description": "The label that repeats a failed action."
|
|
3084
|
+
},
|
|
3085
|
+
"empty-action": {
|
|
3086
|
+
"$type": "string",
|
|
3087
|
+
"$value": "Start a new application",
|
|
3088
|
+
"$description": "The label of the action in an empty state."
|
|
3089
|
+
}
|
|
3090
|
+
}
|
|
3091
|
+
}
|
|
3092
|
+
}
|
|
3093
|
+
}
|