Animations
Explore hover animations and 3D effects for components. Each animation includes interactive previews and ready-to-use code examples that you can copy and adapt for your needs.
Professional Animations
Subtle, business-appropriate animations that enhance user experience without being distracting.
Lift Effect
ProfessionalSubtle upward movement on hover
import { motion } from "framer-motion";
import { professionalVariants } from "@/utils/animations";
<motion.div
variants={professionalVariants}
initial="rest"
whileHover="hover"
animate="rest"
>
<Card padding={400} cornerRadius={4}>
{/* Your content */}
</Card>
</motion.div>Shadow Depth
ProfessionalDynamic shadow that increases on hover
import { motion } from "framer-motion";
import { professionalShadowVariants } from "@/utils/animations";
<motion.div
variants={professionalShadowVariants}
initial="rest"
whileHover="hover"
animate="rest"
>
<Card padding={400} cornerRadius={4}>
{/* Your content */}
</Card>
</motion.div>Border Glow
ProfessionalBorder color transition on hover
import { motion, useMotionValue, useSpring } from "framer-motion";
import { Card } from "beacon-ui";
const borderColor = useMotionValue("var(--border-strong-200)");
const animatedBorderColor = useSpring(borderColor, {
stiffness: 300,
damping: 30,
});
<motion.div
onHoverStart={() => borderColor.set("var(--border-primary)")}
onHoverEnd={() => borderColor.set("var(--border-strong-200)")}
style={{ width: "300px" }}
>
<Card
padding={400}
cornerRadius={4}
showBorder={false}
style={{
height: "200px",
border: "var(--border-width-25) solid",
borderColor: animatedBorderColor,
}}
>
{/* Your content */}
</Card>
</motion.div>Smooth Scale
ProfessionalSubtle scaling on hover
import { motion } from "framer-motion";
import { professionalSmoothScaleVariants } from "@/utils/animations";
<motion.div
variants={professionalSmoothScaleVariants}
initial="rest"
whileHover="hover"
animate="rest"
>
<Card padding={400} cornerRadius={4}>
{/* Your content */}
</Card>
</motion.div>Playful Animations
Fun, energetic animations that add personality and delight to interactions.
Bounce Effect
PlayfulBouncy rotation animation on hover
import { motion } from "framer-motion";
import { playfulBounceVariants } from "@/utils/animations";
<motion.div
variants={playfulBounceVariants}
initial="rest"
whileHover="hover"
animate="rest"
>
<Button color="primary" variant="filled">
Bounce Button
</Button>
</motion.div>Elastic Scale
PlayfulSpring-based elastic scaling
import { motion } from "framer-motion";
import { playfulElasticVariants } from "@/utils/animations";
<motion.div
variants={playfulElasticVariants}
initial="rest"
whileHover="hover"
animate="rest"
>
<Card padding={400} cornerRadius={4}>
{/* Your content */}
</Card>
</motion.div>Jelly
PlayfulElastic jelly-like wobble effect
import { motion } from "framer-motion";
import { playfulJellyVariants } from "@/utils/animations";
<motion.div
variants={playfulJellyVariants}
initial="rest"
whileHover="hover"
animate="rest"
>
<Card padding={400} cornerRadius={4}>
{/* Your content */}
</Card>
</motion.div>Pop
PlayfulQuick spring-based pop effect
import { motion } from "framer-motion";
import { playfulPopVariants } from "@/utils/animations";
<motion.div
variants={playfulPopVariants}
initial="rest"
whileHover="hover"
animate="rest"
>
<Card padding={400} cornerRadius={4}>
{/* Your content */}
</Card>
</motion.div>Minimal Animations
Very subtle micro-interactions that provide feedback without drawing attention.
Fade Effect
MinimalSubtle opacity change
import { motion } from "framer-motion";
import { minimalFadeVariants } from "@/utils/animations";
<motion.div
variants={minimalFadeVariants}
initial="rest"
whileHover="hover"
animate="rest"
>
<Card padding={400} cornerRadius={4}>
{/* Your content */}
</Card>
</motion.div>Subtle Shift
MinimalMinimal horizontal movement
import { motion } from "framer-motion";
import { minimalShiftVariants } from "@/utils/animations";
<motion.div
variants={minimalShiftVariants}
initial="rest"
whileHover="hover"
animate="rest"
>
<Card padding={400} cornerRadius={4}>
{/* Your content */}
</Card>
</motion.div>Soft Glow
MinimalSubtle glow effect on hover
import { motion } from "framer-motion";
import { minimalSoftGlowVariants } from "@/utils/animations";
<motion.div
variants={minimalSoftGlowVariants}
initial="rest"
whileHover="hover"
animate="rest"
>
<Card padding={400} cornerRadius={4}>
{/* Your content */}
</Card>
</motion.div>Border Fade
MinimalBorder opacity transition
import { motion } from "framer-motion";
import { minimalBorderFadeVariants } from "@/utils/animations";
<motion.div
variants={minimalBorderFadeVariants}
initial="rest"
whileHover="hover"
animate="rest"
style={{
borderWidth: "var(--border-width-25)",
borderStyle: "solid",
borderRadius: "var(--corner-radius-400)",
}}
>
<Card padding={400} cornerRadius={4} showBorder={false}>
{/* Your content */}
</Card>
</motion.div>3D-Focused Animations
Advanced 3D transforms and perspective effects that create depth and dimension.
3D Tilt Card
3D-FocusedCard that tilts based on mouse position
import { Card3D } from "@/components/animations/Card3D";
<Card3D intensity={15} perspective={1000} scale={1.05}>
{/* Your content */}
</Card3D>Tilt Container
3D-FocusedAlternative tilt effect with different algorithm
import { TiltContainer } from "@/components/animations/TiltContainer";
<TiltContainer maxTilt={10} perspective={1000} scale={1.02}>
{/* Your content */}
</TiltContainer>Parallax Hover
3D-FocusedParallax effect with depth on hover
import { ParallaxHover } from "@/components/animations/ParallaxHover";
<ParallaxHover>
{/* Your content */}
</ParallaxHover>Depth Glow
3D-Focused3D depth with glowing shadow effect
import { DepthGlow } from "@/components/animations/DepthGlow";
<DepthGlow>
{/* Your content */}
</DepthGlow>