2.1 KiB
2.1 KiB
xd2fig
Convertisseur Adobe XD (.xd) → Figma (.fig). Le fichier produit s'importe dans Figma par glisser-déposer dans le navigateur de fichiers.
Utilisation
npm install
node src/cli.js maquette.xd [sortie.fig]
Le rapport affiche les polices à installer et les éléments qui n'ont pas pu être reproduits à l'identique.
Ce qui est converti
- Artboards (frames), groupes, masques, éléments hors artboard
- Rectangles (coins arrondis), ellipses, lignes, chemins et formes composées (vecteurs éditables)
- Textes ponctuels, à hauteur auto et à zone, avec styles mixtes, interligne, alignement, casse, soulignement
- Remplissages unis, dégradés linéaires et radiaux, images (recadrage, symétrie), contours
- Ombres portées et internes, flou de calque et d'arrière-plan
- Contraintes responsive, opacité, modes de fusion
- Instances de composants (contenu résolu depuis les maîtres, surcharges comprises) — converties en groupes
Limites connues
- Les composants XD deviennent des groupes, pas des composants Figma
- La luminosité du flou d'arrière-plan n'est pas reproduite
- Grilles et repères des artboards non transférés
- Les images de plus de 4096 px sont réduites (limite de Figma)
Fonctionnement
src/xd.js: lecture du.xd(ZIP : manifest,graphicContent.agcpar artboard, ressources)src/convert.js: arbre XD → arbre intermédiaire (transformations, peintures, textes, effets)src/build.js: arbre intermédiaire → nœuds Figma (géométrie, vector networks, images)src/figfile.js: lecture/écriture du binairecanvas.fig(fig-kiwi: schéma kiwi + données compressées)template/canvas.fig: schéma kiwi de Figma (version 106), sans contenu. Si Figma change de format, le remplacer par lecanvas.figd'un fichier récent (Fichier → Enregistrer une copie locale), vidé avecwriteCanvas.
Outils de développement
tools/render.js fichier.fig dossier/: aperçu SVG d'un.figgénéré, pour comparer sans Figmatools/inspect-fig.js canvas.fig dossier/: dump du schéma et des nœuds d'un.figtools/test-fig.js: génère des.figde test minimaux