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

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

综述由AI生成如何在 VS Code 中使用 GitHub Copilot 配合 Figma MCP 插件,将 Figma 设计稿还原为微信小程序前端代码。主要步骤包括通过 AI 配置 MCP 服务、获取并替换 Figma API 密钥,以及在 Agent 模式下输入设计图链接生成组件代码。最终实现了高还原度的 UI 组件开发,并包含代码优化建议。

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

Step 1: 配置 MCP

在 VS Code 中打开你的项目,呼出 GitHub Copilot 对话框,模式选择 Agent,模型建议 Claude 3.7 Sonnet,提问:

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

之后跟着提示完成配置,若需安装插件系统会自动处理。

配置界面

以下为配置示例,它会在项目文件夹最外层创建.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)。

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

生成 Token

点击 generate token 生成密钥,这是唯一一次复制机会,请妥善保存。将密钥复制到 settings.json 文件的–figma-api-key=后面。

Step 3: 如何使用

以电商 UI 模板的商品卡片为例,在 Figma 设计图上选中图层,右键点击 Copy link to selection。

复制链接

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

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

读取设计图

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

MCP 连接成功

现在可以让 AI 生成代码:

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

生成代码

等待 AI 操作完成后在开发者工具运行,还原度已经非常高。

运行结果

对比设计图,指出细节不足处让 AI 优化:

看上去有一些 UI 细节不够还原,比如卡片的内边距,还有按钮的布局,请你再仔细检查一下。

商品图片上的三个 icon 按钮应该是水平居中的,learn more 按钮应该是水平居左的。另外你能不能直接下载设计图里的 icon 为 svg 来使用,这样更还原。

修改两个版本后,得到下图版本,还原度非常惊人。

最终效果

生成的组件代码结构合理,注释清晰。

<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

更多推荐文章

查看全部
  • 嵌入式 ARM Linux 系统构成:Linux 内核层
  • Mac mini M2 部署 OpenClaw 构建本地 AI 服务器
  • 前端设计与布局常用术语中英速查表
  • Python 3.12 Logging 核心:LogRecord 机制解析与定制实战
  • Java 中 == 与 equals() 的区别
  • Rust WebAssembly 与 Three.js 结合的高性能 3D 粒子系统
  • PyMAVLink 无人机通信 Python 库使用指南
  • NewStar CTF Web 比赛题目解析与解题思路
  • 基于 Python 的小红书公开数据采集方法
  • CSS 基础:width 与 height 尺寸属性详解
  • 基于 Spring Boot 3.3 的 Java AI Agent Gateway 实践
  • Mixtral 8X7B Instruct v0.1 llamafile 部署与应用实战指南
  • Elasticsearch 与 Kibana 实战:安装部署及 C++ 客户端封装
  • 大语言模型 (LLM) 产品开发流程参考
  • 基于 LLaMA 3.2 Vision 的商品文案自动生成微调实战
  • Python 音乐推荐系统:Django+Echarts+协同过滤算法
  • C++ 20 协程入门指南
  • Python 核心语法详解:变量、流程控制与函数基础
  • Java 默认花括号对齐方式修改教程
  • VR 音游音符轨道系统开发实录与原理解析

相关免费在线工具

  • 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