fix: fix dark mode flickering
This commit is contained in:
parent
4bfd8abd18
commit
ee48346430
1 changed files with 15 additions and 19 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
import * as React from "react"
|
import * as React from "react"
|
||||||
import { ReactNode, useMemo } from "react"
|
import { ReactNode, useMemo } from "react"
|
||||||
import { AppBar, Box, Button, Container, createTheme, CssBaseline, Link, ThemeProvider, Toolbar, Typography, useMediaQuery, useTheme } from "@mui/material"
|
import { AppBar, Box, Button, Container, experimental_extendTheme as extendTheme, CssBaseline, Link, Toolbar, Typography, useTheme, Experimental_CssVarsProvider as CssVarsProvider, getInitColorSchemeScript } from "@mui/material"
|
||||||
import CodeIcon from "@mui/icons-material/Code"
|
import CodeIcon from "@mui/icons-material/Code"
|
||||||
import { Link as GatsbyLink } from "gatsby"
|
import { Link as GatsbyLink } from "gatsby"
|
||||||
import { Footer } from "../atoms/Footer"
|
import { Footer } from "../atoms/Footer"
|
||||||
|
|
@ -74,27 +74,23 @@ const Layout = ({ pageTitle, preTitle, children }: LayoutProps) => {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const theme = extendTheme({
|
||||||
|
colorSchemes: {
|
||||||
|
light: {},
|
||||||
|
dark: {},
|
||||||
|
},
|
||||||
|
typography: {
|
||||||
|
h1: { fontSize: 48, paddingBottom: 20 },
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
const AppLayout = (props: LayoutProps) => {
|
const AppLayout = (props: LayoutProps) => {
|
||||||
const prefersDarkMode = useMediaQuery('(prefers-color-scheme: dark)');
|
|
||||||
|
|
||||||
const theme = useMemo(
|
|
||||||
() =>
|
|
||||||
createTheme({
|
|
||||||
palette: {
|
|
||||||
mode: prefersDarkMode ? "dark" : "light",
|
|
||||||
},
|
|
||||||
typography: {
|
|
||||||
h1: { fontSize: 48, paddingBottom: 20 },
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
[prefersDarkMode],
|
|
||||||
);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ThemeProvider theme={theme}>
|
<CssVarsProvider theme={theme} defaultMode="system">
|
||||||
<CssBaseline />
|
{getInitColorSchemeScript({ defaultMode: "system" })}
|
||||||
|
<CssBaseline enableColorScheme />
|
||||||
<Layout {...props} />
|
<Layout {...props} />
|
||||||
</ThemeProvider>
|
</CssVarsProvider>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue