A spring that generates realistic easing functions
- 1 kb! (minified)
- Tension & Wobble parameters
- No dependencies
- Compatible with any animation library
$ yarn add springer
# or
$ npm install springer --only=dev
<script src='https://unpkg.com/springer@latest/springer.js'></script>
springer(tension, wobble)
tension
- The percentage of force the spring has before release.
- Min:
0
- Max:
1
- Default:
0.5
wobble
- The percentage of wobble, or malleability the spring exhibits
- Min:
0
- Max:
1
- Default:
0.5
- Returns an spring-based easing function
import springer from 'springer' // or 'window.Springer.default' for script-tag users
const spring = springer(0.5, 0.8)
console.log(spring(0)) // 0
console.log(spring(0.2)) // 0.80516
console.log(spring(0.4)) // 1.01897
console.log(spring(0.6)) // 1.00010
console.log(spring(0.8)) // 0.99974
console.log(spring(1)) // 1
Springer
is heavily inspired by React-Motion with he bulk of the difficult physics logic originally done by the amazing Cheng Lou (chenglou). Thanks Cheng!
To suggest a feature, create an issue if it does not already exist. If you would like to help develop a suggested feature follow these steps:
- Fork this repo
$ yarn
- Implement your changes to files in the
src/
directory - Submit PR for review
$ yarn run test
Runs the test suite$ yarn run prepublish
Builds for NPM distribution