Personnalisation
La personnalisation du branding de l'application, incluant le nom, les images et les couleurs, est centralisée dans un fichier unique : frontend/public/branding/theme.yaml
.
1. Où configurer le branding ?
Le fichier principal pour la configuration du branding est :
frontend/public/branding/theme.yaml
Dans ce fichier, vous pouvez définir :
- Le nom de l'application (
appName
) - Les couleurs principales (
colors
) - Les images de branding (
images
)
Exemple de configuration :
appName: "OchoCast"
colors:
primary: "#1dac78" # Couleur principale (boutons, liens, accents)
secondary: "#344054" # Couleur secondaire (textes, bordures)
background: "#f9fafb" # Couleur de fond
accent: "#2ecc71" # Couleur d'accent (alertes, highlights)
error: "#dc2626" # Couleur d'erreur (messages d'erreur)
images:
logo: "::default::ochoIconFull.svg"
default_miniature_image: "::default::exemple/image_tuile_event.png"
add: "::default::add.svg"
plus: "::default::plus.svg"
search: "::default::search.svg"
cross: "::default::cross.svg"
user_placeholder: "::default::persona.png"
2. Typage et validation
Le schéma de ce fichier YAML est défini dans :
frontend/src/branding/types.ts
L'interface BrandingConfig
garantit que les propriétés du fichier sont bien typées et validées dans le code TypeScript.
3. Génération automatique des couleurs
Le système de branding simplifie la gestion des couleurs en générant automatiquement des variantes. À partir de 4-5 couleurs de base, il produit plus de 50 variantes pour toute l'application.
Fonctionnement :
- Couleurs claires (50-400) : Mélange progressif avec du blanc
- Couleur de base (500) : Couleur exacte définie dans le fichier
- Couleurs foncées (600-900) : Mélange progressif avec du noir
Ces variantes sont générées par la fonction generateColorVariants
dans :
frontend/src/utils/colorUtils.ts
Variables CSS générées :
Pour chaque couleur de base, le système crée des variables CSS :
--theme-color
,--theme-color-50
à--theme-color-900
--bg-color
,--bg-color-50
à--bg-color-900
--accent-color
,--accent-color-50
à--accent-color-900
--error-color
,--error-color-50
à--error-color-900
4. Utilisation dans les composants
Hook useBranding
Le hook useBranding
est défini dans :
frontend/src/hooks/useBranding.ts
Il permet de :
- Charger le fichier
theme.yaml
- Générer les variantes de couleurs via
generateColorVariants
- Injecter dynamiquement les variables CSS dans le DOM
- Retourner la configuration pour une utilisation dans les composants React
Composant ColorPreview
Le composant ColorPreview
est utilisé pour afficher les variantes de couleurs générées. Il est défini dans :
frontend/src/components/ReworkComponents/generic/ColorPreview/ColorPreview.tsx
5. Panneau d'administration
Le panneau d'administration permet de modifier le branding en temps réel. Il est accessible à l'URL : /admin
(droits administrateur requis).
Fonctionnalités :
- Modifier le nom de l'application
- Changer les couleurs principales
- Prévisualiser les dégradés en temps réel
- Modifier les images de branding
- Sauvegarder la configuration sur le serveur
Le fichier correspondant est :
frontend/src/pages/adminPanel/adminPanel.tsx
6. Résumé
- 4-5 couleurs définies → 50+ variables CSS générées automatiquement
- Système de dégradés automatiques (variantes 50-900)
- Panneau d'administration pour modification en temps réel
- Tout le branding centralisé dans
theme.yaml
- Architecture modulaire et typée avec TypeScript
- Rechargement automatique après sauvegarde pour appliquer les changements