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

easegen

v1.0.1

Published

A library for generating a set of cubic bezier easing functions by providing a min and max points and generating all possible combinations.

Downloads

129

Readme

easegen

A library for generating a set of cubic bezier easing functions by providing a min and max points and generating all possible combinations.

Why is this useful?

It provides a set of easing functions that can be used in CSS and JavaScript. Getting multiple combinations of your desired min and max points gives you granular control over your animations.

Usage

// import easegen with default values
import easings from "easegen";

// import Easegen class to use with your own values
import { Easegen } from "easegen";
export const easings = new Easegen(customValues);

Custom values

We define different values for p1 and p2. The library will generate all possible combinations of p1 and p2, including p1 and p2 as zero. The more values you define, the more combinations you will get.

// default values
{
p1:  [
{ x:  0.2, y:  0.4  },
{ x:  0.2, y:  0.333  },
{ x:  0.2, y:  0.1  },
],
p2:  [
{ x:  0.6, y:  0  },
{ x:  0.666, y:  0  },
{ x:  0.8, y:  0  },
],
};

If you want to better understand how it works, you can clone the repo.

npm i

npm run dev

Will give you a nice overview of the easings.

Choosing the best easing

For convenience, you can import EasegenProvider and useEasegen into your current app. This will render a select menu with all generated easings and lets you access the currently selected easing to test it on the animation you're currently working on.

import { EasegenProvider, useEasegen } from "easegen";

const { currentEasing } = useEasegen();

<EasegenProvider>
  {/* ... Rest of you app or any component that needs the easing */}

  {/* css */}
  <div
    style={{
      transitionTimingFunction: currentEasing.css,
    }}
  >
    {/* ... */}
  </div>

  {/* framer-motion */}
  <motion.div
    animate={{ x: [0, 100] }}
    transition={{
      ease: currentEasing.array,
    }}
  ></motion.div>
</EasegenProvider>;

‼️ Make sure to remove and all usage of useEasegen in production to avoid unexpected results ‼️