Footer 3d

The Footer is a reusable and dynamic component built with React, Tailwind CSS, and React Three Fiber. It includes a customizable 3D background model (default animated Cube) and flexible content areas for links, socials, and credits.

✨ Features

  • Dynamic 3D Model — Uses a default shader-based cube but allows injection of any custom Three.js / R3F model via model prop.
  • Props-driven API — Easily pass socials, navigation links, email, location, and credits.
  • Responsive Layout — Works across mobile, tablet, and desktop.
  • Parallax Animation — Smooth scroll-based entrance animation for central text.
  • Default Values — Drop-in ready without extra configuration.

⚠️ Disclaimer

This component requires the following dependencies:

npm install three @react-three/fiber @react-three/drei framer-motion
Live Preview
Open in
GSAP
Framer Motion

🔧 Props

PropTypeDefaultDescription
emailstringfingui$in@gmail.comFooter email text.
locationstringIndia, KolkataLocation shown under email.
socials{ name: string; href: string }[]LinkedIn, GithubSocial links with icon.
navLeft{ name: string; href: string }[]Contact, Blogs, CollaborationLeft navigation links.
navRight{ name: string; href: string }[]Docs, Theme, ComponentsRight navigation links.
languagestringENLanguage toggle text.
creditsstring`© In_Cognita - 2025Pierre Patrault & Aristide Benoist`
legal{ name: string; href: string }[]Legal & Terms, PrivacyLegal and policy links.
modelReact.ReactNodeDefaultCubeCustom 3D model component.

Default Usage

import {Footer} from "@/components/ui/footer"


export default function Page() {
return (
<div>
{/* Your page content */}
<Footer />
</div>
)
}

With Custom Props

<Footer
email="support@example.com"
location="Tokyo, Japan"
socials=[
{ name: "Twitter", href: "https://twitter.com" },
{ name: "Dribbble", href: "https://dribbble.com" },
]
navLeft=[
{ name: "About", href: "/about" },
{ name: "Careers", href: "/careers" },
]
navRight=[
{ name: "Docs", href: "/docs" },
{ name: "Changelog", href: "/changelog" },
]
credits="© YourCompany - 2025 | Built with ❤️"
legal=[
{ name: "Privacy", href: "/privacy" },
{ name: "Cookies", href: "/cookies" },
]
/>

With Custom 3D Model

import { Sphere } from "@react-three/drei"


<Footer
model={
<mesh>
<Sphere args={[2, 64, 64]}>
<meshStandardMaterial color="hotpink" wireframe />
</Sphere>
</mesh>
}
/>