/** * Animation Configuration * Centralized configuration for all animations in the portfolio */ export const animationConfig = { // Easing curves easings: { easeOut: "cubic-bezier(0.16, 1, 0.3, 1)", easeIn: "cubic-bezier(0.4, 0, 1, 1)", spring: { default: { stiffness: 200, damping: 20 }, hover: { stiffness: 260, damping: 20 }, magnetic: { stiffness: 150, damping: 15 }, gentle: { stiffness: 60, damping: 20 }, }, }, // Durations (in seconds) durations: { instant: 0.15, fast: 0.3, normal: 0.6, slow: 0.9, verySlow: 1.2, }, // Scroll trigger scrollTrigger: { threshold: 0.2, once: true, margin: "0px", }, // Stagger stagger: { default: 0.08, fast: 0.04, slow: 0.12, reducedMotion: 0.03, }, // Parallax parallax: { speed: 0.5, // 50% mais lento que scroll normal maxDistance: 100, // pixels }, // Magnetic effect magnetic: { radius: 80, // pixels strength: 12, // max movement in pixels }, // Cursor cursor: { size: 40, expandedSize: 60, followDelay: 0.1, }, // Reduced motion overrides reducedMotion: { duration: 0.15, stagger: 0.03, disableParallax: true, disableMagnetic: true, disableCursor: true, }, } as const;