Compétence Diagramme Draw.io
Créez des fichiers de diagrammes professionnels et modifiables au format XML natif de draw.io.
Format de sortie
Les fichiers Draw.io sont en XML avec cette structure :
<mxfile host="app.diagrams.net" modified="DATE" agent="Claude" version="21.0.0" type="device">
<diagram name="NOM_DU_DIAGRAMME" id="ID_UNIQUE">
<mxGraphModel dx="1200" dy="800" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1100" pageHeight="850" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<!-- Tous les éléments du diagramme vont ici -->
</root>
</mxGraphModel>
</diagram>
</mxfile>
Types d'éléments principaux
Formes de base
<!-- Rectangle -->
<mxCell id="id-unique" value="Texte de l'étiquette" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="100" y="100" width="120" height="60" as="geometry" />
</mxCell>
<!-- Rectangle arrondi -->
<mxCell id="id-unique" value="Étiquette" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
<mxGeometry x="100" y="100" width="120" height="60" as="geometry" />
</mxCell>
<!-- Cylindre (Base de données) -->
<mxCell id="id-unique" value="Base de données" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
<mxGeometry x="100" y="100" width="80" height="80" as="geometry" />
</mxCell>
<!-- Ellipse -->
<mxCell id="id-unique" value="Nœud" style="ellipse;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
<mxGeometry x="100" y="100" width="80" height="80" as="geometry" />
</mxCell>
Conteneurs et groupes
<!-- Couloir (Conteneur avec en-tête) -->
<mxCell id="id-unique" value="Titre de la section" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=30;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1">
<mxGeometry x="40" y="40" width="200" height="150" as="geometry" />
</mxCell>
<!-- Barre d'en-tête (utilisant la couleur primaire de la marque) -->
<mxCell id="id-unique" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#0066CC;strokeColor=#0066CC;" vertex="1" parent="1">
<mxGeometry x="40" y="40" width="400" height="40" as="geometry" />
</mxCell>
Connecteurs et flèches
<!-- Flèche de base -->
<mxCell id="id-unique" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#666666;" edge="1" parent="1" source="id-source" target="id-cible">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<!-- Flèche bidirectionnelle -->
<mxCell id="id-unique" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;strokeWidth=2;" edge="1" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="200" y="200" as="sourcePoint" />
<mxPoint x="400" y="200" as="targetPoint" />
</mxGeometry>
</mxCell>
<!-- Flèche flexible (Flèche de bloc) -->
<mxCell id="id-unique" value="" style="shape=flexArrow;endArrow=classic;html=1;fillColor=#FFB800;strokeColor=#cc9400;width=20;endSize=8;" edge="1" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="200" y="200" as="sourcePoint" />
<mxPoint x="400" y="200" as="targetPoint" />
</mxGeometry>
</mxCell>
<!-- Ligne pointillée -->
<mxCell id="id-unique" value="" style="endArrow=classic;html=1;dashed=1;dashPattern=8 8;strokeColor=#999999;" edge="1" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="200" y="200" as="sourcePoint" />
<mxPoint x="400" y="200" as="targetPoint" />
</mxGeometry>
</mxCell>
Éléments de texte
<!-- Texte simple -->
<mxCell id="id-unique" value="Texte de l'étiquette" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;" vertex="1" parent="1">
<mxGeometry x="100" y="100" width="100" height="30" as="geometry" />
</mxCell>
<!-- Titre en gras -->
<mxCell id="id-unique" value="Titre" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=18;fontStyle=1;fontColor=#333333;" vertex="1" parent="1">
<mxGeometry x="100" y="20" width="300" height="40" as="geometry" />
</mxCell>
<!-- Texte multiligne (utilisez 
 pour les sauts de ligne) -->
<mxCell id="id-unique" value="Ligne 1
Ligne 2
Ligne 3" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=top;whiteSpace=wrap;rounded=0;fontSize=10;" vertex="1" parent="1">
<mxGeometry x="100" y="100" width="150" height="60" as="geometry" />
</mxCell>
Propriétés de style courantes
Couleurs (utilisez des codes hexadécimaux)
| Propriété | Objectif | Exemple |
|---|---|---|
fillColor | Fond | fillColor=#dae8fc |
strokeColor | Bordure | strokeColor=#6c8ebf |
fontColor | Texte | fontColor=#333333 |
Palette de couleurs standard
Bleu : fillColor=#dae8fc;strokeColor=#6c8ebf
Vert : fillColor=#d5e8d4;strokeColor=#82b366
Jaune : fillColor=#fff2cc;strokeColor=#d6b656
Orange : fillColor=#ffe6cc;strokeColor=#d79b00
Rouge : fillColor=#f8cecc;strokeColor=#b85450
Violet : fillColor=#e1d5e7;strokeColor=#9673a6
Gris : fillColor=#f5f5f5;strokeColor=#666666
Typographie
| Propriété | Valeurs | Exemple |
|---|---|---|
fontSize | Nombre | fontSize=12 |
fontStyle | 0=normal, 1=gras, 2=italique, 3=gras+italique | fontStyle=1 |
align | left, center, right | align=center |
verticalAlign | top, middle, bottom | verticalAlign=middle |
Bordures et effets
| Propriété | Valeurs | Exemple |
|---|---|---|
rounded | 0 ou 1 | rounded=1 |
strokeWidth | Nombre | strokeWidth=2 |
dashed | 0 ou 1 | dashed=1 |
dashPattern | Motif | dashPattern=8 8 |
shadow | 0 ou 1 | shadow=1 |
Marque de l'entreprise (Personnalisable)
Cette compétence prend en charge une marque spécifique à l'entreprise. Modifiez references/branding.md pour définir les couleurs et les styles de votre organisation.
Espaces réservés de marque par défaut (remplacez par les vôtres) :
Primaire : fillColor=#0066CC;strokeColor=#0052a3;fontColor=#FFFFFF
Secondaire : fillColor=#FFB800;strokeColor=#cc9400;fontColor=#333333
Foncé : fillColor=#1a1a2e;strokeColor=#1a1a2e;fontColor=#FFFFFF
Fond clair : fillColor=#f0f4f8;strokeColor=#0066CC
Voir references/branding.md pour les instructions complètes de personnalisation.
Motifs de diagramme
Disposition d'un diagramme d'architecture
- Barre de titre en haut (pleine largeur, couleur de la marque)
- Sections principales sous forme de couloirs ou de conteneurs arrondis
- Composants sous forme de rectangles arrondis à l'intérieur des sections
- Bases de données sous forme de cylindres
- Systèmes externes sur les bords gauche/droit
- Flèches montrant le flux de données/contrôle
- Légende dans un coin expliquant les couleurs/symboles
- Pied de page avec métadonnées
Architecture en couches (de haut en bas)
┌─────────────────────────────────────┐
│ Utilisateurs / Clients │ ← Couche supérieure
├─────────────────────────────────────┤
│ API / Interface │
├─────────────────────────────────────┤
│ Logique métier │
├─────────────────────────────────────┤
│ Données / Stockage │ ← Couche inférieure
└─────────────────────────────────────┘
Flux de gauche à droite
┌──────┐ ┌──────────┐ ┌──────────┐
│Source│ ──► │ Trait. │ ──► │ Cible │
└──────┘ └──────────┘ └──────────┘
Bonnes pratiques
- Identifiants uniques : Chaque mxCell a besoin d'un attribut
idunique - Hiérarchie parent : Définissez
parent="1"pour les éléments de premier niveau - Positionnement : Utilisez
mxGeometryavec x, y, largeur, hauteur - Calques : Les éléments définis plus tard apparaissent au-dessus
- Alignement : Utilisez un espacement x/y cohérent (grille de 10-20px)
- Couleurs : Utilisez des paires remplissage/bordure coordonnées provenant de la palette
- Étiquettes : Gardez le texte concis ; utilisez des éléments de texte séparés pour les descriptions
- Espaces blancs : Laissez des marges à l'intérieur des conteneurs (padding de 20-40px)
Flux de travail
- Déterminez le type de diagramme et le motif de disposition
- Définissez les dimensions de la page dans
mxGraphModel(pageWidth, pageHeight) - Créez la structure du conteneur (couloirs, groupes)
- Ajoutez les composants avec des identifiants uniques
- Ajoutez les connecteurs en référençant les identifiants source/cible
- Ajoutez les étiquettes et annotations
- Ajoutez une légende si vous utilisez un code couleur
- Enregistrez sous forme de fichier
.drawio - Copiez dans
/mnt/user-data/outputs/et présentez à l'utilisateur
Icônes des fournisseurs cloud (AWS, Azure, GCP)
Draw.io inclut des bibliothèques de formes intégrées pour les principaux fournisseurs cloud. Utilisez les icônes officielles pour des diagrammes d'architecture professionnels.
Icônes AWS (Référence rapide)
AWS utilise shape=mxgraph.aws4.resourceIcon avec resIcon=mxgraph.aws4.SERVICE :
<mxCell id="lambda-1" value="Lambda" style="sketch=0;outlineConnect=0;fontColor=#232F3E;fillColor=#ED7100;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.lambda;" vertex="1" parent="1">
<mxGeometry x="100" y="100" width="78" height="78" as="geometry" />
</mxCell>
Valeurs courantes de resIcon AWS :
- Calcul :
ec2,lambda,ecs,eks,fargate - Stockage :
s3,elastic_block_store,elastic_file_system - Base de données :
rds,dynamodb,aurora,elasticache,redshift - Réseau :
vpc,cloudfront,route_53,api_gateway,elastic_load_balancing - Sécurité :
iam,cognito,secrets_manager,kms,waf
Couleurs des catégories AWS :
- Calcul :
#ED7100 - Stockage :
#7AA116 - Base de données :
#C925D1 - Réseau :
#8C4FFF - Sécurité :
#DD344C
Icônes Azure (Référence rapide)
Azure utilise image=img/lib/azure2/CATEGORIE/SERVICE.svg :
<mxCell id="vm-1" value="VM" style="aspect=fixed;html=1;points=[];align=center;image;fontSize=12;image=img/lib/azure2/compute/Virtual_Machine.svg;verticalLabelPosition=bottom;verticalAlign=top;" vertex="1" parent="1">
<mxGeometry x="100" y="100" width="68" height="68" as="geometry" />
</mxCell>
Chemins d'image Azure courants :
compute/Virtual_Machine.svg,compute/Function_Apps.svgcontainers/Kubernetes_Services.svgstorage/Storage_Accounts.svg,storage/Blob_Storage.svgdatabases/SQL_Database.svg,databases/Azure_Cosmos_DB.svgnetworking/Virtual_Networks.svg,networking/Load_Balancers.svgsecurity/Key_Vaults.svg,identity/Azure_Active_Directory.svg
Conteneurs de groupe AWS
<!-- VPC -->
<mxCell id="vpc" value="VPC" style="sketch=0;outlineConnect=0;gradientColor=none;html=1;whiteSpace=wrap;fontSize=12;fontStyle=0;shape=mxgraph.aws4.group;grIcon=mxgraph.aws4.group_vpc;strokeColor=#8C4FFF;fillColor=none;verticalAlign=top;align=left;spacingLeft=30;dashed=0;" vertex="1" parent="1">
<mxGeometry x="40" y="40" width="400" height="300" as="geometry" />
</mxCell>
<!-- Sous-réseau public -->
grIcon=mxgraph.aws4.group_public_subnet;strokeColor=#7AA116;fillColor=#E9F3E6
<!-- Sous-réseau privé -->
grIcon=mxgraph.aws4.group_private_subnet;strokeColor=#00A4A6;fillColor=#E6F6F7
Références
Pour les motifs avancés et les listes d'icônes complètes, voir :
references/architecture-patterns.md- Dispositions courantes de diagrammes d'architecturereferences/style-guide.md- Options de style étendues et placement des icônesreferences/cloud-icons.md- Référence complète des icônes AWS, Azure, GCPreferences/branding.md- Guide de personnalisation de la marque de l'entreprise