From hyperframes
Adapts CSS keyframe animations for HyperFrames seeking during preview and rendering. Use for pulses, shimmers, staggers with data-start, finite durations, and fill-modes.
How this skill is triggered — by the user, by Claude, or both
Slash command
/hyperframes:css-animationsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
HyperFrames can seek CSS keyframe animations through its `css` runtime adapter. Use this for simple repeated motifs, background motion, shimmer, glow, masks, and non-sequenced decoration.
HyperFrames can seek CSS keyframe animations through its css runtime adapter. Use this for simple repeated motifs, background motion, shimmer, glow, masks, and non-sequenced decoration.
For scene choreography, GSAP is usually clearer. CSS animations work best when the motion belongs to one element and has a fixed duration.
data-start value so local animation time matches the clip.animation-duration and animation-iteration-count because the negative-delay fallback cannot represent unbounded duration in environments without WAAPI-backed CSS animations.animation-fill-mode: both so seeked states hold before and after active motion.The adapter discovers elements with computed animation-name, seeks their browser Animation handles when available, and falls back to pausing with negative animation-delay.
<div
id="pulse-ring"
class="clip pulse-ring"
data-start="0"
data-duration="4"
data-track-index="2"
></div>
<style>
.pulse-ring {
width: 280px;
height: 280px;
border: 4px solid rgba(255, 255, 255, 0.7);
border-radius: 50%;
animation-name: pulse-ring;
animation-duration: 1200ms;
animation-timing-function: cubic-bezier(0.2, 0, 0, 1);
animation-iteration-count: 3;
animation-fill-mode: both;
}
@keyframes pulse-ring {
from {
opacity: 0;
transform: scale(0.82);
}
35% {
opacity: 1;
}
to {
opacity: 0;
transform: scale(1.18);
}
}
</style>
Use CSS custom properties to avoid duplicating keyframes:
<div class="clip dots" data-start="1" data-duration="3" data-track-index="3">
<span style="--i: 0"></span>
<span style="--i: 1"></span>
<span style="--i: 2"></span>
</div>
<style>
.dots span {
display: inline-block;
width: 18px;
height: 18px;
margin-right: 10px;
border-radius: 50%;
background: currentColor;
animation: dot-pop 900ms ease-out both;
animation-delay: calc(var(--i) * 120ms);
}
@keyframes dot-pop {
from {
opacity: 0;
transform: translateY(18px) scale(0.75);
}
to {
opacity: 1;
transform: translateY(0) scale(1);
}
}
</style>
top, left, width, or height when transforms work.After editing CSS animation compositions:
npx hyperframes lint
npx hyperframes validate
packages/core/src/runtime/adapters/css.ts.animation-fill-mode: https://developer.mozilla.org/en-US/docs/Web/CSS/animation-fill-modenpx claudepluginhub zaeem571/hyperframes --plugin hyperframesWrites CSS keyframe animations compatible with HyperFrames seeking. Covers pause-based timing, fill modes, stagger patterns via custom properties, and decorational loops.
Provides atomic motion rules, multi-phase scene blueprints, scene transitions, and runtime adapters (GSAP, Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU) for HyperFrames animation authoring.
Provides pure CSS animation expertise using keyframes, transitions, timing functions, and Tailwind utilities for lightweight, performant effects without JavaScript.