ConfigProvider 配置提供者
ConfigProvider 是 Shelter UI 的全局配置組件,用於設置主題變數和樣式前綴。它通過 CSS 變數的方式為整個組件庫提供統一的主題配置。
基本用法
使用 ConfigProvider 包裹你的應用,可以為所有子組件提供統一的主題配置。
默認主題
通知
自定義主題
通知
明亮主題
通知
自定義主題前綴
你可以通過 themePrefix
屬性自定義 CSS 變數的前綴。
默認前綴 (sh)
CSS 變數: --sh-primary, --sh-bg-primary 等
自定義前綴 (my-ui)
CSS 變數: --my-ui-primary, --my-ui-bg-primary 等
組織前綴 (company)
CSS 變數: --company-primary, --company-bg-primary 等
說明
- • 自定義前綴可以避免 CSS 變數名稱衝突
- • 適合在多個 UI 庫共存的項目中使用
- • 可以用於建立品牌專屬的主題命名空間
- • 前綴會應用到所有生成的 CSS 變數上
主題配置說明
ConfigProvider 接受一個 ThemeVarsConfig
類型的主題配置對象,包含以下屬性:
主色調
primary
: 主要顏色,用於按鈕、鏈接等重要元素secondary
: 次要顏色
背景色
bg.primary
: 主要背景色bg.secondary
: 次要背景色
文字顏色
text.base
: 基礎文字顏色text.primary
: 主要文字顏色
邊框顏色
border.base
: 基礎邊框顏色border.primary
: 主要邊框顏色
狀態顏色
status.info
: 信息狀態顏色status.danger
: 危險狀態顏色status.warning
: 警告狀態顏色status.success
: 成功狀態顏色
顏色變體
ConfigProvider 會自動為每個顏色生成以下變體:
- 原色: 配置的原始顏色
- 變暗版本: 自動生成的深色版本(後綴
-darken
) - 變亮版本: 自動生成的淺色版本(後綴
-lighten
) - 透明版本: 自動生成的半透明版本(後綴
-fade
)
例如,如果配置了 primary: '#1890ff'
,系統會自動生成:
--sh-primary
: #1890ff--sh-primary-darken
: 深色版本--sh-primary-lighten
: 淺色版本--sh-primary-fade
: 半透明版本
在 UnoCSS 中使用
配置的主題變數會自動注入到 CSS 變數中,可以在 UnoCSS 類名中使用:
html
<!-- 使用主題顏色 -->
<div class="bg-primary text-white">主要背景</div>
<div class="border border-primary">主要邊框</div>
<div class="text-danger">危險文字</div>
<!-- 使用顏色變體 -->
<div class="bg-primary-lighten">淺色背景</div>
<div class="text-primary-darken">深色文字</div>
API
屬性
屬性名 | 說明 | 類型 | 默認值 |
---|---|---|---|
themeConfig | 主題配置對象 | ThemeVarsConfig | defaultTheme |
themePrefix | 主題變數 CSS 前綴 | string | 'sh' |
插槽 Slots
插槽名 | 說明 |
---|---|
default | 需要配置的內容 |
使用建議
- 全局配置: 建議在應用的根組件處使用 ConfigProvider,為整個應用提供統一的主題配置。
- 局部覆蓋: 可以在應用的任何位置使用 ConfigProvider 來局部覆蓋主題配置。
- 主題切換: 通過動態改變
themeConfig
的值來實現主題切換功能。 - 與設計系統整合: 配合設計系統的顏色規範來配置主題變數。