yuanlang12/openpipal/hi-fi-design
Claude Code and agent skill by yuanlang12/openpipal
- community
Checking that the SKILL.md file is still in the repository.
高保真界面稿的精修法——动手前把用户给的品牌资料、参考图、设计系统读完(凭空造是最后手段),然后在画板模式里并排给多个方向,并规定方向怎么编号、怎么摆、用户怎么用编号回指、新一轮加在哪。判据:taskType=界面稿(UI mockups),或任何"先给我几个方向看看"「把这一版做精」的高保真任务,写第一行前必读。地基是 dc-authoring 的画板模式那节(这份只讲它之上的编排纪律,不重复格式)。上游是 wireframe:低保真广度探索选定结构后转到这里升保真。
Install
npx vskill@latest install yuanlang12/openpipal/hi-fi-designSKILL.md
高保真界面稿(hi-fi design)
这份技能管两件事:动手前怎么拿到设计上下文,和多个方向在画板上怎么编排。 文件格式、画板模式的形状约束、字体口径全在 dc-authoring,那份是地基——这里只写它之上的东西。
1. 动手前:设计上下文优先
高保真稿不从零开始。凭空造出来的"完整产品"就是训练集默认审美(粉紫渐变、emoji badge、 过大圆角),用户一眼认得出。所以第一步不是写 HTML,是把上下文收齐:
- 本会话简报里的资产全部 `read` 进来:用户上传的品牌资料、参考截图、现有设计稿、选中的设计系统。
设计系统先读它自己的 SKILL.md——它的 token 与禁令优先于你的审美偏好。
- 设计系统的 token 声明块原样拷进 helmet 的 `:root`,正文一律 `var(--token)` 引用
(细则见 dc-authoring 的 helmet 一节)。手抄成色值字面量 = 断链,用户换主题不再联动。
- 缺关键信息就问,不要猜:主色、字体、参考样本、目标设备。视觉类问题给色块/几何预览让用户点选,
别让用户读文字脑补。需要用户传原件时,把上传位挂在对应那道题下面。
- 严格会话隔离:只认本次会话给的资产,不去翻别的目录找历史文件——别的会话的东西读进来就是污染。
- 没有某个图标/素材/真实图片时画占位符。高保真稿里,一个诚实的矩形占位符好过一个拙劣的仿制品;
凭空用 SVG 画产品截图、人物、插画一定难看。用户随消息发的图走 uploads/ 相对路径(见 dc-authoring)。
收齐之后、写 HTML 之前,先用文字把你要用的系统讲一遍:几色、哪个是 accent、标题与正文各用什么字体、 间距基准、圆角刻度、阴影风格。让用户先认可系统再进代码,这是防返工最便宜的一步。
2. 骨架:一份能直接跑的多方向画板稿
坐标算法:left = 80 + i × (帧宽 + 160),同一轮共用一个 top。上面这份是帧宽 1280、间距 160。
3. 编号与摆放(本技能的核心规范)
3.1 编号
`{轮次数字}{大写字母}`:第一轮是 1A 1B 1C,第二轮是 2A 2B。 编号一旦发出去就永久稳定:不重排、不复用、不重编号、不删除旧轮。用户随时可能回头说"回到 1B"。
编号必须同时出现在两处,缺一处就有链路失灵:
| 位置 | 写法 | 谁在读 | |
|---|---|---|---|
| 帧上方的可见小标签 | 1A · 克制中性 | 用户的眼睛(他照着这个在聊天里打字) | |
data-screen-label | data-screen-label="1A 克制中性" | 文本摘要、自检逐屏核对、交接包逐帧截图与文件名 |
两处的编号与名字保持一致——用户说的和你摘要里看到的必须是同一个词。
3.2 用户怎么回指
用户在聊天里直接打编号("1B 的排版配 1C 的字体")。你在回复里也直接写 1B。
不要建 `#编号` 锚点互链:预览是无 <base> 的 srcdoc 沙箱,href="#1b" 会解析到宿主页面地址上, 点了既不滚动也不高亮(详见 §5)。编号的职责是说的时候指得准,不是点的时候跳得过去。
3.3 新一轮加在哪
画板上所有帧都是绝对定位,新一轮向下另起一行,旧轮的 left / top 一个字都不改:
- 不要把新轮插到最前面。旧轮全是绝对坐标,"置顶"意味着重算每一帧的
top——
用户正在看的东西当场全部跳位;而且逐帧截图是按 DOM 顺序编号(frame001…)落到交接包 reference/ 里的, 重排会让上一版交接包的对账全部错位。
- 加新一轮用
edit_artifact在</x-dc>前插一段,不要重发全文(见 dc-authoring 的修订纪律)。 - 每轮末尾可以加一行纯文本的跟进建议("下一步可以说:把 2A 的间距收紧 / 让 2B 满幅"),
是文字不是链接。
4. 方向之间要差多少
维度表在 dc-authoring 的画板模式那节,这里只加两条 hi-fi 专属的:
- 梯度铺开:一个贴用户已知审美(安全)、一个中间态、一个更大胆。三个都保守 = 用户没得选;
三个都激进 = 用户不敢选。
- 至少跨两个维度。三个方向只换了主色不算三个方向,那是一个方向的三次调色。
拿到品牌资产之后,"大胆"的正确形状是把已有的视觉 DNA 重混——玩比例、留白、质感、版式节奏、 字体处理——而不是换一套无关的审美。
5. 运行时与宿主已经替你做了什么
<meta name="design_doc_mode" content="canvas"> 一写进 helmet,下面这些自动发生,别自己实现:
- 画布底色与高度:运行时给根元素挂
sc-dc-canvas,铺中性偏暖的工作台灰底,
并给挂载点至少一屏的画布高度(绝对定位的帧撑不起父级,没有这一步整块会塌成 0 高)。 所以不要自己写画布背景、滚动容器、居中逻辑——你写的 body 背景只会盖住板面那一块, 往右滚出去仍是运行时的灰底。
- 缩放归宿主:产物一上场宿主就自动适配,工具条上出现「适配 / − / 百分比 / +」四个控件。
容器尺寸变化时自动重新适配;用户手动 ± 之后转手动档,不再自动重算,直到他点「适配」。
- 适配是两档的,这条直接决定你的帧该多宽:整板缩放不低于 0.4 就整板适配;
低于 0.4 说明并排太宽、字已经看不清,宿主改成单帧适配——按最宽的那个绝对定位直接子元素算, 左右各留 80px,下限 0.25。推论:单帧宽度才是可读性的决定量,帧宽压在 1280–1440 之间, 帧数多就让画板往右长,别把单帧做到 2000px 以上。
- 没有拖拽平移。 宿主接管的只有缩放,平移只有滚动条。不要在稿子里写"拖动画布查看"这类说明,
也不要自己搓平移控件。
- 其余(内联样式即写即画、伪态类生成、热更新保状态、
uploads/图片内联、半截标记容错)
在 dc-authoring 的"运行时已经替你做了什么"一节,不重复。
6. 约束与静默失败(不知道就会踩,踩了不报错)
- `#锚点` 与 `:target` 在预览里不通。 预览 iframe 是
sandbox="allow-scripts …"(无同源许可)的
srcdoc 文档,全仓不注入 <base>,而 srcdoc 的 baseURI 继承宿主页面地址。实测结果:点 href="#1b" → iframe 不滚动、#1b:target 不命中、片段落到宿主文档的 URL 上。这套互链在这里是死的,别建。
- 所有 `left` / `top` 必须 ≥ 0。 逐帧截图的裁剪框把 x/y 钳到 0,负坐标那一侧连同对应宽度
直接被裁掉——预览里看着好好的,导出的交接包里少半张。
- 漏写 `data-screen-label` = 三条链路同时退化:文本摘要从"逐屏一条"退成"整页一条"、
自检没法逐方向核对文案、交接包从"逐帧截图"退成"整页一张"(文件名退成猜出来的最大字号标题或 screen-N)。 一个方向一个标签,不多不少。
- 标签打在哪个元素上,就截哪个元素的包围盒。 打在展示卡上,卡片上方那行编号标签不会进截图;
想让编号一起进交接包就打在最外层的绝对定位帧上。选一种并保持一致。
- 上限 60 帧:文本摘要和逐帧截图都封顶 60,超出的帧不进摘要也不进交接包。
- 自检截图只有一屏。 自检在 1280×900 的隐藏窗口里截视口,没有宿主缩放——
画板超出这一屏的部分不在截图里。多方向稿的自检以逐屏文本摘要为准, 别因为截图只看到第一个方向就以为其余没渲染出来。
- 文本重叠检测会拦你:两段文本的包围盒相交超过对方面积的 25% 就报错并要求修完再交。
背景不透明度超过 0.9 的元素被豁免(徽章压卡片是合法设计),所以刻意压在图上的标签 要么给它不透明底,要么错开。
- 正文只用内联 `style`,不要建 class 体系。
.card、.opt这类 class 配 helmet<style>
在这里是反模式:内联样式才即写即画、才能被用户在预览里直接就地编辑改回源码。 helmet 的 <style> 只放 @font-face / @keyframes / reset / :root token。
- 一份产物只写一个 `<x-dc>`,所有帧都在它里面。写到
</x-dc>外面的内容浏览器照样画出来,
看着像成了,但空穴和事件全死。
- PPTX 导出对画板稿不可用(那条链路只认幻灯片舞台)。画板稿的成品出口是交接包、图片与 PDF。
- 字体走系统字体栈,不要在 helmet 里
<link>外部字体服务:那类域名在部分地区不通、
<link> 是阻塞式的、而且导出链路不内联网络字体,用户拿到的离线单页会整篇落回替身。 真要特定字体就把字体数据以 data: URI 内联进 helmet(口径与细则见 dc-authoring 的字体一节)。
7. 纪律
- Directions 稿是静态版式:三个方向对比的是版式与视觉语言,不写逻辑块、不做交互。
用户拍板后新开一个产物把胜出方向深化成完整交互稿,落选方向里好的部件拆件吸收, 吸收处留一行注释痕(<!-- 趋势图(来自 1B) -->)。
- 深化稿默认带 2–3 个调参参数(配色轴 / 信息密度 / 布局这类一键联动的维度),宿主自动渲染面板。
单句文案和单个颜色用户能就地改,别为它们建参数。
- 迭代一律先想 `edit_artifact`:改文案、换色、调间距、插新一轮,都用精确字符串替换。
只有整体换方向的结构性重写才同 id 重发全文。绝不为了塞新内容删掉已有方向。
- 间距守 8px 系统(8/16/24/32),绝对定位元素彼此至少 16px,帧与帧之间 ~160px。
- 给关键可编辑元素写 `id`,并避免同一句短文案在文件里重复出现——就地编辑靠"源码里唯一"定位,
不唯一就退化成一次模型往返改写,慢且可能改偏。
- 图标用 Unicode 字形(◎ ⊞ ⇉ ◈ ⚐ ▤ ▲ ●)配字号与颜色,不要写内联 SVG 字符串——
一个 SVG 图标约等于 40 个字形的预算,多方向稿最容易在这里被截断。
- 文字尺寸底线:正文别低于 14px,移动端点击区不小于 44×44。
8. 交付前自检
通用自检流程(render_artifact、告警对照表、怎么读控制台)在 dc-authoring 那一节,照跑。 画板稿额外核这四条:
- 逐屏文本摘要按方向名对一遍——每个方向一条、编号与名字对得上、文案/品牌名/数据没写错。
摘要只有一条整页的 = data-screen-label 漏了。
- 所有 `left` / `top` 非负,帧之间不相交。
- 数一下帧数与你打算给的方向数一致(少了通常是帧被包进了 wrapper,宿主量不到)。
- 编号连续且未重排:旧轮编号与上一版逐字一致。
Security
- Security scanPassed, 96 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingresources/skills/hi-fi-design/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/yuanlang12/openpipal/hi-fi-design)