figma

v2026.09.24

Figma design-to-code workflow. Read Figma files, inspect components, extract design tokens, and translate designs to implementation. Use when working with Figma designs, extracting styles, or building design systems.

GitHub
安装命令
npx skhub add oimiragieo/figma
Markdown
SKILL.md

Figma

Extract design information from Figma files for implementation. Covers design token extraction, component inspection, and design-to-code translation.

When to Use

  • Translating Figma designs into frontend code
  • Extracting design tokens (colors, typography, spacing) from Figma
  • Inspecting Figma component structure for implementation planning
  • Building or updating a design system from Figma sources
  • Mapping Figma auto-layout properties to CSS

Prerequisites

  • Figma Personal Access Token (set as FIGMA_ACCESS_TOKEN env var)
  • Figma file URL or file key

Core API Endpoints

Get File

curl -H "X-Figma-Token: $FIGMA_ACCESS_TOKEN" \
  "https://api.figma.com/v1/files/FILE_KEY"

Get File Nodes (specific components)

curl -H "X-Figma-Token: $FIGMA_ACCESS_TOKEN" \
  "https://api.figma.com/v1/files/FILE_KEY/nodes?ids=NODE_ID1,NODE_ID2"

Get Image Exports

curl -H "X-Figma-Token: $FIGMA_ACCESS_TOKEN" \
  "https://api.figma.com/v1/images/FILE_KEY?ids=NODE_ID&format=svg"

Get File Styles

curl -H "X-Figma-Token: $FIGMA_ACCESS_TOKEN" \
  "https://api.figma.com/v1/files/FILE_KEY/styles"

Get File Components

curl -H "X-Figma-Token: $FIGMA_ACCESS_TOKEN" \
  "https://api.figma.com/v1/files/FILE_KEY/components"

Design Token Extraction Workflow

Step 1: Fetch File Styles

# Get all published styles
curl -s -H "X-Figma-Token: $FIGMA_ACCESS_TOKEN" \
  "https://api.figma.com/v1/files/FILE_KEY/styles" | jq '.meta.styles'

Step 2: Map to CSS Variables

/* Colors */
:root {
  --color-primary: #2563eb; /* From Figma: Primary/500 */
  --color-secondary: #7c3aed; /* From Figma: Secondary/500 */
  --color-surface: #ffffff; /* From Figma: Surface/Default */
}

/* Typography */
:root {
  --font-heading: 'Inter', sans-serif;
  --font-body: 'Inter', sans-serif;
  --text-xl: 1.25rem; /* From Figma: Heading/XL */
  --text-base: 1rem; /* From Figma: Body/Base */
  --leading-tight: 1.25;
  --leading-normal: 1.5;
}

/* Spacing */
:root {
  --space-1: 0.25rem; /* 4px */
  --space-2: 0.5rem; /* 8px */
  --space-4: 1rem; /* 16px */
  --space-8: 2rem; /* 32px */
}

Step 3: Auto-Layout to CSS Mapping

Figma Auto-LayoutCSS Equivalent
Horizontaldisplay: flex; flex-direction: row;
Verticaldisplay: flex; flex-direction: column;
Space betweenjustify-content: space-between;
Packed (start)justify-content: flex-start;
Gap: 16gap: 1rem;
Padding: 16,24padding: 1rem 1.5rem;
Fill containerflex: 1; or width: 100%;
Hug contentswidth: fit-content;

Step 4: Component Inspection

For each Figma component, extract:

  1. Name - Component name and variant properties
  2. Structure - Child node tree (frames, text, images)
  3. Styles - Applied color, text, and effect styles
  4. Constraints - Responsive behavior rules
  5. Variants - All component variants and their properties

Iron Laws

  1. ALWAYS extract design tokens before building components — building without tokens leads to hardcoded values that break when the design system updates.
  2. NEVER hardcode Figma colors/spacing — always map to CSS variables or design token constants that reference the Figma source.
  3. ALWAYS map Figma auto-layout to CSS flexbox — auto-layout is a direct 1:1 mapping to flexbox; using other layout methods loses design intent.
  4. NEVER export raster images when SVG is available — SVGs scale cleanly and reduce bundle size; only use PNG/JPEG for photographs.
  5. ALWAYS preserve Figma component naming in code component names — divergent naming breaks the design-development feedback loop.

Anti-Patterns

Anti-PatternWhy It FailsCorrect Approach
Hardcoded hex colorsBreaks on design system updateUse CSS variables mapped from Figma tokens
Ignoring auto-layoutLayout doesn't match designMap auto-layout 1:1 to flexbox/grid
Pixel-perfect obsessionWastes time, ignores responsiveMatch design intent, not exact pixels
Skipping component variantsMissing states (hover, disabled)Extract ALL Figma variants
Manual token extractionError-prone, doesn't scaleUse Figma REST API for programmatic extraction

Figma MCP Server Tools (figma/mcp-server-guide)

When the official Figma MCP server is running, these 12 tools are available:

ToolPurpose
get_design_contextGet full design context for a file/node (components, styles, layout)
generate_figma_designGenerate new designs from natural language description
get_variable_defsExtract all design tokens (colors, spacing, typography variables)
get_screenshotCapture rendered screenshot of a frame/component
code_connect_mapMap Figma components to their code counterparts
create_design_system_rulesAuto-generate design system documentation
get_figjamAccess FigJam board content and sticky notes
generate_diagramGenerate Figma diagram from Mermaid input
get_componentsList all published components in a file
get_stylesExtract all defined styles (color, text, effect)
export_assetsExport assets as PNG/SVG/PDF with scale options
get_annotationsRetrieve design annotations and spec notes
get_metadataGet XML layer representation of a file/node for programmatic parsing
whoamiGet current user identity, plan tier, and available seat count

MCP Setup: Install Figma Desktop app -> Settings -> Enable MCP server Auth: Uses active Figma session (no API key needed for local MCP) Key workflow: get_design_context -> code_connect_map -> export_assets for design-to-code Identity check: Use whoami to verify plan tier before calling enterprise-only tools

Memory Protocol (MANDATORY)

Before starting: Read .claude/context/memory/learnings.md

After completing:

  • New pattern -> .claude/context/memory/learnings.md
  • Issue found -> .claude/context/memory/issues.md
  • Decision made -> .claude/context/memory/decisions.md

ASSUME INTERRUPTION: If it's not in memory, it didn't happen.

发现
标签

此技能尚未发布标签。

版本
最新版本元数据

版本

v2026.09.24

发布时间

Sep 24, 2026

分类

未分类

许可证

未指定

源路径

.claude/skills/figma

默认分支

main

最新提交

64b580e

Tree SHA

42a1df4