Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
chanjing-ai avatar

Animejs

  • 76 installs
  • Updated July 24, 2026
  • chanjing-ai/framevideo

Writes seek-driven, deterministic Anime.js animations and timelines inside FrameVideo compositions.

About

Provides Anime.js adapter patterns so animations run seek-driven and deterministic under FrameVideo's clock by registering instances on window.__fvAnime. A developer uses it when authoring Anime.js motion inside a FrameVideo video composition.

  • Register Anime.js instances on window.__fvAnime with autoplay:false
  • Adapter seeks each instance deterministically via seek(timeMs)

Animejs by the numbers

  • 76 all-time installs (skills.sh)
  • Ranked #827 of 1,335 Generative Media skills by installs in the Skillselion catalog
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
npx skills add https://github.com/chanjing-ai/framevideo --skill animejs

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs76
Last updatedJuly 24, 2026
Repositorychanjing-ai/framevideo

What it does

Writes seek-driven, deterministic Anime.js animations and timelines inside FrameVideo compositions.

Files

SKILL.mdMarkdownGitHub ↗

Anime.js for FrameVideo

FrameVideo can seek Anime.js instances through its animejs runtime adapter. The composition owns the animation objects; FrameVideo owns the clock.

Contract

  • Create animations or timelines synchronously during composition initialization.
  • Set autoplay: false so Anime.js does not advance on its own clock.
  • Register every returned animation or timeline on window.__fvAnime.
  • Use finite durations and loop counts.
  • Avoid callbacks that mutate DOM based on wall-clock time, network state, or unseeded randomness.

The adapter seeks every registered instance with instance.seek(timeMs), where timeMs is FrameVideo time in milliseconds.

Basic Pattern

<script src="https://cdn.jsdelivr.net/npm/animejs@4.0.2/lib/anime.iife.min.js"></script>
<script>
  const anim = anime({
    targets: ".mark",
    translateX: 280,
    rotate: "1turn",
    opacity: [0, 1],
    duration: 1200,
    easing: "easeOutExpo",
    autoplay: false,
  });

  window.__fvAnime = window.__fvAnime || [];
  window.__fvAnime.push(anim);
</script>

Timeline Pattern

<script>
  const tl = anime.timeline({
    autoplay: false,
    easing: "easeOutCubic",
  });

  tl.add({
    targets: ".title",
    translateY: [40, 0],
    opacity: [0, 1],
    duration: 650,
  }).add(
    {
      targets: ".accent",
      scaleX: [0, 1],
      duration: 450,
    },
    250,
  );

  window.__fvAnime = window.__fvAnime || [];
  window.__fvAnime.push(tl);
</script>

Module Builds

If you use an ES module build, the adapter does not care how the instance was created. It only needs the returned object to expose seek(), pause(), and preferably play():

<script type="module">
  import { animate } from "https://cdn.jsdelivr.net/npm/animejs/+esm";

  const anim = animate(".chip", {
    x: "18rem",
    duration: 900,
    autoplay: false,
  });

  window.__fvAnime = window.__fvAnime || [];
  window.__fvAnime.push(anim);
</script>

Good Uses

  • Small SVG and DOM flourishes where Anime.js syntax is compact.
  • Imported Anime.js examples that can be made seek-driven.
  • Multiple independent micro-animations pushed into the same registry.

Use GSAP for complex scene sequencing unless the user specifically asks for Anime.js. GSAP is still the primary FrameVideo authoring path.

Avoid

  • Leaving autoplay at the Anime.js default.
  • Depending on anime.running auto-discovery instead of explicit window.__fvAnime.push(...).
  • Infinite loops. Compute a finite repeat count from the composition duration.
  • Building animations in timers, promises, event handlers, or after async asset loads.

Validation

After editing a composition that uses Anime.js:

npx framevideo lint
npx framevideo validate

Credits And References

  • FrameVideo adapter source: packages/core/src/runtime/adapters/animejs.ts.
  • Anime.js documentation for autoplay, pause(), and seek(): https://animejs.com/documentation/

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.