Personnalisation
Le DSBJ expose toutes ses couleurs, espacements et typographies sous forme de variables CSS. Vous pouvez les surcharger pour adapter le design system à la charte de votre ministère ou organisation.
Surcharge CSS simple
Redéfinissez les variables sur :root après l’import de dsbj.css. Tous les composants hériteront automatiquement des nouvelles valeurs.
/* Charger le DSBJ d'abord */
@import '@flrxnt/dsbj';
/* Puis surcharger les variables */
:root {
/* Couleur d'action principale */
--bj-action-high: #1a5f3c;
--bj-action-high-hover: #14493d;
--bj-action-high-active: #0f3a30;
/* Fond et bordures */
--bj-bg-alt: #f0f4f1;
--bj-border-default: #c8d6cc;
/* Arrondis */
--bj-radius-sm: 6px;
--bj-radius-md: 10px;
/* Accent */
--bj-accent: #e8a500;
}Tokens sémantiques de couleur
Ces variables contrôlent les couleurs de texte, fond et bordure utilisées par tous les composants. Elles référencent la palette brute (--bj-color-*) mais peuvent être remplacées par toute valeur CSS valide.
| Variable | Description |
|---|---|
--bj-text-default | Texte principal |
--bj-text-title | Titres |
--bj-text-alt | Texte secondaire |
--bj-text-mention | Texte discret (placeholders, légendes) |
--bj-text-disabled | Texte désactivé |
--bj-text-inverted | Texte sur fond contrasté |
--bj-bg-default | Fond principal |
--bj-bg-alt | Fond alternatif (sections, bandes) |
--bj-bg-contrast | Fond contrasté (sombre en light, clair en dark) |
--bj-bg-elevated | Fond surélevé (cartes, modales) |
--bj-bg-disabled | Fond désactivé |
--bj-border-default | Bordure standard |
--bj-border-strong | Bordure appuyée |
--bj-border-subtle | Bordure légère (séparateurs) |
Couleurs d’action
La couleur d’action principale (--bj-action-high) est utilisée par les boutons, liens, focus, et tout élément interactif. C’est la variable la plus impactante à surcharger.
| Variable | Description |
|---|---|
--bj-action-high | Couleur principale (boutons, liens, focus) |
--bj-action-high-hover | État survol de l’action |
--bj-action-high-active | État actif / clic |
--bj-action-low | Fond d’action secondaire |
--bj-action-low-hover | Fond secondaire au survol |
--bj-accent | Couleur d’accent (badges, highlights) |
--bj-accent-text | Texte accent lisible |
/* Exemple : charte du Ministère de la Santé */
:root {
--bj-action-high: #0077b6;
--bj-action-high-hover: #005f92;
--bj-action-high-active: #004a73;
--bj-action-low: #e0f0fa;
--bj-action-low-hover: #c8e3f5;
--bj-accent: #ff6b35;
--bj-accent-text: #c44d1e;
}Couleurs fonctionnelles
Ces couleurs indiquent les états système (alerte, erreur, succès, info). Chaque état possède une couleur principale et un fond associé.
| Variable | Description |
|---|---|
--bj-info / --bj-info-bg | Information |
--bj-success / --bj-success-bg | Succès |
--bj-warning / --bj-warning-bg | Avertissement |
--bj-error / --bj-error-bg | Erreur |
Typographie et espacement
Les variables de typographie et d’espacement sont également surchargeables pour ajuster la densité visuelle du design system.
| Variable | Description |
|---|---|
--bj-font-base | Police principale (Montserrat) |
--bj-font-alt | Police alternative (Spectral) |
--bj-font-mono | Police monospace |
--bj-fs-xs … --bj-fs-3xl | Échelle de tailles de texte |
--bj-fw-regular / semibold / bold | Graisses |
--bj-spacing-1v … --bj-spacing-16v | Échelle d’espacement (multiples de 4px) |
--bj-radius-xs / sm / md / lg / full | Arrondis |
--bj-shadow-sm / md / lg | Ombres portées |
--bj-duration-fast / normal / slow | Durées d’animation |
--bj-easing | Courbe d’accélération |
Thème sombre personnalisé
Pour modifier les couleurs uniquement en thème sombre, ciblez le sélecteur [data-bj-theme="dark"]. Vos surcharges n’affecteront pas le thème clair.
/* Surcharges spécifiques au mode sombre */
[data-bj-theme="dark"] {
--bj-action-high: #4da3c9;
--bj-action-high-hover: #6bb8da;
--bj-bg-default: #0a1628;
--bj-bg-alt: #101e33;
--bj-bg-elevated: #162640;
--bj-border-default: #253d5c;
}
/* Les mêmes couleurs s'appliquent aussi
quand le système est en mode sombre */
@media (prefers-color-scheme: dark) {
:root:not([data-bj-theme="light"]) {
--bj-action-high: #4da3c9;
--bj-bg-default: #0a1628;
}
}Le thème sombre s’active également automatiquement si le système de l’utilisateur préfère le mode sombre, sauf si data-bj-theme="light" est explicitement défini.
Thème ciblé (par section)
Vous pouvez surcharger les variables sur un conteneur spécifique au lieu de :root. Cela permet d’avoir des sections avec des couleurs différentes sur la même page.
/* Section héro avec un fond contrasté */
.hero-section {
--bj-bg-default: var(--bj-bg-contrast);
--bj-text-default: var(--bj-text-inverted);
--bj-action-high: var(--bj-accent);
--bj-border-default: rgba(255, 255, 255, 0.2);
background-color: var(--bj-bg-default);
color: var(--bj-text-default);
}
/* Les composants DSBJ à l'intérieur de .hero-section
utiliseront automatiquement ces couleurs */Personnalisation avancée (SCSS)
Pour une personnalisation complète, importez les sources SCSS et surchargez la palette ou les tokens sémantiques en amont de la compilation. Cette approche est recommandée pour les refontes ministérielles.
// mon-theme/_palette.scss
// Remplacer les couleurs primaires
$palette: (
'vert-benin': (
975: #e0f2f1,
925: #b2dfdb,
850: #4db6ac,
main-491: #00796b,
425: #00695c,
sun-340: #004d40,
moon-680: #26a69a,
),
// ... les autres familles restent inchangées
// sauf celles que vous souhaitez modifier
);Créez ensuite votre propre fichier d’entrée SCSS pour compiler un thème custom :
// mon-theme.scss
@use '@flrxnt/dsbj/src/core/color/settings' with (
$palette: (/* votre palette personnalisée */)
);
@use '@flrxnt/dsbj/src/dsbj';
// Ou si vous voulez tout contrôler :
@use '@flrxnt/dsbj/src/core/color/tokens';
:root {
@include tokens.generate-palette-tokens;
@include tokens.generate-semantic-tokens-light;
// Surcharges sémantiques supplémentaires
--bj-action-high: #00796b;
}
[data-bj-theme="dark"] {
@include tokens.generate-semantic-tokens-dark;
--bj-action-high: #26a69a;
}Référence palette complète
Voici les familles de couleurs brutes disponibles via --bj-color-*. Chaque famille possède plusieurs nuances allant du plus sombre (50) au plus clair (1000).
| Famille | Description |
|---|---|
--bj-color-vert-benin-* | Vert Bénin (7 nuances : 975, 925, 850, main-491, 425, sun-340, moon-680) |
--bj-color-jaune-benin-* | Jaune Bénin (6 nuances : 975, 925, main-822, 750, sun-600, moon-850) |
--bj-color-rouge-benin-* | Rouge Bénin (7 nuances) |
--bj-color-ocre-terre-* | Ocre terre (5 nuances) |
--bj-color-bleu-horizon-* | Bleu horizon (7 nuances) |
--bj-color-info-* | Bleu information (5 nuances) |
--bj-color-succes-* | Vert succès (5 nuances) |
--bj-color-alerte-* | Orange avertissement (5 nuances) |
--bj-color-erreur-* | Rouge erreur (5 nuances) |
--bj-color-gris-* | Gris neutre (13 nuances : 50 … 1000) |