用途
sp-new-ui-mock 用于在没有任何参照截图可照搬的情况下,设计新的屏幕、流程或组件,并在原型画布上以自包含 HTML 画板的形式呈现。资料明确说明:若存在参考截图,应改用 sp-clone-prototype;测量优于凭空发明。
主要能力
- 在 canvases/<slug>/ 下渲染画板,模板文件夹由 app 附带,sp root 可打印其位置。
- 基于画板已有的设计令牌构建设计:扩展已有画板时逐字节复制其 00-design-tokens.html 的令牌块;克隆真实应用外观时先走 sp-clone-prototype 第 1、2 阶段取得实测令牌块;全新产品则复制附带模板文件夹,修改 NAME 与前缀,选择平台原生栈、中性色阶、一个强调色和一个危险色,并在证据表中说明选择理由。
- 内容取自真实来源:优先阅读项目 PRD.md 中的用户、范围、Screens 表及各屏状态;字符串取自本地化文件、现有界面或规格文档;优先使用真实素材(图标、logo、空状态插图)并以 data: URI 内嵌。
- 覆盖非理想状态:空、加载、错误、超长字符串、最长合理数字。
- 单一生成脚本产出文件夹内所有 .html,只改脚本不改输出。
- 支持并排提案对比:每个提案为同一行内的完整画板,通常三个,各自底部附一行理由,第二行同三列在不同状态下列对齐可读作矩阵。
- 支持标注截图迭代:先复述对每条标注的理解,再改生成器、重跑、目视核验,并逐条回应标注(包括不认同的)。
- 渲染验证:用 refkit shoot 截图、refkit montage 拼接,检查无裁切、文本换行符合意图、同一元素各屏内边距一致、无令牌块外颜色(可用 grep 提取十六进制色值并与 :root 对比)。每次修改后都需重新渲染。
使用方式
资料给出首块画板的初始化命令:
KIT="$(sp root)" mkdir -p canvases # first board in a project B=canvases/<slug> cp -r "$KIT/canvases/templates" "$B" python3 "$B/gen.py"
运行产物放在 $B/scratch/ 下(截图、拼接图、候选画板)。模板的驻留参考为 ref-01-screen.html,同样不纳入 git。每项目一次的 .gitignore 追加:
for p in 'ref-*.html' '**/assets/refs/' 'scratch/'; do grep -qxF "$p" .gitignore 2>/dev/null || echo "$p" >> .gitignore done
若 sp、refkit 或 artgen 找不到,运行 sh <sp-canvas skill dir>/scripts/install.sh(Windows:install.ps1)并参照该技能的 references/install.md;stderr 上的 [super-prototyping:notice] 行有其自身规则:先完成当前步骤,再按其说明执行。
验证命令:
refkit shoot "$B"/.html -o "$B/scratch/shots" --scale 2 refkit montage "$B"/scratch/shots/.png -o "$B/scratch/board.png" --height 520
适用场景
- 没有参考截图的界面、流程或组件设计。
- 需要与现有画板同一设计令牌体系的新屏扩展。
- 需要并排比较多个方案的提案评审。
- 基于用户标注截图进行多轮迭代的评审流程。
限制
- 有参考截图时不应使用本技能,应改用 sp-clone-prototype。
- 画板必须完全自包含:sandbox="" 意味着不能使用外部 CSS、JS、字体或图片,只能用 data: URI 和内联 SVG。
- 画板框为 478 × 980,溢出会被静默裁切。
- iPhone 框架 393 × 852 pt(1pt = 1px):54px 状态栏、125 × 36 Dynamic Island、139 × 5 home indicator。
- 避免 SF Symbols 私有使用区字形,无 SF Pro 时会显示为豆腐块。
- 无障碍要求:真实背景上的真实对比度、≥ 44pt 点击目标、仅图标控件需 aria-label。
- 新令牌是决策而非便利:屏幕若需令牌块中不存在的颜色或尺寸,要么加入令牌块(所有文件同步),要么说明该屏设计有误。
- 收费、价格、平台与具体使用效果资料未提供。