본 포스팅은 노마드코더의 ReactJs 마스터 클래스 강의를 수강하고 작성되었습니다.
우리가 다크모드를 구현한다고 하면, 50%는 theme의 역할 & 나머지 50%는 local Estate Manangement
본 포스팅에서는 theme을 먼저 배운다.
const Title = styled.h1`
color: ${(props) => props.theme.textColor};
`;
아래는 index.js의 전체 코드이다.
import React from "react";
import ReactDOM from "react-dom";
import {ThemeProvider} from "styled-components";
import App from "./App";
//theme에 어떤 색을 사용할 것인지를 구체적으로 결정
const darkTheme = {
textColor:"whitesmoke",
backgroundColor: "#111",
};
const lightTheme = {
textColor:"#111",
backgroundColor: "whitesmoke",
};
ReactDOM.render(
<React.StrictMode>
<ThemeProvider theme={darkTheme}>
<App />
</ThemeProvider>
</React.StrictMode>,
document.getElementById("root")
);
∴ index.js에서 동일한 속성 명(textColor, backgroundColor...) 등을 사용하고, ThemeProvider의 theme에 이를 작성함으로써, 그 태그안에 있는 모든 것들이 props로 색을 변경할 수 있게 되는 것!
∴ components들은 그냥 theme에서 가져오는 것 이므로, components들을 바꿔줄 필요 X
❗❗dark/light mode를 가지고 싶다면, property들의 이름이 똑같아야함! ❗❗