테마 커스터마이징
@lh-ui/react의 디자인 토큰은 모두 @lh-ui/share/theme에서 오며, 이 라이브러리는 토큰 사본을 갖지 않습니다. 테마 커스터마이징은 결국 이 CSS 커스텀 프로퍼티들을 덮어쓰는 것입니다.
토큰 계층
스타일 우선순위가 낮은 것부터:
theme.css—@lh-ui/share가 배포하는 기본 토큰(--lh-primary-color등)theme-dark.css— 다크 변수(theme.css와 상호 배타적, 둘 중 하나 선택)LhConfigProvider의themeVars— 감싼 요소에 매달리는 캐스케이드 변수- 컴포넌트
themeVars프로퍼티 — 컴포넌트 루트 요소에 매달려 모든 상위를 덮어씀
ConfigProvider로 커스터마이징
가장 권장하는 방식: 앱 루트에서 themeVars를 전달하며, 키 이름에 --lh- 접두사를 붙이지 않습니다 (내부에서 자동으로 붙음):
import { LhConfigProvider } from '@lh-ui/react'
export default function App() {
return (
<LhConfigProvider
themeVars={{
'primary-color': '#722ed1',
'bg-color': '#faf9f7',
'border-radius-base': '6px',
}}
>
<YourApp />
</LhConfigProvider>
)
}
변수는 감싼 요소의 style="--lh-primary-color: #722ed1; ..."로 렌더링되어 아래로 캐스케이드됩니다.