Connect Fragment UI components with Figma.
Connect Fragment UI components with Figma.
Figma Code Connect allows designers and developers to:
figma-code-connect/*.ts must be committed and pushed for the plugin to see them.This repo keeps mappings in figma-code-connect/ (see figma-code-connect/button.ts and figma-code-connect/input.ts).
Update these fields:
figmaNode: URL to the exact Figma component node (must include node-id=...)figmaComponentName: must match the component name in Figma (case-sensitive)Note: figma-code-connect/input.ts currently contains placeholder values and needs to be updated before it can be used.
npm install -g @figma/code-connectOr use with npx:
npx @figma/code-connectfigma-code-connect/*.ts)Each Code Connect file follows this structure:
import { codeConnect } from "figma-code-connect";
import { Button } from "../packages/ui/src/button";
codeConnect.define({
figmaNode: "https://www.figma.com/file/YOUR_FILE_ID",
figmaComponentName: "Button",
codeComponent: Button,
example: {
props: {
variant: "solid",
size: "md",
children: "Button",
},
},
});// figma-code-connect/button.ts
import { codeConnect } from "figma-code-connect";
import { Button } from "../packages/ui/src/button";
codeConnect.define({
figmaNode: "https://www.figma.com/file/...",
figmaComponentName: "Button",
codeComponent: Button,
variants: {
variant: {
"Solid": { variant: "solid" },
"Outline": { variant: "outline" },
"Ghost": { variant: "ghost" },
},
size: {
"Small": { size: "sm" },
"Medium": { size: "md" },
"Large": { size: "lg" },
},
},
example: {
props: {
variant: "solid",
size: "md",
children: "Button",
},
},
});This repository includes ready-made scripts:
# Parse mappings
pnpm figma:parse
# Publish (requires token)
export FIGMA_TOKEN="..."
pnpm figma:publish
# Alternative: publish dev resources via Figma API (custom script)
pnpm figma:publish:scriptfigmaComponentName matches the exact name in Figma (case-sensitive)figma-code-connect/*.ts files are committed and pushed