0.1.0 • Published 6 months ago

fancyinout v0.1.0

Weekly downloads
-
License
-
Repository
-
Last release
6 months ago

FancyInOut


This is a quick library to add performatic animations aimed at conditional rendering. It exports a vanilla JS handler and a vue.js component.

The animations are rendered in plain JS with requestAnimationFrame

The vue component is a small wrapper that uses the standard vue \<Transition \/> component and hooks the enter and leave animations with vue's conditional rendering, it accepts every option parameter as a component prop.

live demo: https://majestic-rabanadas-875b9b.netlify.app/

Using with vanilla JS (or TS):

import {fancyInOut} from 'FancyInOut'

const {triggerEnter, triggerLeave} = fancyInOut({...options})

const el:HTMLelement; //html element to animate
const callback:Function; // optional callback function to call at the end of an animation
triggerEnter(el, callback?) //triggers the enter animation
triggerLeave(el, callback?) //triggers the leave animation

Usage with Vue.

//template
<FancyInOutVue>
  <elementToAnimate v-if="condition" />
</FancyInOutVue>

//script
import {FancyInOutVue} from 'FancyInOut'
// no need to import anything else

Integration with other frameworks such as react or svelte can be done right now using the JS api.

Native wrappers for those are coming in the next update.

Options object params

OptionDescriptionDefault ValueTypeValues
xThe x-coordinate of the initial enter position'150px'Stringany valid css unit declaration except for %: "10vh", "5ch", "200px"
yThe y-coordinate of the initial enter position'150px'Stringsame as X
angleThe angle of rotation in degrees90Numberthe angle for the curve, the smallest the angle is, the smallest the delta of the curve is
durationThe duration of the animation in milliseconds400Numberduration for the animation
initialScaleThe initial scale of the element0.3Numberset to 1 to skip scale animation entirely
initialOpacityThe initial opacity of the element0.1Numberset to 1 to skip opacity animation entirely
cubicBezierThe cubic bezier curve for easing'easeInOut'String or Number[]css cubic-bezier for the animation, possible values are "linear", "easeIn", "easeOut", "easeInOut", "materialEasing", or any valid css cubic-bezier declaration. 0.2, 1, 0.45, 0.9.

local development


To run locally, just clone this repo and run

npm i && npm run dev

0.1.0

6 months ago

0.0.7

6 months ago

0.0.6

6 months ago

0.0.5

6 months ago

0.0.4

6 months ago

0.0.1

6 months ago