@basic-ui/material 1.0.0-alpha.44 → 1.0.0-alpha.46

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.
Files changed (55) hide show
  1. package/build/cjs/index.js +51 -6
  2. package/build/cjs/index.js.map +1 -1
  3. package/build/esm/Alert/Alert.d.ts +1 -1
  4. package/build/esm/Alert/Alert.js.map +1 -1
  5. package/build/esm/AppBar/AppBarButton.d.ts +1 -1
  6. package/build/esm/BottomSheet/BottomSheet.d.ts +1 -1
  7. package/build/esm/BottomSheet/BottomSheetSurface.d.ts +1 -1
  8. package/build/esm/Button/Button.d.ts +1 -1
  9. package/build/esm/Button/ButtonGroup.d.ts +1 -1
  10. package/build/esm/Button/ButtonGroup.js.map +1 -1
  11. package/build/esm/Button/FilledButton.d.ts +1 -1
  12. package/build/esm/Button/FilledButton.js +17 -2
  13. package/build/esm/Button/FilledButton.js.map +1 -1
  14. package/build/esm/Button/OutlinedButton.d.ts +1 -1
  15. package/build/esm/Button/OutlinedButton.js +17 -2
  16. package/build/esm/Button/OutlinedButton.js.map +1 -1
  17. package/build/esm/Button/TransparentButton.d.ts +1 -1
  18. package/build/esm/Button/TransparentButton.js +17 -2
  19. package/build/esm/Button/TransparentButton.js.map +1 -1
  20. package/build/esm/CheckBox/CheckBox.d.ts +1 -1
  21. package/build/esm/Chip/ButtonChip.d.ts +1 -1
  22. package/build/esm/Chip/ChoiceChip.d.ts +1 -1
  23. package/build/esm/Combobox/Combobox.d.ts +7 -7
  24. package/build/esm/Dialog/Dialog.d.ts +1 -1
  25. package/build/esm/Dialog/DialogBackdrop.d.ts +1 -1
  26. package/build/esm/Dialog/DialogSurface.d.ts +1 -1
  27. package/build/esm/Menu/Menu.d.ts +5 -5
  28. package/build/esm/NavRail/NavRailItem.d.ts +3 -3
  29. package/build/esm/Popover/Popover.d.ts +1 -1
  30. package/build/esm/Popover/PopoverSurface.d.ts +1 -1
  31. package/build/esm/RadioButton/RadioGroup.d.ts +1 -1
  32. package/build/esm/Select/CustomContainerExample.d.ts +1 -1
  33. package/build/esm/Slider/Slider.d.ts +6 -6
  34. package/build/esm/Snackbar/Snackbar.d.ts +1 -1
  35. package/build/esm/Switch/Switch.d.ts +1 -1
  36. package/build/esm/Tab/Tab.d.ts +1 -1
  37. package/build/esm/Tab/TabList.d.ts +1 -1
  38. package/build/esm/Tab/TabPanel.d.ts +1 -1
  39. package/build/esm/TabIndicator/TabIndicator.d.ts +1 -1
  40. package/build/esm/Table/TableHead.d.ts +1 -1
  41. package/build/esm/TextField/TextField.d.ts +1 -1
  42. package/build/esm/Tooltip/Tooltip.d.ts +1 -1
  43. package/build/esm/color.js.map +1 -1
  44. package/build/esm/theme/theme.js.map +1 -1
  45. package/build/tsconfig-build.tsbuildinfo +1 -1
  46. package/package.json +3 -3
  47. package/src/Alert/Alert.story.tsx +28 -28
  48. package/src/Alert/Alert.tsx +33 -33
  49. package/src/Button/ButtonGroup.story.tsx +131 -106
  50. package/src/Button/ButtonGroup.tsx +35 -35
  51. package/src/Button/FilledButton.tsx +16 -1
  52. package/src/Button/OutlinedButton.tsx +62 -47
  53. package/src/Button/TransparentButton.tsx +16 -1
  54. package/src/color.ts +84 -84
  55. package/src/theme/theme.ts +499 -499
@@ -1,499 +1,499 @@
1
- // material theme preset
2
- // work-in-progress
3
-
4
- // references
5
- // - https://material.io/design/typography/the-type-system.html#type-scale
6
- import { rem, em } from 'polished';
7
-
8
- import { EASING_STANDARD } from '../motion';
9
-
10
- function font(
11
- fontFamily: 'plain' | 'brand',
12
- lineHeight: number,
13
- fontSize: number,
14
- letterSpacing: number,
15
- weight: number
16
- ) {
17
- return {
18
- fontFamily,
19
- lineHeight: rem(lineHeight),
20
- fontSize: rem(fontSize),
21
- letterSpacing: rem(letterSpacing),
22
- fontWeight: weight,
23
- };
24
- }
25
-
26
- export const theme = {
27
- googleFonts:
28
- 'https://fonts.googleapis.com/css?family=Roboto+Mono|Roboto:300,400,500,600,700&display=swap',
29
- colors: {
30
- primary: '#934078',
31
- secondary: '#705765',
32
- tertiary: '#80543e',
33
- error: '#ba1b1b',
34
- 'primary-container': '#ffd7ed',
35
- 'secondary-container': '#fbd9ea',
36
- 'tertiary-container': '#ffdbc9',
37
- 'error-container': '#ffdad4',
38
- background: '#fcfcfc',
39
- surface: '#fcfcfc',
40
- 'surface-variant': '#efdee5',
41
- outline: '#81747a',
42
- 'outline-variant': '#d3c2c9',
43
- on: {
44
- primary: '#ffffff',
45
- secondary: '#ffffff',
46
- tertiary: '#ffffff',
47
- error: '#ffffff',
48
- 'primary-container': '#3b002d',
49
- 'secondary-container': '#291521',
50
- 'tertiary-container': '#321303',
51
- 'error-container': '#410001',
52
- background: '#1f1a1c',
53
- surface: '#1f1a1c',
54
- 'surface-variant': '#4f4349',
55
- outline: '#feecf3',
56
- 'outline-variant': '#22191e',
57
- },
58
- modes: {
59
- dark: {
60
- primary: '#ffade0',
61
- secondary: '#debece',
62
- tertiary: '#f4ba9e',
63
- error: '#ffb4a9',
64
- 'primary-container': '#77285f',
65
- 'secondary-container': '#57404d',
66
- 'tertiary-container': '#653d28',
67
- 'error-container': '#930006',
68
- background: '#1f1a1c',
69
- surface: '#1f1a1c',
70
- 'surface-variant': '#4f4349',
71
- outline: '#9b8d93',
72
- 'outline-variant': '#4f4349',
73
- on: {
74
- primary: '#5b0e47',
75
- secondary: '#402a37',
76
- tertiary: '#4b2714',
77
- error: '#680003',
78
- 'primary-container': '#ffd7ed',
79
- 'secondary-container': '#fbd9ea',
80
- 'tertiary-container': '#ffdbc9',
81
- 'error-container': '#ffdad4',
82
- background: '#eae0e3',
83
- surface: '#eae0e3',
84
- 'surface-variant': '#d3c2c9',
85
- outline: '#22191e',
86
- 'outline-variant': '#efdee5',
87
- },
88
- },
89
- },
90
- },
91
- sizes: {
92
- icon: rem(24),
93
- avatar: rem(48),
94
- },
95
- radii: {
96
- none: 0,
97
- default: rem(4),
98
- 'extra-small': rem(4),
99
- 'extra-small_top': `${rem(4)} ${rem(4)} 0 0`,
100
- small: rem(8),
101
- medium: rem(12),
102
- large: rem(16),
103
- large_end: `0 ${rem(16)} ${rem(16)} 0`,
104
- large_top: `${rem(16)} ${rem(16)} 0 0`,
105
- 'extra-large': rem(28),
106
- 'extra-large_top': `${rem(28)} ${rem(28)} 0 0`,
107
- full: rem(99999),
108
- circle: '100%',
109
- },
110
- shadows: {
111
- 0: '0 0 0 0 rgba(0,0,0,0.2),0 0 0 0 rgba(0,0,0,0.14),0 0 0 0 rgba(0,0,0,0.12)',
112
- 1: '0 1px 2px rgba(0,0,0,0.3),0 1px 3px 1px rgba(0,0,0,0.15)',
113
- 2: '0 1px 2px rgba(0,0,0,0.3),0 2px 6px 2px rgba(0,0,0,0.15)',
114
- 3: '0 1px 3px rgba(0,0,0,0.3),0 4px 8px 3px rgba(0,0,0,0.15)',
115
- 4: '0 2px 3px rgba(0,0,0,0.3),0 6px 10px 4px rgba(0,0,0,0.15)',
116
- 5: '0 4px 4px rgba(0,0,0,0.3),0 8px 12px 6px rgba(0,0,0,0.15)',
117
- },
118
- fonts: {
119
- body: 'Roboto, sans-serif',
120
- heading: 'Roboto, sans-serif',
121
- brand: 'Roboto, sans-serif',
122
- plain: 'Roboto, sans-serif',
123
- monospace: '"Roboto Mono", monospace',
124
- },
125
- fontSizes: {
126
- 0: rem(10),
127
- 1: rem(12),
128
- 2: rem(14),
129
- 3: rem(16),
130
- 4: rem(20),
131
- 5: rem(24),
132
- 6: rem(34),
133
- 7: rem(48),
134
- 8: rem(60),
135
- 9: rem(96),
136
- },
137
- fontWeights: {
138
- light: 300,
139
- regular: 400,
140
- medium: 500,
141
- },
142
- lineHeights: {
143
- body: 1.43,
144
- heading: 1.2,
145
- },
146
- space: {
147
- 0: rem(0),
148
- 1: rem(4),
149
- 2: rem(8),
150
- 3: rem(16),
151
- 4: rem(32),
152
- 5: rem(64),
153
- 6: rem(128),
154
- 7: rem(256),
155
- 8: rem(512),
156
- },
157
- text: {
158
- caps: {
159
- textTransform: 'uppercase',
160
- fontFamily: 'body',
161
- lineHeight: 'body',
162
- letterSpacing: '0.1em',
163
- },
164
- heading: {
165
- fontFamily: 'heading',
166
- lineHeight: 'heading',
167
- },
168
- display: {
169
- fontFamily: 'body',
170
- lineHeight: 'body',
171
- },
172
- 'display-large': font('brand', 64, 57, -0.25, 400),
173
- 'display-medium': font('brand', 52, 45, 0, 400),
174
- 'display-small': font('brand', 44, 36, 0, 400),
175
- 'headline-large': font('brand', 40, 32, 0, 400),
176
- 'headline-medium': font('brand', 36, 28, 0, 400),
177
- 'headline-small': font('brand', 32, 24, 0, 400),
178
- 'title-large': font('brand', 28, 22, 0, 400),
179
- 'title-medium': font('plain', 24, 16, 0.15, 500),
180
- 'title-small': font('plain', 20, 14, 0.1, 500),
181
- 'label-large': font('plain', 20, 14, 0.1, 500),
182
- 'label-medium': font('plain', 16, 12, 0.5, 500),
183
- 'label-small': font('plain', 15, 11, 0.5, 500),
184
- 'body-large': font('plain', 24, 16, 0.5, 400),
185
- 'body-medium': font('plain', 20, 14, 0.25, 400),
186
- 'body-small': font('plain', 16, 12, 0.4, 400),
187
- h1: {
188
- variant: 'text.heading',
189
- fontWeight: 'light',
190
- fontSize: 9,
191
- letterSpacing: em(-1.5, 96),
192
- },
193
- h2: {
194
- variant: 'text.heading',
195
- fontWeight: 'light',
196
- fontSize: 8,
197
- letterSpacing: em(-0.5, 60),
198
- },
199
- h3: {
200
- variant: 'text.heading',
201
- fontWeight: 'regular',
202
- fontSize: 7,
203
- letterSpacing: em(0, 48),
204
- },
205
- h4: {
206
- variant: 'text.heading',
207
- fontWeight: 'regular',
208
- fontSize: 6,
209
- letterSpacing: em(0.25, 34),
210
- },
211
- h5: {
212
- variant: 'text.heading',
213
- fontWeight: 'regular',
214
- fontSize: 5,
215
- letterSpacing: em(0, 24),
216
- },
217
- h6: {
218
- variant: 'text.heading',
219
- fontWeight: 'medium',
220
- fontSize: 4,
221
- letterSpacing: em(0.15, 20),
222
- },
223
- subtitle1: {
224
- variant: 'text.heading',
225
- fontWeight: 'regular',
226
- fontSize: 3,
227
- letterSpacing: em(0.15, 16),
228
- },
229
- subtitle2: {
230
- variant: 'text.heading',
231
- fontWeight: 'medium',
232
- fontSize: 2,
233
- letterSpacing: em(0.1, 14),
234
- },
235
- body1: {
236
- variant: 'text.display',
237
- fontWeight: 'regular',
238
- fontSize: 3,
239
- letterSpacing: em(0.5, 16),
240
- },
241
- body2: {
242
- variant: 'text.display',
243
- fontWeight: 'regular',
244
- fontSize: 2,
245
- letterSpacing: em(0.25, 14),
246
- },
247
- button: {
248
- variant: 'text.display',
249
- fontSize: 2,
250
- letterSpacing: em(1.2, 14),
251
- fontWeight: 'medium',
252
- },
253
- caption: {
254
- variant: 'text.display',
255
- fontWeight: 'regular',
256
- fontSize: 1,
257
- letterSpacing: em(0.4, 12),
258
- },
259
- overline: {
260
- variant: 'text.caps',
261
- fontWeight: 'medium',
262
- fontSize: 0,
263
- letterSpacing: em(1.5, 10),
264
- },
265
- },
266
- appbar: {
267
- variants: {
268
- base: {
269
- fontFamily: 'body',
270
- fontSize: 4,
271
- },
272
- default: {
273
- variant: 'appbar.variants.base',
274
- backgroundColor: 'surface',
275
- color: 'on.surface',
276
- },
277
- primary: {
278
- variant: 'appbar.variants.base',
279
- backgroundColor: 'primary',
280
- color: 'on.primary',
281
- },
282
- secondary: {
283
- variant: 'appbar.variants.base',
284
- backgroundColor: 'secondary',
285
- color: 'on.secondary',
286
- },
287
- transparent: {
288
- variant: 'appbar.variants.base',
289
- backgroundColor: 'transparent',
290
- color: 'inherit',
291
- },
292
- },
293
- elevations: {
294
- default: {},
295
- elevated: {
296
- boxShadow: 2,
297
- },
298
- },
299
- sizes: {
300
- default: {
301
- height: rem(64),
302
- p: 3,
303
- },
304
- dense: {
305
- height: rem(56),
306
- },
307
- },
308
- },
309
- buttons: {
310
- variants: {
311
- base: {
312
- variant: 'text.label-large',
313
- boxShadow: 'none',
314
- py: 0,
315
- px: rem(24),
316
- height: rem(40),
317
- borderRadius: 'full',
318
- cursor: 'pointer',
319
- outline: 'none',
320
- },
321
- text: {
322
- variant: 'buttons.variants.base',
323
- px: rem(12),
324
- },
325
- filled: {
326
- variant: 'buttons.variants.base',
327
- },
328
- outlined: {
329
- variant: 'buttons.variants.base',
330
- },
331
- fab: {
332
- variant: 'buttons.variants.base',
333
- height: rem(56),
334
- maxHeight: rem(56),
335
- width: rem(56),
336
- maxWidth: rem(56),
337
- borderRadius: 'large',
338
- px: 0,
339
- },
340
- 'fab-mini': {
341
- variant: 'buttons.variants.fab',
342
- height: rem(40),
343
- maxHeight: rem(40),
344
- width: rem(40),
345
- maxWidth: rem(40),
346
- borderRadius: 'medium',
347
- px: 0,
348
- },
349
- 'fab-large': {
350
- variant: 'buttons.variants.fab',
351
- height: rem(96),
352
- maxHeight: rem(96),
353
- width: rem(96),
354
- maxWidth: rem(96),
355
- borderRadius: 'extra-large',
356
- px: 0,
357
- },
358
- 'fab-extended': {
359
- variant: 'buttons.variants.base',
360
- height: rem(56),
361
- px: rem(16),
362
- borderRadius: 'large',
363
- },
364
- icon: {
365
- variant: 'buttons.variants.base',
366
- height: rem(48),
367
- maxHeight: rem(48),
368
- width: rem(48),
369
- maxWidth: rem(48),
370
- px: rem(12),
371
- borderRadius: 'full',
372
- },
373
- },
374
- elevations: {
375
- none: {},
376
- default: {
377
- transition: `box-shadow .28s ${EASING_STANDARD}`,
378
- '&:hover': {
379
- boxShadow: 1,
380
- },
381
- '&:active,&:focus-visible,&:disabled': {
382
- boxShadow: 0,
383
- },
384
- },
385
- elevated: {
386
- transition: `box-shadow .28s ${EASING_STANDARD}`,
387
- boxShadow: 1,
388
- '&:hover': {
389
- boxShadow: 2,
390
- },
391
- '&:active,&:focus-visible': {
392
- boxShadow: 1,
393
- },
394
- '&:disabled,&:disabled:hover,&:disabled:focus,&:disabled:active': {
395
- boxShadow: 0,
396
- },
397
- },
398
- floating: {
399
- transition: `box-shadow .28s ${EASING_STANDARD}`,
400
- boxShadow: 3,
401
- ':hover': {
402
- boxShadow: 4,
403
- },
404
- '&:active,&:focus-visible': {
405
- boxShadow: 3,
406
- },
407
- '&:disabled,&:disabled:hover,&:disabled:focus,&:disabled:active': {
408
- boxShadow: 0,
409
- },
410
- },
411
- },
412
- overlays: {
413
- transparent: {
414
- hover: {
415
- opacity: 0.08,
416
- },
417
- focus: {
418
- opacity: 0.12,
419
- },
420
- pressed: {
421
- opacity: 0.16,
422
- },
423
- },
424
- filled: {
425
- hover: {
426
- opacity: 0.08,
427
- },
428
- focus: {
429
- opacity: 0.12,
430
- },
431
- pressed: {
432
- opacity: 0.16,
433
- },
434
- },
435
- },
436
- },
437
- chips: {
438
- variants: {
439
- base: {
440
- variant: 'text.body2',
441
- boxShadow: 'none',
442
- py: 0,
443
- px: 0,
444
- height: rem(32),
445
- borderRadius: 'small',
446
- outline: 'none',
447
- transition: `box-shadow .28s ${EASING_STANDARD}`,
448
- },
449
- filled: {
450
- variant: 'chips.variants.base',
451
- boxShadow: 1,
452
- ':active:not([data-disabled])': {
453
- boxShadow: 2,
454
- },
455
- },
456
- outlined: {
457
- variant: 'chips.variants.base',
458
- },
459
- },
460
- },
461
- dialogs: {
462
- variants: {
463
- base: {
464
- borderRadius: 'extra-large',
465
- },
466
- },
467
- backgroundColorOverlay: 3,
468
- },
469
- paper: {
470
- overlays: {
471
- 0: 0,
472
- 1: 0.05,
473
- 2: 0.08,
474
- 3: 0.11,
475
- 4: 0.12,
476
- 5: 0.14,
477
- },
478
- },
479
- zIndices: {
480
- appBar: 1100,
481
- drawer: 1200,
482
- dialog: 1300,
483
- snackbar: 1400,
484
- tooltip: 1500,
485
- },
486
- styles: {
487
- root: {
488
- body: {
489
- fontFamily: 'plain',
490
- fontWeight: 'regular',
491
- lineHeight: 'body',
492
- backgroundColor: 'surface',
493
- color: 'on.surface',
494
- },
495
- },
496
- },
497
- };
498
-
499
- export type Theme = typeof theme;
1
+ // material theme preset
2
+ // work-in-progress
3
+
4
+ // references
5
+ // - https://material.io/design/typography/the-type-system.html#type-scale
6
+ import { rem, em } from 'polished';
7
+
8
+ import { EASING_STANDARD } from '../motion';
9
+
10
+ function font(
11
+ fontFamily: 'plain' | 'brand',
12
+ lineHeight: number,
13
+ fontSize: number,
14
+ letterSpacing: number,
15
+ weight: number
16
+ ) {
17
+ return {
18
+ fontFamily,
19
+ lineHeight: rem(lineHeight),
20
+ fontSize: rem(fontSize),
21
+ letterSpacing: rem(letterSpacing),
22
+ fontWeight: weight,
23
+ };
24
+ }
25
+
26
+ export const theme = {
27
+ googleFonts:
28
+ 'https://fonts.googleapis.com/css?family=Roboto+Mono|Roboto:300,400,500,600,700&display=swap',
29
+ colors: {
30
+ primary: '#934078',
31
+ secondary: '#705765',
32
+ tertiary: '#80543e',
33
+ error: '#ba1b1b',
34
+ 'primary-container': '#ffd7ed',
35
+ 'secondary-container': '#fbd9ea',
36
+ 'tertiary-container': '#ffdbc9',
37
+ 'error-container': '#ffdad4',
38
+ background: '#fcfcfc',
39
+ surface: '#fcfcfc',
40
+ 'surface-variant': '#efdee5',
41
+ outline: '#81747a',
42
+ 'outline-variant': '#d3c2c9',
43
+ on: {
44
+ primary: '#ffffff',
45
+ secondary: '#ffffff',
46
+ tertiary: '#ffffff',
47
+ error: '#ffffff',
48
+ 'primary-container': '#3b002d',
49
+ 'secondary-container': '#291521',
50
+ 'tertiary-container': '#321303',
51
+ 'error-container': '#410001',
52
+ background: '#1f1a1c',
53
+ surface: '#1f1a1c',
54
+ 'surface-variant': '#4f4349',
55
+ outline: '#feecf3',
56
+ 'outline-variant': '#22191e',
57
+ },
58
+ modes: {
59
+ dark: {
60
+ primary: '#ffade0',
61
+ secondary: '#debece',
62
+ tertiary: '#f4ba9e',
63
+ error: '#ffb4a9',
64
+ 'primary-container': '#77285f',
65
+ 'secondary-container': '#57404d',
66
+ 'tertiary-container': '#653d28',
67
+ 'error-container': '#930006',
68
+ background: '#1f1a1c',
69
+ surface: '#1f1a1c',
70
+ 'surface-variant': '#4f4349',
71
+ outline: '#9b8d93',
72
+ 'outline-variant': '#4f4349',
73
+ on: {
74
+ primary: '#5b0e47',
75
+ secondary: '#402a37',
76
+ tertiary: '#4b2714',
77
+ error: '#680003',
78
+ 'primary-container': '#ffd7ed',
79
+ 'secondary-container': '#fbd9ea',
80
+ 'tertiary-container': '#ffdbc9',
81
+ 'error-container': '#ffdad4',
82
+ background: '#eae0e3',
83
+ surface: '#eae0e3',
84
+ 'surface-variant': '#d3c2c9',
85
+ outline: '#22191e',
86
+ 'outline-variant': '#efdee5',
87
+ },
88
+ },
89
+ },
90
+ },
91
+ sizes: {
92
+ icon: rem(24),
93
+ avatar: rem(48),
94
+ },
95
+ radii: {
96
+ none: 0,
97
+ default: rem(4),
98
+ 'extra-small': rem(4),
99
+ 'extra-small_top': `${rem(4)} ${rem(4)} 0 0`,
100
+ small: rem(8),
101
+ medium: rem(12),
102
+ large: rem(16),
103
+ large_end: `0 ${rem(16)} ${rem(16)} 0`,
104
+ large_top: `${rem(16)} ${rem(16)} 0 0`,
105
+ 'extra-large': rem(28),
106
+ 'extra-large_top': `${rem(28)} ${rem(28)} 0 0`,
107
+ full: rem(99999),
108
+ circle: '100%',
109
+ },
110
+ shadows: {
111
+ 0: '0 0 0 0 rgba(0,0,0,0.2),0 0 0 0 rgba(0,0,0,0.14),0 0 0 0 rgba(0,0,0,0.12)',
112
+ 1: '0 1px 2px rgba(0,0,0,0.3),0 1px 3px 1px rgba(0,0,0,0.15)',
113
+ 2: '0 1px 2px rgba(0,0,0,0.3),0 2px 6px 2px rgba(0,0,0,0.15)',
114
+ 3: '0 1px 3px rgba(0,0,0,0.3),0 4px 8px 3px rgba(0,0,0,0.15)',
115
+ 4: '0 2px 3px rgba(0,0,0,0.3),0 6px 10px 4px rgba(0,0,0,0.15)',
116
+ 5: '0 4px 4px rgba(0,0,0,0.3),0 8px 12px 6px rgba(0,0,0,0.15)',
117
+ },
118
+ fonts: {
119
+ body: 'Roboto, sans-serif',
120
+ heading: 'Roboto, sans-serif',
121
+ brand: 'Roboto, sans-serif',
122
+ plain: 'Roboto, sans-serif',
123
+ monospace: '"Roboto Mono", monospace',
124
+ },
125
+ fontSizes: {
126
+ 0: rem(10),
127
+ 1: rem(12),
128
+ 2: rem(14),
129
+ 3: rem(16),
130
+ 4: rem(20),
131
+ 5: rem(24),
132
+ 6: rem(34),
133
+ 7: rem(48),
134
+ 8: rem(60),
135
+ 9: rem(96),
136
+ },
137
+ fontWeights: {
138
+ light: 300,
139
+ regular: 400,
140
+ medium: 500,
141
+ },
142
+ lineHeights: {
143
+ body: 1.43,
144
+ heading: 1.2,
145
+ },
146
+ space: {
147
+ 0: rem(0),
148
+ 1: rem(4),
149
+ 2: rem(8),
150
+ 3: rem(16),
151
+ 4: rem(32),
152
+ 5: rem(64),
153
+ 6: rem(128),
154
+ 7: rem(256),
155
+ 8: rem(512),
156
+ },
157
+ text: {
158
+ caps: {
159
+ textTransform: 'uppercase',
160
+ fontFamily: 'body',
161
+ lineHeight: 'body',
162
+ letterSpacing: '0.1em',
163
+ },
164
+ heading: {
165
+ fontFamily: 'heading',
166
+ lineHeight: 'heading',
167
+ },
168
+ display: {
169
+ fontFamily: 'body',
170
+ lineHeight: 'body',
171
+ },
172
+ 'display-large': font('brand', 64, 57, -0.25, 400),
173
+ 'display-medium': font('brand', 52, 45, 0, 400),
174
+ 'display-small': font('brand', 44, 36, 0, 400),
175
+ 'headline-large': font('brand', 40, 32, 0, 400),
176
+ 'headline-medium': font('brand', 36, 28, 0, 400),
177
+ 'headline-small': font('brand', 32, 24, 0, 400),
178
+ 'title-large': font('brand', 28, 22, 0, 400),
179
+ 'title-medium': font('plain', 24, 16, 0.15, 500),
180
+ 'title-small': font('plain', 20, 14, 0.1, 500),
181
+ 'label-large': font('plain', 20, 14, 0.1, 500),
182
+ 'label-medium': font('plain', 16, 12, 0.5, 500),
183
+ 'label-small': font('plain', 15, 11, 0.5, 500),
184
+ 'body-large': font('plain', 24, 16, 0.5, 400),
185
+ 'body-medium': font('plain', 20, 14, 0.25, 400),
186
+ 'body-small': font('plain', 16, 12, 0.4, 400),
187
+ h1: {
188
+ variant: 'text.heading',
189
+ fontWeight: 'light',
190
+ fontSize: 9,
191
+ letterSpacing: em(-1.5, 96),
192
+ },
193
+ h2: {
194
+ variant: 'text.heading',
195
+ fontWeight: 'light',
196
+ fontSize: 8,
197
+ letterSpacing: em(-0.5, 60),
198
+ },
199
+ h3: {
200
+ variant: 'text.heading',
201
+ fontWeight: 'regular',
202
+ fontSize: 7,
203
+ letterSpacing: em(0, 48),
204
+ },
205
+ h4: {
206
+ variant: 'text.heading',
207
+ fontWeight: 'regular',
208
+ fontSize: 6,
209
+ letterSpacing: em(0.25, 34),
210
+ },
211
+ h5: {
212
+ variant: 'text.heading',
213
+ fontWeight: 'regular',
214
+ fontSize: 5,
215
+ letterSpacing: em(0, 24),
216
+ },
217
+ h6: {
218
+ variant: 'text.heading',
219
+ fontWeight: 'medium',
220
+ fontSize: 4,
221
+ letterSpacing: em(0.15, 20),
222
+ },
223
+ subtitle1: {
224
+ variant: 'text.heading',
225
+ fontWeight: 'regular',
226
+ fontSize: 3,
227
+ letterSpacing: em(0.15, 16),
228
+ },
229
+ subtitle2: {
230
+ variant: 'text.heading',
231
+ fontWeight: 'medium',
232
+ fontSize: 2,
233
+ letterSpacing: em(0.1, 14),
234
+ },
235
+ body1: {
236
+ variant: 'text.display',
237
+ fontWeight: 'regular',
238
+ fontSize: 3,
239
+ letterSpacing: em(0.5, 16),
240
+ },
241
+ body2: {
242
+ variant: 'text.display',
243
+ fontWeight: 'regular',
244
+ fontSize: 2,
245
+ letterSpacing: em(0.25, 14),
246
+ },
247
+ button: {
248
+ variant: 'text.display',
249
+ fontSize: 2,
250
+ letterSpacing: em(1.2, 14),
251
+ fontWeight: 'medium',
252
+ },
253
+ caption: {
254
+ variant: 'text.display',
255
+ fontWeight: 'regular',
256
+ fontSize: 1,
257
+ letterSpacing: em(0.4, 12),
258
+ },
259
+ overline: {
260
+ variant: 'text.caps',
261
+ fontWeight: 'medium',
262
+ fontSize: 0,
263
+ letterSpacing: em(1.5, 10),
264
+ },
265
+ },
266
+ appbar: {
267
+ variants: {
268
+ base: {
269
+ fontFamily: 'body',
270
+ fontSize: 4,
271
+ },
272
+ default: {
273
+ variant: 'appbar.variants.base',
274
+ backgroundColor: 'surface',
275
+ color: 'on.surface',
276
+ },
277
+ primary: {
278
+ variant: 'appbar.variants.base',
279
+ backgroundColor: 'primary',
280
+ color: 'on.primary',
281
+ },
282
+ secondary: {
283
+ variant: 'appbar.variants.base',
284
+ backgroundColor: 'secondary',
285
+ color: 'on.secondary',
286
+ },
287
+ transparent: {
288
+ variant: 'appbar.variants.base',
289
+ backgroundColor: 'transparent',
290
+ color: 'inherit',
291
+ },
292
+ },
293
+ elevations: {
294
+ default: {},
295
+ elevated: {
296
+ boxShadow: 2,
297
+ },
298
+ },
299
+ sizes: {
300
+ default: {
301
+ height: rem(64),
302
+ p: 3,
303
+ },
304
+ dense: {
305
+ height: rem(56),
306
+ },
307
+ },
308
+ },
309
+ buttons: {
310
+ variants: {
311
+ base: {
312
+ variant: 'text.label-large',
313
+ boxShadow: 'none',
314
+ py: 0,
315
+ px: rem(24),
316
+ height: rem(40),
317
+ borderRadius: 'full',
318
+ cursor: 'pointer',
319
+ outline: 'none',
320
+ },
321
+ text: {
322
+ variant: 'buttons.variants.base',
323
+ px: rem(12),
324
+ },
325
+ filled: {
326
+ variant: 'buttons.variants.base',
327
+ },
328
+ outlined: {
329
+ variant: 'buttons.variants.base',
330
+ },
331
+ fab: {
332
+ variant: 'buttons.variants.base',
333
+ height: rem(56),
334
+ maxHeight: rem(56),
335
+ width: rem(56),
336
+ maxWidth: rem(56),
337
+ borderRadius: 'large',
338
+ px: 0,
339
+ },
340
+ 'fab-mini': {
341
+ variant: 'buttons.variants.fab',
342
+ height: rem(40),
343
+ maxHeight: rem(40),
344
+ width: rem(40),
345
+ maxWidth: rem(40),
346
+ borderRadius: 'medium',
347
+ px: 0,
348
+ },
349
+ 'fab-large': {
350
+ variant: 'buttons.variants.fab',
351
+ height: rem(96),
352
+ maxHeight: rem(96),
353
+ width: rem(96),
354
+ maxWidth: rem(96),
355
+ borderRadius: 'extra-large',
356
+ px: 0,
357
+ },
358
+ 'fab-extended': {
359
+ variant: 'buttons.variants.base',
360
+ height: rem(56),
361
+ px: rem(16),
362
+ borderRadius: 'large',
363
+ },
364
+ icon: {
365
+ variant: 'buttons.variants.base',
366
+ height: rem(48),
367
+ maxHeight: rem(48),
368
+ width: rem(48),
369
+ maxWidth: rem(48),
370
+ px: rem(12),
371
+ borderRadius: 'full',
372
+ },
373
+ },
374
+ elevations: {
375
+ none: {},
376
+ default: {
377
+ transition: `box-shadow .28s ${EASING_STANDARD}`,
378
+ '&:hover': {
379
+ boxShadow: 1,
380
+ },
381
+ '&:active,&:focus-visible,&:disabled': {
382
+ boxShadow: 0,
383
+ },
384
+ },
385
+ elevated: {
386
+ transition: `box-shadow .28s ${EASING_STANDARD}`,
387
+ boxShadow: 1,
388
+ '&:hover': {
389
+ boxShadow: 2,
390
+ },
391
+ '&:active,&:focus-visible': {
392
+ boxShadow: 1,
393
+ },
394
+ '&:disabled,&:disabled:hover,&:disabled:focus,&:disabled:active': {
395
+ boxShadow: 0,
396
+ },
397
+ },
398
+ floating: {
399
+ transition: `box-shadow .28s ${EASING_STANDARD}`,
400
+ boxShadow: 3,
401
+ ':hover': {
402
+ boxShadow: 4,
403
+ },
404
+ '&:active,&:focus-visible': {
405
+ boxShadow: 3,
406
+ },
407
+ '&:disabled,&:disabled:hover,&:disabled:focus,&:disabled:active': {
408
+ boxShadow: 0,
409
+ },
410
+ },
411
+ },
412
+ overlays: {
413
+ transparent: {
414
+ hover: {
415
+ opacity: 0.08,
416
+ },
417
+ focus: {
418
+ opacity: 0.12,
419
+ },
420
+ pressed: {
421
+ opacity: 0.16,
422
+ },
423
+ },
424
+ filled: {
425
+ hover: {
426
+ opacity: 0.08,
427
+ },
428
+ focus: {
429
+ opacity: 0.12,
430
+ },
431
+ pressed: {
432
+ opacity: 0.16,
433
+ },
434
+ },
435
+ },
436
+ },
437
+ chips: {
438
+ variants: {
439
+ base: {
440
+ variant: 'text.body2',
441
+ boxShadow: 'none',
442
+ py: 0,
443
+ px: 0,
444
+ height: rem(32),
445
+ borderRadius: 'small',
446
+ outline: 'none',
447
+ transition: `box-shadow .28s ${EASING_STANDARD}`,
448
+ },
449
+ filled: {
450
+ variant: 'chips.variants.base',
451
+ boxShadow: 1,
452
+ ':active:not([data-disabled])': {
453
+ boxShadow: 2,
454
+ },
455
+ },
456
+ outlined: {
457
+ variant: 'chips.variants.base',
458
+ },
459
+ },
460
+ },
461
+ dialogs: {
462
+ variants: {
463
+ base: {
464
+ borderRadius: 'extra-large',
465
+ },
466
+ },
467
+ backgroundColorOverlay: 3,
468
+ },
469
+ paper: {
470
+ overlays: {
471
+ 0: 0,
472
+ 1: 0.05,
473
+ 2: 0.08,
474
+ 3: 0.11,
475
+ 4: 0.12,
476
+ 5: 0.14,
477
+ },
478
+ },
479
+ zIndices: {
480
+ appBar: 1100,
481
+ drawer: 1200,
482
+ dialog: 1300,
483
+ snackbar: 1400,
484
+ tooltip: 1500,
485
+ },
486
+ styles: {
487
+ root: {
488
+ body: {
489
+ fontFamily: 'plain',
490
+ fontWeight: 'regular',
491
+ lineHeight: 'body',
492
+ backgroundColor: 'surface',
493
+ color: 'on.surface',
494
+ },
495
+ },
496
+ },
497
+ };
498
+
499
+ export type Theme = typeof theme;