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

vueport

v0.1.6

Published

Vueport is a set of Vue JS data provider components designed to make it easy to add scroll effects to your Vue application.

Readme

VuePort

Vueport is a set of Vue JS data provider components designed to make it easy to add scroll effects to your Vue application.

Getting started

To add VuePort to your app simply run npm install vueport. Once installed it exposes two components that you can import.

import {
    VueportPageScroll,
    VueportElementPosition
} from "vueport";

Using VueportPageScroll

The VueportPageScroll component uses scoped slots to provide the current scroll position to your components. It can be used to build page progress indicators, animations that depend on the overall scroll position, etc.

<vueport-page-scroll>
    <div slot-scope="scrollPosition">
        ...
    </div>
</vueport-page-scroll>

Exposed values

VueportPageScroll makes the following values available to you:

  • scrollY The current value of window.scrollY
  • scrollHeight The current value of window.documentElement.scrollHeight
  • clientHeight The current value of window.documentElement.clientHeight
  • scrollableHeight The height of the scrollable area of the document.
  • scrollPcnt The current percentage of the page that has been scrolled.

Using VueportElementPosition

The VueportElementPosition component uses scoped slots to provide the current position of the component it wraps relative to the device viewport.

<vueport-element-position>
    <div slot-scope="elementPosition">
        ...
    </div>
</vueport-element-position>

Exposed values

VueportElementPosition makes the following values available to you:

  • boundingClientRect The current BoundingClientRect for the component
  • visible Boolean. Whether the component is currently visible on the viewport
  • fullyVisible Boolean. Whether the component is currently fully visible on the viewport
  • shown Boolean. Whether the component has been shown. This is set to true when then visible first becomes true and remains so for the rest of the component lifecycle
  • topPcnt The position of the top of the element relative to the top of the viewport as a percentage
  • bottomPcnt The position of the bottom of the element relative to the top of the viewport as a percentage
  • center The vertical position of the center of the element in pixels
  • centerPcnt The position of the center of the element relative to the top of the viewport as a percentage

Coming Soon

VuePort is still a work in progress and is being added to all the time there will be more features added to both components and more components added in the near future. I will also be working on improving the documentation including a demo site built using VuePort and some examples of how to build cool scrolling animations using VuePort.

About the Author

Hi, I'm James O'Neill and I built VuePort. I'm a developer from Bristol, England.

If you want to know more about me you can check out my personal site or follow me on Twitter @jamesoneill83.