Give profile pictures a little life. Animated DiceBear styles carry a looping CSS animation inside the SVG, and a single option turns it on. A plain img tag is enough to play it.
Animated profile pictures usually mean heavy GIFs or video files. DiceBear animates the SVG itself instead.
The keyframes live inside the SVG itself. There is nothing to export or encode, and nothing extra to load at runtime.
Browsers run CSS animations in SVG images, so a plain img element or CSS background is enough. You embed animated avatars exactly like static ones.
Every animation sits behind a prefers-reduced-motion media query. Visitors who turn off motion in their system settings get a static avatar instead.
Avatars render static unless you request motion, so nothing in an existing integration starts moving just because a style supports animation.
The same seed returns the same avatar, animated or not. Changing the speed changes the motion, never the artwork.
A looping animated avatar weighs a fraction of a comparable GIF or video and stays sharp at every size, from favicon to full screen.
Animation is a regular variant option. Pick a speed from slowest to fastest, or leave it out for a static avatar.
https://api.dicebear.com/10.x/planets/svg?seed=Felix&animationVariant=mediumimport { Style, Avatar } from '@dicebear/core';
import planets from '@dicebear/styles/planets.json' with { type: 'json' };
const style = new Style(planets);
const svg = new Avatar(style, {
seed: 'Felix',
animationVariant: 'medium',
}).toString(); For a random speed per avatar, filter variants with tags=animation instead.