Clean, modern templates. Copy and paste into your apps. Works with all React frameworks. Open Source. Free forever.
import Link from "next/link"
import { Separator } from "@/components/ui/separator"
const footerLinks = {
product: [
{ name: "Features", href: "#" },
{ name: "Pricing", href: "#" },
{ name: "Templates", href: "#" },
{ name: "Integrations", href: "#" },
],
company: [
{ name: "About", href: "#" },
{ name: "Blog", href: "#" },
{ name: "Careers", href: "#" },
{ name: "Contact", href: "#" },
],
resources: [
{ name: "Documentation", href: "#" },
{ name: "Help Center", href: "#" },
{ name: "Community", href: "#" },
{ name: "Status", href: "#" },
],
legal: [
{ name: "Privacy", href: "#" },
{ name: "Terms", href: "#" },
{ name: "Cookie Policy", href: "#" },
],
}
export default function FooterTemplate() {
return (
<footer className="border-t bg-muted/40">
<div className="mx-auto max-w-7xl px-6 py-12 lg:px-8">
<div className="grid grid-cols-2 gap-8 md:grid-cols-4">
<div>
<h3 className="text-sm font-semibold">Product</h3>
<ul className="mt-4 space-y-3">
{footerLinks.product.map((link) => (
<li key={link.name}>
<Link
href={link.href}
className="text-sm text-muted-foreground hover:text-foreground"
>
{link.name}
</Link>
</li>
))}
</ul>
</div>
<div>
<h3 className="text-sm font-semibold">Company</h3>
<ul className="mt-4 space-y-3">
{footerLinks.company.map((link) => (
<li key={link.name}>
<Link
href={link.href}
className="text-sm text-muted-foreground hover:text-foreground"
>
{link.name}
</Link>
</li>
))}
</ul>
</div>
<div>
<h3 className="text-sm font-semibold">Resources</h3>
<ul className="mt-4 space-y-3">
{footerLinks.resources.map((link) => (
<li key={link.name}>
<Link
href={link.href}
className="text-sm text-muted-foreground hover:text-foreground"
>
{link.name}
</Link>
</li>
))}
</ul>
</div>
<div>
<h3 className="text-sm font-semibold">Legal</h3>
<ul className="mt-4 space-y-3">
{footerLinks.legal.map((link) => (
<li key={link.name}>
<Link
href={link.href}
className="text-sm text-muted-foreground hover:text-foreground"
>
{link.name}
</Link>
</li>
))}
</ul>
</div>
</div>
<Separator className="my-8" />
<div className="flex flex-col items-center justify-between gap-4 md:flex-row">
<Link href="#" className="text-xl font-bold">
Logo
</Link>
<p className="text-sm text-muted-foreground">
© {new Date().getFullYear()} Company, Inc. All rights reserved.
</p>
</div>
</div>
</footer>
)
}


import Link from "next/link"
import { Button } from "@/components/ui/button"
import { Input } from "@/components/ui/input"
import { Separator } from "@/components/ui/separator"
import {
IconBrandGithub,
IconBrandLinkedin,
IconBrandTwitter,
IconVideo,
} from "@tabler/icons-react"
const footerLinks = {
product: [
{ name: "Features", href: "#" },
{ name: "Pricing", href: "#" },
{ name: "Templates", href: "#" },
],
company: [
{ name: "About", href: "#" },
{ name: "Blog", href: "#" },
{ name: "Careers", href: "#" },
],
support: [
{ name: "Documentation", href: "#" },
{ name: "Help Center", href: "#" },
{ name: "Contact", href: "#" },
],
}
const socialLinks = [
{ name: "Twitter", href: "#", icon: IconBrandTwitter },
{ name: "GitHub", href: "#", icon: IconBrandGithub },
{ name: "LinkedIn", href: "#", icon: IconBrandLinkedin },
{ name: "YouTube", href: "#", icon: IconVideo },
]
export default function FooterTemplate() {
return (
<footer className="border-t bg-background">
<div className="mx-auto max-w-7xl px-6 py-12 lg:px-8">
<div className="grid gap-8 lg:grid-cols-2">
<div className="space-y-6">
<Link href="#" className="text-2xl font-bold">
Logo
</Link>
<p className="max-w-md text-sm text-muted-foreground">
Subscribe to our newsletter for updates, tips, and exclusive content
delivered straight to your inbox.
</p>
<div className="flex max-w-md gap-2">
<Input
type="email"
placeholder="Enter your email"
className="flex-1"
/>
<Button>Subscribe</Button>
</div>
</div>
<div className="grid grid-cols-3 gap-8">
<div>
<h3 className="text-sm font-semibold">Product</h3>
<ul className="mt-4 space-y-3">
{footerLinks.product.map((link) => (
<li key={link.name}>
<Link
href={link.href}
className="text-sm text-muted-foreground hover:text-foreground"
>
{link.name}
</Link>
</li>
))}
</ul>
</div>
<div>
<h3 className="text-sm font-semibold">Company</h3>
<ul className="mt-4 space-y-3">
{footerLinks.company.map((link) => (
<li key={link.name}>
<Link
href={link.href}
className="text-sm text-muted-foreground hover:text-foreground"
>
{link.name}
</Link>
</li>
))}
</ul>
</div>
<div>
<h3 className="text-sm font-semibold">Support</h3>
<ul className="mt-4 space-y-3">
{footerLinks.support.map((link) => (
<li key={link.name}>
<Link
href={link.href}
className="text-sm text-muted-foreground hover:text-foreground"
>
{link.name}
</Link>
</li>
))}
</ul>
</div>
</div>
</div>
<Separator className="my-8" />
<div className="flex flex-col items-center justify-between gap-4 md:flex-row">
<p className="text-sm text-muted-foreground">
© {new Date().getFullYear()} Company, Inc. All rights reserved.
</p>
<div className="flex gap-4">
{socialLinks.map((social) => (
<Link
key={social.name}
href={social.href}
className="text-muted-foreground hover:text-foreground"
>
<social.icon className="h-5 w-5" />
<span className="sr-only">{social.name}</span>
</Link>
))}
</div>
</div>
</div>
</footer>
)
}


import { Footer } from "@/components/footer-03"
import { dictionary } from "@/registry/bases/base/blocks/footer-03/footer-03-dictionary"
export default async function Page({
params,
}: {
params?: Promise<{ lang?: string }>
}) {
const { lang } = (await params) ?? {}
const locale = lang === "ar" ? "ar" : "en"
return (
<div className="flex min-h-svh flex-col justify-end">
<Footer dictionary={dictionary[locale]} lang={locale} />
</div>
)
}


import { Footer } from "@/components/footer-04"
import { dictionary } from "@/registry/bases/base/blocks/footer-04/footer-04-dictionary"
export default async function Page({
params,
}: {
params?: Promise<{ lang?: string }>
}) {
const { lang } = (await params) ?? {}
const locale = lang === "ar" ? "ar" : "en"
return (
<div className="flex min-h-svh flex-col justify-end">
<Footer dictionary={dictionary[locale]} lang={locale} />
</div>
)
}


import { Footer } from "@/components/footer-05"
import { dictionary } from "@/registry/bases/base/blocks/footer-05/footer-05-dictionary"
export default async function Page({
params,
}: {
params?: Promise<{ lang?: string }>
}) {
const { lang } = (await params) ?? {}
const locale = lang === "ar" ? "ar" : "en"
return (
<div className="flex min-h-svh flex-col justify-end">
<Footer dictionary={dictionary[locale]} lang={locale} />
</div>
)
}

