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

@vobs/transition

v1.8.18

Published

Optional DOM transition lifecycle primitives for Vobs.

Readme

@vobs/transition

Enter/leave transitions for vobs nodes: a CSS class lifecycle with optional inline from/to styles, cancellation when state flips mid-animation, prefers-reduced-motion support, and keyed list transitions.

Install

npm install @vobs/transition

Quick start

import { state } from '@vobs/reactivity'
import { createComponent, createDOMRenderer, createVobs, setRenderer } from '@vobs/vobs'
import { Transition } from '@vobs/transition'

setRenderer(createDOMRenderer())

const show = state(true)

const app = createVobs({
  render: () => createComponent(Transition, {
    get show() { return show.value },
    name: 'fade',
    duration: 120,
    appear: true,
    onAfterLeave: () => console.log('gone'),
    children: 'Content'
  })
})

app.mount(document.getElementById('app')!)

name: 'fade' drives fade-enter-from/-active/-to and fade-leave-* classes. During leave the node stays mounted until the animation ends, so owners and disposals survive until then; toggling show back before the leave finishes cancels it (onLeaveCancelled) and keeps the same node. When prefers-reduced-motion matches, enter and leave complete immediately.

API

| Signature | Description | | --- | --- | | Transition(props: TransitionProps) | Wraps a single child. Omit show to render and enter once; appear animates the initial visible branch. enter/leave phases accept { duration, easing, from, to } inline styles, restored after transitionend (or the shared duration). Callbacks: onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, and the matching leave hooks. reducedMotion respects the media query by default in DOM environments. | | TransitionGroup<Item>(props: TransitionGroupProps<Item>) | Keyed list transitions via items + keyOf + renderItem. Leaving items are removed only after their leave completes; renderItem receives a refreshed index after reorders; duplicate keys throw before the DOM is committed. A stable children array is also supported. | | createCSSTransitionDriver() / cssTransitionDriver | The built-in CSS driver. Pass a custom TransitionDriver — run(node, phase, options, done) returning a TransitionRun with cancel() — through the driver option for JS-driven animation. |

SSR renders the current visible branch without touching the DOM and without emitting transition classes.

Types

TransitionStyle, TransitionPhase, TransitionPhaseName, TransitionRun, TransitionDriver, TransitionDriverOptions, TransitionCallbacks, TransitionOptions, TransitionChildren, TransitionProps, TransitionGroupProps, TransitionStatus