Brand column, three link columns and a newsletter panel.
Install with the CLI, or add the packages and paste the source below.
Add Footer to your app with its source-owned dependencies.
npx cronus-ui add footer
Install the Cronus UI packages, then paste the block below.
Copy the source for Columns with newsletter. Every class is a semantic token, so it re-themes with your app.
"use client";import { Button, Input, Label, Separator } from "@cronus-ui/ui";import { Hexagon, Send } from "lucide-react";import type { SVGProps } from "react";function GithubGlyph(props: SVGProps<SVGSVGElement>) {return (<svgxmlns="http://www.w3.org/2000/svg"width="24"height="24"viewBox="0 0 24 24"fill="none"stroke="currentColor"strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"aria-hidden="true"{...props}><path d="M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4" /><path d="M9 18c-4.51 2-5-2-7-2" /></svg>);}function LinkedinGlyph(props: SVGProps<SVGSVGElement>) {return (<svgxmlns="http://www.w3.org/2000/svg"width="24"height="24"viewBox="0 0 24 24"fill="none"stroke="currentColor"strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"aria-hidden="true"{...props}><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z" /><rect width="4" height="12" x="2" y="9" /><circle cx="4" cy="4" r="2" /></svg>);}function TwitterGlyph(props: SVGProps<SVGSVGElement>) {return (<svgxmlns="http://www.w3.org/2000/svg"width="24"height="24"viewBox="0 0 24 24"fill="none"stroke="currentColor"strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"aria-hidden="true"{...props}><path d="M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z" /></svg>);}/* @cronus:data footer-links */const FOOTER_COLUMNS = [{heading: "Product",links: [{ label: "Features", href: "#features" },{ label: "Pricing", href: "#pricing" },{ label: "Blocks", href: "#blocks" },{ label: "Changelog", href: "#changelog" },{ label: "Roadmap", href: "#roadmap" },],},{heading: "Company",links: [{ label: "About", href: "#about" },{ label: "Careers", href: "#careers" },{ label: "Customers", href: "#customers" },{ label: "Brand", href: "#brand" },{ label: "Contact", href: "#contact" },],},{heading: "Resources",links: [{ label: "Documentation", href: "#docs" },{ label: "Guides", href: "#guides" },{ label: "API reference", href: "#api" },{ label: "Community", href: "#community" },{ label: "Support", href: "#support" },],},];/* @cronus:data-end */export function FooterBlock() {return (<footer className="border-t border-border bg-surface-base px-6 py-16"><div className="mx-auto max-w-6xl"><div className="grid gap-12 lg:grid-cols-[1.5fr_repeat(3,1fr)]"><div className="max-w-xs"><div className="flex items-center gap-2.5"><span className="grid size-9 place-items-center rounded-xl bg-gradient-primary text-primary-foreground shadow-glow"><Hexagon aria-hidden="true" className="size-5" /></span><span className="font-display text-lg font-semibold text-fg">Cronus</span></div><p className="mt-4 text-sm leading-6 text-fg-secondary">The themeable component library and block registry for teams who ship polishedproducts fast.</p><div className="mt-5 flex items-center gap-1"><Button variant="ghost" size="icon-sm" aria-label="GitHub"><GithubGlyph aria-hidden="true" /></Button><Button variant="ghost" size="icon-sm" aria-label="Twitter"><TwitterGlyph aria-hidden="true" /></Button><Button variant="ghost" size="icon-sm" aria-label="LinkedIn"><LinkedinGlyph aria-hidden="true" /></Button></div></div>{FOOTER_COLUMNS.map((column) => (<div key={column.heading}><h3 className="text-sm font-medium text-fg">{column.heading}</h3><ul className="mt-4 flex flex-col gap-3">{column.links.map((link) => (<li key={link.label}><ahref={link.href}className="text-sm text-fg-secondary transition-colors hover:text-fg">{link.label}</a></li>))}</ul></div>))}</div><div className="mt-12 rounded-2xl border border-border bg-surface-raised p-6 sm:flex sm:items-center sm:justify-between sm:gap-8"><div><p className="font-display text-lg font-semibold text-fg">Stay in the loop</p><p className="mt-1 text-sm text-fg-secondary">Product updates and new blocks, a few times a month.</p></div><formclassName="mt-4 flex max-w-sm flex-col gap-3 sm:mt-0 sm:flex-row"onSubmit={(event) => event.preventDefault()}><div className="flex-1"><Label htmlFor="footer-email" className="sr-only">Email address</Label><Inputid="footer-email"type="email"requiredplaceholder="you@company.com"autoComplete="email"/></div><Button type="submit" variant="primary">Subscribe<Send aria-hidden="true" /></Button></form></div><Separator className="my-8" /><div className="flex flex-col items-center justify-between gap-4 sm:flex-row"><p className="text-sm text-fg-tertiary">© 2026 Cronus. All rights reserved.</p><div className="flex items-center gap-6"><ahref="#privacy"className="text-sm text-fg-secondary transition-colors hover:text-fg">Privacy</a><a href="#terms" className="text-sm text-fg-secondary transition-colors hover:text-fg">Terms</a><a href="#status" className="text-sm text-fg-secondary transition-colors hover:text-fg">Status</a></div></div></div></footer>);}