Framer Motion Client Boundaries in the Next.js App Router: Incremental Migration Without Downtime
Framer Motion's animation primitives depend on browser APIs, so inside the Next.js App Router they must sit behind a client boundary marked with use client . A small React application can therefore adopt motion.* components piece by piece while unconverted routes keep their existing CSS transitions. The interoperability question is what happens at the seam.