forked from mui/material-ui
-
Notifications
You must be signed in to change notification settings - Fork 1
/
BrandingCssVarsProvider.tsx
60 lines (56 loc) · 1.57 KB
/
BrandingCssVarsProvider.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import * as React from 'react';
import { deepmerge } from '@mui/utils';
import {
Experimental_CssVarsProvider as CssVarsProvider,
experimental_extendTheme as extendTheme,
PaletteColorOptions,
} from '@mui/material/styles';
import CssBaseline from '@mui/material/CssBaseline';
import { NextNProgressBar } from 'docs/src/modules/components/AppFrame';
import { getDesignTokens, getThemedComponents } from 'docs/src/modules/brandingTheme';
declare module '@mui/material/styles' {
interface PaletteOptions {
primaryDark?: PaletteColorOptions;
}
}
const { palette: lightPalette, typography, ...designTokens } = getDesignTokens('light');
const { palette: darkPalette } = getDesignTokens('dark');
const theme = extendTheme({
cssVarPrefix: 'muidocs',
colorSchemes: {
light: {
palette: lightPalette,
},
dark: {
palette: darkPalette,
},
},
...designTokens,
typography: deepmerge(typography, {
h1: {
':where([data-mui-color-scheme="dark"]) &': {
color: 'initial',
},
},
h2: {
':where([data-mui-color-scheme="dark"]) &': {
color: 'var(--muidocs-palette-grey-100)',
},
},
h5: {
':where([data-mui-color-scheme="dark"]) &': {
color: 'var(--muidocs-palette-primary-300)',
},
},
}),
...getThemedComponents(),
});
export default function BrandingCssVarsProvider({ children }: { children: React.ReactNode }) {
return (
<CssVarsProvider theme={theme} disableTransitionOnChange>
<NextNProgressBar />
<CssBaseline />
{children}
</CssVarsProvider>
);
}