Theme

Theme (테마)

트리의 일부를 강제로 라이트 모드나 다크 모드로 만들 때 쓰는 컴포넌트예요. 페이지 일부만 색상 모드를 다르게 하고 싶을 때 유용해요.

출처: 문서

본문

Theme은 컴포넌트 트리의 일부를 강제로 라이트 또는 다크 모드로 전환하는 컴포넌트예요. <ExampleTabs name="theme-basic" />

사용법 (Usage)

import { Theme } from "@chakra-ui/react"
<Theme appearance="dark">
  <div />
</Theme>

예시 (Examples)

중첩 (Nested)

테마는 중첩해 트리의 다른 부분에 다른 appearance를 적용할 수 있어요. 전역 appearance를 적용한 뒤 일부분만 덮어쓰고 싶을 때 유용해요.

Good to know: 이를 위해 네이티브 CSS 선택자를 사용해요.

포털 (Portalled)

asChild prop으로 popover나 modal 콘텐츠처럼 포털로 렌더링되는 요소의 appearance를 강제할 수 있어요.

페이지별 색상 모드 (Page Specific Color Mode)

페이지를 특정 색상 모드(라이트 또는 다크)로 고정하려면 전체 페이지를 Theme 컴포넌트로 감싸면 돼요.

useColorMode 훅을 사용한다면 ColorModeProvider와도 조합할 수 있어요.

import { ColorModeProvider } from "@/components/ui/color-mode"
import { Theme } from "@chakra-ui/react"

export const ForcedColorMode = ({ children }) => {
  return (
    <ColorModeProvider forcedTheme="dark">
      <Theme appearance="dark">{/* Rest of the page */}</Theme>
    </ColorModeProvider>
  )
}