@pixodesk/svg-animator-vue
| Install | |
|---|---|
npm install @pixodesk/svg-animator-vue |
|
| Latest Version: | 1.0.49 |
| Vue: | 3 |
| License: | MIT |
| Last Updated: | Oct 22, 2026 |
| Links: | GitHub · npm |
animator-vue
๐ Full user guide: docs/library/vue.md ยท all docs
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 | |
| 1.0.44 | MIT | |
| 1.0.43 | MIT | |
| 1.0.41 | MIT | |
| 1.0.40 | MIT | |
| 1.0.39 | MIT | |
| 1.0.35 | MIT | |
| 1.0.34 | MIT | |
| 1.0.30 | MIT | |
| 1.0.29 | MIT | |
| 1.0.28 | MIT | |
| 1.0.27 | MIT | |
| 1.0.26 | MIT | |
| 1.0.24 | MIT | |
| 1.0.22 | MIT | |
| 1.0.21 | MIT | |
| 1.0.20 | MIT | |
| 1.0.19 | MIT | |
| 1.0.18 | MIT | |
| 1.0.17 | MIT | |
| 1.0.16 | MIT | |
| 1.0.15 | MIT | |
| 1.0.10 | MIT | |
| 1.0.8 | MIT | |
| 1.0.6 | MIT |