跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
JavaScriptWeChatAI大前端

GitHub Copilot 接入 Figma MCP 还原设计稿生成前端代码

演示了如何在 VS Code 中使用 GitHub Copilot 配合 Figma MCP 插件,将 Figma 设计稿自动还原为微信小程序前端代码。主要步骤包括通过 AI 助手配置 MCP 环境、获取 Figma API 密钥、在设计图中选取图层并发送链接给 Copilot 生成代码。通过多轮交互优化 UI 细节,最终获得高还原度的组件代码及 DOM 结构。

王者发布于 2026/4/6更新于 2026/9/777 浏览
GitHub Copilot 接入 Figma MCP 还原设计稿生成前端代码

简介

本文介绍如何在 VS Code 中利用 GitHub Copilot 接入 Figma MCP,实现设计稿到前端代码的还原。

步骤 1:配置 MCP

在 VS Code 中打开项目(例如微信小程序),呼出 GitHub Copilot 对话框,模式选择 Agent,模型建议 Claude 3.7 Sonnet,提问:

https://github.com/GLips/Figma-Context-MCP 如何配置能让你在 vscode 里使用这个 mcp

跟随提示完成配置,插件会自动安装并生成配置说明文档。

MCP 配置结果

运行结果会在项目文件夹最外层创建 .vscode 文件夹,并在 settings.json 中添加配置。如果文件已存在,配置会追加至末尾。

{"mcpServers":{"Framelink Figma MCP":{"command":"cmd","args":["/c","npx","-y","figma-developer-mcp","--figma-api-key=替换为你的密钥","--stdio"]}}}

步骤 2:获取 Figma 密钥

  1. 打开 Figma 网页,点击左上角头像 -> Settings -> Security -> Generate new token。
  2. 设置路径可能变化,找到 Generate new token 即可。
  3. 弹窗中命名 Token(如 mcp),勾选读或写权限(默认无访问权限)。
  4. 注意:Token 默认 30 天过期,过期后需重新生成。

Figma Token 生成

复制生成的密钥,填入 settings.json 中的 --figma-api-key= 后面。

步骤 3:如何使用

以电商 UI 模板的商品卡片为例:

  1. 在 Figma 设计图上选中图层,右键点击 Copy link to selection。
  2. 将链接粘贴到 Copilot 对话框,确保模式为 Agent,测试配置:

https://www.figma.com/design/GJZhGih0VsGbpevJGkJQ9Z/E-commerce-UI—Figma-Ecommerce-UI-Kit–Demo-Version—Community-?node-id=2804-7985&m=dev 现在你能读到这个设计图了吗

Agent 连接状态

出现弹窗说明 Agent 在尝试链接 MCP server,点击继续允许操作。稍后可见描述信息,确认设计图被读取。

设计图读取成功

现在可以让 AI 写代码:

请根据这个设计图在我的微信小程序里生成商品卡片组件的代码,注意微信小程序中 2rpx=1px,要完全还原设计图的 UI,再建一个测试页面展示这个组件的调用效果,可以参考微信小程序官方文档 https://developers.weixin.qq.com/miniprogram/dev/api

代码生成预览

运行开发者工具查看还原效果。如有细节不足,可反馈优化:

看上去有一些 UI 细节不够还原,比如卡片的内边距,还有按钮的布局,请你再仔细检查一下。 商品图片上的三个 icon 按钮应该是水平居中的,learn more 按钮应该是水平居左的。另外你能不能直接下载设计图里的 icon 为 svg 来使用,这样更还原。

经过两轮迭代,还原度显著提升。

最终效果对比

人工 Review 生成代码,DOM 结构合理,注释清晰。

<view class="product-card">
  <!-- 图片区域 -->
  <view class="fixed-height">
    <view class="product-cover" style="background-image:url('{{product.coverImage}}');"></view>
    <!-- 产品操作按钮 -->
    <view class="product-actions">
      <view class="action-button like">
        <view class="icon"><image class="icon-image" src="/images/icons/like-icon.svg"></image></view>
      </view>
      <view class="action-button basket">
        <view class="icon"><image class="icon-image" src="/images/icons/basket-icon.svg"></image></view>
      </view>
      <view class="action-button share">
        <view class="icon"><image class="icon-image" src="/images/icons/share-icon.svg"></image></view>
      </view>
    </view>
    <!-- 标签 -->
    <view class="tag" wx:if="{{product.tag}}">
      <text>{{product.tag}}</text>
    </view>
  </view>
  <!-- 产品信息区域 -->
  <view class="product-info">
    <!-- 类别和评分 -->
    <view class="row category-rating">
      <view class="category-container"><text class="category">{{product.category}}</text></view>
      <view class="rating-container">
        <image class="star-icon" src="/images/icons/star-icon.svg"></image>
        <text class="rating">{{product.rating}}</text>
      </view>
    </view>
    <!-- 产品标题 -->
    <text class="product-title">{{product.title}}</text>
    <!-- 产品描述 -->
    <text class="product-description">{{product.description}}</text>
    <!-- 销售信息 -->
    <view class="sales">
      <view class="icon"><image class="sales-icon" src="/images/icons/sales-icon.svg"></image></view>
      <text class="sales-text">{{product.sales}} Sales</text>
    </view>
    <!-- 价格信息 -->
    <view class="prices">
      <text class="original-price" wx:if="{{product.originalPrice}}">¥{{product.originalPrice}}</text>
      <text class="current-price">¥{{product.price}}</text>
    </view>
    <!-- 颜色选项 -->
    <view class="product-colors">
      <view class="color-dot" wx:for="{{product.colors}}" wx:key="index" style="background-color:{{item}};"></view>
    </view>
    <!-- 产品特性 -->
    <view class="product-features">
      <view class="feature">
        <view class="icon"><image class="feature-icon" src="/images/icons/calendar-icon.svg"></image></view>
        <text class="feature-text">{{product.duration}}</text>
      </view>
      <view class="feature">
        <view class="icon"><image class="feature-icon" src="/images/icons/lessons-icon.svg"></image></view>
        <text class="feature-text">{{product.lessons}} Lessons</text>
      </view>
      <view class="feature">
        <view class="icon"><image class="feature-icon" src="/images/icons/progress-icon.svg"></image></view>
        <text class="feature-text">Progress</text>
      </view>
    </view>
    <!-- 了解更多按钮 -->
    <button class="learn-more-button" hover-class="button-hover">
      <text>Learn More</text>
      <image class="arrow-icon" src="/images/icons/arrow-right-icon.svg"></image>
    </button>
  </view>
</view>

调用示例:

<view class="container">
  <view class="title">商品卡片组件展示</view>
  <view class="card-container">
    <product-card product="{{productData}}"></product-card>
  </view>
</view>

目录

  1. 简介
  2. 步骤 1:配置 MCP
  3. 步骤 2:获取 Figma 密钥
  4. 步骤 3:如何使用

更多推荐文章

查看全部
  • IDEA 插件 Trae AI 实战指南:从安装到进阶
  • 七种主流大模型微调方法详解:原理与场景对比
  • OpenClaw 本地 AI 智能体入门与实战指南
  • 基于改进 YOLOv8 的美食图像分割系统与训练部署实战
  • Python 开发 MongoDB 数据库 MCP Server 实战指南
  • sherpa-onnx 离线语音部署框架:支持 Whisper、Moonshine、SenseVoice 等模型
  • 大语言模型应用指南:原理、技巧与实战开发
  • AI 写作核心算法解析:从生成式模型到 Transformer
  • 2024-2025 旗舰 LLM 架构演进:MoE 稀疏革命与 KV-cache 优化设计
  • Neo4j 5.26 版本下载安装与配置详解
  • 主流大模型介绍(GPT、Llama、ChatGLM、Qwen、deepseek)
  • 黑马商城 ElasticSearch 搜索功能实战
  • AI 前端核心概念、技术栈与学习路径
  • 雷达信号处理中的恒虚警(CFAR)技术详解
  • C++ STL string 类核心用法与接口详解
  • C++ operator() 重载详解
  • Flask 工厂模式与蓝图设计:构建可扩展大型应用架构
  • 45 岁程序员求职困境:技术精湛为何难获面试机会
  • Redis Hash 类型详解与常用命令实战
  • 精易模块 Excel 操作实战:中小学生成绩管理系统

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online