@openwarelabs/ui 0.0.0-stage → 0.1.1
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 +100 -2
- package/dist/components/Accordion/Accordion.d.cts +54 -0
- package/dist/components/Accordion/Accordion.d.ts +54 -0
- package/dist/components/Alert/Alert.d.cts +18 -0
- package/dist/components/Alert/Alert.d.ts +18 -0
- package/dist/components/Avatar/Avatar.d.cts +14 -0
- package/dist/components/Avatar/Avatar.d.ts +14 -0
- package/dist/components/Avatar/AvatarGroup.d.cts +28 -0
- package/dist/components/Avatar/AvatarGroup.d.ts +28 -0
- package/dist/components/Badge/Badge.d.cts +13 -0
- package/dist/components/Badge/Badge.d.ts +13 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.d.cts +33 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +33 -0
- package/dist/components/Button/Button.d.cts +42 -0
- package/dist/components/Button/Button.d.ts +42 -0
- package/dist/components/Button/ButtonGroup.d.cts +33 -0
- package/dist/components/Button/ButtonGroup.d.ts +33 -0
- package/dist/components/Calendar/Calendar.d.cts +31 -0
- package/dist/components/Calendar/Calendar.d.ts +31 -0
- package/dist/components/Calendar/DatePicker.d.cts +21 -0
- package/dist/components/Calendar/DatePicker.d.ts +21 -0
- package/dist/components/Calendar/dates.d.cts +15 -0
- package/dist/components/Calendar/dates.d.ts +15 -0
- package/dist/components/Card/Card.d.cts +18 -0
- package/dist/components/Card/Card.d.ts +18 -0
- package/dist/components/Checkbox/Checkbox.d.cts +59 -0
- package/dist/components/Checkbox/Checkbox.d.ts +59 -0
- package/dist/components/ChoiceCard/ChoiceCard.d.cts +14 -0
- package/dist/components/ChoiceCard/ChoiceCard.d.ts +14 -0
- package/dist/components/CodeBlock/CodeBlock.d.cts +50 -0
- package/dist/components/CodeBlock/CodeBlock.d.ts +50 -0
- package/dist/components/ColorPicker/ColorPicker.d.cts +62 -0
- package/dist/components/ColorPicker/ColorPicker.d.ts +62 -0
- package/dist/components/Combobox/Combobox.d.cts +42 -0
- package/dist/components/Combobox/Combobox.d.ts +42 -0
- package/dist/components/CommandPalette/CommandPalette.d.cts +27 -0
- package/dist/components/CommandPalette/CommandPalette.d.ts +27 -0
- package/dist/components/CommandPalette/filterCommands.d.cts +3 -0
- package/dist/components/CommandPalette/filterCommands.d.ts +3 -0
- package/dist/components/Dialog/Dialog.d.cts +42 -0
- package/dist/components/Dialog/Dialog.d.ts +42 -0
- package/dist/components/Drawer/Drawer.d.cts +23 -0
- package/dist/components/Drawer/Drawer.d.ts +23 -0
- package/dist/components/EmptyState/EmptyState.d.cts +18 -0
- package/dist/components/EmptyState/EmptyState.d.ts +18 -0
- package/dist/components/Field/Field.d.cts +18 -0
- package/dist/components/Field/Field.d.ts +18 -0
- package/dist/components/FileDropZone/FileDropZone.d.cts +29 -0
- package/dist/components/FileDropZone/FileDropZone.d.ts +29 -0
- package/dist/components/FileTree/FileTree.d.cts +29 -0
- package/dist/components/FileTree/FileTree.d.ts +29 -0
- package/dist/components/Input/Input.d.cts +18 -0
- package/dist/components/Input/Input.d.ts +18 -0
- package/dist/components/InputOTP/InputOTP.d.cts +31 -0
- package/dist/components/InputOTP/InputOTP.d.ts +31 -0
- package/dist/components/Kbd/Kbd.d.cts +5 -0
- package/dist/components/Kbd/Kbd.d.ts +5 -0
- package/dist/components/Layout/Layout.d.cts +50 -0
- package/dist/components/Layout/Layout.d.ts +50 -0
- package/dist/components/Marketing/Marketing.d.cts +39 -0
- package/dist/components/Marketing/Marketing.d.ts +39 -0
- package/dist/components/Menu/Menu.d.cts +43 -0
- package/dist/components/Menu/Menu.d.ts +43 -0
- package/dist/components/NavList/NavList.d.cts +27 -0
- package/dist/components/NavList/NavList.d.ts +27 -0
- package/dist/components/NumberField/NumberField.d.cts +23 -0
- package/dist/components/NumberField/NumberField.d.ts +23 -0
- package/dist/components/Pagination/Pagination.d.cts +24 -0
- package/dist/components/Pagination/Pagination.d.ts +24 -0
- package/dist/components/Popover/Popover.d.cts +30 -0
- package/dist/components/Popover/Popover.d.ts +30 -0
- package/dist/components/Progress/Progress.d.cts +41 -0
- package/dist/components/Progress/Progress.d.ts +41 -0
- package/dist/components/RadioGroup/RadioGroup.d.cts +36 -0
- package/dist/components/RadioGroup/RadioGroup.d.ts +36 -0
- package/dist/components/SearchField/SearchField.d.cts +17 -0
- package/dist/components/SearchField/SearchField.d.ts +17 -0
- package/dist/components/SegmentedControl/SegmentedControl.d.cts +32 -0
- package/dist/components/SegmentedControl/SegmentedControl.d.ts +32 -0
- package/dist/components/Select/Select.d.cts +40 -0
- package/dist/components/Select/Select.d.ts +40 -0
- package/dist/components/Skeleton/Skeleton.d.cts +26 -0
- package/dist/components/Skeleton/Skeleton.d.ts +26 -0
- package/dist/components/Slider/Slider.d.cts +33 -0
- package/dist/components/Slider/Slider.d.ts +33 -0
- package/dist/components/Spinner/Spinner.d.cts +14 -0
- package/dist/components/Spinner/Spinner.d.ts +14 -0
- package/dist/components/Stat/Stat.d.cts +20 -0
- package/dist/components/Stat/Stat.d.ts +20 -0
- package/dist/components/Steps/Steps.d.cts +27 -0
- package/dist/components/Steps/Steps.d.ts +27 -0
- package/dist/components/Switch/Switch.d.cts +9 -0
- package/dist/components/Switch/Switch.d.ts +9 -0
- package/dist/components/Table/Table.d.cts +55 -0
- package/dist/components/Table/Table.d.ts +55 -0
- package/dist/components/Tabs/Tabs.d.cts +35 -0
- package/dist/components/Tabs/Tabs.d.ts +35 -0
- package/dist/components/Tag/Tag.d.cts +40 -0
- package/dist/components/Tag/Tag.d.ts +40 -0
- package/dist/components/Textarea/Textarea.d.cts +12 -0
- package/dist/components/Textarea/Textarea.d.ts +12 -0
- package/dist/components/Toast/Toast.d.cts +41 -0
- package/dist/components/Toast/Toast.d.ts +41 -0
- package/dist/components/Tooltip/Tooltip.d.cts +19 -0
- package/dist/components/Tooltip/Tooltip.d.ts +19 -0
- package/dist/components.css +5236 -0
- package/dist/fonts.css +3 -0
- package/dist/hooks/useControllableState.d.cts +5 -0
- package/dist/hooks/useControllableState.d.ts +5 -0
- package/dist/hooks/useFloating.d.cts +26 -0
- package/dist/hooks/useFloating.d.ts +26 -0
- package/dist/hooks/useIndicator.d.cts +8 -0
- package/dist/hooks/useIndicator.d.ts +8 -0
- package/dist/hooks/useMenuKeyboard.d.cts +12 -0
- package/dist/hooks/useMenuKeyboard.d.ts +12 -0
- package/dist/hooks/useModalDialog.d.cts +9 -0
- package/dist/hooks/useModalDialog.d.ts +9 -0
- package/dist/hooks/usePresence.d.cts +13 -0
- package/dist/hooks/usePresence.d.ts +13 -0
- package/dist/icons.d.cts +33 -0
- package/dist/icons.d.ts +33 -0
- package/dist/index.cjs +4622 -0
- package/dist/index.cjs.map +7 -0
- package/dist/index.d.cts +114 -0
- package/dist/index.d.ts +114 -0
- package/dist/index.js +4650 -0
- package/dist/index.js.map +7 -0
- package/dist/openware-ui.iife.js +8 -0
- package/dist/styles.css +5664 -0
- package/dist/tailwind.css +145 -0
- package/dist/tokens.css +427 -0
- package/dist/tokens.json +1163 -0
- package/dist/utils/brand.d.cts +30 -0
- package/dist/utils/brand.d.ts +30 -0
- package/dist/utils/copyText.d.cts +2 -0
- package/dist/utils/copyText.d.ts +2 -0
- package/dist/utils/cx.d.cts +4 -0
- package/dist/utils/cx.d.ts +4 -0
- package/dist/utils/resizeTextArea.d.cts +2 -0
- package/dist/utils/resizeTextArea.d.ts +2 -0
- package/dist/utils/text.d.cts +4 -0
- package/dist/utils/text.d.ts +4 -0
- package/package.json +83 -4
package/dist/tokens.json
ADDED
|
@@ -0,0 +1,1163 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Openware UI",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"color": {
|
|
5
|
+
"themes": [
|
|
6
|
+
{
|
|
7
|
+
"id": "light",
|
|
8
|
+
"name": "Light"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"id": "dark",
|
|
12
|
+
"name": "Dark"
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"tokens": [
|
|
16
|
+
{
|
|
17
|
+
"name": "ow-brand-50",
|
|
18
|
+
"value": "#f2f3fc",
|
|
19
|
+
"usage": "Brand scale (midnight). Selected rows and the recommended choice's tint, through ow-primary-subtle. Swap the eleven brand steps to rebrand."
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"name": "ow-brand-100",
|
|
23
|
+
"value": "#e7e9f9",
|
|
24
|
+
"usage": "Brand scale. Soft primary fills, through ow-primary-soft."
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "ow-brand-200",
|
|
28
|
+
"value": "#d4d7f4",
|
|
29
|
+
"usage": "Brand scale. Borders of primary-tinted things, through ow-primary-border."
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"name": "ow-brand-300",
|
|
33
|
+
"value": "#b7bbea",
|
|
34
|
+
"usage": "Brand scale. An open select's border in light; the focus ring and primary text in dark."
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"name": "ow-brand-400",
|
|
38
|
+
"value": "#898cd0",
|
|
39
|
+
"usage": "Brand scale. Focused field borders in dark."
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"name": "ow-brand-500",
|
|
43
|
+
"value": "#5856ad",
|
|
44
|
+
"usage": "Brand scale. The focus ring and focused field border in light (6.3:1 on white); the primary fill in dark."
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"name": "ow-brand-600",
|
|
48
|
+
"value": "#312c7e",
|
|
49
|
+
"usage": "Brand scale. The primary fill in light: top of the primary button's gradient, checked boxes, switches."
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"name": "ow-brand-700",
|
|
53
|
+
"value": "#1e1b4b",
|
|
54
|
+
"usage": "Brand scale. Midnight: bottom of the primary button's gradient."
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"name": "ow-brand-800",
|
|
58
|
+
"value": "#18163d",
|
|
59
|
+
"usage": "Brand scale. The primary button's border, one step darker than its fill."
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"name": "ow-brand-900",
|
|
63
|
+
"value": "#13112f",
|
|
64
|
+
"usage": "Brand scale. Deepest gradient stop for large brand plates."
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"name": "ow-brand-950",
|
|
68
|
+
"value": "#0b0a20",
|
|
69
|
+
"usage": "Brand scale. Darkest step."
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"name": "ow-gray-50",
|
|
73
|
+
"value": "#f8fafc",
|
|
74
|
+
"usage": "Neutral scale (cool slate, from the app). Never mix with warm greys on one screen."
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"name": "ow-gray-100",
|
|
78
|
+
"value": "#f1f5f9",
|
|
79
|
+
"usage": "Neutral scale. The light canvas."
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"name": "ow-gray-200",
|
|
83
|
+
"value": "#e2e8f0",
|
|
84
|
+
"usage": "Neutral scale. Hairlines in light."
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"name": "ow-gray-300",
|
|
88
|
+
"value": "#cbd5e1",
|
|
89
|
+
"usage": "Neutral scale. Control borders in light."
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"name": "ow-gray-400",
|
|
93
|
+
"value": "#94a3b8",
|
|
94
|
+
"usage": "Neutral scale. Hovered control borders and disabled labels in light."
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"name": "ow-gray-500",
|
|
98
|
+
"value": "#64748b",
|
|
99
|
+
"usage": "Neutral scale."
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"name": "ow-gray-600",
|
|
103
|
+
"value": "#475569",
|
|
104
|
+
"usage": "Neutral scale. Unselected navigation labels in light."
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"name": "ow-gray-700",
|
|
108
|
+
"value": "#334155",
|
|
109
|
+
"usage": "Neutral scale. Secondary button labels in light."
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"name": "ow-gray-800",
|
|
113
|
+
"value": "#1e293b",
|
|
114
|
+
"usage": "Neutral scale."
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"name": "ow-gray-900",
|
|
118
|
+
"value": "#0f172a",
|
|
119
|
+
"usage": "Neutral scale. Text in light."
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"name": "ow-gray-950",
|
|
123
|
+
"value": "#020617",
|
|
124
|
+
"usage": "Neutral scale."
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"name": "ow-canvas",
|
|
128
|
+
"value": {
|
|
129
|
+
"light": "{ow-gray-100}",
|
|
130
|
+
"dark": "#15171c"
|
|
131
|
+
},
|
|
132
|
+
"usage": "The app's background behind surfaces. Dark is the night ground."
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"name": "ow-paper",
|
|
136
|
+
"value": {
|
|
137
|
+
"light": "#f8f8f7",
|
|
138
|
+
"dark": "#15171c"
|
|
139
|
+
},
|
|
140
|
+
"usage": "Marketing pages' ground, under the dot grid. Warm in light: don't put slate controls on it beside slate surfaces."
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"name": "ow-surface",
|
|
144
|
+
"value": {
|
|
145
|
+
"light": "#ffffff",
|
|
146
|
+
"dark": "#1c1f26"
|
|
147
|
+
},
|
|
148
|
+
"usage": "Cards, panels, fields, dialogs and menus."
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"name": "ow-surface-muted",
|
|
152
|
+
"value": {
|
|
153
|
+
"light": "{ow-gray-50}",
|
|
154
|
+
"dark": "#262a33"
|
|
155
|
+
},
|
|
156
|
+
"usage": "Hover rows, ghost-button hover, keys and quiet fills inside a surface."
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"name": "ow-control",
|
|
160
|
+
"value": {
|
|
161
|
+
"light": "#ffffff",
|
|
162
|
+
"dark": "#2a2f38"
|
|
163
|
+
},
|
|
164
|
+
"usage": "Top of the secondary button's and ChoiceCard's gradient."
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"name": "ow-control-shade",
|
|
168
|
+
"value": {
|
|
169
|
+
"light": "{ow-gray-50}",
|
|
170
|
+
"dark": "#23272f"
|
|
171
|
+
},
|
|
172
|
+
"usage": "Bottom of the secondary button's and ChoiceCard's gradient."
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"name": "ow-control-shade-hover",
|
|
176
|
+
"value": {
|
|
177
|
+
"light": "{ow-gray-100}",
|
|
178
|
+
"dark": "#1f232a"
|
|
179
|
+
},
|
|
180
|
+
"usage": "Bottom of the secondary button's gradient on hover."
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"name": "ow-hover",
|
|
184
|
+
"value": {
|
|
185
|
+
"light": "{ow-gray-100}",
|
|
186
|
+
"dark": "#2a2f38"
|
|
187
|
+
},
|
|
188
|
+
"usage": "The keyboard-active or hovered option in a select's listbox."
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"name": "ow-disabled",
|
|
192
|
+
"value": {
|
|
193
|
+
"light": "{ow-gray-100}",
|
|
194
|
+
"dark": "#23272f"
|
|
195
|
+
},
|
|
196
|
+
"usage": "The flat grey fill of a disabled primary or danger button."
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"name": "ow-icon",
|
|
200
|
+
"value": {
|
|
201
|
+
"light": "{ow-gray-400}",
|
|
202
|
+
"dark": "#7d8593"
|
|
203
|
+
},
|
|
204
|
+
"usage": "Decorative icons beside text: a select's chevron, inactive nav icons. 2.6:1 on white in light, kept from the source; never the only sign of anything."
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"name": "ow-border",
|
|
208
|
+
"value": {
|
|
209
|
+
"light": "{ow-gray-200}",
|
|
210
|
+
"dark": "#2c313a"
|
|
211
|
+
},
|
|
212
|
+
"usage": "Hairlines: card and dialog edges, dividers, menu borders."
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"name": "ow-border-strong",
|
|
216
|
+
"value": {
|
|
217
|
+
"light": "{ow-gray-300}",
|
|
218
|
+
"dark": "#434a56"
|
|
219
|
+
},
|
|
220
|
+
"usage": "Control borders: fields, secondary buttons, checkboxes. 1.5:1 on white in light, kept from the source; fields also carry a label."
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"name": "ow-border-hover",
|
|
224
|
+
"value": {
|
|
225
|
+
"light": "{ow-gray-400}",
|
|
226
|
+
"dark": "#5b6472"
|
|
227
|
+
},
|
|
228
|
+
"usage": "A hovered control's border."
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
"name": "ow-text",
|
|
232
|
+
"value": {
|
|
233
|
+
"light": "{ow-gray-900}",
|
|
234
|
+
"dark": "#f3f4f6"
|
|
235
|
+
},
|
|
236
|
+
"usage": "Headings, labels and values on ow-surface, ow-surface-muted and ow-canvas (17.8:1 light, 15.0:1 dark on surface)."
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"name": "ow-text-soft",
|
|
240
|
+
"value": {
|
|
241
|
+
"light": "{ow-gray-700}",
|
|
242
|
+
"dark": "#cfd3da"
|
|
243
|
+
},
|
|
244
|
+
"usage": "Secondary button labels and badge text on ow-control and ow-surface-muted."
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
"name": "ow-text-muted",
|
|
248
|
+
"value": {
|
|
249
|
+
"light": "#5f6b7d",
|
|
250
|
+
"dark": "#959ba6"
|
|
251
|
+
},
|
|
252
|
+
"usage": "Descriptions, hints, placeholders and captions on every surface and the canvas (5.4:1 on white, 4.9:1 on canvas; 5.9:1 on dark surface, 5.1:1 on dark muted)."
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
"name": "ow-text-disabled",
|
|
256
|
+
"value": {
|
|
257
|
+
"light": "{ow-gray-400}",
|
|
258
|
+
"dark": "#626a77"
|
|
259
|
+
},
|
|
260
|
+
"usage": "Labels of disabled controls only; exempt from contrast minimums, so never use it for anything people must read."
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
"name": "ow-primary",
|
|
264
|
+
"value": {
|
|
265
|
+
"light": "{ow-brand-600}",
|
|
266
|
+
"dark": "{ow-brand-500}"
|
|
267
|
+
},
|
|
268
|
+
"usage": "Primary fill: top of the primary button's gradient, checked boxes, switches on, avatar initials ground. ow-on-primary on it: 11.7:1 light, 6.3:1 dark."
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
"name": "ow-primary-hover",
|
|
272
|
+
"value": {
|
|
273
|
+
"light": "{ow-brand-700}",
|
|
274
|
+
"dark": "{ow-brand-600}"
|
|
275
|
+
},
|
|
276
|
+
"usage": "Bottom of the primary button's gradient; checked boxes on hover."
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
"name": "ow-primary-active",
|
|
280
|
+
"value": {
|
|
281
|
+
"light": "{ow-brand-800}",
|
|
282
|
+
"dark": "{ow-brand-700}"
|
|
283
|
+
},
|
|
284
|
+
"usage": "The primary button's and a checked box's border."
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
"name": "ow-on-primary",
|
|
288
|
+
"value": "#ffffff",
|
|
289
|
+
"usage": "Text and icons on ow-primary and ow-primary-hover."
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
"name": "ow-primary-text",
|
|
293
|
+
"value": {
|
|
294
|
+
"light": "{ow-brand-600}",
|
|
295
|
+
"dark": "{ow-brand-300}"
|
|
296
|
+
},
|
|
297
|
+
"usage": "Primary-coloured text and icons on surfaces: the selected option's check, a ChoiceCard's icon, active nav icons (11.7:1 light, 8.9:1 dark on surface)."
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
"name": "ow-primary-subtle",
|
|
301
|
+
"value": {
|
|
302
|
+
"light": "{ow-brand-50}",
|
|
303
|
+
"dark": "color-mix(in srgb, var(--ow-brand-400) 14%, transparent)"
|
|
304
|
+
},
|
|
305
|
+
"usage": "The active command in the palette, the recommended choice's icon tile, the active badge."
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
"name": "ow-primary-soft",
|
|
309
|
+
"value": {
|
|
310
|
+
"light": "{ow-brand-100}",
|
|
311
|
+
"dark": "color-mix(in srgb, var(--ow-brand-400) 22%, transparent)"
|
|
312
|
+
},
|
|
313
|
+
"usage": "Stronger primary tint for selected states."
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
"name": "ow-primary-border",
|
|
317
|
+
"value": {
|
|
318
|
+
"light": "{ow-brand-200}",
|
|
319
|
+
"dark": "color-mix(in srgb, var(--ow-brand-400) 40%, transparent)"
|
|
320
|
+
},
|
|
321
|
+
"usage": "Borders of primary-tinted things: the recommended ChoiceCard, the active badge, icon tiles."
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
"name": "ow-primary-focus",
|
|
325
|
+
"value": {
|
|
326
|
+
"light": "{ow-brand-300}",
|
|
327
|
+
"dark": "{ow-brand-400}"
|
|
328
|
+
},
|
|
329
|
+
"usage": "An open select's border."
|
|
330
|
+
},
|
|
331
|
+
{
|
|
332
|
+
"name": "ow-focus-border",
|
|
333
|
+
"value": {
|
|
334
|
+
"light": "{ow-brand-500}",
|
|
335
|
+
"dark": "{ow-brand-400}"
|
|
336
|
+
},
|
|
337
|
+
"usage": "A focused field's border (6.3:1 on white; 5.3:1 on dark surface)."
|
|
338
|
+
},
|
|
339
|
+
{
|
|
340
|
+
"name": "ow-focus-ring",
|
|
341
|
+
"value": {
|
|
342
|
+
"light": "{ow-brand-500}",
|
|
343
|
+
"dark": "{ow-brand-300}"
|
|
344
|
+
},
|
|
345
|
+
"usage": "The 2 px keyboard focus outline on every control, offset 2 px. At least 3:1 on every surface and the canvas in both themes."
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
"name": "ow-brass",
|
|
349
|
+
"value": "#d4a72c",
|
|
350
|
+
"usage": "The accent, kept small: chip dots, list bullets, the dot grid under the pointer, a star. A graphic colour on light grounds (2.1:1); text only on dark (7.3:1 on dark surface)."
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
"name": "ow-brass-deep",
|
|
354
|
+
"value": {
|
|
355
|
+
"light": "#8a6a12",
|
|
356
|
+
"dark": "{ow-brass}"
|
|
357
|
+
},
|
|
358
|
+
"usage": "Brass you can read: link hover and brass text on ow-surface and ow-paper (5.1:1 and 4.8:1 in light; 7.3:1 in dark)."
|
|
359
|
+
},
|
|
360
|
+
{
|
|
361
|
+
"name": "ow-brass-soft",
|
|
362
|
+
"value": {
|
|
363
|
+
"light": "#faf3df",
|
|
364
|
+
"dark": "rgba(212,167,44,0.14)"
|
|
365
|
+
},
|
|
366
|
+
"usage": "Brass tint behind ow-brass-deep: notes, placeholders, half marks."
|
|
367
|
+
},
|
|
368
|
+
{
|
|
369
|
+
"name": "ow-danger-surface",
|
|
370
|
+
"value": {
|
|
371
|
+
"light": "#fff7f7",
|
|
372
|
+
"dark": "rgba(251,44,54,0.12)"
|
|
373
|
+
},
|
|
374
|
+
"usage": "Danger badge and notice background."
|
|
375
|
+
},
|
|
376
|
+
{
|
|
377
|
+
"name": "ow-danger-wash",
|
|
378
|
+
"value": {
|
|
379
|
+
"light": "#ffe2e2",
|
|
380
|
+
"dark": "rgba(251,44,54,0.18)"
|
|
381
|
+
},
|
|
382
|
+
"usage": "The round icon tile of a destructive confirm (red-100)."
|
|
383
|
+
},
|
|
384
|
+
{
|
|
385
|
+
"name": "ow-danger-border",
|
|
386
|
+
"value": {
|
|
387
|
+
"light": "#ffc9c9",
|
|
388
|
+
"dark": "rgba(255,100,103,0.38)"
|
|
389
|
+
},
|
|
390
|
+
"usage": "Danger badge and notice border (red-200)."
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
"name": "ow-danger-line",
|
|
394
|
+
"value": {
|
|
395
|
+
"light": "#ffa2a2",
|
|
396
|
+
"dark": "#ff6467"
|
|
397
|
+
},
|
|
398
|
+
"usage": "An invalid field's border (red-300; red-400 in dark)."
|
|
399
|
+
},
|
|
400
|
+
{
|
|
401
|
+
"name": "ow-danger-solid",
|
|
402
|
+
"value": "#fb2c36",
|
|
403
|
+
"usage": "An invalid field's focused border, danger icons and dots (red-500); top of the danger button's gradient, where white reads 3.8:1, kept from the source (the label sits lower, over ow-danger-fill)."
|
|
404
|
+
},
|
|
405
|
+
{
|
|
406
|
+
"name": "ow-danger-fill",
|
|
407
|
+
"value": "#e7000b",
|
|
408
|
+
"usage": "Bottom of the danger button's gradient, checked danger boxes (red-600). White on it: 4.8:1."
|
|
409
|
+
},
|
|
410
|
+
{
|
|
411
|
+
"name": "ow-danger-fill-border",
|
|
412
|
+
"value": "#c10007",
|
|
413
|
+
"usage": "The danger button's border (red-700)."
|
|
414
|
+
},
|
|
415
|
+
{
|
|
416
|
+
"name": "ow-danger-text",
|
|
417
|
+
"value": {
|
|
418
|
+
"light": "#c10007",
|
|
419
|
+
"dark": "#ffa2a2"
|
|
420
|
+
},
|
|
421
|
+
"usage": "Error messages and danger badge text on ow-surface and ow-danger-surface (6.4:1 light, 8.6:1 dark)."
|
|
422
|
+
},
|
|
423
|
+
{
|
|
424
|
+
"name": "ow-success-surface",
|
|
425
|
+
"value": {
|
|
426
|
+
"light": "#eef8f2",
|
|
427
|
+
"dark": "rgba(0,188,125,0.12)"
|
|
428
|
+
},
|
|
429
|
+
"usage": "Success badge and notice background."
|
|
430
|
+
},
|
|
431
|
+
{
|
|
432
|
+
"name": "ow-success-border",
|
|
433
|
+
"value": {
|
|
434
|
+
"light": "#b9d8c2",
|
|
435
|
+
"dark": "rgba(0,212,146,0.32)"
|
|
436
|
+
},
|
|
437
|
+
"usage": "Success badge and notice border."
|
|
438
|
+
},
|
|
439
|
+
{
|
|
440
|
+
"name": "ow-success-solid",
|
|
441
|
+
"value": "#00bc7d",
|
|
442
|
+
"usage": "Success icons and dots (emerald-500)."
|
|
443
|
+
},
|
|
444
|
+
{
|
|
445
|
+
"name": "ow-success-text",
|
|
446
|
+
"value": {
|
|
447
|
+
"light": "#006045",
|
|
448
|
+
"dark": "#5ee9b5"
|
|
449
|
+
},
|
|
450
|
+
"usage": "Success text on ow-surface and ow-success-surface (7.6:1 light, 10.8:1 dark)."
|
|
451
|
+
},
|
|
452
|
+
{
|
|
453
|
+
"name": "ow-warning-surface",
|
|
454
|
+
"value": {
|
|
455
|
+
"light": "#fffbeb",
|
|
456
|
+
"dark": "rgba(254,154,0,0.12)"
|
|
457
|
+
},
|
|
458
|
+
"usage": "Warning badge and notice background (amber-50)."
|
|
459
|
+
},
|
|
460
|
+
{
|
|
461
|
+
"name": "ow-warning-border",
|
|
462
|
+
"value": {
|
|
463
|
+
"light": "#d7ca9f",
|
|
464
|
+
"dark": "rgba(255,185,0,0.32)"
|
|
465
|
+
},
|
|
466
|
+
"usage": "Warning badge and notice border."
|
|
467
|
+
},
|
|
468
|
+
{
|
|
469
|
+
"name": "ow-warning-solid",
|
|
470
|
+
"value": "#fe9a00",
|
|
471
|
+
"usage": "Warning icons and dots (amber-500)."
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
"name": "ow-warning-text",
|
|
475
|
+
"value": {
|
|
476
|
+
"light": "#973c00",
|
|
477
|
+
"dark": "#ffd230"
|
|
478
|
+
},
|
|
479
|
+
"usage": "Warning text on ow-surface and ow-warning-surface (7.1:1 light, 11.4:1 dark)."
|
|
480
|
+
},
|
|
481
|
+
{
|
|
482
|
+
"name": "ow-tooltip",
|
|
483
|
+
"value": {
|
|
484
|
+
"light": "{ow-gray-900}",
|
|
485
|
+
"dark": "#f3f4f6"
|
|
486
|
+
},
|
|
487
|
+
"usage": "Tooltip ground, inverted from the theme."
|
|
488
|
+
},
|
|
489
|
+
{
|
|
490
|
+
"name": "ow-on-tooltip",
|
|
491
|
+
"value": {
|
|
492
|
+
"light": "#ffffff",
|
|
493
|
+
"dark": "#15171c"
|
|
494
|
+
},
|
|
495
|
+
"usage": "Tooltip text on ow-tooltip (17.8:1 light, 16.3:1 dark)."
|
|
496
|
+
},
|
|
497
|
+
{
|
|
498
|
+
"name": "ow-switch-off",
|
|
499
|
+
"value": {
|
|
500
|
+
"light": "{ow-gray-400}",
|
|
501
|
+
"dark": "#5b6472"
|
|
502
|
+
},
|
|
503
|
+
"usage": "A switch's track when off; 2.6:1 on white and 2.8:1 on dark surface, so the knob's shadow and the label carry the state too."
|
|
504
|
+
},
|
|
505
|
+
{
|
|
506
|
+
"name": "ow-skeleton",
|
|
507
|
+
"value": {
|
|
508
|
+
"light": "{ow-gray-200}",
|
|
509
|
+
"dark": "#2c313a"
|
|
510
|
+
},
|
|
511
|
+
"usage": "Skeleton bars' first line."
|
|
512
|
+
},
|
|
513
|
+
{
|
|
514
|
+
"name": "ow-skeleton-soft",
|
|
515
|
+
"value": {
|
|
516
|
+
"light": "{ow-gray-100}",
|
|
517
|
+
"dark": "#252932"
|
|
518
|
+
},
|
|
519
|
+
"usage": "Skeleton bars' second line and control placeholders."
|
|
520
|
+
},
|
|
521
|
+
{
|
|
522
|
+
"name": "ow-avatar-empty",
|
|
523
|
+
"value": {
|
|
524
|
+
"light": "{ow-gray-200}",
|
|
525
|
+
"dark": "#2c313a"
|
|
526
|
+
},
|
|
527
|
+
"usage": "An avatar with no name or image."
|
|
528
|
+
},
|
|
529
|
+
{
|
|
530
|
+
"name": "ow-on-avatar-empty",
|
|
531
|
+
"value": {
|
|
532
|
+
"light": "{ow-gray-600}",
|
|
533
|
+
"dark": "#cfd3da"
|
|
534
|
+
},
|
|
535
|
+
"usage": "The person icon on ow-avatar-empty."
|
|
536
|
+
},
|
|
537
|
+
{
|
|
538
|
+
"name": "ow-code-ground",
|
|
539
|
+
"value": {
|
|
540
|
+
"light": "{ow-gray-100}",
|
|
541
|
+
"dark": "#262a33"
|
|
542
|
+
},
|
|
543
|
+
"usage": "Behind inline code; ow-text on it."
|
|
544
|
+
},
|
|
545
|
+
{
|
|
546
|
+
"name": "ow-key-ground",
|
|
547
|
+
"value": {
|
|
548
|
+
"light": "{ow-gray-50}",
|
|
549
|
+
"dark": "#22262e"
|
|
550
|
+
},
|
|
551
|
+
"usage": "Keyboard keys (Kbd); ow-text-soft on it."
|
|
552
|
+
},
|
|
553
|
+
{
|
|
554
|
+
"name": "ow-track",
|
|
555
|
+
"value": {
|
|
556
|
+
"light": "{ow-gray-100}",
|
|
557
|
+
"dark": "#14161b"
|
|
558
|
+
},
|
|
559
|
+
"usage": "The well behind segmented controls and segmented tabs."
|
|
560
|
+
},
|
|
561
|
+
{
|
|
562
|
+
"name": "ow-thumb",
|
|
563
|
+
"value": {
|
|
564
|
+
"light": "#ffffff",
|
|
565
|
+
"dark": "#2f3541"
|
|
566
|
+
},
|
|
567
|
+
"usage": "The selected segment in a segmented control or segmented tabs; ow-text on it."
|
|
568
|
+
},
|
|
569
|
+
{
|
|
570
|
+
"name": "ow-meter-track",
|
|
571
|
+
"value": {
|
|
572
|
+
"light": "{ow-gray-200}",
|
|
573
|
+
"dark": "#2c313a"
|
|
574
|
+
},
|
|
575
|
+
"usage": "The empty part of progress bars, progress circles and sliders."
|
|
576
|
+
},
|
|
577
|
+
{
|
|
578
|
+
"name": "ow-progress",
|
|
579
|
+
"value": {
|
|
580
|
+
"light": "{ow-brand-600}",
|
|
581
|
+
"dark": "{ow-brand-400}"
|
|
582
|
+
},
|
|
583
|
+
"usage": "The filled part of progress bars, progress circles, sliders and spinners; at least 3:1 against ow-meter-track and every surface."
|
|
584
|
+
},
|
|
585
|
+
{
|
|
586
|
+
"name": "ow-code-block",
|
|
587
|
+
"value": "#15171c",
|
|
588
|
+
"usage": "Code blocks, dark in both themes, on the night ground."
|
|
589
|
+
},
|
|
590
|
+
{
|
|
591
|
+
"name": "ow-code-block-header",
|
|
592
|
+
"value": "#1c1f26",
|
|
593
|
+
"usage": "The title bar of a code block."
|
|
594
|
+
},
|
|
595
|
+
{
|
|
596
|
+
"name": "ow-code-block-border",
|
|
597
|
+
"value": {
|
|
598
|
+
"light": "#15171c",
|
|
599
|
+
"dark": "#2c313a"
|
|
600
|
+
},
|
|
601
|
+
"usage": "A code block's edge; in dark it separates the block from the page."
|
|
602
|
+
},
|
|
603
|
+
{
|
|
604
|
+
"name": "ow-on-code-block",
|
|
605
|
+
"value": "#e6edf3",
|
|
606
|
+
"usage": "Code text on ow-code-block (15.9:1)."
|
|
607
|
+
},
|
|
608
|
+
{
|
|
609
|
+
"name": "ow-on-code-block-muted",
|
|
610
|
+
"value": "#8b919c",
|
|
611
|
+
"usage": "Line numbers, file names and the language label on ow-code-block and its header (5.7:1)."
|
|
612
|
+
},
|
|
613
|
+
{
|
|
614
|
+
"name": "ow-backdrop",
|
|
615
|
+
"value": {
|
|
616
|
+
"light": "rgba(15,23,42,0.4)",
|
|
617
|
+
"dark": "rgba(0,0,0,0.6)"
|
|
618
|
+
},
|
|
619
|
+
"usage": "The dimmed page behind a modal dialog."
|
|
620
|
+
},
|
|
621
|
+
{
|
|
622
|
+
"name": "ow-dot",
|
|
623
|
+
"value": {
|
|
624
|
+
"light": "rgba(15,23,42,0.11)",
|
|
625
|
+
"dark": "rgba(255,255,255,0.09)"
|
|
626
|
+
},
|
|
627
|
+
"usage": "The dot grid's dots."
|
|
628
|
+
},
|
|
629
|
+
{
|
|
630
|
+
"name": "ow-header-glass",
|
|
631
|
+
"value": {
|
|
632
|
+
"light": "rgba(255,255,255,0.85)",
|
|
633
|
+
"dark": "rgba(28,31,38,0.85)"
|
|
634
|
+
},
|
|
635
|
+
"usage": "The floating header pill, over a blur."
|
|
636
|
+
}
|
|
637
|
+
]
|
|
638
|
+
},
|
|
639
|
+
"type": {
|
|
640
|
+
"fonts": [
|
|
641
|
+
{
|
|
642
|
+
"family": "Inter",
|
|
643
|
+
"file": "fonts/InterVariable.woff2",
|
|
644
|
+
"weight": "100 900",
|
|
645
|
+
"style": "normal"
|
|
646
|
+
},
|
|
647
|
+
{
|
|
648
|
+
"family": "Geist Mono",
|
|
649
|
+
"file": "fonts/GeistMonoVariable.woff2",
|
|
650
|
+
"weight": "100 900",
|
|
651
|
+
"style": "normal"
|
|
652
|
+
}
|
|
653
|
+
],
|
|
654
|
+
"families": {
|
|
655
|
+
"sans": "\"Inter Variable\", Inter, ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", sans-serif",
|
|
656
|
+
"mono": "\"Geist Mono Variable\", \"Geist Mono\", ui-monospace, \"SF Mono\", Menlo, monospace"
|
|
657
|
+
},
|
|
658
|
+
"groups": [
|
|
659
|
+
{
|
|
660
|
+
"name": "Display",
|
|
661
|
+
"family": "sans",
|
|
662
|
+
"note": "Marketing titles: Inter at weight 500 with tight tracking that tightens as the size grows. Never bold a display title.",
|
|
663
|
+
"styles": [
|
|
664
|
+
{
|
|
665
|
+
"name": "ow-type-hero",
|
|
666
|
+
"fontSize": "76px",
|
|
667
|
+
"lineHeight": 0.98,
|
|
668
|
+
"fontWeight": 500,
|
|
669
|
+
"letterSpacing": "-0.045em",
|
|
670
|
+
"sample": "Ship the idea, not the boilerplate",
|
|
671
|
+
"usage": "One home-page headline. 42px with 1.02 leading on phones."
|
|
672
|
+
},
|
|
673
|
+
{
|
|
674
|
+
"name": "ow-type-page-title",
|
|
675
|
+
"fontSize": "56px",
|
|
676
|
+
"lineHeight": 1.05,
|
|
677
|
+
"fontWeight": 500,
|
|
678
|
+
"letterSpacing": "-0.035em",
|
|
679
|
+
"sample": "Pricing",
|
|
680
|
+
"usage": "A page's h1. 40px with 1.06 leading on phones."
|
|
681
|
+
},
|
|
682
|
+
{
|
|
683
|
+
"name": "ow-type-section-title",
|
|
684
|
+
"fontSize": "44px",
|
|
685
|
+
"lineHeight": 1.1,
|
|
686
|
+
"fontWeight": 500,
|
|
687
|
+
"letterSpacing": "-0.03em",
|
|
688
|
+
"sample": "Everything in one place.",
|
|
689
|
+
"usage": "A section's h2, under a Chip. 32px with 1.12 leading on phones."
|
|
690
|
+
},
|
|
691
|
+
{
|
|
692
|
+
"name": "ow-type-heading",
|
|
693
|
+
"fontSize": "24px",
|
|
694
|
+
"lineHeight": 1.25,
|
|
695
|
+
"fontWeight": 600,
|
|
696
|
+
"letterSpacing": "-0.02em",
|
|
697
|
+
"sample": "What you need",
|
|
698
|
+
"usage": "Headings inside docs and long pages. 21px on phones."
|
|
699
|
+
},
|
|
700
|
+
{
|
|
701
|
+
"name": "ow-type-lead",
|
|
702
|
+
"fontSize": "17px",
|
|
703
|
+
"lineHeight": 1.6,
|
|
704
|
+
"fontWeight": 400,
|
|
705
|
+
"sample": "Describe what you want. The rest is handled.",
|
|
706
|
+
"usage": "The intro under a title, in ow-text-muted, under 560px wide."
|
|
707
|
+
},
|
|
708
|
+
{
|
|
709
|
+
"name": "ow-type-prose",
|
|
710
|
+
"fontSize": "16.5px",
|
|
711
|
+
"lineHeight": 1.7,
|
|
712
|
+
"fontWeight": 400,
|
|
713
|
+
"sample": "Every change is saved before it lands, so anything can be undone.",
|
|
714
|
+
"usage": "Docs and long-form text."
|
|
715
|
+
}
|
|
716
|
+
]
|
|
717
|
+
},
|
|
718
|
+
{
|
|
719
|
+
"name": "Interface",
|
|
720
|
+
"family": "sans",
|
|
721
|
+
"note": "The app's type: 14px by default, heavier named weights (control 500, emphasis 600, display 760, action 730, strong 750).",
|
|
722
|
+
"styles": [
|
|
723
|
+
{
|
|
724
|
+
"name": "ow-type-dialog-title",
|
|
725
|
+
"fontSize": "16px",
|
|
726
|
+
"lineHeight": 1.3,
|
|
727
|
+
"fontWeight": 760,
|
|
728
|
+
"sample": "Delete this project?",
|
|
729
|
+
"usage": "Dialog and panel titles; 18px for a dialog with a form."
|
|
730
|
+
},
|
|
731
|
+
{
|
|
732
|
+
"name": "ow-type-card-title",
|
|
733
|
+
"fontSize": "15px",
|
|
734
|
+
"lineHeight": 1.3,
|
|
735
|
+
"fontWeight": 600,
|
|
736
|
+
"sample": "Start from scratch",
|
|
737
|
+
"usage": "ChoiceCard and card titles."
|
|
738
|
+
},
|
|
739
|
+
{
|
|
740
|
+
"name": "ow-type-body",
|
|
741
|
+
"fontSize": "14px",
|
|
742
|
+
"lineHeight": 1.45,
|
|
743
|
+
"fontWeight": 400,
|
|
744
|
+
"sample": "Three files changed since the last checkpoint.",
|
|
745
|
+
"usage": "Default interface text, field values and menu items."
|
|
746
|
+
},
|
|
747
|
+
{
|
|
748
|
+
"name": "ow-type-copy",
|
|
749
|
+
"fontSize": "14px",
|
|
750
|
+
"lineHeight": 1.55,
|
|
751
|
+
"fontWeight": 400,
|
|
752
|
+
"sample": "This removes the project from the list. Its folder stays on disk.",
|
|
753
|
+
"usage": "Dialog descriptions and running text inside the app, in ow-text-muted."
|
|
754
|
+
},
|
|
755
|
+
{
|
|
756
|
+
"name": "ow-type-label",
|
|
757
|
+
"fontSize": "14px",
|
|
758
|
+
"lineHeight": 1.4,
|
|
759
|
+
"fontWeight": 600,
|
|
760
|
+
"sample": "Project name",
|
|
761
|
+
"usage": "Field labels, above the control."
|
|
762
|
+
},
|
|
763
|
+
{
|
|
764
|
+
"name": "ow-type-button",
|
|
765
|
+
"fontSize": "14px",
|
|
766
|
+
"lineHeight": 1.1,
|
|
767
|
+
"fontWeight": 730,
|
|
768
|
+
"sample": "Create project",
|
|
769
|
+
"usage": "Button labels at every size."
|
|
770
|
+
},
|
|
771
|
+
{
|
|
772
|
+
"name": "ow-type-caption",
|
|
773
|
+
"fontSize": "12px",
|
|
774
|
+
"lineHeight": 1.35,
|
|
775
|
+
"fontWeight": 400,
|
|
776
|
+
"sample": "Updated 2 minutes ago",
|
|
777
|
+
"usage": "Hints, option descriptions and meta lines, in ow-text-muted."
|
|
778
|
+
},
|
|
779
|
+
{
|
|
780
|
+
"name": "ow-type-badge",
|
|
781
|
+
"fontSize": "12px",
|
|
782
|
+
"lineHeight": 1,
|
|
783
|
+
"fontWeight": 750,
|
|
784
|
+
"sample": "Running",
|
|
785
|
+
"usage": "Badge labels."
|
|
786
|
+
},
|
|
787
|
+
{
|
|
788
|
+
"name": "ow-type-overline",
|
|
789
|
+
"fontSize": "11px",
|
|
790
|
+
"lineHeight": 1.35,
|
|
791
|
+
"fontWeight": 600,
|
|
792
|
+
"letterSpacing": "0.025em",
|
|
793
|
+
"sample": "RECENT",
|
|
794
|
+
"usage": "Group labels in menus, selects and the command palette; set uppercase in ow-text-muted."
|
|
795
|
+
}
|
|
796
|
+
]
|
|
797
|
+
},
|
|
798
|
+
{
|
|
799
|
+
"name": "Mono",
|
|
800
|
+
"family": "mono",
|
|
801
|
+
"note": "Geist Mono for code, paths and keys.",
|
|
802
|
+
"styles": [
|
|
803
|
+
{
|
|
804
|
+
"name": "ow-type-code",
|
|
805
|
+
"fontSize": "14px",
|
|
806
|
+
"lineHeight": 1.5,
|
|
807
|
+
"fontWeight": 400,
|
|
808
|
+
"sample": "~/Projects/recipe-app",
|
|
809
|
+
"usage": "Inline code and paths at 0.88em of the text around them, on ow-code-ground."
|
|
810
|
+
},
|
|
811
|
+
{
|
|
812
|
+
"name": "ow-type-kbd",
|
|
813
|
+
"fontSize": "12px",
|
|
814
|
+
"lineHeight": 1,
|
|
815
|
+
"fontWeight": 500,
|
|
816
|
+
"sample": "⌘ K",
|
|
817
|
+
"usage": "Keyboard keys (Kbd)."
|
|
818
|
+
}
|
|
819
|
+
]
|
|
820
|
+
}
|
|
821
|
+
]
|
|
822
|
+
},
|
|
823
|
+
"spacing": {
|
|
824
|
+
"tokens": [
|
|
825
|
+
{
|
|
826
|
+
"name": "ow-space-3xs",
|
|
827
|
+
"value": "3px",
|
|
828
|
+
"usage": "Gap between a title and its description."
|
|
829
|
+
},
|
|
830
|
+
{
|
|
831
|
+
"name": "ow-space-2xs",
|
|
832
|
+
"value": "4px",
|
|
833
|
+
"usage": "Gap between menu items and options; a menu's offset from its trigger."
|
|
834
|
+
},
|
|
835
|
+
{
|
|
836
|
+
"name": "ow-space-xs",
|
|
837
|
+
"value": "6px",
|
|
838
|
+
"usage": "Menu padding; gap inside small badges; tooltip offset."
|
|
839
|
+
},
|
|
840
|
+
{
|
|
841
|
+
"name": "ow-space-sm",
|
|
842
|
+
"value": "8px",
|
|
843
|
+
"usage": "The default gap: icon to label, between buttons, label to field."
|
|
844
|
+
},
|
|
845
|
+
{
|
|
846
|
+
"name": "ow-space-md",
|
|
847
|
+
"value": "10px",
|
|
848
|
+
"usage": "Small button padding; gap in dialog headers; textarea vertical padding."
|
|
849
|
+
},
|
|
850
|
+
{
|
|
851
|
+
"name": "ow-space-lg",
|
|
852
|
+
"value": "12px",
|
|
853
|
+
"usage": "Field horizontal padding; ChoiceCard inner gap."
|
|
854
|
+
},
|
|
855
|
+
{
|
|
856
|
+
"name": "ow-space-xl",
|
|
857
|
+
"value": "14px",
|
|
858
|
+
"usage": "Medium button padding; the gap between a form's rows."
|
|
859
|
+
},
|
|
860
|
+
{
|
|
861
|
+
"name": "ow-space-2xl",
|
|
862
|
+
"value": "16px",
|
|
863
|
+
"usage": "Large button padding; card padding."
|
|
864
|
+
},
|
|
865
|
+
{
|
|
866
|
+
"name": "ow-space-3xl",
|
|
867
|
+
"value": "18px",
|
|
868
|
+
"usage": "Panel header padding."
|
|
869
|
+
},
|
|
870
|
+
{
|
|
871
|
+
"name": "ow-space-4xl",
|
|
872
|
+
"value": "20px",
|
|
873
|
+
"usage": "Confirm dialog padding."
|
|
874
|
+
},
|
|
875
|
+
{
|
|
876
|
+
"name": "ow-space-5xl",
|
|
877
|
+
"value": "22px",
|
|
878
|
+
"usage": "Form dialog padding; the dot grid's step."
|
|
879
|
+
},
|
|
880
|
+
{
|
|
881
|
+
"name": "ow-space-6xl",
|
|
882
|
+
"value": "26px",
|
|
883
|
+
"usage": "Large badge padding."
|
|
884
|
+
},
|
|
885
|
+
{
|
|
886
|
+
"name": "ow-space-7xl",
|
|
887
|
+
"value": "28px",
|
|
888
|
+
"usage": "Generous section padding inside the app."
|
|
889
|
+
},
|
|
890
|
+
{
|
|
891
|
+
"name": "ow-page-max",
|
|
892
|
+
"value": "1200px",
|
|
893
|
+
"usage": "Marketing pages' content width cap."
|
|
894
|
+
},
|
|
895
|
+
{
|
|
896
|
+
"name": "ow-page-gutter",
|
|
897
|
+
"value": "20px",
|
|
898
|
+
"usage": "Page side gutter on phones; 32px from 768px up."
|
|
899
|
+
},
|
|
900
|
+
{
|
|
901
|
+
"name": "ow-header-height",
|
|
902
|
+
"value": "56px",
|
|
903
|
+
"usage": "The floating header pill on desktop; 54px on phones."
|
|
904
|
+
},
|
|
905
|
+
{
|
|
906
|
+
"name": "ow-section-y",
|
|
907
|
+
"value": "96px",
|
|
908
|
+
"usage": "Vertical padding of a marketing section on desktop; 72px on phones."
|
|
909
|
+
}
|
|
910
|
+
]
|
|
911
|
+
},
|
|
912
|
+
"radius": {
|
|
913
|
+
"tokens": [
|
|
914
|
+
{
|
|
915
|
+
"name": "ow-radius-sm",
|
|
916
|
+
"value": "4px",
|
|
917
|
+
"usage": "Checkboxes and small keys."
|
|
918
|
+
},
|
|
919
|
+
{
|
|
920
|
+
"name": "ow-radius-code",
|
|
921
|
+
"value": "5px",
|
|
922
|
+
"usage": "Inline code and shortcut hints inside buttons."
|
|
923
|
+
},
|
|
924
|
+
{
|
|
925
|
+
"name": "ow-radius-md",
|
|
926
|
+
"value": "6px",
|
|
927
|
+
"usage": "Tooltips, keys and ChoiceCard icon tiles."
|
|
928
|
+
},
|
|
929
|
+
{
|
|
930
|
+
"name": "ow-radius-lg",
|
|
931
|
+
"value": "8px",
|
|
932
|
+
"usage": "Menu items, options and nav items."
|
|
933
|
+
},
|
|
934
|
+
{
|
|
935
|
+
"name": "ow-radius-form",
|
|
936
|
+
"value": "8px",
|
|
937
|
+
"usage": "Buttons and fields in the app."
|
|
938
|
+
},
|
|
939
|
+
{
|
|
940
|
+
"name": "ow-radius-tile",
|
|
941
|
+
"value": "10px",
|
|
942
|
+
"usage": "App icon tiles."
|
|
943
|
+
},
|
|
944
|
+
{
|
|
945
|
+
"name": "ow-radius-container",
|
|
946
|
+
"value": "12px",
|
|
947
|
+
"usage": "Cards, dialogs, menus, toasts and the select's listbox."
|
|
948
|
+
},
|
|
949
|
+
{
|
|
950
|
+
"name": "ow-radius-panel",
|
|
951
|
+
"value": "14px",
|
|
952
|
+
"usage": "Large app panels."
|
|
953
|
+
},
|
|
954
|
+
{
|
|
955
|
+
"name": "ow-radius-card",
|
|
956
|
+
"value": "18px",
|
|
957
|
+
"usage": "Content cards on marketing pages."
|
|
958
|
+
},
|
|
959
|
+
{
|
|
960
|
+
"name": "ow-radius-section",
|
|
961
|
+
"value": "22px",
|
|
962
|
+
"usage": "Large marketing panels and the menu panel."
|
|
963
|
+
},
|
|
964
|
+
{
|
|
965
|
+
"name": "ow-radius-pill",
|
|
966
|
+
"value": "999px",
|
|
967
|
+
"usage": "Badges, chips, the header, avatars, and buttons with shape=\"pill\" on marketing pages."
|
|
968
|
+
}
|
|
969
|
+
]
|
|
970
|
+
},
|
|
971
|
+
"shadow": {
|
|
972
|
+
"tokens": [
|
|
973
|
+
{
|
|
974
|
+
"name": "ow-shadow-button",
|
|
975
|
+
"value": {
|
|
976
|
+
"light": "inset 0 1px 0 rgba(255,255,255,0.18), inset 0 -1px 0 rgba(0,0,0,0.2), 0 1px 2px color-mix(in srgb, var(--ow-brand-700) 30%, transparent), 0 4px 10px -4px color-mix(in srgb, var(--ow-brand-600) 50%, transparent)",
|
|
977
|
+
"dark": "inset 0 1px 0 rgba(255,255,255,0.18), inset 0 -1px 0 rgba(0,0,0,0.2), 0 1px 2px rgba(0,0,0,0.45), 0 4px 10px -4px rgba(0,0,0,0.7)"
|
|
978
|
+
},
|
|
979
|
+
"usage": "The primary button: a highlight along the top, a dark lower edge and a glow underneath."
|
|
980
|
+
},
|
|
981
|
+
{
|
|
982
|
+
"name": "ow-shadow-button-secondary",
|
|
983
|
+
"value": {
|
|
984
|
+
"light": "inset 0 1px 0 rgba(255,255,255,0.7), 0 1px 2px rgba(15,23,42,0.08)",
|
|
985
|
+
"dark": "inset 0 1px 0 rgba(255,255,255,0.06), 0 1px 2px rgba(0,0,0,0.4)"
|
|
986
|
+
},
|
|
987
|
+
"usage": "Secondary buttons and ChoiceCards."
|
|
988
|
+
},
|
|
989
|
+
{
|
|
990
|
+
"name": "ow-shadow-button-danger",
|
|
991
|
+
"value": {
|
|
992
|
+
"light": "inset 0 1px 0 rgba(255,255,255,0.25), inset 0 -1px 0 rgba(0,0,0,0.12), 0 1px 2px rgba(127,29,29,0.25), 0 4px 10px -4px rgba(220,38,38,0.5)",
|
|
993
|
+
"dark": "inset 0 1px 0 rgba(255,255,255,0.25), inset 0 -1px 0 rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.45), 0 4px 10px -4px rgba(0,0,0,0.7)"
|
|
994
|
+
},
|
|
995
|
+
"usage": "The danger button."
|
|
996
|
+
},
|
|
997
|
+
{
|
|
998
|
+
"name": "ow-shadow-pressed",
|
|
999
|
+
"value": "inset 0 2px 4px rgba(0,0,0,0.18)",
|
|
1000
|
+
"usage": "Primary and danger buttons while pressed, with a 1px drop."
|
|
1001
|
+
},
|
|
1002
|
+
{
|
|
1003
|
+
"name": "ow-shadow-pressed-secondary",
|
|
1004
|
+
"value": {
|
|
1005
|
+
"light": "inset 0 1px 2px rgba(15,23,42,0.1)",
|
|
1006
|
+
"dark": "inset 0 1px 2px rgba(0,0,0,0.4)"
|
|
1007
|
+
},
|
|
1008
|
+
"usage": "Secondary buttons while pressed."
|
|
1009
|
+
},
|
|
1010
|
+
{
|
|
1011
|
+
"name": "ow-shadow-control",
|
|
1012
|
+
"value": {
|
|
1013
|
+
"light": "0 1px 2px rgba(0,0,0,0.06)",
|
|
1014
|
+
"dark": "0 1px 2px rgba(0,0,0,0.4)"
|
|
1015
|
+
},
|
|
1016
|
+
"usage": "Switch knobs, checkboxes and the active nav item."
|
|
1017
|
+
},
|
|
1018
|
+
{
|
|
1019
|
+
"name": "ow-shadow-menu",
|
|
1020
|
+
"value": {
|
|
1021
|
+
"light": "0 12px 24px rgba(0,0,0,0.12), 0 1px 3px rgba(0,0,0,0.08)",
|
|
1022
|
+
"dark": "0 12px 24px rgba(0,0,0,0.5), 0 1px 3px rgba(0,0,0,0.4)"
|
|
1023
|
+
},
|
|
1024
|
+
"usage": "Menus, the select's listbox, dialogs, the command palette and toasts."
|
|
1025
|
+
},
|
|
1026
|
+
{
|
|
1027
|
+
"name": "ow-shadow-focus",
|
|
1028
|
+
"value": {
|
|
1029
|
+
"light": "0 0 0 3px color-mix(in srgb, var(--ow-brand-600) 14%, transparent)",
|
|
1030
|
+
"dark": "0 0 0 3px color-mix(in srgb, var(--ow-brand-400) 28%, transparent)"
|
|
1031
|
+
},
|
|
1032
|
+
"usage": "The soft halo around a focused field, with ow-focus-border."
|
|
1033
|
+
},
|
|
1034
|
+
{
|
|
1035
|
+
"name": "ow-shadow-focus-danger",
|
|
1036
|
+
"value": {
|
|
1037
|
+
"light": "0 0 0 3px rgba(239,68,68,0.12)",
|
|
1038
|
+
"dark": "0 0 0 3px rgba(239,68,68,0.24)"
|
|
1039
|
+
},
|
|
1040
|
+
"usage": "The halo around a focused invalid field."
|
|
1041
|
+
},
|
|
1042
|
+
{
|
|
1043
|
+
"name": "ow-shadow-header",
|
|
1044
|
+
"value": {
|
|
1045
|
+
"light": "0 1px 2px rgba(0,0,0,0.04), 0 6px 20px rgba(0,0,0,0.04)",
|
|
1046
|
+
"dark": "0 1px 2px rgba(0,0,0,0.3), 0 6px 20px rgba(0,0,0,0.3)"
|
|
1047
|
+
},
|
|
1048
|
+
"usage": "The floating header pill."
|
|
1049
|
+
},
|
|
1050
|
+
{
|
|
1051
|
+
"name": "ow-shadow-lift",
|
|
1052
|
+
"value": {
|
|
1053
|
+
"light": "0 20px 40px color-mix(in srgb, var(--ow-brand-700) 35%, transparent)",
|
|
1054
|
+
"dark": "0 20px 40px rgba(0,0,0,0.6)"
|
|
1055
|
+
},
|
|
1056
|
+
"usage": "A large app icon or hero visual standing alone. The only shadow decoration takes."
|
|
1057
|
+
}
|
|
1058
|
+
]
|
|
1059
|
+
},
|
|
1060
|
+
"timing": {
|
|
1061
|
+
"tokens": [
|
|
1062
|
+
{
|
|
1063
|
+
"name": "ow-duration-fast",
|
|
1064
|
+
"value": "120ms",
|
|
1065
|
+
"usage": "Small colour changes."
|
|
1066
|
+
},
|
|
1067
|
+
{
|
|
1068
|
+
"name": "ow-duration-base",
|
|
1069
|
+
"value": "180ms",
|
|
1070
|
+
"usage": "Hover, press, focus and form transitions."
|
|
1071
|
+
},
|
|
1072
|
+
{
|
|
1073
|
+
"name": "ow-duration-slow",
|
|
1074
|
+
"value": "260ms",
|
|
1075
|
+
"usage": "Menus, panels and messages entering."
|
|
1076
|
+
},
|
|
1077
|
+
{
|
|
1078
|
+
"name": "ow-duration-exit",
|
|
1079
|
+
"value": "140ms",
|
|
1080
|
+
"usage": "Menus, popovers, tooltips and dialogs leaving: exits are quicker than entrances."
|
|
1081
|
+
},
|
|
1082
|
+
{
|
|
1083
|
+
"name": "ow-duration-panel",
|
|
1084
|
+
"value": "340ms",
|
|
1085
|
+
"usage": "Drawers sliding in, accordions opening: large things that travel further."
|
|
1086
|
+
},
|
|
1087
|
+
{
|
|
1088
|
+
"name": "ow-ease-standard",
|
|
1089
|
+
"value": "cubic-bezier(0.2, 0, 0, 1)",
|
|
1090
|
+
"usage": "Every UI transition."
|
|
1091
|
+
},
|
|
1092
|
+
{
|
|
1093
|
+
"name": "ow-ease-emphasized",
|
|
1094
|
+
"value": "cubic-bezier(0.16, 1, 0.3, 1)",
|
|
1095
|
+
"usage": "Things entering: menus, panels, messages."
|
|
1096
|
+
},
|
|
1097
|
+
{
|
|
1098
|
+
"name": "ow-ease-exit",
|
|
1099
|
+
"value": "cubic-bezier(0.4, 0, 1, 1)",
|
|
1100
|
+
"usage": "Things leaving: they speed up as they go."
|
|
1101
|
+
},
|
|
1102
|
+
{
|
|
1103
|
+
"name": "ow-ease-spring",
|
|
1104
|
+
"value": "cubic-bezier(0.34, 1.4, 0.64, 1)",
|
|
1105
|
+
"usage": "Switch knobs, sliding indicators and check marks: a small overshoot that settles."
|
|
1106
|
+
}
|
|
1107
|
+
]
|
|
1108
|
+
},
|
|
1109
|
+
"weight": {
|
|
1110
|
+
"tokens": [
|
|
1111
|
+
{
|
|
1112
|
+
"name": "ow-weight-regular",
|
|
1113
|
+
"value": "400",
|
|
1114
|
+
"usage": "Body text and field values."
|
|
1115
|
+
},
|
|
1116
|
+
{
|
|
1117
|
+
"name": "ow-weight-control",
|
|
1118
|
+
"value": "500",
|
|
1119
|
+
"usage": "Menu items, option descriptions, nav labels."
|
|
1120
|
+
},
|
|
1121
|
+
{
|
|
1122
|
+
"name": "ow-weight-emphasis",
|
|
1123
|
+
"value": "600",
|
|
1124
|
+
"usage": "Labels, selected options, card titles."
|
|
1125
|
+
},
|
|
1126
|
+
{
|
|
1127
|
+
"name": "ow-weight-label",
|
|
1128
|
+
"value": "680",
|
|
1129
|
+
"usage": "Small strong labels."
|
|
1130
|
+
},
|
|
1131
|
+
{
|
|
1132
|
+
"name": "ow-weight-heavy",
|
|
1133
|
+
"value": "700",
|
|
1134
|
+
"usage": "Heavy emphasis."
|
|
1135
|
+
},
|
|
1136
|
+
{
|
|
1137
|
+
"name": "ow-weight-title",
|
|
1138
|
+
"value": "720",
|
|
1139
|
+
"usage": "App section titles."
|
|
1140
|
+
},
|
|
1141
|
+
{
|
|
1142
|
+
"name": "ow-weight-action",
|
|
1143
|
+
"value": "730",
|
|
1144
|
+
"usage": "Button labels."
|
|
1145
|
+
},
|
|
1146
|
+
{
|
|
1147
|
+
"name": "ow-weight-subheading",
|
|
1148
|
+
"value": "740",
|
|
1149
|
+
"usage": "App subheadings."
|
|
1150
|
+
},
|
|
1151
|
+
{
|
|
1152
|
+
"name": "ow-weight-strong",
|
|
1153
|
+
"value": "750",
|
|
1154
|
+
"usage": "Badge labels."
|
|
1155
|
+
},
|
|
1156
|
+
{
|
|
1157
|
+
"name": "ow-weight-display",
|
|
1158
|
+
"value": "760",
|
|
1159
|
+
"usage": "Dialog titles and app headings."
|
|
1160
|
+
}
|
|
1161
|
+
]
|
|
1162
|
+
}
|
|
1163
|
+
}
|