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 🙏

© 2025 – Pkg Stats / Ryan Hefner

postcss-active-view-transition-type

v0.0.7

Published

PostCSS plugin that rewrites :active-view-transition-type(<type>) pseudo class selectors to :root.<type> selectors. To be used with mayStartViewTransition from @vtbag/utensil-drawer.

Downloads

18

Readme

PostCSS active-view-transition-type

When used with mayStartViewTransition() from @vtbag/utensil-drawer, this PostCSS plugin adds a polyfill for the view transition types defined by Level 2 of the View Transition API, letting you use them even when the browser lacks native support.

When used with mayStartViewTransition() from @vtbag/utensil-drawer, this PostCSS plugin adds a polyfill for the view transition types defined in Level 2 of the View Transition API, letting you use them even when the browser lacks native support.

Build Status npm version minzip NPM Downloads

This plugin makes it possible to use view transition types with browser versions that support Level 1 of the View Transition API, only, and do not natively support view transition types.

Latest changes: Reduces the number of rules copied when setting mode to append. See the CHANGELOG.

The plugin replaces :active-view-transition-type(x) pseudo class selectors with :root:where(.vtbag-vtt-x), i.e. selectors that check for a CSS class named vtbag-vtt-x on the root element. The vtbag-vtt- prefix is added to avoid name clashes with regular CSS classes. Starting from version 0.0.5, the :where() pseudo class makes sure that the replacement keeps the specificity of the original selector.

To automatically insert those CSS classes during same-document view transitions, replace calls to document.startViewTransition() with calls to mayStartViewTransition() from the Bag's Utensil Drawer and add the useTypesPolyfill: "always" (or "auto") extension.

The plugin can operate in two different modes:

  • in-place: This is the default. Directly rewrites the selectors in place for useTypesPolyfill: "always".
  • append: Keeps the existing rules as is, and appends a transformed version of the stylesheet, if there is something to rewrite. This is for useTypesPolyfill: "auto", where the polyfill executes only in browsers that do not support view transition types.

Examples

Rewrite Rules In-Place

To rewrite rules in place, call the plugin without parameters or use this options object: { mode: 'in-place'}.

postcss.config.cjs

postcss([
	require('postcss-active-view-transition-type')
])

:active-view-transition-type()

/* Input example */
:active-view-transition-type(toggle-view) {
  #element {
    view-transition-name: element;
  }
}
/* Output example */
:root:where(.vtbag-vtt-toggle-view) {
  #element {
    view-transition-name: element;
  }
}

:active-view-transition

/* Input example */
:active-view-transition {
  #element {
    view-transition-name: element;
  }
}
/* Output example */
:root:where(.vtbag-vtt-0) {
  #element {
    view-transition-name: element;
  }
}

Append Rewritten Rules

To append the rewritten rules to the original stylesheet, call the plugin with this options object: { mode: 'append' }.

postcss.config.cjs

postcss([
	require('postcss-active-view-transition-type')({ mode:'append' })
])

:active-view-transition-type()

/* Input example */
:active-view-transition-type(toggle-view) {
  #element {
    view-transition-name: element;
  }
}
/* Output example */
:active-view-transition-type(toggle-view) {
  #element {
    view-transition-name: element;
  }
}
:root:where(.vtbag-vtt-toggle-view) {
  #element {
    view-transition-name: element;
  }
}

:active-view-transition

/* Input example */
:active-view-transition {
  #element {
    view-transition-name: element;
  }
}
/* Output example */
:active-view-transition {
  #element {
    view-transition-name: element;
  }
}
:root.where(.vtbag-vtt-0) {
  #element {
    view-transition-name: element;
  }
}

See PostCSS docs for examples for your environment.