# テーマスタジオ
プリセットだけで済ませたくない場合は、以下のスタジオでプリセットを起点に選び、トークンごとに自分の配色へ調整してください。プレビュー領域にリアルタイムで反映され、最後に 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);
}
採用方法は二つあります。
方法一:静的読み込み(推奨)——エクスポートした lh-theme.scss をプロジェクトに置き、エントリで読み込みます。
// main.js
import './lh-theme.scss'
@use '@lh-ui/share/styles/index.scss' がすべてのコンポーネントスタイルとテーマトークンを含んでいるため、一行で完了します。
ダークブロックは share のプリセット機構と同源で、data-theme="dark" のとき自動的に切り替わります。
方法二:ランタイム注入——LhConfigProvider の themeVars で部分的に上書きします(キーは短縮形で、自動的に --lh- 接頭辞が補われます)。同一ページに複数のテーマを並べる場合に適しています。
<template>
<LhConfigProvider :theme-vars="{ primaryColor: '#2B4C7C', onPrimary: '#FFFFFF' }">
<LhButton type="primary">主要ボタン</LhButton>
</LhConfigProvider>
</template>
<script>
import { LhConfigProvider, LhButton } from '@lh-ui/vue2'
export default {
components: { LhConfigProvider, LhButton },
}
</script>
サンプルコードは npm のパッケージ名(
@lh-ui/vue2/@lh-ui/share)で統一しており、コピーするだけで使えます。 本ドキュメントサイトの実際の実行はファミリーのローカルソースコード经由であるため、変更が即座に確認できます。
# 注意事項
- 浅い主色では
--lh-color-on-primaryを明示的に宣言する必要があります:白文字を浅い主色の上に置くと AA コントラスト(4.5:1)に達しないため、プリセットでは松花绿 / 藤黄はいずれも墨文字に切り替えています。スタジオの「主色背景の文字」フィールドがこのトークンに対応します。 --lh-selected-colorが空のときは--lh-primary-color-activeのデフォルト連鎖に従います。 浅い主色の場合、選択時の文字は別途濃くする必要が生じることが多いです(プリセットでも同様に反映されています)。- コントラストのゲート:share の
pnpm verify:themeが実際の消費ペアに基づいて各プリセットの AA コントラストを再計算します。 カスタムテーマを作る際は テーマ の説明に沿って自查することをお勧めします。
← テーマ
Copyright © 2024-2026 FengMo WenXue