Logo Animation

iart-ai/motion-design-skills/skills/logo-animation

作者 iart-ai3c129f769d90无许可证58 个星标收录于 2026年10月8日更新于 2026年10月8日仓库3个月前更新

This skill should be used when the user asks to "animate our logo", "make a logo intro/stinger", "build a brand reveal", "create an app splash animation", "loop a loader logo", "draw on our SVG mark", "morph an icon into the wordmark", or "sync the logo to a sound-logo". Covers web (SVG/Lottie), video, and app-splash delivery.

仅含说明Design & Creative
AI 生成的概览

指导为网页、视频和应用启动画面制作标志动画,并提供静态回退方案。

功能
该技能提供用于为品牌标志制作动画的说明和代码模式,采用描边绘制、遮罩擦除、分层构建、形变、循环或字标显现等单一技法。它涵盖通过内联 SVG、CSS、GSAP 或 Lottie 进行网页交付,以及视频片头和启动画面,并要求提供静态末帧回退和减少动态效果路径。它还描述了针对独立 HTML 文件的冻结与截图验证循环,用于检查各帧。
适用场景
当被要求为标志制作动画、构建品牌揭示或片头、创建启动画面或加载循环、绘制 SVG 标志、将图标形变为字标,或让标志落定与声音标志同步时使用。
运行要求
仅为说明,不附带脚本。它提及可选工具,如 GSAP、Lottie 播放器、Remotion、After Effects、Playwright 和浏览器,并提到 scripts 目录中的打包辅助脚本,但所提供的文件中并不存在该目录。

Logo Animation

Bring a brand mark to life with one clear idea, on-brand geometry, and a crisp settle. Animate for web (SVG/Lottie), video intros/outros, or app splash screens, and always ship a static end-frame fallback.

When to use

  • Build an intro stinger, sign-off, app splash, or loader idle loop.
  • Reveal a brand mark on a landing hero or sizzle reel.
  • Draw on an SVG mark, wipe/build it in piece by piece, or morph an icon into a wordmark.
  • Sync the final settle of the mark to a sound-logo beat.

Core principle

Pick ONE technique per logo — draw OR build OR morph — not all at once. Reveals run 0.8–2.5s. Never distort brand geometry; scale and fade are safe, skew and squash usually are not. Respect clearspace (keep the mark's minimum margin clear of motion debris). Always provide a prefers-reduced-motion path that shows the final mark with no motion.

Technique map

TechniqueBest forMechanism
Stroke draw-onLine marks, monograms, signaturesstroke-dashoffset 1→0
Mask wipe / revealFilled shapes, gradientsanimate a <clipPath> / <mask> rect
Build-on (stagger)Multi-piece marks, gridsper-group opacity+transform, staggered
MorphIcon ↔ wordmark, shape→logoGSAP MorphSVG or matched path interpolation
Idle loopLoaders, ambient splashseamless cyclic transform (rotate/pulse)
WordmarkLogotypesper-letter mask/translate stagger

Quick start: SVG stroke draw-on

The fastest on-brand web reveal. Each path draws itself, then fills settle in.

html
<svg viewBox="0 0 200 80" id="logo">  <path class="ink" d="M10 60 L40 20 L70 60" fill="none"        stroke="#111" stroke-width="6" stroke-linecap="round"        pathLength="1" stroke-dasharray="1" stroke-dashoffset="1"/></svg><style>  @keyframes draw { to { stroke-dashoffset: 0; } }  #logo .ink { animation: draw 1.1s cubic-bezier(.65,0,.35,1) forwards; }  @media (prefers-reduced-motion: reduce) {    #logo .ink { animation: none; stroke-dashoffset: 0; }  }</style>

pathLength="1" normalizes every path to length 1, so one stroke-dasharray/offset value works regardless of geometry. Stagger multiple strokes with animation-delay.

Quick start: build-on with stagger (GSAP)

js
import gsap from "gsap";// each <g class="piece"> is one mark componentgsap.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" })});

Group order matters: reveal the base/container first, then accents, then the wordmark last so the eye lands on the name.

Sound-logo sync

When audio exists, the brand's final settle frame must land exactly on the sonic accent (the "ding"/whoosh peak). Decide the audio first, find the peak timecode, then time the reveal so the mark snaps to full opacity/scale on that frame. A 1.0s reveal landing a 1.2s mnemonic feels premium; a settle that floats free of the sound feels cheap. Add a tiny overshoot-and-settle (scale 1.04→1.00 over ~0.15s) on the beat for impact.

Delivery targets

  • Web, interactive / hero: inline SVG + CSS or GSAP. Smallest payload, crisp at any size, scriptable.
  • Product / app, designer-made: Lottie (.json exported from After Effects via Bodymovin). Use lottie-web or @lottiefiles/dotlottie-web; set loop, autoplay, and a poster fallback frame.
  • Video intro/outro: Remotion (React) or After Effects render to ProRes/H.264. Pre-render at 2x for crispness.
js
// Lottie delivery with reduced-motion guardimport { 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));

Output checklist

  • Animated mark in the target format (SVG/Lottie/video).
  • Static final-frame fallback (SVG or PNG) for reduced-motion and posters.
  • One clear technique, reveal ≤2.5s, brand geometry intact, clearspace respected.
  • Sound-logo settle aligned to the audio peak (if audio present).

Deliver & verify (standalone HTML)

Packaged helper (scripts/): scripts/seek-shot.sh anim.html 0 1.5 3 freezes the ?t=N harness and screenshots each moment; scripts/contact-sheet.sh sheet.png frame-*.png tiles them for one-glance review. See scripts/README.md.

Logo animation spans web/SVG/Lottie, video, and app splash. For web/SVG/Lottie delivery use this standalone-HTML loop; for a video logo sting, render via the remotion-video verify loop instead.

For web/SVG/Lottie, ship one .html file that opens directly in a browser — inline SVG markup plus the reveal (CSS or one CDN GSAP <script>), self-contained. One file is the right tier.

Output contract:

  • One .html file: the inline SVG (or Lottie canvas) + the reveal in inline <style>/<script>.
  • One animation driver — the CSS @keyframes draw/build, or a single GSAP timeline; not both.
  • Include the freeze harness below, matched to the technique, so any moment can be screenshotted deterministically.

Freeze harness — pin a frame for screenshots. Match the mechanism to the technique:

html
<script>  const t = new URLSearchParams(location.search).get("t");  if (t !== null) {    const T = parseFloat(t);    // CSS stroke-draw / build-on:    document.querySelectorAll("#logo *").forEach(el => {      el.style.animationDelay = (-T) + "s";      el.style.animationPlayState = "paused";    });    // GSAP timeline instead? → tl.pause(); tl.seek(T);    // SMIL <animate>?       → const s = document.querySelector("svg"); s.pauseAnimations(); s.setCurrentTime(T);    // Lottie?               → dl.setFrame(Math.round(T * fps));  }  window.__ready = true;                                          // ready signal for headless wait</script>

Verify loop — render → freeze → screenshot → check:

  1. Open the file frozen at start / mid / end of the reveal (≤2.5s): …/logo.html?t=0, ?t=<dur/2>, ?t=<dur>.
  2. Screenshot each frozen frame.
  3. Check fidelity (matches the mark, one clear technique) and artifacts — brand geometry undistorted, clearspace clear of motion debris, no half-drawn strokes left at the end frame, the static final frame is the true logo.
  4. Iterate: if any check fails (e.g. a half-drawn stroke at ?t=<dur> or distorted geometry mid-reveal), fix the stroke-dashoffset/duration/easing, re-render the same ?t=N, and re-screenshot to confirm the fix — loop until every frame is clean.
bash
npx playwright screenshot --wait-for-timeout=500 "file://$PWD/logo.html?t=1.1" frame-mid.png

Before you finish:

  1. Opens standalone in a browser — no console errors, no missing CDN.
  2. One technique/driver; ?t=N freezes the exact frame correctly.
  3. Screenshotted at start / mid / end — geometry intact, clearspace respected, final frame is the clean mark.
  4. prefers-reduced-motion honored (final static mark shown, no motion) + static end-frame fallback shipped.
  5. Reveal ≤2.5s; if audio present, the settle lands on the sound-logo peak.

Reference files

  • references/logo-patterns.md — runnable code for every technique: stroke draw-on, mask wipe build-on, GSAP MorphSVG morph, seamless idle loop, Lottie delivery, plus timing tables (0.8–2.5s), brand clearspace rules, and reduced-motion fallbacks.

来源与署名

来源:iart-ai/motion-design-skills位于skills/logo-animation提交3c129f7

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架