Motion elements
With Framer Motion, you can animate any HTML or SVG element. You turn an element into a motion element by adding motion
before it (<motion.p>
, <motion.h1>
, <motion.div>
, etc.).
The motion
object you import contains components for every possible HTML and SVG element. So you’ll often use <motion.div>
… to animate a <div>
, but there’s also: <motion.h1>
, <motion.svg>
, <motion.path>
, etc.
The <motion>
component
These motion elements (actually components) are all inside the motion
component you import from Framer Motion.
import { motion } from "framer-motion"
The Framer Motion library also contains:
- some extra components, like
<AnimatePresence>
and<LayoutGroup>
, - utilities, like
useCycle()
anduseAnimate()
, - and hooks you can use with Motion values, like
useMotionValue()
anduseTransform()
.
import { motion, AnimatePresence, useCycle, useTransform } from "framer-motion"
Installation
As mentioned in the Framer Motion docs and on its NPM page, you add Framer Motion to a React project by typing:
npm install framer-motion
And then you can import motion
and animate, well, everything.
import { motion } from "framer-motion"