Skip to content

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.

主色
--lh-primary-color
--lh-primary-color-hover
--lh-primary-color-active
--lh-primary-color-bg
--lh-primary-color-border
主色衍生
--lh-color-on-primary
--lh-selected-color
功能色
--lh-success-color
--lh-warning-color
--lh-danger-color
--lh-info-color
文本
--lh-text-primary
--lh-text-regular
--lh-text-secondary
背景
--lh-bg-color
--lh-bg-color-page
边框
--lh-border-color-base
--lh-border-color-light
实时预览
标签标签标签

主要文字·常规文字·次要文字

编辑的令牌只作用于预览区(与 ConfigProvider 同机制);导出的文件已包含暗色适配。

导出 SCSS

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) :

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 :

ts
// 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 :

vue
<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-color est 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:theme recalcule 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.

La beauté de la tradition, la fondation du code