关于 implementing-figma-ui-tempad-dev
implementing-figma-ui-tempad-dev 是将 Figma 设计转为适配现有代码仓库的 UI 代码的技能。它把 TemPad Dev MCP 输出作为设计依据,避免猜测样式或引入新框架。
主要功能
- 01读取设计代码与结构
- 02依据明确的样式和令牌信息
- 03适配代码仓库规范
- 04处理设计资源与警告
- 05应用基础语义化无障碍设计
适用场景
- 01在现有应用中实现 Figma 选区
- 02根据结构数据解决布局疑问
- 03将设计令牌映射到仓库令牌
MCP 相关
需要 TemPad Dev MCP 从 Figma 获取设计代码、结构、资源和令牌信息。若 MCP 工具不可用或无法读取设计目标,技能会停止。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ ecomfe/ tempad-dev --skill implementing-figma-ui-tempad-dev安装后在 Claude Code 中输入/implementing-figma-ui-tempad-dev确认已加载。
详细介绍
TemPad Dev:将 Figma 设计实现为 UI
此技能需要 TemPad Dev MCP。如果 tempad-dev:* 工具不可用、未激活或未获授权,请停止并告知用户安装 TemPad Dev MCP,并确保其已在 Figma 设计文件的 TemPad Dev 面板中激活。
TemPad Dev 输出类似 Tailwind 的 IR,格式为 JSX 或 Vue。将 MCP 输出视为设计事实。切勿猜测关键样式。
证据规则
优先级顺序:
tempad-dev:get_code(权威信息:明确值、布局意图、警告、资源、令牌、代码生成、语言)tempad-dev:get_structure(层级、重叠、边界说明)
切勿臆造:颜色、排版(字号/字重/行高/字间距)、间距、圆角、边框、阴影、渐变、不透明度/叠加层、模糊。
不要输出 data-hint-* 属性。
工作流
1) 检测仓库约定
从仓库中识别集成所需的信息(不要凭空假设):
- 框架/运行时和文件约定(React/Vue、TS/JS、SFC 约定、命名)
- 样式集成规则(是否允许使用工具类?类名排序?Lint 规则?提取模式?)
- 令牌/主题系统(CSS 变量、令牌文件、命名、深色模式/模式)
- 资源策略(公共文件夹与导入、图标管线、哈希、目录规则)
- 现有基础组件/组件(按钮、输入框、排版、布局包装器)、导入路径约定
仅当仓库实际使用 Tailwind(或兼容 Tailwind 的工具)时,才检测会影响类语法/格式的 Tailwind 版本和约定。
如果不确定,最多提出 3 个简短问题;否则继续操作,并说明哪些内容是推断得出的。
2) 获取基准设计快照
调用 tempad-dev:get_code,并设置:
resolveTokens: false- 仅当用户提供了
nodeId时传入;否则依赖工具的默认行为(当前选区) preferredLang:选择与仓库匹配的语言(jsx 或 vue)
重要:get_code.lang 是 MCP 在考虑 TemPad Dev 插件/配置优先级后实际使用的语言。插件可能覆盖 preferredLang。使用返回的 lang 和 codegen 信息来正确解读 IR,然后将其转换为仓库所需的输出。
将以下内容记录为设计事实:
code、langwarningsassets(如果存在)tokens(如果存在)codegen(例如 scale、长度单位、rootRem 及其他标准化设置)
3) 处理警告和不确定性
如果警告表明证据缺失、不完整或不确定,请立即采取措施:
depth-cap:针对列出的每个子树根nodeId,调用一次get_code并拼接结果,或缩小范围并列出省略的部分。truncated:缩小范围(选择较小区域或关键子树),并警告输出不完整。- 布局/重叠不确定:调用
get_structure解决矛盾。- 如果通过 structure 仍无法解决矛盾(或无法缩小范围),请停止。
4) 处理资源(仅当存在 assets 时)
优先遵循仓库的资源策略:
- 通过 TemPad 提供的
asset.url下载字节数据,按策略要求的路径保存到仓库,并按照仓库约定引用。 - 如果策略禁止存储资源,可以引用 TemPad URL,但必须警告输出依赖本地 TemPad 资源服务器。
切勿从公共互联网下载资源。只能使用 TemPad 提供的 asset.url。
5) Token 映射(仅当存在 tokens 时)
Token 证据格式:
tokens是一个记录,键为规范的 CSS 变量名称(例如--...)。- 每个 token 的值可以是字符串,也可以是以
Collection:Mode字符串为键、值为字符串的记录。 - 任意值字符串都可能引用其他变量;保留这些引用。
映射目标:在安全的情况下整合仓库中的 token;否则保留 get_code 中的显式值。
规则:
- 当你能通过值等价性(包括引用)以及仓库中的语义一致性证明等价时,优先使用现有仓库 token。Token 命名可作为辅助证据,但不能仅因名称相似就进行映射。
- 仅当仓库已有成熟的 token 工作流且预期会进行此更改时,才添加新 token。
- 如果模式选择或映射仍有歧义,保留显式值并发出警告。
存在提示时,可将其用于推理模式选择;绝不可输出提示属性。
6) 实现符合仓库惯例的代码
将 TemPad Dev IR 转换为仓库所用的惯例:
- 工具优先型仓库(Tailwind/UnoCSS):保留工具类;调整顺序和格式以符合仓库规则。如果使用 Tailwind,在更改类语法前应遵循仓库的 Tailwind 版本和配置。
- 非工具优先型仓库:将工具类转换为仓库采用的样式方案(CSS Modules/作用域 CSS/Sass/CSS-in-JS),同时保留显式值。
约束:
- 不得引入新的框架或样式系统。
- 除非用户确认,否则新增运行时/构建依赖必须先获得用户确认;如果用户明确表示无需确认,则除外。
- 仅实现基础状态,除非仓库惯例或证据能够证实存在变体/状态。
组件提取与基础组件:
- 仅当重复使用的情况和仓库模式足以证明合理时,才提取组件。
- 优先使用现有仓库基础组件/组件,前提是其语义符合预期且无需猜测样式。
7) 语义与无障碍最低要求
仅在 IR 否则需要使用普通容器语义(例如,可点击的 div),且未使用合适的仓库基础组件/组件时,才应用以下要求:
- 适当使用原生元素(
button、a、input/label)。 - 确保支持键盘交互且可聚焦。
- 必要时添加无障碍名称(
aria-label、alt)。
假定仓库已有 CSS 重置/规范化设置。除非仓库已有明确惯例,否则不得添加新的重置库或全局 CSS。
8) 退出与收尾
遇到以下情况时停止(不要交付代码):
- TemPad Dev MCP 不可用/未获授权,或无法读取目标
- 证据相互矛盾,且无法通过结构或缩小范围来解决
- 无法根据仓库策略获取/存储所需资源
否则,交付基于最佳证据的基础实现,并在结尾说明:
- 证据注意事项:任何
warnings、遗漏或推断的仓库惯例 - 资源:已存储的资源与 TemPad URL,以及任何策略限制
- Token:已映射与显式保留的值,以及任何歧义
- 依赖项:是否添加了依赖项(以及是否获得用户确认)
- 如果已停止:后续所需信息(最多 3 项)