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

@websanova/vue-utils

v0.6.4

Published

Some simple utilities for Vue.

Readme

vue-utils

A simple utils library for Vue.js

The idea behind this library is just to provide the ability to auto include some utils for common tasks in vue like fading between pages or scrolling to top between routes.

We want to tuck away all this functionality and just have it ready to go in our apps.

Install

With default options just set an array.

Vue.use(require('@websanova/vue-utils/src/pageTop.js'));
Vue.use(require('@websanova/vue-utils/src/pageMeta.js'));
Vue.use(require('@websanova/vue-utils/src/pageFade.js'));

Utils

pageTop

One thing with Vue.js is that when components load in and out between routes, the scroll bar doesn't change position. We most likely want to scroll to the top of the page for new (main) routes.

Once set it will automatically scroll to the top of the page based on a route group which can be set in your route mappings.

The default value in the routes file will be called pageTop for setting groups.

...

'/tabs': {
    component: require('./components/pages/tabs/Index.vue'),
    meta: {
        top: 'tabs-test',
    },
    children: [{
        path: '/',
        component: require('./components/pages/tabs/One.vue')
    }, {
        path: '/two',
        component: require('./components/pages/tabs/Two.vue')
    }, {
        path: '/three',
        component: require('./components/pages/tabs/Three.vue')
    }]
}
...

Any routes in the same group will NOT scroll to top. Only routes between DIFFERENT groups will scroll to the top (or no group set at all).

pageMeta

Set meta properties defined in the route.

It will try to find meta tags by name or property and set it's content.

NOTE: This is just a simply utility for setting static meta content. If setting some kind of open graph meta it's best to use some kind of global store.

It's more useful for setting visible things like the title.

...

'/login': {
    meta: {
        meta: {
            title: 'Login',
            meta: [
                {attribute: 'description', content: 'This is the login page description.'}
            ]
        }
    },
    component: require('./components/pages/Login.vue'),
}
...

pageFade

A programmatic fade transition for pages. This was originally designed with the idea of tabs within a page in mind. So that the tabs are separate routes/components but behave more like they are on the same page.

NOTE: There is one caveat here, once you set a transition for a certain route level you will need to then set a transition for ALL routes at that level.

Setting a transition is just like setting any transition in Vue.

<div transition="page-fade-both"></div>

There are four available fade transitions. Just make sure they are set at the component templates root element.

<div transition="page-fade-both"></div>
<div transition="page-fade-in"></div>
<div transition="page-fade-out"></div>
<div transition="page-fade-none"></div>