バイブコーディングでアプリを一日で作ったという話、もう珍しくないですよね。でも実際に結果を見ると — 機能は動くのにUIが「AIが作った感」丸出し。あのジェネリックな感じ。デザイナーが見たらため息が出るあの差。
問題はシンプルです。AIはコードを上手く書きますが、「このデザインを正確に実装して」と言うと80%しか合わせられず、残り20%で崩れます。パディングがズレて、カラーが微妙に違って、レイアウトがずれます。それを直そうと「ここをもう少し広げて」「いや、それじゃなくてこっち」とやり取りしているうちに、AIが節約してくれた時間をデザイン修正に全部使ってしまいます。
でもこれを解決した人たちがいます。背景ピクセル一致率99.8%まで達成した事例も出ています。核心は3つの武器の組み合わせです。
これは何?
FigmaデザインをAIコーディングエージェントに渡す方法は大きく3つあります:
- スクリーンショットを直接見せる — AIビジョンで解釈。最も一般的ですが不正確。
- Figma公式MCPを使う — Figma APIでデザインデータをコード(React/Tailwind)に変換して渡す。
- Framelink MCPを使う — Figma APIでデザインデータを記述的JSONに変換して渡す。
ここで2番と3番の違いが決定的です。
Figma公式MCPはデザインノードを読んでReact + Tailwindコードを直接生成します。問題はこのコードがleading-[22.126px]のような任意の値で溢れていること。AIはそのままコピーします — あなたのコードベースのパターンは無視して。
Framelink MCPはアプローチが違います。「この要素は1pxのボーダーと16pxのパディングを持ち、UI/Button - Largeスタイルを使っている」という形で記述的なデータを送ります。AIがこの仕様を読んで、プロジェクトの既存コンポーネントとデザインシステムに合わせてコードを書くのです。
何が変わるの?
| 項目 | Figma公式MCP | Framelink MCP |
|---|---|---|
| 出力形式 | React/Tailwindコード(処方的) | 記述的JSON(説明的) |
| データサイズ | より大きく冗長 | 約25%小さい |
| スタイル名 | 消失 | 保持(例:UI/Button - Large) |
| ネストしたコンポーネント | 平坦化(構造の誤解を誘発) | 正確に表現 |
| 重複除去 | コンポーネントのみ | スタイル + 自動検知重複まで |
| AIの行動 | コードをコピー(任意値含む) | 仕様を解釈してプロジェクトに合わせて実装 |
FramelinkはGraham Lipsmanが作ったオープンソースプロジェクトで、GitHubで13,000以上のスターを集めています。 Cursor、Claude Code、Windsurf、VS Codeなど、MCPをサポートするほぼすべてのエディターで使えます。
でもFramelinkだけでは不十分です。デザイントークンを正確に渡すのは半分の解決策です。AIがそのトークンで作った結果物が実際にデザインと同じかどうか検証するもう半分が必要です。
| 項目 | 従来:手動フィードバックループ | 変更:自動ピクセルdiffループ |
|---|---|---|
| フロー | デザイン渡す → AI実装 → 人間が目で比較 → 修正要請 | デザイン渡す → AI実装 → スクリーンショット自動キャプチャ → diffヒートマップ → AI自動修正 |
| フィードバック1回 | 5〜10分 | 1〜2分 |
| 反復回数 | 10回以上(手動) | 8回以内(自動) |
| 精度 | 人間の目 = おおよそ | ピクセル単位 = 精密 |
レイアウトと色は完璧に一致し、テキストレンダリングの差だけが残る — これが現実的な「pixel perfect」の上限です。
核心まとめ:始め方
- Framelink MCPを接続する
Claude Code(またはCursorなど)にFramelink MCPサーバーを追加します。FigmaのPersonal Access Tokenが必要で、設定は一行です:claude mcp add framelink-figma -- npx -y figma-developer-mcp --figma-api-key="トークン" - セクションごとに分けて渡す
ページ全体を一度に送らないでください。ヘッダー、ヒーローセクション、カードグリッドのようにセクション単位でFigmaフレームリンクを渡します。Figmaで該当フレームを選択してCmd+L(リンクコピー)すれば大丈夫です。 - 初期実装 → スクリーンショットキャプチャ
AIが最初の実装を終えたら、PlaywrightやブラウザMCPで実装結果のスクリーンショットを正確に同じ解像度(例:1440x900)でキャプチャします。Figmaでも同じフレームをPNGとしてエクスポートします。 - ピクセルdiffヒートマップで自動修正
PIL(Python)やPixelmatch(Node.js)で2つのスクリーンショットのピクセルdiffヒートマップを生成します。AIに「このヒートマップの赤い部分がなくなるまで修正して」と指示すると自動で反復修正します。 コンポーネントごとに最大8回の反復を推奨します。 - Computed Style検証(オプション)
視覚的diffだけでは捕まえられないバグがあります。Playwright MCPで実際のcomputed CSS値を測定すると「見た目は合っているが動作が違う」バグまで捕まえられます。
Figmaデザインなしでウェブサイトを複製したい場合
AI Website Cloner(GitHub 8,900以上のスター)はURL一つを入れるだけでAIエージェントがサイトを分析しReact + Tailwindで複製するオープンソーステンプレートです。スクリーンショット → トークン抽出 → 並列ビルド → 視覚diff QAパイプラインが内蔵されています。



