跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
HTML / CSSWeChatAI大前端

使用 GitHub Copilot 和 Figma MCP 还原设计稿生成前端代码

如何在 VSCode 中使用 GitHub Copilot 配合 Figma MCP 插件,将 Figma 设计稿自动还原为微信小程序前端代码。主要步骤包括通过 AI 助手配置 MCP 服务、获取并替换 Figma API 密钥、在对话框中粘贴设计图链接并请求生成组件代码。通过多轮交互优化 UI 细节,最终获得高还原度的代码结构,包含合理的 DOM 嵌套与清晰的注释。

雾岛听风发布于 2026/4/6更新于 2026/5/2236 浏览
使用 GitHub Copilot 和 Figma MCP 还原设计稿生成前端代码

Step 1: 配置 MCP

在 VSCode 中打开项目,呼出 GitHub Copilot 对话框,模式选择 Agent,模型建议 Claude 3.7 Sonnet,提问如何配置 Figma-Context-MCP。跟随提示完成配置,插件会自动安装并生成配置文件。

配置结果

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

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

Step 2: 替换 Figma 密钥

打开 Figma 网页,点击左上角头像 -> Settings -> Security -> Generate new token。找到权限列表,逐个打开选择读或写(默认是全部 No access)。

注意:Token 默认 30 天过期,过期后需要重新生成。

生成 Token

生成 Token 后会弹窗显示密钥,这是唯一一次复制机会。将密钥复制到 settings.json 文件的 --figma-api-key= 后面。

Step 3: 使用方法

以 Figma 设计图中的图层为例,选中要生成的部分,右键点击 Copy link to selection。

复制链接

将链接粘贴到对话框,确保模式是 Agent,测试配置是否成功:

https://www.figma.com/design/... 现在你能读到这个设计图了吗

Agent 响应

出现弹窗说明 Agent 正在尝试链接 MCP server。允许操作后,可以看到描述信息,确认设计图已被读取。

接下来请求生成代码:

请根据这个设计图在我的微信小程序里生成商品卡片组件的代码,注意微信小程序中 2rpx=1px,要完全还原设计图的 UI,再建一个测试页面展示这个组件的调用效果。

生成代码

等待 AI 操作完成后,在开发者工具中运行。对比设计图指出还原度不够的细节(如内边距、按钮布局等),让 AI 进一步优化。

最终得到的组件代码如下,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. Step 1: 配置 MCP
  2. Step 2: 替换 Figma 密钥
  3. Step 3: 使用方法
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Visual Studio 禁用 GitHub Copilot AI 代码提示的设置方法
  • Stable-Diffusion-3.5 集成 SpringBoot 微服务开发指南
  • C++ STL 容器适配器:stack 与 queue 剖析
  • 配置钉钉 OpenClaw 机器人调用 OpenMetadata
  • C++ std::optional 详解:类型安全的可选值封装
  • SQL 表查询基础:SELECT 语句详解
  • VR 与 AR 技术深度解析:原理、应用与未来趋势
  • 基于 Jetson Nano 与 YOLOv5s 的无人机道路抛洒物实时检测系统
  • 政务智能体工作流导出与导入实战:以 12345 热线分拨为例
  • Mac 本地使用 Docker 部署 n8n 并配置中文界面
  • 解决 npm 安装 OpenClaw 时的 Git 报错与权限问题
  • Java 面试核心考点与实战解析
  • 2024 综合算力评价研究报告
  • WebAssembly 运行时沙箱逃逸与内存安全实战
  • 量化、算子融合与内存映射:C 语言实现边缘 AI 推理实战
  • Midjourney Imagine API 接入与实战详解
  • 自研 C# UI 引擎 XchyUI:内核 200KB,支持 .NET8 AOT 跨平台
  • 算法实战:LeetCode 1419 数青蛙的模拟解法
  • 大数据 OLAP 中的近似聚合算法
  • GitHub Copilot、Trae 与 Cursor AI 编程工具对比评测

相关免费在线工具

  • RSA密钥对生成器

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

  • Mermaid 预览与可视化编辑

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

  • 随机西班牙地址生成器

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

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online