jstweening
v1.0.1
Published
A set of tweening / easing functions implemented in JavaScript.
Maintainers
Readme
jstweening
jstweening is a lightweight JavaScript library providing a wide range of easing functions for animations and interpolations. It includes classic polynomial, trigonometric, exponential, circular, elastic, back, and bounce easing curves – with both ease-in, ease-out, and ease-in-out variants.
All easing functions operate over a normalized time parameter
t∈ [0, 1].
📦 Installation
npm install jstweening🔧 Usage
import { easeInOutCubic } from "jstweening";
const t = 0.35;
const eased = easeInOutCubic(t);Or with CommonJS:
const { easeInOutCubic } = require("jstweening");📘 API Reference
Each easing function takes a normalized t between 0 and 1, and returns a transformed value within the same range.
Basic
linear(t: number): numberPolynomial
easeInQuad(t: number): number
easeOutQuad(t: number): number
easeInOutQuad(t: number): number
easeInCubic(t: number): number
easeOutCubic(t: number): number
easeInOutCubic(t: number): number
easeInQuart(t: number): number
easeOutQuart(t: number): number
easeInOutQuart(t: number): number
easeInQuint(t: number): number
easeOutQuint(t: number): number
easeInOutQuint(t: number): number
easeInPoly(t: number, degree: number): number
easeOutPoly(t: number, degree: number): number
easeInOutPoly(t: number, degree: number): numberTrigonometric
easeInSine(t: number): number
easeOutSine(t: number): number
easeInOutSine(t: number): numberExponential
easeInExpo(t: number): number
easeOutExpo(t: number): number
easeInOutExpo(t: number): numberCircular
easeInCirc(t: number): number
easeOutCirc(t: number): number
easeInOutCirc(t: number): numberElastic
easeInElastic(t: number, amplitude?: number, period?: number): number
easeOutElastic(t: number, amplitude?: number, period?: number): number
easeInOutElastic(t: number, amplitude?: number, period?: number): numberBack
easeInBack(t: number, s?: number): number
easeOutBack(t: number, s?: number): number
easeInOutBack(t: number, s?: number): numberBounce
easeInBounce(t: number): number
easeOutBounce(t: number): number
easeInOutBounce(t: number): number🧪 Example
import { easeOutBounce } from "jstweening";
for (let i = 0; i <= 10; i++) {
const t = i / 10;
console.log(`t=${t.toFixed(1)} → ${easeOutBounce(t).toFixed(3)}`);
}📝 License
MIT © 2025 Oğuzhan Umutlu
