@airsurfer09/web-handsfree
Version:
A React package for integrating Convai's AI-powered voice assistants with LiveKit for real-time audio/video conversations
73 lines • 1.84 kB
JavaScript
// Framer Motion transition configurations for iOS-like animations
export const iosTransitions = {
// Fast and snappy transitions for buttons and small elements
snappy: {
type: "spring",
stiffness: 400,
damping: 30,
},
// Smooth fade with pop effect
fadePop: {
type: "spring",
stiffness: 300,
damping: 25,
},
// Layout morphing animations
layoutMorph: {
type: "spring",
stiffness: 200,
damping: 20,
},
// Modal slide from bottom
modalSlide: {
type: "spring",
stiffness: 260,
damping: 22,
},
// Smooth scale animation
scale: {
type: "spring",
stiffness: 350,
damping: 28,
},
// Slide animations
slide: {
type: "spring",
stiffness: 300,
damping: 30,
},
};
// Common animation variants
export const animationVariants = {
fadeIn: {
initial: { opacity: 0 },
animate: { opacity: 1 },
exit: { opacity: 0 },
},
slideUp: {
initial: { y: 20, opacity: 0 },
animate: { y: 0, opacity: 1 },
exit: { y: -20, opacity: 0 },
},
slideDown: {
initial: { y: -20, opacity: 0 },
animate: { y: 0, opacity: 1 },
exit: { y: 20, opacity: 0 },
},
scaleIn: {
initial: { scale: 0.8, opacity: 0 },
animate: { scale: 1, opacity: 1 },
exit: { scale: 0.8, opacity: 0 },
},
slideInFromRight: {
initial: { x: "100%", opacity: 0 },
animate: { x: 0, opacity: 1 },
exit: { x: "100%", opacity: 0 },
},
slideInFromLeft: {
initial: { x: "-100%", opacity: 0 },
animate: { x: 0, opacity: 1 },
exit: { x: "-100%", opacity: 0 },
},
};
//# sourceMappingURL=framerConfig.js.map