beAnalytic's picture
feat: sync main with feature/superbet-live-inplay
16c19b8 verified
Raw
History Blame Contribute Delete
1.35 kB
import type { Transition, Variants } from "framer-motion";
export const springSnappy: Transition = {
type: "spring",
stiffness: 420,
damping: 32,
mass: 0.8,
};
export const springSoft: Transition = {
type: "spring",
stiffness: 260,
damping: 28,
};
export const easeOutExpo = [0.22, 1, 0.36, 1] as const;
export const pageVariants: Variants = {
initial: { opacity: 0, y: 16, filter: "blur(6px)" },
animate: {
opacity: 1,
y: 0,
filter: "blur(0px)",
transition: { duration: 0.38, ease: easeOutExpo },
},
exit: {
opacity: 0,
y: -10,
filter: "blur(4px)",
transition: { duration: 0.22, ease: easeOutExpo },
},
};
export const pageVariantsReduced: Variants = {
initial: { opacity: 0 },
animate: { opacity: 1, transition: { duration: 0.15 } },
exit: { opacity: 0, transition: { duration: 0.1 } },
};
export const staggerContainerVariants: Variants = {
hidden: {},
visible: { transition: { staggerChildren: 0.06, delayChildren: 0.04 } },
};
export const staggerItemVariants: Variants = {
hidden: { opacity: 0, y: 20, scale: 0.98 },
visible: {
opacity: 1,
y: 0,
scale: 1,
transition: springSoft,
},
};
export const fadeUpVariants: Variants = {
hidden: { opacity: 0, y: 12 },
visible: { opacity: 1, y: 0, transition: { duration: 0.35, ease: easeOutExpo } },
};