# Темы
Тематическая система семейства lh-ui определена в @lh-ui/share (единственный источник); Vue2-библиотека потребляет её через CSS-переменные.
# CSS-переменные
Все токены имеют имена --lh-* и инжектируются в :root через @lh-ui/vue2/theme.css:
:root {
--lh-primary-color: #2B4C7C;
--lh-bg-color: #FAF6F0;
--lh-text-color: #2C2A26;
/* Полный список см. в источнике theme репозитория share */
}
# Тёмная тема
<link rel="stylesheet" href="@lh-ui/vue2/theme-dark.css" />
<html data-theme="dark">
Также поддерживается форма с классом .dark. Переменные каскадируются от ConfigProvider или :root, сами компоненты их не дублируют.
# Локальная настройка через ConfigProvider
<template>
<LhConfigProvider :theme-vars="{ 'primary-color': '#4A6741' }">
<LhButton type="primary">Бамбуково-зелёная кнопка</LhButton>
</LhConfigProvider>
</template>
Приоритет: собственные themeVars компонента > componentTheme[имя компонента] > глобальные themeVars;
узор bg-pattern дополнительно управляется белым списком patternComponents.
# Пресеты тем и переключение пресетов
@lh-ui/vue2/theme переадресует TS-пресеты share (青花瓷 (сине-белый фарфор), 松花绿 (зелёный сосны) и т. д.) в паре с useLhPresetTheme:
import { useLhPresetTheme } from '@lh-ui/vue2'
const { preset, setPreset, presets, themeVars } = useLhPresetTheme()
setPreset('songhua') // Записывает в :root; themeVars можно передать ConfigProvider для локального действия
useLhTheme отвечает за переключение светлой / тёмной темы (data-theme + сохранение в localStorage).
Copyright © 2024-2026 FengMo WenXue