激活约束
仅用于运动设计师秀场语言中的网站/落地页(任何框架)或代码渲染视频(演示卷轴、宣传片、发布视频):满版纯色色彩剪辑、超粗宽体大写、单色 HUD 角标、与节拍同步的动态运动,或 3D Riso 印刷着色器。不适用于仪表盘、文档站点或表单优先的应用。
硬性规则
- 以下所有路径均相对于此技能文件夹 (
SKILL_DIR);按如下方式运行工具:node "$SKILL_DIR/assets/palette/palette.mjs" …。 - 用用户的语言回复;用项目的语言编写网站/视频文案。
- 在设计或编码之前必须先完成风格选择。永远不要硬编码十六进制颜色:颜色必须来自
palette.mjs的角色令牌(ink、bone、action、machine、on-*、hud-on-*)。 - 在字段上的文本使用
on-<field>;切勿将forbiddenPairs组合渲染为文本/背景。 - 每个场景只能使用一个标志性动作;交替高低强度场景;连续三个相同角色的字段;关键姿态保持 ≥1 拍;仅使用一种缓动家族。
- 网页:仅对 transform/opacity 进行动画;尊重
prefers-reduced-motion(静态最终状态,无循环,无固定定位);暂停屏幕外画布;仅在宽度 ≥1024px 时使用固定定位;在 375px 宽度下无溢出。 - 切勿编造推荐语、指标或客户;保留现有内容。
- 拒绝反水稿清单(
references/design-system.md§8)。
决策门
| 情况 | 操作 |
|---|---|
| 样式驱动,纯色颜色剪辑 | 瑞士动态 (Swiss Kinetic):design-system.md,assets/web,assets/video |
| 3D,有触感,海报/印刷 | Riso 着色器 (Riso Shader):shader-print.md,assets/shader/ |
| 两者结合 | 混合 (Hybrid):在纯色区域上的动态字体后面使用着色器字段(on-* 令牌) |
| 品牌颜色已知 | `palette.mjs --brand "#HEX" --format css |
| 预设 | --list(显示名称、标签、色板) → --preset <name> |
| 给我惊喜 | 从 README、文案、CSS、用户表述中推断行业/情绪 → --surprise --mood "<tags>" --seed <n>;说明理由;允许一次重新选择:--exclude <name> |
| 网站 | references/web-techniques.md;将 assets/web/* 适配到目标框架 |
| 视频 | 复制 assets/video/reel-template/;参考 references/video-pipeline.md |
| 站点 + 视频 | 先制作视频作为故事板,然后从相同场景创建网站 |
执行步骤
- 检测输出类型(网站/视频/两者)和技术栈;读取现有内容和品牌资产。
- 风格选择,每轮一个问题:风格(瑞士动态 / Riso 着色器 / 混合 / 给我惊喜),然后调色板(品牌颜色 / 预设 / 给我惊喜)。
- 字体来自预设的
fontPairing或design-system.md§2。BPM:优先使用 120(在 30 和 60fps 下每拍整数帧;在 60fps 下 144/150);其他节拍将拍子四舍五入到帧。 - 使用规范节奏(§7)编写场景表:
# | 场景 | 字段角色 | 标志性动作 | 拍数。 - 从匹配的资产开始构建。
- QA:网站 →
assets/qa/qa-screenshots.js(1440 + 390 宽度,检查溢出和控制台),仅在动画稳定后进行判断;视频 → 测试帧,完整渲染,ffprobe,联系表。 - 报告结果以及无法验证的内容(例如,永远不会监听音频)。
输出约束
返回:调色板(+ 惊喜原因)和对比度摘要、场景表、创建/修改的文件、QA 证据路径、已知限制。
参考资料
references/design-system.md— 角色、字体、时间线、缓动、动作、节奏、反水稿。references/palettes.md— 风格选择、预设、令牌格式。references/web-techniques.md— GSAP/Lenis/canvas,无障碍,性能。references/video-pipeline.md— 确定性画布 → 无头浏览器 → ffmpeg,音频。references/shader-print.md— WebGL2 光线追踪,3 色半色调,套印不准。