UNPKG

svelte-motion

Version:

Svelte animation library based on the React library framer-motion.

61 lines (57 loc) 1.59 kB
/** based on framer-motion@4.0.3, Copyright (c) 2018 Framer B.V. */ import { isKeyframesTarget } from './is-keyframes-target.js'; var underDampedSpring = function () { return ({ type: "spring", stiffness: 500, damping: 25, restDelta: 0.5, restSpeed: 10, }); }; var criticallyDampedSpring = function (to) { return ({ type: "spring", stiffness: 550, damping: to === 0 ? 2 * Math.sqrt(550) : 30, restDelta: 0.01, restSpeed: 10, }); }; var linearTween = function () { return ({ type: "keyframes", ease: "linear", duration: 0.3, }); }; var keyframes = function (values) { return ({ type: "keyframes", duration: 0.8, values: values, }); }; var defaultTransitions = { x: underDampedSpring, y: underDampedSpring, z: underDampedSpring, rotate: underDampedSpring, rotateX: underDampedSpring, rotateY: underDampedSpring, rotateZ: underDampedSpring, scaleX: criticallyDampedSpring, scaleY: criticallyDampedSpring, scale: criticallyDampedSpring, opacity: linearTween, backgroundColor: linearTween, color: linearTween, default: criticallyDampedSpring, }; var getDefaultTransition = function (valueKey, to) { var transitionFactory; if (isKeyframesTarget(to)) { transitionFactory = keyframes; } else { transitionFactory = defaultTransitions[valueKey] || defaultTransitions.default; } return Object.assign({ to: to }, transitionFactory(to)); }; export { criticallyDampedSpring, getDefaultTransition, linearTween, underDampedSpring };