Skip to content

Figkit

One Figma capture, six runnable outputs - HTML / Unity / Godot / Unreal / Cocos + a semantic UI-DSL, compiled from one pixel-faithful IR with declared interactions.

Install

$/plugin marketplace add ProdaZhang/figkit

Install command taken from the project's README or registry entry. Always review code before running it.

FigKit — one Figma capture, five runnable outputs

Turn a Figma frame into a runnable client — HTML, Unity, Godot, Cocos Creator — plus a semantic UI-DSL, all compiled from one pixel-faithful intermediate representation. Figma's own prototype links and transitions are imported; the application semantics on top (guards, data binding, app hooks) are declared once and run on every backend.

Figma (the design) HTML (Edge) Unity Godot Cocos Creator
the Figma frame this screen was captured from mail rendered in HTML mail rendered in Unity mail rendered in Godot mail rendered in Cocos Creator

One frame out of a shipping game's Figma file, captured once and compiled four ways. Each backend is measured against the first column — the design — never against the others: four renderers can be identical and identically wrong.

Mean difference from the Figma frame, outside text (/255; why outside text):

screen HTML Unity Godot Cocos
list 0.81 0.81 1.13 1.13
detail, with attachments 0.53 0.59 0.65 0.57
detail, nothing to claim 0.59 0.62 0.63 0.63

The frames are committed in examples/mail/design/, so this reproduces from a clone:

python3 tools/design-diff/check.py figma2html/examples/mail/screen-list.ui.json \
                                   figma2html/examples/mail/design/screen-list.png
figma REST ──► figma_capture ──►  IR: <screen>.ui.json (pixels) + flow.json (behavior)
                                   │        spec/ v1.1 — the shared contract, additive-only
        ┌──────────┬───────────┬───┴───────┬───────────┐
        ▼          ▼           ▼           ▼           ▼
   figma2html  figma2dsl  figma2unity figma2godot figma2cocos
   runnable    semantic   UXML+USS +  .tscn +     Creator TS
   HTML client UI-DSL(md) FlowBinder  GDScript    interpreter

        └──────────┴───────────┴──── figkit-motion ────┘
             the catalog all five share: 59 effects, 63 tokens, 6 algorithms

What separates it from a figma-to-code exporter: the flow layer. Figma's prototype interactions are real and FigKit imports them, but they run inside the Figma player, against static frames. flow.json adds what a shipping client needs and Figma cannot express — guards over app state, list rows cloned from real data, a clean engine-vs-app-hook boundary — keyed by Figma node ids so it survives re-capture, and implemented identically by every backend.

Status

Similar plugs

The 1st Collaborative AI Design Agent Workspace. Local-first and open source. Create prototypes, websites, apps, dashboards, presentations, images, and videos with your team…

Editorial diagram design for Claude Code, Codex, GitHub Copilot, Cursor, Factory Droid, and Pi. 44 diagram types. Self-contained HTML + SVG. No shadows. No Mermaid slop.

Explore related