Framer Motion is a production-ready animation library. By using a custom <App> along with Motion's AnimatePresence component, transitions between Next pages becomes simple and declarative.
When using Next's <Link> component, you will likely want to disable the default scroll behavior for a more seamless navigation experience. Scrolling to the top of a page can be re-enabled by adding a onExitComplete callback on the AnimatePresence component.
Deploy the example using Vercel or preview live with StackBlitz
Execute create-next-app with npm, Yarn, or pnpm to bootstrap the example:
npx create-next-app --example with-framer-motion with-framer-motion-app
# or
yarn create next-app --example with-framer-motion with-framer-motion-app
# or
pnpm create next-app --example with-framer-motion with-framer-motion-appDeploy it to the cloud with Vercel (Documentation).