バイブコーディングでアプリを一日で作ったという話、もう珍しくないですよね。でも実際に結果を見ると — 機能は動くのにUIが「AIが作った感」丸出し。あのジェネリックな感じ。デザイナーが見たらため息が出るあの差。

問題はシンプルです。AIはコードを上手く書きますが、「このデザインを正確に実装して」と言うと80%しか合わせられず、残り20%で崩れます。パディングがズレて、カラーが微妙に違って、レイアウトがずれます。それを直そうと「ここをもう少し広げて」「いや、それじゃなくてこっち」とやり取りしているうちに、AIが節約してくれた時間をデザイン修正に全部使ってしまいます。

でもこれを解決した人たちがいます。背景ピクセル一致率99.8%まで達成した事例も出ています。核心は3つの武器の組み合わせです。

3秒まとめ
Figmaデザイン Framelink MCPで正確なトークン抽出 スクリーンショットdiffヒートマップで差異検出 自動反復修正 → 99%以上一致率

これは何?

FigmaデザインをAIコーディングエージェントに渡す方法は大きく3つあります:

  1. スクリーンショットを直接見せる — AIビジョンで解釈。最も一般的ですが不正確。
  2. Figma公式MCPを使う — Figma APIでデザインデータをコード(React/Tailwind)に変換して渡す。
  3. Framelink MCPを使う — Figma APIでデザインデータを記述的JSONに変換して渡す。

ここで2番と3番の違いが決定的です。

Figma公式MCPはデザインノードを読んでReact + Tailwindコードを直接生成します。問題はこのコードがleading-[22.126px]のような任意の値で溢れていること。AIはそのままコピーします — あなたのコードベースのパターンは無視して。

Framelink MCPはアプローチが違います。「この要素は1pxのボーダーと16pxのパディングを持ち、UI/Button - Largeスタイルを使っている」という形で記述的なデータを送ります。AIがこの仕様を読んで、プロジェクトの既存コンポーネントとデザインシステムに合わせてコードを書くのです。

何が変わるの?

項目Figma公式MCPFramelink MCP
出力形式React/Tailwindコード(処方的)記述的JSON(説明的)
データサイズより大きく冗長約25%小さい
スタイル名消失保持(例:UI/Button - Large)
ネストしたコンポーネント平坦化(構造の誤解を誘発)正確に表現
重複除去コンポーネントのみスタイル + 自動検知重複まで
AIの行動コードをコピー(任意値含む)仕様を解釈してプロジェクトに合わせて実装

FramelinkはGraham Lipsmanが作ったオープンソースプロジェクトで、GitHubで13,000以上のスターを集めています。 CursorClaude Code、Windsurf、VS Codeなど、MCPをサポートするほぼすべてのエディターで使えます。

でもFramelinkだけでは不十分です。デザイントークンを正確に渡すのは半分の解決策です。AIがそのトークンで作った結果物が実際にデザインと同じかどうか検証するもう半分が必要です。

項目従来:手動フィードバックループ変更:自動ピクセルdiffループ
フローデザイン渡す → AI実装 → 人間が目で比較 → 修正要請デザイン渡す → AI実装 → スクリーンショット自動キャプチャ → diffヒートマップ → AI自動修正
フィードバック1回5〜10分1〜2分
反復回数10回以上(手動)8回以内(自動)
精度人間の目 = おおよそピクセル単位 = 精密
57.4%
初期実装一致率
99.8%
背景ピクセル最終一致率
19回
自動修正反復回数
約2時間
全体所要時間

レイアウトと色は完璧に一致し、テキストレンダリングの差だけが残る — これが現実的な「pixel perfect」の上限です。

核心まとめ:始め方

  1. Framelink MCPを接続する
    Claude Code(またはCursorなど)にFramelink MCPサーバーを追加します。FigmaのPersonal Access Tokenが必要で、設定は一行です:claude mcp add framelink-figma -- npx -y figma-developer-mcp --figma-api-key="トークン"
  2. セクションごとに分けて渡す
    ページ全体を一度に送らないでください。ヘッダー、ヒーローセクション、カードグリッドのようにセクション単位でFigmaフレームリンクを渡します。Figmaで該当フレームを選択してCmd+L(リンクコピー)すれば大丈夫です。
  3. 初期実装 → スクリーンショットキャプチャ
    AIが最初の実装を終えたら、PlaywrightやブラウザMCPで実装結果のスクリーンショットを正確に同じ解像度(例:1440x900)でキャプチャします。Figmaでも同じフレームをPNGとしてエクスポートします。
  4. ピクセルdiffヒートマップで自動修正
    PIL(Python)やPixelmatch(Node.js)で2つのスクリーンショットのピクセルdiffヒートマップを生成します。AIに「このヒートマップの赤い部分がなくなるまで修正して」と指示すると自動で反復修正します。 コンポーネントごとに最大8回の反復を推奨します。
  5. Computed Style検証(オプション)
    視覚的diffだけでは捕まえられないバグがあります。Playwright MCPで実際のcomputed CSS値を測定すると「見た目は合っているが動作が違う」バグまで捕まえられます。

Figmaデザインなしでウェブサイトを複製したい場合

AI Website Cloner(GitHub 8,900以上のスター)はURL一つを入れるだけでAIエージェントがサイトを分析しReact + Tailwindで複製するオープンソーステンプレートです。スクリーンショット → トークン抽出 → 並列ビルド → 視覚diff QAパイプラインが内蔵されています。