Skip to main content

figma-cli

Build and edit designs directly in Figma Desktop from the terminal using the figma-cli command (controls Figma live over a local connection, no API key). Use whenever the user wants to create, render, or edit Figma frames/components/variants, add or import design tokens/variables (shadcn, Tailwind, DTCG, CSS), extract a design system to DESIGN.md, generate gradients/wallpapers, animate with Figma Motion, run accessibility audits, or connect an AI assistant to their Figma. Triggers on "build/make X in Figma", "add my design system", "create N buttons/cards", "use my variables", "export the design system", "check contrast".

소스 정보

저장소
silships/figma-cli
최근 소스 활동
2026년 7월 5일 08:53
감지된 SKILL.md 언어
영어
스타
985
포크
124

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
figma-cli
description
Build and edit designs directly in Figma Desktop from the terminal using the figma-cli command (controls Figma live over a local connection, no API key). Use whenever the user wants to create, render, or edit Figma frames/components/variants, add or import design tokens/variables (shadcn, Tailwind, DTCG, CSS), extract a design system to DESIGN.md, generate gradients/wallpapers, animate with Figma Motion, run accessibility audits, or connect an AI assistant to their Figma. Triggers on "build/make X in Figma", "add my design system", "create N buttons/cards", "use my variables", "export the design system", "check contrast".
# Using figma-cli figma-cli controls **Figma Desktop** directly (no API key). It runs in any terminal. Open Figma Desktop, then `figma-cli connect` once per session. If the `figma-cli` command is not found, the tool isn't installed yet — see **Installation** at the bottom. Never show raw terminal commands to the user; run them silently and give friendly feedback. ## Connect (pick one mode) - `figma-cli connect` — **Yolo** (default): patches Figma Desktop once, fully automatic. - `figma-cli connect --browser` — **Browser**: drives Figma in a Chromium browser via a local connection; **never modifies the Figma app**. Use when patching the desktop app is undesirable (compliance / locked-down machine / no "App Management" permission). - `figma-cli connect --safe` — **Safe**: official plugin (Plugins → Development → FigCli). ## Golden rules 1. **Create frames with `render` / `render-batch`** — they have smart positioning. NEVER use `eval` to create visual nodes (no positioning, bypasses guards). 2. **"N buttons/cards" = N separate top-level nodes**, not one wrapper frame containing N children. Use `render-batch '[...]'` or `shadcn add <c> --count N`. 3. **Never delete the user's existing nodes.** 4. After creating, **verify**: `figma-cli verify "<id>" --measure` (returns a screenshot + real w/h so you catch size bugs by numbers, not by eye). ## Design tokens / variables - Bind colors at creation with `var:name`, never raw hex when a system is loaded: `<Frame bg="var:primary"><Text color="var:on-primary">Go</Text></Frame>` - Pin a named collection when the user names one: `render-batch ... --collection figma`. - Import a system: `figma-cli import tailwind.config.js | globals.css | tokens.json`. - Export the open file's system: `figma-cli extract` → DESIGN.md. ## JSX cheatsheet (render) - Layout: `flex="row|col" gap={16} p={24} px py pt pr pb pl justify="center|between" items="center"` - Size: `w={320} h={200} w="fill" w="hug" w="60%"` (percent resolves vs parent) - Look: `bg="#fff" stroke="#000" strokeWidth={2} rounded={12} shadow="..." opacity={0.8}` - Text: `<Text size={14} weight="semibold" color="#000" lineHeight={20} truncate maxLines={2} w="fill">` - Icons (real SVG, never emojis): `<Icon name="lucide:home" size={20} color="var:primary" />` - Dividers: a thin child (`<Frame w={1} bg="var:border" />`) auto-fills the cross axis. ## Text wrapping (most common bug) For text to wrap, the parent AND every `<Text>` need `w="fill"`, and the parent needs `flex="col"` or `flex="row"`. ## Recreating a component from an extracted DESIGN.md (hard rule) Don't read the structure markdown by hand. Use: - `figma-cli spec <Component>` → authoritative variant axes + sample size (compact). Build EXACTLY to those axes (e.g. Variant × Size = a Component Set, not one node). - `figma-cli spec <Component> --check <nodeId>` → enforces it (exit 1 on mismatch: wrong structure, missing axes, wrong height). Treat non-zero as "not done". ## Handy commands ``` figma-cli connect # connect to Figma Desktop (yolo) figma-cli render '<Frame>...</Frame>' # one frame figma-cli render-batch '[ "<Frame>", ... ]' --direction row figma-cli shadcn add button --count 3 # N distinct shadcn primitives figma-cli node to-component "<id>" # promote to a component figma-cli verify "<id>" --measure # screenshot + dimensions figma-cli a11y audit # contrast / touch / text checks figma-cli tokens preset shadcn # 244 primitives + semantic (light/dark) figma-cli var visualize # show colors on canvas figma-cli motion preset <id> fade-up # animate (Figma Motion, beta) figma-cli blocks create dashboard-01 # pre-built dashboard layout ``` ## Installation figma-cli is a Node CLI (Node ≥ 18) that talks to Figma Desktop locally. If the `figma-cli` binary is missing, get the project from https://github.com/silships/figma-cli and run `npm install` in it, then invoke it as `node src/index.js <command>` (or link it as `figma-cli`). Full command reference and JSX docs live in that repo's README.md and REFERENCE.md.
GitHub에서 보기