Figma plugin API людською мовою

Figma

Зіткнувся з написанням плагіна для Figma і дивуюся, навіщо так складно? Ну, взагалі-то, нічого особливо складного немає. Але цей TypeScript, це навіщо все? Встанови модулі, налаштуйте публікацію. Скільки я не думав, єдине пояснення, навіщо все це потрібне, це захист від дурня. Типу, кому треба – розбереться, а іншим і нема чого лізти, говнокод плодити.

Ну так ми розвіємо цей снобістський тренд і прорубаємо шлях в API Figma для всіх бажаючих.

Суть у тому, що якщо відкинути все зайве, то в сухому залишку нам знадобиться лише три файли:

Figma plugin API людською мовою

Точкою входу плагіна є файл manifest.json. Виглядати він має так:

{
 "name": "Simple Plugin",
 "api": "1.0.0",
 "main": "plugin.js",
 "ui": "index.html",
 "editorType": [
   "figma"
 ]
}

Поле name це ім’я плагіна, воно буде відображатися в меню і на корінці вікна плагіна.

У полі api ми вказуємо версію api, поки це 1.0.0.

Поле editorType містить масив із перерахуванням редакторів, для яких розробляється плагін. Ми вказуємо лише figma.

Два поля main і ui, що залишилися, містять шляхи до файлів самого плагіна. ui вказує на html з версткою та логікою вікна плагіна. main посилається на js з логікою взаємодії плагіна з Figma.

Почнемо їх вивчення з ui, а значить із файлу index.html:

<button>Click Me</button>
<script>
   document.querySelector('button').onclick = () => {
       alert('Hello world!!!')
   }
</script>

Я помістив у нього кнопку та скрипт, що обробляє клік по цій кнопці. Натиснувши кнопку, виводиться вікно з текстом “Hello World!!!”. Тут важливо зрозуміти, що скрипт повинен перебувати усередині html. Підвантажувати скрипт атрибутом src плагін не вміє.

Ну, і останній файл, який нам потрібен для роботи плагіна, це plugin.js.

figma.showUI (
   __html__,
   {width: 400, height: 400}
);

Він дуже простий, в ньому ми тільки даємо Figma команду, відкрити вікно з вмістом нашого html. Другим параметром метод showUI приймає об’єкт, у якому ми вказуємо необхідний розмір вікна.

Ось, власне, і все. Нам залишилося лише відкрити редактор Figma та перейти в меню Plugins -> Development -> Import plugin from manifest…

Figma plugin API людською мовою

Вибираємо наш manifest.json, після чого в тому ж меню знаходимо наш плагін.

Figma plugin API людською мовою

Наш плагін готовий.

З документацією API Figma можна познайомитись тут.