1234npx create-next-app@latest my-site --typescript --app cd my-site npm install unframer react@19 react-dom@19 npx unframer {projectId} --outDir ./src/framer
12345678910// src/app/layout.tsx import '../framer/styles.css' export default function RootLayout({ children }: { children: React.ReactNode }) { return ( <html lang="en"> <body>{children}</body> </html> ) }
'use client' or wrap the Framer imports in a client component:12345678910111213141516// src/app/page.tsx 'use client' import Header from '../framer/header' import Hero from '../framer/hero' import Footer from '../framer/footer' export default function Home() { return ( <div> <Header /> <Hero.Responsive /> <Footer /> </div> ) }
'use client' directive is needed because they use React hooks internally.UnframerProvider in your layout so Framer's internal links use Next.js routing:123456789101112131415// src/app/providers.tsx 'use client' import { useRouter } from 'next/navigation' import { UnframerProvider } from 'unframer' export function Providers({ children }: { children: React.ReactNode }) { const router = useRouter() return ( <UnframerProvider navigate={router.push}> {children} </UnframerProvider> ) }
12345678910111213// src/app/layout.tsx import '../framer/styles.css' import { Providers } from './providers' export default function RootLayout({ children }: { children: React.ReactNode }) { return ( <html lang="en"> <body> <Providers>{children}</Providers> </body> </html> ) }
dark class to the <html> element. If you use next-themes:1234567891011121314// src/app/layout.tsx import { ThemeProvider } from 'next-themes' export default function RootLayout({ children }: { children: React.ReactNode }) { return ( <html lang="en" suppressHydrationWarning> <body> <ThemeProvider attribute="class"> <Providers>{children}</Providers> </ThemeProvider> </body> </html> ) }
dark class activates all --unframer-* CSS variable dark values automatically.next.config.ts:12345// next.config.ts const nextConfig = { reactStrictMode: false, } export default nextConfig
12345678src/app/ ├── page.tsx # Home (/) ├── about/ │ └── page.tsx # About (/about) ├── pricing/ │ └── page.tsx # Pricing (/pricing) ├── providers.tsx └── layout.tsx