# ConfigProvider (configuración)
Aporta tamaño, idioma y variables de tema globales al subárbol. Lo que se inyecta mediante provide es una referencia computed (no una instantánea), de modo que los cambios en las props del provider se propagan en tiempo real a todos los componentes consumidores.
Personalización de tema local
<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">Botón con tema verde bambú</LhButton>
<LhTag type="primary">Etiqueta verde bambú</LhTag>
<LhInput placeholder="Campo de texto verde bambú" style="width: 180px" />
</div>
</LhConfigProvider>
<p class="demo-note">themeVars anula las variables --lh-* globales; solo los componentes de la lista blanca de patternComponents reciben bg-pattern.</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">Botón verde pino (anulación individual con componentTheme)</LhButton>
<LhTag type="primary">Etiqueta verde pino</LhTag>
</div>
</LhConfigProvider>
<p class="demo-note">componentTheme anula el tema por componente (con prioridad sobre el themeVars global).</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 fija el tamaño global y locale cambia el paquete de idioma (los textos del paginador pasan al inglés).</p>
</div>
</template>
# Props
| Prop | Descripción | Tipo | Predeterminado |
|---|---|---|---|
| size | Tamaño global (surte efecto cuando el componente secundario no recibe size explícitamente) | LhSizes | — |
| locale | Idioma global (un watch immediate lo sincroniza con la instancia única lhlocale) | LhLocaleType | — |
| themeVars | Variables de tema globales (la clave puede omitir el prefijo --lh-) | Record<string, string> | — |
| patternComponents | Lista blanca de componentes a los que se aplica bg-pattern | LhThemeableComponent[] | — |
| componentTheme | Anula las variables de tema por componente | Partial<Record<Component, Vars>> | — |
# API de composición
import { useLhConfigContext } from '@lh-ui/vue2'
// Inyección dentro de un componente personalizado: devuelve ComputedRef<LhConfigContext> | null
const ctx = useLhConfigContext()
Advertencia
Los servicios imperativos (montados con new Vue) no heredan el contexto de provide/inject; para leer el size/locale global se recurre a la instancia única lhlocale.
Botón →
Copyright © 2024-2026 FengMo WenXue