Version de développement
Cette documentation décrit la version « next » (develop), non encore publiée. Pour la version stable, basculez sur « v5 » dans l'en-tête.
Personnalisation

Personnalisation du thème Espresso

Le thème Espresso est le nouveau système de design unifié de Dokos, conçu pour offrir une expérience utilisateur moderne, cohérente et accessible. Cette migration centralise la gestion des styles dans le framework Dodock, garantissant une harmonisation visuelle entre toutes les applications (Dokos, HRMS, Payments, etc.).

Thème Espresso — Personnalisation de l'interface

Le thème Espresso est le nouveau système de design unifié de Dokos, conçu pour offrir une expérience utilisateur moderne, cohérente et accessible. Cette migration centralise la gestion des styles dans le framework Dodock, garantissant une harmonisation visuelle entre toutes les applications (Dokos, HRMS, Payments, etc.).

Principes clés

  • Source unique de vérité : Les tokens de design (couleurs, typographie, espacements, ombres) sont définis dans Dodock et importés par les autres applications.
  • Composants standardisés : Chaque élément d'interface (badges, boutons, cartes) suit une spécification stricte, réduisant les incohérences.
  • Personnalisation contrôlée : Les administrateurs peuvent adapter l'apparence via des variables CSS sans altérer la structure des composants.

Composants migrés

Badges (Pilules d'indicateur)

Les badges remplacent les anciennes "pilules d'indicateur" (indicator-pill) avec une implémentation plus flexible et conforme au design system Espresso.

Utilisation de base

<span class="es-badge">Nouveau</span>

Variantes et options

AttributValeurs possiblesDescription
data-variantsolid, subtle, outlineStyle du badge
data-sizesm, md, lgTaille du badge
data-themegray, red, amber, green, blue, violetCouleur du badge

Exemple avec icône :

<span class="es-badge" data-variant="solid" data-size="lg" data-theme="amber">
  <i class="i-mdi-alert-circle"></i> Urgent
</span>
Les couleurs personnalisées non conformes à la palette Espresso (ex. : purple, pink) sont dépréciées. Utilisez les thèmes prédéfinis ou définissez des variables CSS personnalisées (voir section Personnalisation avancée).

Tokens de design

Les variables CSS suivantes sont disponibles pour personnaliser l'interface. Elles remplacent les anciennes variables (ex. : --border-radius--radius).

Couleurs

VariableDescriptionValeur par défaut
--fg-colorCouleur de premier plan#1f2937
--bg-colorCouleur de fond#ffffff
--primaryCouleur primaire#3b82f6
--successCouleur de succès#10b981
--warningCouleur d'avertissement#f59e0b
--dangerCouleur de danger#ef4444

Typographie

VariableDescriptionValeur par défaut
--font-familyPolice principaleInter, sans-serif
--text-baseTaille de texte de base1rem
--text-smTexte petit0.875rem
--text-lgTexte grand1.125rem

Espacement

VariableDescriptionValeur par défaut
--space-1Espacement unitaire0.25rem
--space-2Espacement double0.5rem
--space-3Espacement triple0.75rem
--space-4Espacement quadruple1rem

Radius (coins arrondis)

VariableDescriptionValeur par défaut
--radius-smPetit radius0.125rem
--radius-mdRadius moyen0.25rem
--radius-lgGrand radius0.375rem
--radius-fullRadius complet (cercle)9999px

Personnalisation via l'interface

Modifier les couleurs du thème

  1. Allez dans Paramètres > Personnalisation > Thème Espresso (ou recherchez "Thème Espresso" dans la barre Awesome).
  2. Sélectionnez une couleur primaire, secondaire, ou une couleur de danger/succès.
  3. Les changements sont appliqués en temps réel.
  4. Cliquez sur Enregistrer pour valider.

Réinitialiser le thème

Pour revenir aux valeurs par défaut d'Espresso :

  1. Allez dans Paramètres > Personnalisation > Thème Espresso.
  2. Cliquez sur Réinitialiser en bas du formulaire.
  3. Confirmez la réinitialisation.

Personnalisation avancée (développeurs)

Surcharger les variables CSS

Pour adapter le thème à votre charte graphique, créez un fichier CSS personnalisé (ex. : apps/your_app/your_app/public/css/custom_theme.css) et surchargez les variables Espresso :

:root {
  --primary: #6366f1; /* Violet personnalisé */
  --radius-md: 0.5rem; /* Coins plus arrondis */
  --space-3: 1rem; /* Espacement plus large */
}

Puis chargez ce fichier dans votre application via le hooks.py :

app_include_css = [
  "/assets/your_app/css/custom_theme.css"
]

Créer des thèmes dérivés

Pour proposer plusieurs thèmes (ex. : clair/sombre) :

  1. Définissez un sélecteur de thème dans votre application :
<body class="theme-light">
  <!-- Contenu -->
</body>
  1. Adaptez les variables CSS en fonction du thème :
.theme-light {
  --bg-color: #ffffff;
  --fg-color: #1f2937;
}

.theme-dark {
  --bg-color: #1f2937;
  --fg-color: #f9fafb;
}
  1. Ajoutez un sélecteur de thème dans les paramètres utilisateur.

Migration des anciennes personnalisations

Badges (anciennes pilules d'indicateur)

Les anciennes classes indicator-pill et indicator-pill-{color} sont toujours supportées pour des raisons de compatibilité, mais leur utilisation est déconseillée. Voici comment migrer :

Ancienne classeÉquivalent Espresso
indicator-pilles-badge
indicator-pill-greenes-badge data-theme="green"
indicator-pill-redes-badge data-theme="red"

Exemple de migration :

- <span class="indicator-pill indicator-pill-green">Actif</span>
+ <span class="es-badge" data-theme="green">Actif</span>

Variables CSS dépréciées

Ancienne variableNouvelle variable
--border-radius--radius-md
--shadow-sm--shadow-1
--text-muted--gray-500

Bonnes pratiques

  • Consistance : Utilisez les composants Espresso (es-badge, es-button, etc.) plutôt que de créer des styles personnalisés.
  • Accessibilité : Vérifiez les contrastes de couleurs avec des outils comme WebAIM Contrast Checker.
  • Performance : Évitez de surcharger les variables CSS dans des sélecteurs spécifiques (privilégiez les surcharges globales).
  • Documentation : Documentez les personnalisations dans un fichier THEME.md à la racine de votre application.

Dépannage

Problème : Les badges n'affichent pas les icônes

  • Vérifiez que l'icône est bien chargée (utilisez des icônes de Material Design Icons ou Frappe Icons).
  • Assurez-vous que la classe CSS de l'icône est correcte (ex. : i-mdi-alert-circle).

Problème : Les couleurs personnalisées ne s'appliquent pas

  • Vérifiez que votre fichier CSS est bien chargé (inspectez le réseau dans les outils de développement).
  • Assurez-vous que les variables sont surchargées dans le bon sélecteur (ex. : :root pour une portée globale).

Problème : L'interface semble "cassée" après la migration

  • Videz le cache du navigateur.
  • Vérifiez que toutes les applications utilisent bien les dernières versions des dépendances (ex. : frappe-ui).
  • Consultez les logs du serveur pour détecter d'éventuelles erreurs de compilation CSS.

Ressources

Voir les paramètres du thème Espresso dans la démo