图像与设计
为品牌 logo 制作 web/视频/App…
当需要制作 logo intro/stinger、app splash、loader 循环、SVG 绘制或 icon→wordmark 变形时,用单一技法、品牌几何和声音同步完成动画。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
为品牌 logo 制作 web/视频/A通用
解决思路
- 每个 logo 只选一种技法:draw 或 build 或 morph,不要同时使用多种。
- Reveal 时长控制在 0.8–2.5s。
- 不要扭曲品牌几何;scale 和 fade 是安全的,skew 和 squash 通常不可用。
- 尊重 clearspace:保持 logo 的最小留白区域不被运动碎片侵入。
- 始终提供 prefers-reduced-motion 路径:显示无运动的最终 logo。
- Stroke draw-on 技法:适合线条标识、字母组合、签名,操作为让 stroke-dashoffset 从 1 到 0。
- Mask wipe / reveal 技法:适合填充形状、渐变,操作为动画 <clipPath> / <mask> 的 rect。
- Build-on (stagger) 技法:适合多部件标识、网格,操作为按组做 opacity+transform 并错峰。
- Morph 技法:适合 icon ↔ wordmark、shape→logo,操作为用 GSAP MorphSVG 或匹配路径插值。
- Idle loop 技法:适合 loader、环境 splash,操作为做无缝循环 transform(rotate/pulse)。
- Wordmark 技法:适合 logotype,操作为按字母做 mask/translate 错峰。
- SVG stroke draw-on 快速做法:在 inline SVG 中给 path 设 fill="none"、stroke="#111"、stroke-width="6"、stroke-linecap="round"、pathLength="1"、stroke-dasharray="1"、stroke-dashoffset="1"。
- SVG stroke draw-on 快速做法:用 CSS @keyframes draw { to { stroke-dashoffset: 0; } },并给 #logo .ink 设 animation: draw 1.1s cubic-bezier(.65,0,.35,1) forwards;。
- SVG stroke draw-on 快速做法:对 prefers-reduced-motion: reduce 设 #logo .ink { animation: none; stroke-dashoffset: 0; }。
- pathLength="1" 会把每条路径长度归一化为 1,因此同一个 stroke-dasharray/offset 值适用于任意几何形状。
- 多条 stroke 用 animation-delay 做错峰。
- Build-on GSAP 做法:import gsap;每个 <g class="piece"> 作为一个标识组件。
- Build-on GSAP 做法:调用 gsap.from(".piece", { opacity: 0, scale: 0.85, transformOrigin: "50% 50%", duration: 0.5, ease: "back.out(1.6)", stagger: 0.08, onComplete: () => gsap.to("#mark", { scale: 1, duration: 0.2, ease: "power2.out" }) });。
- Build-on 组顺序:先 reveal 基础/容器,再 accents,最后 wordmark,让视线落在名称上。
- 有音频时做 sound-logo sync:品牌最终 settle 帧必须精确落在 sonic accent(ding/whoosh 峰值)上。
- 先定音频,找到峰值 timecode,再安排 reveal,使 logo 在该帧瞬间达到全 opacity/scale。
- Sound-logo 示例:1.0s reveal 落在 1.2s mnemonic 上显得 premium;settle 与声音脱节显得廉价。
- 在节拍上加入微小 overshoot-and-settle:scale 从 1.04→1.00,约 0.15s,以增强冲击感。
- Web interactive/hero 交付:使用 inline SVG + CSS 或 GSAP;payload 最小、任意尺寸清晰、可脚本化。
- Product/app 设计稿交付:使用 Lottie(After Effects 经 Bodymovin 导出 .json);用 lottie-web 或 @lottiefiles/dotlottie-web;设置 loop、autoplay 和 poster fallback frame。
- Video intro/outro 交付:用 Remotion (React) 或 After Effects 渲染 ProRes/H.264;以 2x 预渲染保证清晰。
- Lottie reduced-motion guard:import { DotLottie } from "@lottiefiles/dotlottie-web"; const reduce = matchMedia("(prefers-reduced-motion: reduce)").matches; const dl = new DotLottie({ canvas: document.querySelector("#logo-canvas"), src: "/logo.lottie", autoplay: !reduce, loop: false }); if (reduce) dl.addEventListener("load", () => dl.setFrame(dl.totalFrames - 1));。
- 输出 checklist:交付目标格式的动画标识(SVG/Lottie/video)。
- 输出 checklist:交付 reduced-motion 与 poster 用的静态最终帧 fallback(SVG 或 PNG)。
- 输出 checklist:保持一种清晰技法,reveal ≤2.5s,品牌几何完整,clearspace 被尊重。
- 输出 checklist:如果有音频,sound-logo settle 与音频峰值对齐。
- Web/SVG/Lottie 交付使用 standalone-HTML 验证循环;视频 logo sting 改用 remotion-video 验证循环。
- 对 Web/SVG/Lottie,交付一个可直接在浏览器打开的 .html 文件:inline SVG 标记 + reveal(CSS 或一个 CDN GSAP <script>),自包含。
- 输出契约:一个 .html 文件,包含 inline SVG(或 Lottie canvas)+ 内联 <style>/<script> 中的 reveal。
- 输出契约:只用一个动画 driver:CSS @keyframes draw/build,或单个 GSAP timeline,不要两者都用。
- 输出契约:按技法加入 freeze harness,以便任意时刻都能确定性地截图。
- Freeze harness:读取 URL 参数 t;if (t !== null) 则 parseFloat(t) 为 T。
- Freeze harness 对 CSS stroke-draw/build-on:document.querySelectorAll("#logo *").forEach(el => { el.style.animationDelay = (-T) + "s"; el.style.animationPlayState = "paused"; });。
- Freeze harness 对 GSAP timeline:tl.pause(); tl.seek(T);。
- Freeze harness 对 SMIL <animate>:const s = document.querySelector("svg"); s.pauseAnimations(); s.setCurrentTime(T);。
- Freeze harness 对 Lottie:dl.setFrame(Math.round(T * fps));。
- Freeze harness:设置 window.__ready = true; 作为 headless wait 的 ready signal。
- 验证循环:打开文件并冻结在 reveal 的 start/mid/end(≤2.5s):…/logo.html?t=0、?t=<dur/2>、?t=<dur>。
- 验证循环:对每个冻结帧截图。
- 验证循环:检查 fidelity(匹配标识、只有一种清晰技法)和 artifacts:品牌几何未变形、clearspace 无运动碎片、结束帧没有半绘制的 stroke、静态最终帧是真正的 logo。
- 验证循环迭代:若任一检查失败(例如 ?t=<dur> 仍有半绘制 stroke,或中途几何变形),修复 stroke-dashoffset/duration/easing,重新渲染同一个 ?t=N,并重新截图确认修复——循环直到每一帧干净。
- 截图命令:npx playwright screenshot --wait-for-timeout=500 "file://$PWD/logo.html?t=1.1" frame-mid.png。
- 完成前检查:能在浏览器独立打开——无 console errors、无缺失 CDN。
- 完成前检查:只有一种技法/driver;?t=N 能正确冻结精确帧。
- 完成前检查:已在 start/mid/end 截图——几何完整、clearspace 被尊重、最终帧是干净标识。
- 完成前检查:prefers-reduced-motion 被满足(显示最终静态标识、无运动)+ 已交付静态 end-frame fallback。
- 完成前检查:Reveal ≤2.5s;若有音频,settle 落在 sound-logo 峰值上。
- 使用 references/logo-patterns.md:其中包含每种技法的可运行代码(stroke draw-on、mask wipe build-on、GSAP MorphSVG morph、seamless idle loop、Lottie delivery)、timing tables(0.8–2.5s)、brand clearspace rules 和 reduced-motion fallbacks。
- 使用 packaged helper scripts:scripts/seek-shot.sh anim.html 0 1.5 3 冻结 ?t=N harness 并截图每个时刻;scripts/contact-sheet.sh sheet.png frame-*.png 拼接成一张供一眼审查;见 scripts/README.md。
适用边界 · 注意事项
- 不要在同一个 logo 上同时混用 draw、build、morph 多种技法;只选一种。
- 不要用 skew/squash 等扭曲品牌几何;除非品牌规范明确允许,scale/fade 才安全。
- 视频 logo sting 不适用本技能的 standalone-HTML 验证循环,应改用 remotion-video 验证循环。