Figma Mobile

Polar Sponsor
爱发电 赞助
.NET 9.0

将Figma设计稿转换为移动端UI代码(Android Jetpack Compose/XML,iOS SwiftUI/UIKit)。用户粘贴Figma链接并请求生成布局代码时使用。通过Figma REST API提取设计树和token,必要时进行澄清提问,最终输出可直接用于工程的代码。

图片 图解 图片解 图片解 图片解 图片解 图片解 图片解 图片解 图片解 图片解 图片解 图片解 图片解 图片解 图片解 图片解 图片解 图片解 图片解 图片

功能概述

图片 图解 图片解 图片解 图片解 图片解 图片解 图片解 图片解 图片解 图片解 图片解 图片解 图片解 图片解 图片解 图片解 图片解 图片解 图片解 图片是一项面向实际任务的技能。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

核心要点

  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

使用与执行

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。

结果检查与注意事项

执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

Figma 转移动端

用交互式澄清流程,把 Figma 设计转为移动端 UI 代码。

支持:Android Compose、Android XML、iOS SwiftUI、iOS UIKit。

环境要求

  • 环境变量 FIGMA_TOKEN(Figma → 头像 → Settings → Security → Personal Access Tokens)
  • Node.js 18+(内置 fetch;脚本为纯 JavaScript,无需 npm install)
  • 脚本入口:在 scripts/ 下执行 node src/figma-fetch.js,或 npm run figma-fetch --(package.json 仅用于声明 type: module 与 npm 脚本快捷方式,无第三方依赖)

触发与输入

用户粘贴 Figma 设计链接 时启用本技能。

用户也可能在链接旁给出 内联提示,例如:

  • 目标平台:「Android XML」「Compose」「SwiftUI」「UIKit」
  • 布局偏好:「用 ConstraintLayout」「优先 StackView」
  • 组件说明:「开关用我们的 CompactSwitch」「这块是动态列表」

若用户已通过内联说明回答某类问题,则不要再问同类问题。 例如用户已写「Android XML,三张卡是 RecyclerView 列表」,则不要再问输出格式或列表动静态。

工作流

步骤 1:拉取与分析

用户提供 Figma 链接后:

  1. 在技能根目录进入 scripts/,运行: node src/figma-fetch.js "" [--json] [--depth N] 若用户提供 多个链接(同一页不同状态),使用 --compare 拉取并对比差异,便于多状态代码(selector、条件样式等): node src/figma-fetch.js --compare "" "" [--json]
  2. 分析结构:区块、重复模式、组件类型
  3. 关注 INSTANCE 节点(组件实例),结合 variantProperties 理解状态(如 State=Default)
  4. 复杂渐变/阴影在总结中向用户点明
  5. 生成代码前遵守 references/figma-interpretation.md 中的节点语义规则

详细解读规则:阅读 references/figma-interpretation.md

步骤 1.5:结构摘要

在提问之前,先用 2~3 行 向用户确认你理解的结构,例如:

我看到:顶部导航(返回 + 标题)→ 两大块内容(用户资料卡、设置列表约 8 项)→ 底部主按钮。约 25 个节点。

需覆盖:主要区域、重复模式(如「8 个相似列表项」)、显眼元素(渐变、插画、叠卡)。

若用户纠正结构,先修正理解再进入步骤 2。

结构非常简单时(如单卡片 + 少量输入框)可跳过本步。

步骤 2:确认与追问

问题顺序(严格先问靠前的):

  1. 输出形态(除非用户已说明,否则必须先问) → Android XML / Compose / SwiftUI / UIKit
    决定后续分析与代码风格。

  2. 结构歧义(只问真正不确定的) → 「这几项看起来相似——动态列表还是写死布局?」 → 「这块是整图资源还是图标+背景组合?」

  3. 组件选型(仅在与平台相关时) → 「是否有指定自定义组件?没有则使用系统默认。」

追问规则:

  • 用户已在提示里回答的项一律跳过
  • 总共 最多 3~5 个问题,越少越好
  • 每个问题给具体选项 + 一句利弊,并保留「或详细说说你的需求」
  • 自然语言表述,不要甩原始 JSON
  • 若上下文已足够且结构简单,可跳过步骤 2 直接进入步骤 3

何时追问 vs 直接生成:

  • 同级下 ≥3 个结构相似子节点 → 可能是列表 → 应追问动静态
  • 共享 componentId 的 INSTANCE → 复用组件 → 可说明并给默认实现
  • 层次单一、无歧义 → 高置信度 → 可不问直接生成
  • 设计中有渐变/重阴影 → 在摘要中说明处理方式

步骤 2.5:工程扫描(可选,建议)

若本地能访问目标工程,可运行扫描以复用颜色、字符串等资源:

cd scripts
node src/project-scan.js /path/to/project --json --output scan-report.json

如何在生成代码时使用扫描结果:阅读 references/figma-scan-usage.md

步骤 3:生成代码

用户确认后(或无需追问时)生成代码文件。

详细生成规则:阅读 references/code-generation.md

多文件时每个文件用清晰标题标出,例如:

📄 activity_notification_settings.xml
[代码]

📄 item_expert_notification.xml
[代码]

步骤 4:迭代与反馈记录

展示代码后简短询问:

是否贴合设计?需要调整的地方?

用户可能继续迭代:间距、替换组件、删区块、换平台、改色值等。

除非用户要求整页重写,否则每轮只改变化部分。

反馈记录(建议自动执行):
每当用户纠正生成结果,在项目根目录维护 feedback-log.md(不存在则创建)。每条格式:

## YYYY-MM-DD HH:MM
- **Platform**: Android XML / Compose / SwiftUI / UIKit
- **Figma node type**: (如:带图标的 FRAME、Tab 栏、按钮组)
- **Issue**: 问题简述
- **Before**: 原先生成内容(片段或说明)
- **After**: 用户期望(片段或说明)
- **Rule candidate**: (可选)可沉淀为通用规则的说明

记录应 简洁、可分类、偏映射错误;不要记录纯个人偏好或一次性命名。

可在适当时机或应用户要求运行:

cd scripts
node src/feedback-analyze.js [path/to/feedback-log.md]

用于汇总模式与规则候选(默认读取当前目录下的 feedback-log.md)。

矢量与 SVG

需从 Figma 导出 SVG 时(见 references/code-generation.md):

cd scripts
node src/figma-fetch.js "" --export-svg [--nodes "节点id1,节点id2"]

简化后的 JSON 中每个节点含 id 字段,可用于 --nodes 附加导出。

异常处理

  • FIGMA_TOKEN 未设置(脚本打印 FIGMA_TOKEN_NOT_SET)→ 不要让用户自行敲复杂命令。应:

    1. 说明需要 Figma Personal Access Token
    2. 指引:Figma → 头像 → Settings → Security → Personal Access Tokens
    3. 请用户在对话中粘贴 token(通常以 figd_ 开头)
    4. 将 token 写入项目根目录 .env:FIGMA_TOKEN=figd_xxx(脚本会自动读取 .env)
    5. 再次执行 node src/figma-fetch.js 或 npm run figma-fetch --
  • Token 无效(401/403)→ 可能过期或撤销,请用户重新生成并更新 .env

  • 链接无效 → 给出正确示例:https://www.figma.com/design//?node-id=

  • API 其它错误 → 展示错误信息,提示检查网络/代理

  • 子节点过多(>200) → 脚本会在 JSON 中标注 _largeChildList,建议缩小选区 Frame

  • 深度截断 → 脚本会将 _truncated 标在节点上,必要时提高 --depth(最高可自动提升到 15 层对比模式)

参考文档说明

references/ 下文档按 命名约定 区分用途(见 README.md「目录与命名」):figma-* 为 Figma 语义与扫描用法,platform-* 为各平台映射表,code-generation.md 为生成总则。正文为 中文,代码与 API 标识保留英文原名;工作流以本 SKILL.md 为准。

相关专题

更多
Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

0

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

0

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

0

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

0

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

0

25

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

2026.10.22

0

15

Golangci-lint安装与入门教程
Golangci-lint安装与入门教程

本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。

2026.10.22

0

15

PHP2Shell高危漏洞修复教程
PHP2Shell高危漏洞修复教程

PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。

2026.10.22

0

12

剧云人物设定与关系管理教程
剧云人物设定与关系管理教程

本专题介绍剧云人物设定与关系管理,讲解角色小传、性格职业、人物目标、背景资料和关系网络的创建及维护方法。

2026.10.22

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134万人学习