24 lines
538 B
TypeScript
24 lines
538 B
TypeScript
"use client"
|
|
|
|
import { motion } from "framer-motion"
|
|
import type { ReactNode } from "react"
|
|
import { cn } from "@/lib/utils"
|
|
|
|
interface PageRevealProps {
|
|
className?: string
|
|
children: ReactNode
|
|
}
|
|
|
|
const PageReveal = ({ className, children }: PageRevealProps) => (
|
|
<motion.main
|
|
className={cn(className)}
|
|
initial={{ opacity: 0, y: 24 }}
|
|
animate={{ opacity: 1, y: 0 }}
|
|
transition={{ duration: 0.7, ease: [0.16, 1, 0.3, 1] }}
|
|
>
|
|
{children}
|
|
</motion.main>
|
|
)
|
|
|
|
export default PageReveal
|