Figma分析器Skill figma-analyzer

Figma分析器技能用于通过Figma REST API提取设计资产、元数据和设计令牌,支持图像导出和UI研究,关键词包括Figma、API、设计工具、UI设计、元数据提取、设计令牌、图像导出、UI研究。

其他 0 次安装 0 次浏览 更新于 3/20/2026

name: figma-analyzer description: 使用Figma REST API从Figma提取设计资产和元数据。支持将框架/组件导出为图像,提取节点元数据、设计令牌和文件结构。与ai-multimodal技能集成以进行全面的UI研究。 license: MIT allowed-tools:

  • Bash
  • Read
  • Write

Figma分析器技能

使用Figma REST API从Figma文件中提取设计资产、元数据和规范。

核心能力

资产导出

  • 将框架/组件导出为PNG、JPG、SVG、PDF格式
  • 可配置缩放比例(1x、2x、3x、4x)
  • 批量导出多个节点
  • 下载图像到本地文件系统

元数据提取

  • 文件结构和页面层次结构
  • 节点属性(大小、位置、约束)
  • 组件和样式定义
  • 版本历史

设计令牌提取

  • 颜色样式和调色板
  • 排版样式
  • 效果样式(阴影、模糊)
  • 网格和布局样式

先决条件

API密钥设置

获取Figma个人访问令牌:

  1. 前往Figma设置 > 账户
  2. 滚动到“个人访问令牌”
  3. 生成具有读取权限的新令牌

技能按以下顺序检查FIGMA_ACCESS_TOKEN

  1. 进程环境:export FIGMA_ACCESS_TOKEN="your-token"
  2. 项目根目录:.env
  3. .claude/.env
  4. .claude/skills/.env
  5. .claude/skills/figma-analyzer/.env

安装依赖

pip install requests python-dotenv

Figma URL解析

Figma URL包含文件密钥和可选的节点ID:

https://www.figma.com/file/{file_key}/{file_name}?node-id={node_id}
https://www.figma.com/design/{file_key}/{file_name}?node-id={node_id}

示例:

  • 完整文件:https://www.figma.com/file/ABC123/MyDesign
  • 特定框架:https://www.figma.com/file/ABC123/MyDesign?node-id=1-234

快速开始

导出设计为图像

python scripts/figma_export.py \
  --url "https://www.figma.com/file/ABC123/Design?node-id=1-234" \
  --output docs/research/ui/design.png \
  --scale 2

获取文件元数据

python scripts/figma_export.py \
  --url "https://www.figma.com/file/ABC123/Design" \
  --metadata-only \
  --output docs/research/ui/figma-metadata.json

提取设计令牌

python scripts/figma_export.py \
  --url "https://www.figma.com/file/ABC123/Design" \
  --extract-tokens \
  --output docs/research/ui/design-tokens.json

批量导出多个框架

python scripts/figma_export.py \
  --url "https://www.figma.com/file/ABC123/Design" \
  --node-ids "1-234,1-235,1-236" \
  --output docs/research/ui/frames/ \
  --scale 2

API参考

使用的端点

端点 用途
GET /v1/files/:key 获取文件元数据和结构
GET /v1/files/:key/nodes 获取特定节点数据
GET /v1/images/:key 将节点导出为图像
GET /v1/files/:key/styles 获取已发布的样式
GET /v1/files/:key/components 获取已发布的组件

速率限制

  • 免费层级:每分钟300个请求
  • 付费层级:根据计划有更高限制
  • 实施指数退避进行重试

输出格式

元数据JSON结构

{
  "file_key": "ABC123",
  "name": "我的设计",
  "last_modified": "2024-01-15T10:30:00Z",
  "thumbnail_url": "https://...",
  "nodes": {
    "1-234": {
      "name": "英雄部分",
      "type": "FRAME",
      "absoluteBoundingBox": {
        "x": 0, "y": 0,
        "width": 1440, "height": 800
      },
      "children": [...]
    }
  }
}

设计令牌JSON结构

{
  "colors": {
    "primary": {"value": "#3B82F6", "name": "蓝色 500"},
    "secondary": {"value": "#10B981", "name": "绿色 500"}
  },
  "typography": {
    "heading-1": {
      "fontFamily": "Inter",
      "fontSize": 48,
      "fontWeight": 700,
      "lineHeight": 1.2
    }
  },
  "effects": {
    "shadow-md": {
      "type": "DROP_SHADOW",
      "offset": {"x": 0, "y": 4},
      "radius": 6,
      "color": "rgba(0,0,0,0.1)"
    }
  },
  "spacing": {
    "xs": 4, "sm": 8, "md": 16, "lg": 24, "xl": 32
  }
}

与ai-multimodal集成

导出图像后,使用ai-multimodal进行视觉分析:

# 步骤1:从Figma导出
python .claude/skills/figma-analyzer/scripts/figma_export.py \
  --url "$FIGMA_URL" \
  --output docs/research/ui/design.png \
  --scale 2

# 步骤2:使用Gemini Vision分析
python .claude/skills/ai-multimodal/scripts/gemini_batch_process.py \
  --files docs/research/ui/design.png \
  --task analyze \
  --prompt "分析布局并提取组件规范" \
  --output docs/research/ui/analysis.md \
  --model gemini-2.5-flash

错误处理

错误代码 含义 解决方案
400 错误请求 检查URL格式和节点ID
403 禁止访问 验证访问令牌和文件权限
404 未找到 检查文件密钥和节点ID是否存在
429 速率限制 实施退避,等待并重试
500 服务器错误 使用指数退避重试

最佳实践

图像导出

  1. 使用2倍缩放进行高质量分析
  2. 导出特定框架,而非整个文件
  3. 使用PNG处理具有透明度的UI元素
  4. 使用JPG处理照片密集型设计

令牌提取

  1. 确保样式在Figma中已发布
  2. 使用一致的命名约定
  3. 导出本地和已发布的样式
  4. 将令牌映射到CSS自定义属性

性能

  1. 缓存元数据以减少API调用
  2. 批量导出多个节点
  3. 对大文件使用节点ID过滤
  4. 实施请求限流

工作流集成

此技能设计用于与以下配合:

  • ui-researcher agent:UI研究工作流的主要消费者
  • ai-multimodal skill:用于导出图像的视觉分析
  • /ui-research command:协调完整的研究工作流

脚本概述

figma_export.py

用于Figma API交互的主要脚本:

python scripts/figma_export.py --help

选项:
  --url          Figma文件或框架URL(必需)
  --output       图像/数据的输出路径
  --scale        导出缩放比例(1, 2, 3, 4)
  --format       导出格式(png, jpg, svg, pdf)
  --node-ids     逗号分隔的节点ID以导出
  --metadata-only  仅获取元数据,无图像导出
  --extract-tokens 提取设计令牌
  --verbose      启用详细输出

资源