728x90
๋ฐ์ํ
๋ฐ์ํ
๐ฅ๏ธ ThemeProvider ?
์ง์ ๋ ๋์์ธ ์์คํ ์ ๋ชจ๋ ์ฝ๋์์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์ด๋ป๊ฒ ํด์ผํ ๊น !?
๊ทธ๋ ์ฌ์ฉํ๋ ๊ฒ์ด ThemeProvider์ด๋ค.
React ์ปดํฌ๋ํธ์์ ํ ๋ง์ ๋ํ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ์ญํ ์ด๋ผ๊ณ ํ๋ค. ์ด๋ฅผ ์ฌ์ฉํ๋ฉด ํ์ ์ปดํฌ๋ํธ์์ ๊ณตํต theme์ ์ฌ์ฉํ ์ ์๋ค.
์์๊ฐ์ props๋ฅผ ํตํด ์ ๋ฌํ๋ค.
๐ฅ๏ธ ์ด๋ป๊ฒ ์ฌ์ฉํ ๊น?
1. theme ํ์ผ์ ๋ง๋ค๊ณ , ํด๋น ํ์ผ์ ์์์ ์ง์ ํ๋ค.
๋ค์์ ๋ด๊ฐ ์ง์ ํ theme ์์์ด๋ค.
// styles/theme.js
const theme = {
colors: {
background: "#121212",
text: "#ececec",
primary: "#63e6be",
primary2: "#62E6BE",
white1: "#F1F3F5",
white: "#FFFFFF",
unSelected: "#ACACAC",
secondBlack: "#1E1E1E",
divider: "#2A2A2A"
},
};
export default theme;
2. import ํ๊ธฐ
๊ทธ๋ฆฌ๊ณ ํด๋น ํ์ผ์ ์ฌ์ฉํ ์ ์๋๋ก ์๋จ์ import ํด์ฃผ๋ฉด ๋๋ค.
import { ThemeProvider } from "styled-components";
import theme from "../../styles/theme";
3. App.js์ ์ฌ์ฉํ๊ธฐ
import theme from "./styles/theme";
import Router from "./router/Router";
function App() {
return (
<ThemeProvider theme={theme}>
<GlobalStyle />
<Router />
</ThemeProvider>
);
}
export default App;
์ด๋ ๊ฒ ์์ฑํ ๊ฐ์ฒด๋ฅผ ThemeProvider์ props๋ก ๋ฃ์ด์ฃผ๋ฉด ๋๋ค !!
4. ์ค์ ์ฝ๋์์ ์ฌ์ฉํ๊ธฐ
background-color: ${theme.colors.background};
์ด๋ ๊ฒ ํ๋ฉด, theme ํ์ผ์ ์๋ ์์๋ค์ ๋ค๋ฅธ ํ์ผ์์๋ ์ฌ์ฉํ ์ ์๋ค !!
728x90
๋ฐ์ํ
'๐ฅ๏ธ react' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[react] dropdown ๋ง๋ค๊ธฐ (์์ด์ฝ, ๋๋กญ๋ค์ด) (0) | 2024.01.17 |
---|---|
[react] react-dropdown ์ปค์คํ ํ๊ธฐ (0) | 2024.01.15 |
[react] markdown editor, viewer ๊ตฌํํ๊ธฐ (2) | 2023.01.29 |
[react] useEffect() (0) | 2022.12.27 |
styled components (0) | 2022.12.27 |