From hyperframes
Adapts Anime.js animations and timelines for HyperFrames compositions by registering on window.__hfAnime for seek-driven, deterministic playback. Use when porting Anime.js examples to render-safe HTML.
npx claudepluginhub ilderaj/agent-plugin-marketplace --plugin codex--hyperframesThis skill uses the workspace's default tool permissions.
HyperFrames can seek Anime.js instances through its `animejs` runtime adapter. The composition owns the animation objects; HyperFrames owns the clock.
Adapts Web Animations API for HyperFrames to enable seekable element.animate() motions, currentTime seeking, document.getAnimations(), and deterministic native browser animations.
Animates DOM elements, CSS properties, SVGs, and JavaScript objects using Anime.js timelines, stagger effects, path morphing, and keyframe sequences for complex web animations.
Provides GSAP animation reference tailored for HyperFrames, covering core tweens (to/from/fromTo/set), easing, stagger, defaults, timelines (positioning, labels, nesting, playback), and performance (transforms, will-change, quickTo). Activate when writing GSAP in HyperFrames.
Share bugs, ideas, or general feedback.
HyperFrames can seek Anime.js instances through its animejs runtime adapter. The composition owns the animation objects; HyperFrames owns the clock.
autoplay: false so Anime.js does not advance on its own clock.window.__hfAnime.The adapter seeks every registered instance with instance.seek(timeMs), where timeMs is HyperFrames time in milliseconds.
<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.__hfAnime = window.__hfAnime || [];
window.__hfAnime.push(anim);
</script>
<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.__hfAnime = window.__hfAnime || [];
window.__hfAnime.push(tl);
</script>
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.__hfAnime = window.__hfAnime || [];
window.__hfAnime.push(anim);
</script>
Use GSAP for complex scene sequencing unless the user specifically asks for Anime.js. GSAP is still the primary HyperFrames authoring path.
autoplay at the Anime.js default.anime.running auto-discovery instead of explicit window.__hfAnime.push(...).After editing a composition that uses Anime.js:
npx hyperframes lint
npx hyperframes validate
packages/core/src/runtime/adapters/animejs.ts.autoplay, pause(), and seek(): https://animejs.com/documentation/