Dark Mode

1. Project Setup

typescript 기반으로 프로젝트를 세팅하고 styled-component 를 설치합니다.

$ npx create-react-app theme-exam --template typescript
$ cd theme-exam 
$ npm i -S styled-components

2. Theme 스타일 추가

Dark, Light 두 가지 테마의 스타일을 추가합니다.

// src/interfaces/theme.ts

export interface Theme {
    color: Color
}

export interface Color {
    [key: string]: string
}

Dark Style

Light Style

3. ThemeProvider

Dark, Light 두 가지 테마의 스타일을 다루기 위해서 styled-components 의 ThemeProvider 를 이용합니다. state 에 따라 다른 theme 에 대한 스타일을 넣어줍니다.

4. Theme 적용

ThemeProvider 에 theme props 을 이용하면 모든 styled-components 를 사용하는 곳에서 theme props 를 주입받을 수 있습니다.

5. SVG 추가

태양과 달 svg 를 추가합니다.

Last updated

Was this helpful?