テーマスタジオ
プリセットだけで満足できない?以下のスタジオでプリセットを起点に選び、トークンごとに自分の配色を調整すると、プレビュー領域にリアルタイムで反映されます。 最後に scss ファイルをエクスポートしてプロジェクトにそのまま配置できます —— コンポーネントライブラリを再コンパイルする必要はありません。
主要文字·常规文字·次要文字
编辑的令牌只作用于预览区(与 ConfigProvider 同机制);导出的文件已包含暗色适配。
エクスポートしたテーマの取り込み
スタジオがエクスポートするファイルはこのようになります(トークン元は @lh-ui/share/styles/theme/common/var.scss にあります):
@use '@lh-ui/share/styles/index.scss';
:root {
--lh-primary-color: #2B4C7C;
/* ... */
}
[data-theme='dark'],
.dark {
--lh-primary-color-bg: color-mix(in srgb, var(--lh-primary-color) 25%, transparent);
--lh-selected-color: color-mix(in srgb, var(--lh-primary-color) 40%, #fff);
}2 つの取り込み方があります:
方式 1:静的インポート(推奨) —— エクスポートした lh-theme.scss をプロジェクトに配置し、エントリでインポートします:
// main.ts
import './lh-theme.scss'@use '@lh-ui/share/styles/index.scss' にすべてのコンポーネントスタイルとテーマトークンが含まれているため一行で完了します。 ダークブロックは share のプリセット機構と同源で、data-theme="dark" の下で自動的に切り替わります。
方式 2:ランタイム注入 —— LhConfigProvider の themeVars で局所的に上書きします(キーは省略形で、 自動的に --lh- プレフィックスが補われる)。同一ページに複数のテーマを並べる場合に適しています:
<script setup lang="ts">
import { LhConfigProvider, LhButton } from '@lh-ui/vue3'
</script>
<template>
<LhConfigProvider :theme-vars="{ primaryColor: '#2B4C7C', onPrimary: '#FFFFFF' }">
<LhButton type="primary">メインボタン</LhButton>
</LhConfigProvider>
</template>例のコードは統一して npm パッケージ名(
@lh-ui/vue3/@lh-ui/share)を使用しており、コピーするだけで使えます; 本ドキュメントサイトの実際の実行はファミリーのローカルソースコードに基づいているため、変更が即座に確認できます。
注意事項
- 淡い主要色では
--lh-color-on-primaryを明示的に宣言する必要がある:淡い主要色の上の白文字は AA コントラスト(4.5:1)に達しないため、 プリセットでは松花绿 / 藤黄 はいずれも墨文字に切り替えています。スタジオの「主色背景の文字」フィールドがこのトークンに対応します。 --lh-selected-colorが空の場合は--lh-primary-color-activeのデフォルトの連鎖に従います。 淡い主要色の下で選択文字として使う場合は单独で濃くする必要が生じることが多いです(プリセットにも同じように反映されています)。- コントラストのゲート:share の
pnpm verify:themeが実際の消費ペアに基づいて各プリセットの AA コントラストを再計算します。 カスタムテーマは プリセットテーマ のコメントに照らして一通り自己確認することをお勧めします。