I read a lots article of writing a toggle to change the theme. For a beginner, this is entire too difficult to understand multiple files and code.
I'm going to show you guys a simple way to change the by using useState and styled-components π π
Here is my step:
Step 1 :
Install styled-components, we need this library.
npm install --save styled-components
Step 2:
Import these things, you will use useState later π
import { ThemeProvider } from "styled-components";
import { createGlobalStyle } from "styled-components";
import { useState } from "react";
Step 3:
Initialize the Dark and Light
Simply define our lovely variable π:
const [theme, setTheme] = useState("light");
const light = {
body: "#E2E2E2" // you can change to any color you like
};
const dark = {
body: "#363537" // you can change to any color you like
};
const GlobalStyle = createGlobalStyle`
body{
background: ${({ theme }) => theme.body};
}
`;
Step 4:
Return
import "./styles.css";
import { ThemeProvider } from "styled-components";
import { createGlobalStyle } from "styled-components";
import { useState } from "react";
export default function App() {
const [theme, setTheme] = useState("light");
const light = {
body: "#E2E2E2"
};
const dark = {
body: "#363537"
};
const GlobalStyle = createGlobalStyle`
body{
background: ${({ theme }) => theme.body};
}
`;
return (
<ThemeProvider theme={theme === "light" ? dark : light}>
<GlobalStyle />
<button
onClick={() => {
if (theme === "light") {
setTheme("dark");
} else {
setTheme("light");
}
}}
>
change
</button>
</ThemeProvider>
);
}
Top comments (0)