Skip to content

feat: 다크 모드 지원#32

Merged
chayeoi merged 10 commits intomasterfrom
feat/15-dark-theme
Feb 22, 2020
Merged

feat: 다크 모드 지원#32
chayeoi merged 10 commits intomasterfrom
feat/15-dark-theme

Conversation

@chayeoi
Copy link
Owner

@chayeoi chayeoi commented Feb 22, 2020

우측 상단의 모드 변경 버튼을 이용하여 라이트 모드와 다크 모드를 전환할 수 있는 기능 추가

Resolved #15

키보드 접근성 향상을 위해 mdx 내에서 사용된 anchor 태그에
포커스 스타일을 추가함

Signed-off-by: chayeoi <chayeoikeem@gmail.com>
'파일 이름에 케밥 케이스 사용' 규칙을 통일하기 위해
카멜케이스로 작성되어있던 `usePrevious.ts`의 파일 이름을
`use-previous.ts`로 변경함

Signed-off-by: chayeoi <chayeoikeem@gmail.com>
@chayeoi chayeoi added the enhancement New feature or request label Feb 22, 2020
@chayeoi chayeoi self-assigned this Feb 22, 2020
`wrap-root-element`가 컴포넌트 타입이 아니기 때문에
내부에서 hooks을 사용할 수 없는 문제를 해결하고자
`wrap-root-element.ts`에서 담당하던 로직을 `wrapper.ts`로
이동하고 `wrap-root-element.ts`에서는 `wrapper` 컴포넌트를
사용하여 element를 렌더하도록 함

Signed-off-by: chayeoi <chayeoikeem@gmail.com>
- 다크 모드 지원을 위해 theme을 `light`, `dark`로 구분한 후
  `palette.text` 및 `palette.background`를 추가함
- 변경된 인터페이스에 따라 `theme`을 참조하던 코드를 수정함

Signed-off-by: chayeoi <chayeoikeem@gmail.com>
다크 모드에서 사용할 syntax highlighting 스타일 코드를 추가하고
theme 타입에 따라 선택적으로 적용하도록 함

Signed-off-by: chayeoi <chayeoikeem@gmail.com>
현재 적용된 컬러 모드 타입을 전역적으로 참조할 수 있도록
`ColorModeContext`를 추가하고 이 값을 사용할 수 있도록 하는
`useColorMode` hook을 추가함

Signed-off-by: chayeoi <chayeoikeem@gmail.com>
`Header`의 `scrollY` 스테이트 업데이트에 따라
`Navbar`의 불필요한 리렌더링이 발생하던 문제를 해결하고자
React의 `memo` API로 감싸서 불필요한 리렌더링을 방지함

Signed-off-by: chayeoi <chayeoikeem@gmail.com>
- 컬러 모드를 전환할 수 있는 theme-switch 추가
- 컬러 모드 타입에 따라 `utterances`의 theme을 함께 변경하도록 함
- 컬러 모드 타입 변경 시 값을 로컬 스토리지에 저장하여
  블로그 재방문 시에도 전에 사용중이었던 컬러 모드를 유지하도록 함

Resolved #15

Signed-off-by: chayeoi <chayeoikeem@gmail.com>
utterances의 theme을 로컬 스토리지에 저장된
`colorMode` 값에 기반해 결정하도록 변경

Signed-off-by: chayeoi <chayeoikeem@gmail.com>
- 유지 보수를 쉽게 하고자 여러 곳에서 재사용되는 문자열을 상수로 분리함
  - 로컬 스토리지의 `'colorMode'` 키 값을 `COLOR_MODE_KEY`로 분리
  - utterances의 theme을 `UtterancesTheme` enum으로 분리

Signed-off-by: chayeoi <chayeoikeem@gmail.com>
@chayeoi chayeoi merged commit b85c888 into master Feb 22, 2020
@chayeoi chayeoi deleted the feat/15-dark-theme branch February 22, 2020 13:50
@chayeoi chayeoi mentioned this pull request Feb 22, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

방문자는 블로그의 라이트, 다크 테마를 변경할 수 있다.

1 participant