React - Simple Animations
Overview
Estimated time: 15–25 minutes
Add micro-interactions using CSS transitions and keyframes for mounting/unmounting and hover effects.
Try it: Fade/slide toggle
View source
function Box(){
const [open, setOpen] = React.useState(false);
return (
<div>
<button onClick={() => setOpen(o => !o)}>{open? 'Hide' : 'Show'}</button>
<div className={open? 'panel open' : 'panel'} style={{marginTop:8}}>
<p>Animated content</p>
</div>
</div>
);
}
ReactDOM.createRoot(document.getElementById('try-anim')).render(<Box />);
Syntax primer
- Toggle CSS classes to drive transitions.
- Use keyframes for attention-grabbing effects like a brief hover bounce.
Common pitfalls
- Avoid animating expensive properties (layout-triggering); prefer transform/opacity.
Exercises
- Animate list items entering/leaving with staggered delays.