# ConfigProvider 設定

サブツリーに対してグローバルなサイズ、言語、テーマ変数を提供します。provide されるのは computed 参照(スナップショットではない)で、provider の prop の変化がすべての消費コンポーネントへリアルタイムに伝わります。

部分的なテーマカスタマイズ
<template>
  <div class="demo-col" style="gap: 20px">
    <LhConfigProvider
      :theme-vars="{
        'primary-color': '#4a6741',
        'bg-color': '#f4f7ee',
        'text-primary': '#2c2a26',
        'text-regular': '#5a5a5a',
      }"
      :pattern-components="['button', 'tag']"
    >
      <div
        style="
          padding: 16px;
          background: var(--lh-bg-color);
          border: 1px dashed var(--lh-primary-color);
          display: flex;
          gap: 12px;
          flex-wrap: wrap;
        "
      >
        <LhButton type="primary">竹青テーマボタン</LhButton>
        <LhTag type="primary">竹青タグ</LhTag>
        <LhInput placeholder="竹青入力フィールド" style="width: 180px" />
      </div>
    </LhConfigProvider>
    <p class="demo-note">themeVars がグローバルの --lh-* 変数を上書きします。bg-pattern が適用されるのは patternComponents ホワイトリスト内のコンポーネントだけです。</p>
    <LhConfigProvider
      :theme-vars="{ 'primary-color': '#8b5a2b' }"
      :component-theme="{ button: { 'primary-color': '#2f6f5e' }, tag: { 'primary-color': '#2f6f5e' } }"
    >
      <div style="padding: 16px; display: flex; gap: 12px; flex-wrap: wrap">
        <LhButton type="primary">松绿ボタン(componentTheme で個別に上書き)</LhButton>
        <LhTag type="primary">松绿タグ</LhTag>
      </div>
    </LhConfigProvider>
    <p class="demo-note">componentTheme はコンポーネントごとに個別に上書きします(グローバルの themeVars より優先されます)。</p>
    <LhConfigProvider size="large" locale="en-US">
      <div style="padding: 16px; display: flex; gap: 12px; flex-wrap: wrap; align-items: center">
        <LhInput placeholder="size=large" style="width: 180px" />
        <LhPagination :total="50" :page-size="10" />
      </div>
    </LhConfigProvider>
    <p class="demo-note">size のグローバルサイズ + locale で言語パッケージを切り替えます(ページネーションのテキストが英語になります)。</p>
  </div>
</template>

# Props

プロパティ 説明 型 デフォルト値
size グローバルサイズ(子コンポーネントが size を明示的に渡さない場合に有効) LhSizes —
locale グローバル言語(watch immediate で lhlocale シングルトンと同期) LhLocaleType —
themeVars グローバルテーマ変数(キーは --lh- 接頭辞を省略可能) Record<string, string> —
patternComponents bg-pattern が有効なホワイトリスト LhThemeableComponent[] —
componentTheme コンポーネントごとのテーマ変数の上書き Partial<Record<Component, Vars>> —

# Composition API

import { useLhConfigContext } from '@lh-ui/vue2'
// カスタムコンポーネント内への注入:ComputedRef<LhConfigContext> | null を返す
const ctx = useLhConfigContext()

警告

命令的サービス(new Vue によるマウント)は provide/inject のコンテキストを引き継ぎません。グローバルの size/locale は lhlocale シングルトン経由で読み取ります。

Copyright © 2024-2026 FengMo WenXue