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

nuxt-ssr-screen-size

v1.0.0

Published

Get easy and reactive access to the width and height of your screen.

Downloads

647

Readme

nuxt-ssr-screen-size

Get easy and reactive access to the width and height of your screen.

nuxt-ssr-screen-size and vue-screen-size

It is well known that the screen dimensions cannot be determined from the CLI or SSR, for that same reason when this script is run from a server environment it will be given default width and height values (1024 x 768), and in the In case of being executed from the client, the corresponding dimensions will be shown with their respective reactivity.

Relax and forget about the message "the window is not defined"

alt text

Links

View demo

View on npm

View on GitHub

Install

# npm
npm i github:hugojerez/nuxt-ssr-screen-size

About

Sometimes when building an app you need to have access to the screen's dimensions. Usually that's going to be done in the css using @media - but sometimes you need to access that info right in your JavaScript.

The issue with this is you have to worry about adding event listeners and then removing them later. We wanted to just be able to import something quickly and then be able to forget about it later. So this mixin does just that - just use Vue.use() or mixins: [], and you're off.

There is something to consider - where and how you include this library. There are two ways, make sure to be aware of the differences:

Usage Example 1 - Whole app has access (Not Recommended)

In this usage - your whole app - and every child component - has access to the $vssWidth, $vssHeight, and $vssEvent variables. This is sorta pollutive though, as multiple instances of the mixin are initialized and it's kinda wasteful. The is due to the way Vue mixins are passed down to child components. You can read more about this here. The second example is recommended.

import NuxtSSRScreenSize from 'nuxt-ssr-screen-size'
Vue.use(NuxtSSRScreenSize)

// Access `this.$vssWidth`, `this.$vssHeight`, and `this.$vssEvent` anywhere in your app.

Usage Example 2 - Just the component you install it on has access - (Recommended)

In this usage - the component you install it on will have access to the $vssWidth, $vssHeight, and $vssEvent variables. This may be a bit more restrictive, but it's less wasteful and should give you better performance.

import NuxtSSRScreenSize from 'nuxt-ssr-screen-size'

export default {
    ...
    mixins: [NuxtSSRScreenSize.NuxtSSRScreenSizeMixin],
    ...
}

// Access `this.$vssWidth`, `this.$vssHeight`, and `this.$vssEvent` in your component.

Variables

| name | type | description | |--------|------------|-------------| | $vssWidth | Number | The width of your screen | | $vssHeight | Number | The height of your screen | | $vssEvent | Object | The event object data from the resizing event. |

Methods

| method | parameters | description | |--------|------------|-------------| | $vssDestroyListener | none | Force the removal of the attached event listener |

Development

# install dependencies
npm install

# serve with hot reload
npm run watch

# run the tests
npm run test

# build demo page
npm run build:example

# build
npm run build

# publish to npm
npm publish

Other

Go ahead and fork the project! Submit an issue if needed. Have fun!

License

MIT

Packaged with a mixture of vue-lib-template and vue-sfc-rollup.