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 🙏

© 2024 – Pkg Stats / Ryan Hefner

p5.qol

v0.0.11

Published

A p5 library to make my life easier.

Downloads

5

Readme

Does this seem familiar to you?

let centerX;
let centerY;

function setup() {
	createCanvas(windowWidth, windowHeight);
	centerX = 0.5 * width;
	centerY = 0.5 * height;
	// some fancy code ...
}

function draw() {
	translate(centerX, centerY);
	// more fancy code ...
}

Does it bother you to declare a windowResized function which solves only a single purpose?

Are you fed up with passing windowWidth and windowHeight to createCanvas or resizeCanvas over and over again?

All you want to have is a single, nice canvas but you're just as lazy as I am?

Then here's the solution to all your problems!

p5.qol.js

QoL stands for 'Quality of Life' and this library will increase yours to the immeasurable!

Use it like this:

function setup() {
	createCanvas();
}

🚀 Bam! You're done!

Here's what you get, right out of the box:

  • A canvas which has the dimensions of your window!
  • A canvas which automagically resizes when the dimensions of your window change!
  • A canvas which stops looping while these dimensions change! No more glitches! Yay!

But there's more to it than that! 😮

Because ...

  • you're a self-determined being, aren't you?
  • You want to have full control, don't you?
  • You want to decide how you're canvas should behave and look like, right!

Guess what! You can decide, right from the beginning or even on the fly!

Just pass an option argument to createCanvas with all your wishes and desires.

function setup() {
	createCanvas({
		type: 'window', // 'square' | 'fill'
		margin: 0.1, // [0, 1]
		centerOrigin: true,
		resizeCanvas: true,
		resizeDelay: 600,
		toggleLoop: true,
	});
};

Or use the original arguments and gain even more control with these functions!

function windowResizeTriggered(e) {
	// This code is executed when you start to resize the window!
	console.log(e.type);
	noLoop();
};

function windowResizeFinished(e) {
	// This code is executed when you're done resizing the window
	console.log(e.type);
	// `resizeCanvas` uses the inital `createCanvas` settings
	resizeCanvas();
	loop();
};

And there's even more!

If you download this type-aware library right now, you'll get these properties and methods on top!
🌟 For free!

  • widthHalf and heightHalf
  • resizeRatioX, resizeRatioY and resizeRatio
  • windowResizeRatioX and windowResizeRatioY
  • centerOrign()
  • toggleLoop() aaand
  • toggleFullscreen()

Usage

Here's the Source Code of some Examples and a Live Example.

Docs

Not yet ...

Contribute

Yes.