2 KiB
2 KiB
| title | description |
|---|---|
| Scripter | Exécutez du JavaScript avec l'API Figma Plugin — interrogez des nœuds, modifiez des designs en lot, créez des frames. |
Scripter
openpencil eval vous donne accès à l'API complète Figma Plugin dans le terminal. Lisez des nœuds, modifiez des propriétés, créez des formes — puis écrivez les changements dans le fichier.
Utilisation de base
openpencil eval design.fig -c "figma.currentPage.children.length"
L'option -c prend du JavaScript. Le global figma fonctionne comme l'API Figma Plugin.
Interroger des nœuds
openpencil eval design.fig -c "
figma.currentPage.findAll(n => n.type === 'FRAME' && n.name.includes('Button'))
.map(b => ({ id: b.id, name: b.name, w: b.width, h: b.height }))
"
Modifier et sauvegarder
openpencil eval design.fig -c "
figma.currentPage.children.forEach(n => n.opacity = 0.5)
" -w
-w écrit les changements dans le fichier d'entrée. Utilisez -o output.fig pour écrire dans un fichier différent.
Lire depuis l'entrée standard
Pour des scripts plus longs :
cat transform.js | openpencil eval design.fig --stdin -w
Mode application en direct
Omettez le fichier pour exécuter sur l'application de bureau en cours d'exécution :
openpencil eval -c "figma.currentPage.name"
API disponible
L'objet figma supporte :
figma.currentPage— la page activefigma.root— la racine du documentfigma.createFrame(),figma.createRectangle(),figma.createEllipse(),figma.createText(), etc..findAll(),.findOne()— rechercher dans les descendants.appendChild(),.insertChild()— manipulation de l'arborescence- Tous les setters de propriétés :
.fills,.strokes,.effects,.opacity,.cornerRadius,.layoutMode,.itemSpacing, etc.
C'est la même API que celle utilisée par les plugins Figma, donc les connaissances et les extraits de code existants sont directement transférables.
Sortie JSON
openpencil eval design.fig -c "..." --json