安裝
環境要求
- React
^18.0.0或^19.0.0 - TypeScript
>= 5.0(可選,但推薦)
@lh-ui/react 的唯一執行時依賴是 @lh-ui/share —— 家族的框架無關共享層(元件邏輯、樣式、主題、文案)。peer 依賴只有 react 與 react-dom。
套件管理器安裝
pnpm add @lh-ui/react
npm install @lh-ui/react
yarn add @lh-ui/react
bun add @lh-ui/react
引入樣式
@lh-ui/react 採用按需引入策略(與 @lh-ui/vue2 對齊):包入口不注入任何樣式,主題變數與元件樣式分別引入。
// 主題變數(必需):包含設計令牌與暗色變數
import '@lh-ui/react/theme.css'
// 元件樣式(按需):每用到一个元 件就引一條
import '@lh-ui/react/style/button'
import '@lh-ui/react/style/input'
主題 CSS 與元件 CSS 的類別名完全一致,因此你也可以直接從 @lh-ui/share 引入同一份 SCSS 原始碼自行編譯:
@use '@lh-ui/share/styles/theme/common/var.scss';
@use '@lh-ui/share/styles/button';
為什麼不全量注入
React 生態的按需引入是主流,且全量樣式 side-effect 會破壞 tree-shaking。把樣式入口交給使用者,打包器能精確裁剪未用到的元件樣式。
暗色模式
暗色變數在 theme-dark.css,與 theme.css 互斥(二選一),或在執行時透過 useLhTheme / useLhPresetTheme 切換:
import { useLhTheme } from '@lh-ui/react'
function App() {
const { theme, toggleTheme } = useLhTheme()
return <button onClick={toggleTheme}>{theme === 'dark' ? '切换到日间' : '切换到夜间'}</button>
}
瀏覽器支援
現代瀏覽器(Chrome / Edge / Firefox / Safari 最近兩個穩定版)。元件大量使用 CSS 自訂屬性(var(--lh-*)),不支援 IE。