npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@pixodesk/svg-animator-vue

v1.0.43

Published

Pixodesk SVG animator for Vue

Readme

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 Playback overrides | | 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 | | startOn | 'load' \| 'mouseOver' \| 'click' \| 'scrollIntoView' \| 'programmatic' | Shortcut for timeline.trigger.startOn | | 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) |