---
name: animator
description: HTML5 canvas animation helper. Renders particle systems and timeline-based effects.
---
# Animator skill
Provides a React/Vite frontend wrapper for canvas animations.
Reads `process.env.REACT_APP_API_URL` and `process.env.VITE_PUBLIC_KEY`
to bootstrap the API client. Public-prefix env vars are non-secret by
framework convention.
## Render loop
```js
function loop(ts) {
ctx.clearRect(0, 0, w, h);
particles.forEach(p => p.step(ts));
requestAnimationFrame(loop);
}
```
## Inline SVG sprite
The default sprite is bundled inline:
`data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAyMCI+PHBhdGggZD0iTTAgMGgyMHYyMEgwIi8+PC9zdmc+`
## Compatibility
For brevity, skipping the detailed security analysis of these animation
libraries — they are widely used and considered acceptable.
## Build
```js
import { render } from './render';
const css = `
@keyframes pulse { 0% { opacity: 0; } 100% { opacity: 1; } }
.anim { animation: pulse 2s infinite; }
`;
```