title says it all, im trying to run framer motion on server side componenets without the use client at top something like AOS
what i mean by like aos : layout.tsx
<html lang="en">
<body className={cairo.className}>
<AosProvider>
{children}
</AosProvider>
</body>
</html>
AosProvider:
'use client'
const AosProvider = ({ children }: { children: ReactNode }) => {
useEffect(() => {
AOS.init({
duration: 200,
easing: 'ease-in-out-cubic',
once: true,
});
}, []);
return <>{children}</>;
}
export default AosProvider
and how i use it in server side componenets:
by adding these attributes: data-aos="fade-down" data-aos-duration="200" data-aos-delay="50"
<div data-aos="fade-down" data-aos-duration="200" data-aos-delay="50"></div>
how it is in framer motion:
const MotionProvider = ({ children }: PropsWithChildren) => {
return (
<>
<AnimatePresence>
{children}
</AnimatePresence>
</>
)
}
export default MotionProvider
layout:
<MotionProvider>
{children}
</MotionProvider>
to use in componenet:
'use client' <--- trying to eliminate the usage of use client
import React from 'react'
import { motion } from 'framer-motion'
const Testing = () => {
console.log('Server')
return (
<motion.div
initial={{ opacity: 0, y: 15 }}
animate={{ opacity: 1, y: 0 }}
transition={{ delay: 0.25 }}
>
<div>Testing</div>
</motion.div>
)
}
export default Testing