I am working with Gatsby and have some code in my gatsby-browswer.js file which is importing a theme, but the changes don’t reflect on my webpage.
My gatsby-browser file:
import React from "react"
import { createGlobalStyle, ThemeProvider } from "styled-components"
import Theme from "./src/themes/theme"
const GlobalStyle = createGlobalStyle`
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
html, body {
font-family: ${props => props.theme.fonts.main};
height: 100%;
background-color: ${props => props.theme.colors.light1};
}
`
export const wrappedRootElement = ({ element }) => (
<ThemeProvider theme={Theme}>
<GlobalStyle />
{element}
</ThemeProvider>
)My theme file:
export default {
fonts: {
main: "Muli, sans-serif",
code: "Roboto Mono, monospace",
},
colors: {
main1: "hsl(207, 70%, 59%)",
main2: "hsl(207, 70%, 94%)",
dark1: "hsl(227, 2%, 12%)",
dark2: "hsl(227, 2%, 26%)",
dark3: "hsl(227, 2%, 64%)",
light1: "hsl(0, 0%, 97%)",
light2: "hsl(0, 0%, 99%)",
},
breakpoints: {
mobile: "only screen and (max-width: 50rem)",
tablet: "only screen and (max-width: 65rem)",
},
spacings: {
xxSmall: ".25rem",
xSmall: ".5rem",
small: "1rem",
medium: "2rem",
large: "3rem",
xLarge: "4rem",
xxLarge: "6rem",
},
animations: {
button: "box-shadow 0.3s ease",
link: "color 0.2s ease",
},
shadows: {
shadow1: "0px 5px 20px rgba(30, 30, 31, 0.05)",
},
}The page is a very simple “Hello World”, but when I check the font and everything else on the webpage, they seem to be the default ones.
Advertisement
Answer
The exported function should be called wrapRootElement instead of wrappedRootElement.