Animation
Motion guidelines and animation patterns using CSS transitions and Framer Motion.
CSS Transitions
transition-colorsColor changes onlytransition-opacityFade effectstransition-transformScale and translatetransition-allMultiple propertiesduration-200Quick (default)duration-300Standardduration-500Slow (rare)Hover Effects
Card Hover
Shadow on hover
Scale Effect
tsx
// Card hover shadow
className="transition-all hover:border-border hover:shadow-lg"
// Button with arrow translate
className="group"
<ArrowRight className="transition-transform group-hover:translate-x-0.5" />
// Scale on hover
className="transition-transform hover:scale-105"Framer Motion
Fade In
Content
Slide Up
Content
tsx
import { motion } from "framer-motion";
// Fade in
<motion.div
initial={{ opacity: 0 }}
animate={{ opacity: 1 }}
transition={{ duration: 0.3 }}
>
{content}
</motion.div>
// Slide up
<motion.div
initial={{ opacity: 0, y: 20 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.3 }}
>
{content}
</motion.div>Staggered Children
Animation Guidelines
- •Keep durations short: 0.2s to 0.4s maximum
- •Use ease-out for entrances, ease-in for exits
- •Prefer opacity + transform over layout shifts
- •Respect prefers-reduced-motion for accessibility

