Icônes personnalisées
Icônes personnalisées
Le type de document Icône personnalisée ajoute une icône SVG au jeu d'icônes du bureau. L'icône apparaît ensuite dans le sélecteur de tous les champs Icône : type de document, entrée de Dock, lien de barre latérale, espace de travail…
Prérequis
- Vous avez le rôle System Manager.
- Vous avez le code SVG de l'icône : un seul élément
<svg>.
Créer une icône
- Ouvrez la barre de recherche (
Ctrl+K) et tapez « Icône personnalisée ». - Cliquez sur Ajouter un·e Icône personnalisée.
- Saisissez le « Nom de l'icône ». Il ne peut contenir que des lettres, des chiffres, des tirets et des traits de soulignement. Il doit être unique.
- Collez le code dans le champ « SVG ».
- Cliquez sur Enregistrer.
À l'enregistrement, Dodock :
- nettoie le SVG : il ne garde que les éléments et attributs SVG. Les scripts, les gestionnaires d'événements,
foreignObjectet le HTML sont supprimés ; - refuse le contenu s'il ne reste pas un unique élément
<svg>(« Le contenu doit être un unique élément - retire
id,widthetheightde l'élément racine, pour que l'icône prenne la taille de son emplacement ; - vide le cache. Les utilisateurs voient l'icône au prochain chargement de page.
Choisir l'icône
Dans un champ Icône, ouvrez le sélecteur. Les icônes personnalisées sont dans la section « Personnalisation ». Les icônes livrées avec Dodock sont dans la section « Lucide ». Les deux sections n'apparaissent que si au moins une icône personnalisée existe.
Conseils pour le SVG
- Utilisez une zone carrée :
viewBox="0 0 24 24". - Utilisez
currentColorpourfilloustroke. L'icône prend alors la couleur du texte et suit le thème clair ou sombre. - Une icône au trait, comme les icônes Lucide, garde ses attributs
strokeetfillde l'élément racine. Sans attributstroke, Dodock ajoutestroke="none".
Exemple
Exemple fictif : l'administrateur de Maison Verte SARL veut une icône pour le type de document personnalisé « Projet client ».
- Il crée l'icône
maison-verte-projetavec ce SVG :<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <path d="M3 10 12 3l9 7v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1z"/> </svg> - Il ouvre le DocType « Projet client » et choisit
maison-verte-projetdans le champ « Icône ». - Il ajoute une entrée de Dock vers l'espace de travail du projet avec la même icône.
Utiliser l'icône dans un script
Une icône personnalisée a le même nom de symbole que les autres icônes du bureau. Dans un script client :
frappe.utils.icon("maison-verte-projet", "md");
Livrer des icônes avec une application
Il n'y a pas de dossier d'icônes dédié. Pour livrer des icônes avec une application, exportez les documents Icône personnalisée comme fixtures dans hooks.py :
fixtures = [{"dt": "Custom Icon", "filters": [["icon_name", "like", "maison-verte-%"]]}]
Résoudre les problèmes courants
| Problème | Vérification |
|---|---|
| L'icône est vide | Le SVG trace-t-il avec stroke sans le déclarer sur l'élément racine ? Ajoutez stroke="currentColor" sur <svg>. |
| L'icône n'apparaît pas dans le sélecteur | Rechargez la page après l'enregistrement. |
| Erreur à l'enregistrement | Le nom contient-il un espace ou un accent ? Le SVG contient-il plusieurs éléments racines ? |