Footer
multi-column x newsletterA full site footer — brand + newsletter signup, three link columns, and a legal + social bottom bar.
footernewsletterlinks
Join the newsletter for new blocks and releases.
Subscribe
Product
Company
Legal
Code
relume-footer.tsx
const columns = [
{ title: "Product", links: ["Features", "Pricing", "Blocks", "Changelog"] },
{ title: "Company", links: ["About", "Careers", "Contact", "Blog"] },
{ title: "Legal", links: ["Privacy", "Terms", "Cookies"] },
];
export function Footer() {
return (
<footer className="mx-auto max-w-6xl px-6 py-16">
<div className="grid grid-cols-1 gap-12 pb-12 lg:grid-cols-[1fr_1.2fr]">
<div className="max-w-md">
<p className="text-xl font-semibold tracking-tight">Website OS</p>
<p className="mt-3 text-muted-foreground">Join the newsletter for new blocks and releases.</p>
<form className="mt-4 flex gap-3">
<input
type="email"
placeholder="Enter your email"
className="w-full rounded-full border border-border bg-transparent px-4 py-2.5"
/>
<button className="shrink-0 rounded-full bg-foreground px-5 text-background">Subscribe</button>
</form>
</div>
<div className="grid grid-cols-3 gap-8">
{columns.map((col) => (
<div key={col.title}>
<p className="mb-4 font-semibold">{col.title}</p>
<ul className="space-y-3 text-sm text-muted-foreground">
{col.links.map((l) => (
<li key={l}><a href="#">{l}</a></li>
))}
</ul>
</div>
))}
</div>
</div>
<div className="flex flex-col-reverse items-start justify-between gap-4 border-t border-border pt-8 text-sm text-muted-foreground md:flex-row md:items-center">
<p>© 2026 Website OS. All rights reserved.</p>
<div className="flex gap-6">
<a href="#">Privacy</a>
<a href="#">Terms</a>
<a href="#">Cookies</a>
</div>
</div>
</footer>
);
}Adapted from the Relume Library — swap the placeholder copy and it themes itself from your project tokens.
Use it in another build
Drop this section into a page, keep your project tokens, and it themes itself. Or tell Claude Code: “add the Footer section and fill it with my copy.”


