Claude-skill-registry figma
Figmaからデザインデータを取得し、React Nativeコンポーネントやデザイントークンに変換する。「Figmaからデザインを取って」「Figmaのカラーを抽出して」「Figmaのコンポーネントをコードにして」などのリクエストで使用する。
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/figma" ~/.claude/skills/majiayu000-claude-skill-registry-figma-b7a3f4 && rm -rf "$T"
manifest:
skills/data/figma/SKILL.mdsource content
Figma デザイン取得・変換スキル
Figma からデザインデータを取得し、React Native のコードやデザイントークンに変換する。
連携方法
方法 1: Figma REST API
Figma Personal Access Token を使って REST API 経由でデザインデータを取得する。
必要な環境変数:
— Figma の Personal Access Token(Settings → Account → Personal access tokens で発行)FIGMA_ACCESS_TOKEN
API エンドポイント:
# ファイル全体の情報を取得 curl -H "X-Figma-Token: $FIGMA_ACCESS_TOKEN" \ "https://api.figma.com/v1/files/{file_key}" # 特定ノードの情報を取得 curl -H "X-Figma-Token: $FIGMA_ACCESS_TOKEN" \ "https://api.figma.com/v1/files/{file_key}/nodes?ids={node_id}" # 画像をエクスポート curl -H "X-Figma-Token: $FIGMA_ACCESS_TOKEN" \ "https://api.figma.com/v1/images/{file_key}?ids={node_id}&format=png&scale=2" # コンポーネント一覧を取得 curl -H "X-Figma-Token: $FIGMA_ACCESS_TOKEN" \ "https://api.figma.com/v1/files/{file_key}/components" # スタイル一覧を取得 curl -H "X-Figma-Token: $FIGMA_ACCESS_TOKEN" \ "https://api.figma.com/v1/files/{file_key}/styles" # ローカル変数(デザイントークン)を取得 curl -H "X-Figma-Token: $FIGMA_ACCESS_TOKEN" \ "https://api.figma.com/v1/files/{file_key}/variables/local"
Figma URL からのキー抽出:
- ファイル URL:
→https://www.figma.com/design/{file_key}/{file_name}
を取得{file_key} - ノード URL:
クエリパラメータから取得(?node-id={node_id}
を-
に変換):
方法 2: Figma MCP Server
Claude の MCP 設定に Figma MCP Server が追加されている場合、MCP ツール経由で直接 Figma にアクセスする。
MCP が利用可能な場合は API より MCP を優先して使う。
操作モード
モード A: デザイントークン抽出
Figma のスタイルや変数からデザイントークン(カラー、タイポグラフィ、スペーシング)を抽出し、TypeScript の定数ファイルに変換する。
出力先:
src/constants/
カラートークンの例:
// src/constants/colors.ts export const Colors = { primary: '#6366F1', primaryLight: '#A5B4FC', primaryDark: '#4338CA', secondary: '#EC4899', background: '#FFFFFF', surface: '#F9FAFB', text: '#111827', textSecondary: '#6B7280', border: '#E5E7EB', error: '#EF4444', success: '#22C55E', warning: '#F59E0B', } as const; export type ColorKey = keyof typeof Colors;
タイポグラフィトークンの例:
// src/constants/typography.ts import { TextStyle } from 'react-native'; export const Typography: Record<string, TextStyle> = { h1: { fontSize: 32, fontWeight: '700', lineHeight: 40 }, h2: { fontSize: 24, fontWeight: '700', lineHeight: 32 }, h3: { fontSize: 20, fontWeight: '600', lineHeight: 28 }, body: { fontSize: 16, fontWeight: '400', lineHeight: 24 }, bodySmall: { fontSize: 14, fontWeight: '400', lineHeight: 20 }, caption: { fontSize: 12, fontWeight: '400', lineHeight: 16 }, } as const;
スペーシングトークンの例:
// src/constants/spacing.ts export const Spacing = { xs: 4, sm: 8, md: 16, lg: 24, xl: 32, xxl: 48, } as const; export const BorderRadius = { sm: 4, md: 8, lg: 16, full: 9999, } as const;
モード B: コンポーネント変換
Figma のフレームやコンポーネントを React Native コンポーネントコードに変換する。
手順:
- Figma API / MCP でノードのデザインデータ(レイアウト、色、フォント、サイズ等)を取得する
- Figma の Auto Layout を React Native の
,flexDirection
,gap
にマッピングするpadding - デザイントークンが
に存在すればそれを参照するsrc/constants/
にコンポーネントファイルを生成するsrc/components/
Figma → React Native マッピング:
| Figma プロパティ | React Native スタイル |
|---|---|
| Auto Layout (horizontal) | |
| Auto Layout (vertical) | |
| Spacing between items | |
| Padding | , , |
| Fill container | |
| Fixed size | / |
| Corner radius | |
| Fill (solid color) | |
| Stroke | , |
| Drop shadow | , , , , |
| Text properties | , , , , |
| Opacity | |
手順(共通)
- ユーザーから Figma URL またはファイルキーを受け取る
- URL から
とfile_key
を抽出するnode_id - 環境変数
の存在を確認する(なければ設定方法を案内する)FIGMA_ACCESS_TOKEN - MCP が利用可能か確認し、可能なら MCP を使う
- 指定されたモード(トークン抽出 / コンポーネント変換)を実行する
- 生成したファイルの内容をユーザーに報告する
ルール
- Figma の色は RGBA → HEX に変換する(Figma API は 0〜1 の float で返す)
- フォントファミリーは Expo で利用可能なものに置き換える(
で読み込み前提)expo-font
値はそのまま React Native の数値として使う(React Native は dp ベース)px- 画像アセットは
ディレクトリにエクスポートするassets/ - 既存のデザイントークンファイルがあれば上書きではなくマージする
をコードやログに直接記載しないFIGMA_ACCESS_TOKEN