CSS 변수

CSS 변수 (CSS Variables)

토큰을 인식하는 CSS 변수를 Chakra UI에서 사용하는 방법을 알려드려요. 공유 값을 만들고 토큰을 효율적으로 접근하는 데 편리해요.

출처: 문서

본문

개요

CSS 변수는 웹에서 공유 값을 만드는 사실상의 표준이 되었어요. prop 보간(interpolation), 클래스네임 재생성, 토큰 값의 런타임 평가를 피할 수 있어서 매우 유용해요.

예시

기본

css prop을 사용해서 css 변수를 만들 수 있어요.

<Box css={{ "--font-size": "18px" }}>
  <h3 style={{ fontSize: "calc(var(--font-size) * 2)" }}>Hello</h3>
  <p style={{ fontSize: "var(--font-size)" }}>Hello</p>
</Box>

토큰 접근

전체 토큰 경로를 사용해서 토큰에 접근해요.

<Box css={{ "--color": "colors.red.500" }}>
  <p style={{ color: "var(--color)" }}>Hello</p>
</Box>

크기 토큰에 접근하는 예시예요.

<Box css={{ "--size": "sizes.10" }}>
  <p style={{ width: "var(--size)", height: "var(--size)" }}>Hello</p>
</Box>

반응형 스타일

반응형 문법을 사용해서 css 변수를 반응형으로 만들 수 있어요.

<Box css={{ "--font-size": { base: "18px", lg: "24px" } }}>
  <h3 style={{ fontSize: "calc(var(--font-size) * 2)" }}>Hello</h3>
  <p style={{ fontSize: "var(--font-size)" }}>Hello</p>
</Box>

색상 투명도 수정자

색상 토큰에 접근할 때 투명도 수정자를 사용해서 투명도가 있는 색상에 접근할 수 있어요. {} 문법을 사용해야 해요.

<Box css={{ "--color": "{colors.red.500/40}" }}>
  <p style={{ color: "var(--color)" }}>Hello</p>
</Box>

가상 색상 (Virtual Color)

변수는 colors.colorPalette.* 값을 통해 가상 색상을 가리킬 수 있어요. 테마 컴포넌트를 만들 때 유용해요.

<Box colorPalette="blue" css={{ "--color": "colors.colorPalette.400" }}>
  <p style={{ color: "var(--color)" }}>Hello</p>
</Box>

더 알아보기 (Learn more)