@pixodesk/svg-animator-vue

Pixodesk SVG animator for Vue
5,112
Install
npm install @pixodesk/svg-animator-vue
Latest Version:1.0.49
Vue:3
License:MIT
Last Updated:Oct 22, 2026
Links: GitHub  ·  npm
Maintainer: pixodesk-admin

animator-vue

๐Ÿ“– Full user guide: docs/library/vue.md ยท all docs

CI License: MIT

Vue component for rendering and controlling Pixodesk SVG animations.

๐Ÿšง Status - This project is currently under development.

Usage

<script setup lang="ts">
import { PixodeskSvgAnimator } from '@pixodesk/svg-animator-vue';
import animationDoc from './animation.json';
</script>

Autoplay

Uses triggers defined in the animation document (load, click, hover, scroll):

<template>
  <PixodeskSvgAnimator :doc="animationDoc" autoplay />
</template>

Declarative play/pause

Control playback with boolean props:

<script setup lang="ts">
import { ref } from 'vue';
const paused = ref(false);
</script>

<template>
  <PixodeskSvgAnimator :doc="animationDoc" play :pause="paused" />
  <button @click="paused = !paused">Toggle</button>
</template>

Imperative API

Use a template ref for full programmatic control:

<script setup lang="ts">
import { ref } from 'vue';
import type { VueAnimatorApi } from '@pixodesk/svg-animator-vue';

const animator = ref<VueAnimatorApi | null>(null);
</script>

<template>
  <PixodeskSvgAnimator :doc="animationDoc" ref="animator" />
  <button @click="animator?.play()">Play</button>
  <button @click="animator?.pause()">Pause</button>
</template>

VueAnimatorApi methods: play(), pause(), cancel(), finish(), isPlaying(), setPlaybackRate(rate), getCurrentTime(), setCurrentTime(ms), getCurrentProgress(), setCurrentProgress(p).

Controlled time

Render a single frame โ€” by time in milliseconds, or by fraction of the whole timeline:

<template>
  <PixodeskSvgAnimator :doc="animationDoc" :time="500" />      <!-- 500 ms in -->
  <PixodeskSvgAnimator :doc="animationDoc" :progress="0.5" />  <!-- halfway through -->
</template>

Props

Prop Type Description
doc PxAnimatedSvgDocument The animation document to render (required)
autoplay boolean Use triggers from the document
play boolean Start playback, ignoring document triggers
pause boolean Pause current playback
progress number show the frame at this position in the whole timeline (duration ร— iterations): 0 is the first frame, 0.5 the middle, 1 the last
time number show the frame at that time, in milliseconds from the start
timeline object | string per-instance override of the document's timeline block, deep-merged over it โ€” same shape as the file; null at any slot deletes that key. A JSON string is accepted too. See Overriding from a player
resetTimeline boolean ignore the document's own timeline and start from the player's default timeline, with timeline on top
duration number Shortcut for timeline.duration (ms)
delay number Shortcut for timeline.delay (ms)
iterations number | 'infinite' Shortcut for timeline.iterations
start 'load' | 'mouseOver' | 'click' | 'none' Shortcut for timeline.trigger.start
onWarn (diagnostic) => void it plays, but something was ignored, degraded or misspelled; without it โ†’ console.warn (a prop, not an event โ€” see below)
onError (diagnostic) => void this instance will not play โ€” failed to load, parse or build, or the render threw; without it โ†’ console.error
muteWarn boolean switch the console.warn fallback off โ€” for when you know the player has something to say about this document and are prepared to tolerate it. onWarn, if you gave it, still fires: mute is about the console, not about you
muteError boolean the same switch for console.error

With none of autoplay / play / pause / progress / time set, the component renders the animation statically (initial state, no playback); use the template ref for imperative control.

Note: passing a different doc (or unmounting) throws the old animator away and builds a new one; the old instance emits cancel, remove, and stop on its way out. Changing progress / time does not recreate the animator โ€” it just jumps the existing one to the new time.

Events

Event Description
play Animation started or resumed
pause Animation paused
cancel Animation canceled
finish Animation reached its end โ€” every iteration played, or finish() was called
remove Animation cleaned up (e.g. on unmount)
stop Fired alongside any event that halts playback (pause / cancel / finish / remove)

Version History

Version Released License
1.0.49 MIT
1.0.48 MIT
1.0.47 MIT
1.0.46 MIT
1.0.45 MIT