# Temas
El sistema de temas de la familia lh-ui se define en @lh-ui/share (origen único) y la biblioteca Vue2 lo consume mediante variables CSS.
# Variables CSS
Todos los tokens se nombran --lh-* y se inyectan en :root mediante @lh-ui/vue2/theme.css:
:root {
--lh-primary-color: #2B4C7C;
--lh-bg-color: #FAF6F0;
--lh-text-color: #2C2A26;
/* La lista completa está en el código fuente de theme del repositorio share */
}
# Modo oscuro
<link rel="stylesheet" href="@lh-ui/vue2/theme-dark.css" />
<html data-theme="dark">
También se admite la forma de clase .dark. Las variables se heredan en cascada desde ConfigProvider o desde :root; los componentes no las declaran de nuevo.
# Personalización local con ConfigProvider
<template>
<LhConfigProvider :theme-vars="{ 'primary-color': '#4A6741' }">
<LhButton type="primary">Botón verde bambú</LhButton>
</LhConfigProvider>
</template>
Prioridad: themeVars del propio componente > componentTheme[nombre del componente] > themeVars global;
el patrón bg-pattern está además controlado por la lista blanca patternComponents.
# Presets y conmutación de presets
@lh-ui/vue2/theme reenvía los presets de TS de share (青花瓷 (porcelana azul y blanco), 松花绿 (verde pino), etc.) e incluye useLhPresetTheme:
import { useLhPresetTheme } from '@lh-ui/vue2'
const { preset, setPreset, presets, themeVars } = useLhPresetTheme()
setPreset('songhua') // Escribe en :root; themeVars también puede delegarse a ConfigProvider para un alcance local
useLhTheme gestiona la conmutación entre claro y oscuro (data-theme + persistencia en localStorage).
Copyright © 2024-2026 FengMo WenXue