Studio de thèmes
Vous ne voulez pas vous limiter aux préréglages ? Choisissez un préréglage comme point de départ dans le studio ci-dessous, ajustez chaque jeton pour composer votre propre palette, la zone d'aperçu se met à jour en temps réel, puis exportez un fichier scss à placer directement dans votre projet — aucune recompilation de la bibliothèque de composants nécessaire.
主要文字·常规文字·次要文字
编辑的令牌只作用于预览区(与 ConfigProvider 同机制);导出的文件已包含暗色适配。
Adoption du thème exporté
Le fichier exporté par le studio ressemble à ceci (la source des jetons se trouve dans @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);
}Deux modes d'adoption :
Mode 1 : import statique (recommandé) — placez le lh-theme.scss exporté dans votre projet et importez-le au point d'entrée :
// main.ts
import './lh-theme.scss'@use '@lh-ui/share/styles/index.scss' contient déjà tous les styles de composants et les jetons de thème, une seule ligne suffit ; le bloc de mode sombre partage la même source que le mécanisme de préréglage de share, et bascule automatiquement sous data-theme="dark".
Mode 2 : injection à l'exécution — utilisez la propriété themeVars de LhConfigProvider pour une substitution locale (les clés sont en forme abrégée, le préfixe --lh- est ajouté automatiquement), adaptée à la présentation côte à côte de plusieurs thèmes sur une même page :
<script setup lang="ts">
import { LhConfigProvider, LhButton } from '@lh-ui/vue3'
</script>
<template>
<LhConfigProvider :theme-vars="{ primaryColor: '#2B4C7C', onPrimary: '#FFFFFF' }">
<LhButton type="primary">Bouton principal</LhButton>
</LhConfigProvider>
</template>Les exemples de code utilisent uniformément les noms de paquets npm (
@lh-ui/vue3/@lh-ui/share), prêts à être copiés ; le site de documentation lui-même fonctionne avec les sources locales de la famille, afin que vos modifications soient immédiatement visibles.
Remarques
- Une teinte principale claire doit déclarer explicitement
--lh-color-on-primary: du texte blanc sur une teinte principale claire n'atteint pas le contraste AA (4.5:1), c'est pourquoi les préréglages 松花绿 (vert pin) / 藤黄 (gamboge) utilisent du texte à l'encre. Le champ « Texte sur couleur primaire » du studio correspond à ce jeton. - Lorsque
--lh-selected-colorest laissé vide, il suit la chaîne par défaut de--lh-primary-color-active; avec une teinte principale claire, le texte sélectionné doit souvent être assombri séparément (les préréglages en témoignent également). - Garde-fou de contraste : le script share
pnpm verify:themerecalcule pour chaque préréglage le contraste AA selon les associations réellement consommées ; pour un thème personnalisé, il est recommandé de procéder à une auto-vérification en suivant les commentaires des Thèmes prédéfinis.