Footer minimal
A one row footer: a legal line on the left and a few small links on the right.
npx shadcn@latest add https://ui.goodtabs.co/r/footer-minimal.json
With the @goodtabs namespace in components.json: npx shadcn@latest add @goodtabs/footer-minimal
Copyright on the left, three links on the right.
Legal only
A single line with no links.
Usage
import { FooterMinimal } from "@/components/footer-minimal"
<FooterMinimal legal="2026 Northwind Ltd." links={[{ label: "Privacy", href: "/privacy" }]} />Props
| Prop | Type | Default | Description |
|---|---|---|---|
| legal | string | Copyright or one short line. | |
| links | { label: string; href: string }[] | A few small links, on the right. |
Source
footer-minimal/footer-minimal.tsx
import * as React from "react";
import { cn } from "@/lib/utils";
export type FooterMinimalLink = { label: string; href: string };
type FooterMinimalProps = Omit<React.ComponentProps<"footer">, "children"> & {
/** Copyright or one short line, on the left. */
legal: string;
/** A few small links, on the right. */
links?: FooterMinimalLink[];
};
/** A one row footer: a legal line on the left, a few links on the right. Wraps on a phone. */
export function FooterMinimal({ legal, links = [], className, ...props }: FooterMinimalProps) {
return (
<footer
data-slot="footer-minimal"
className={cn("w-full border-t text-xs text-muted-foreground", className)}
{...props}
>
<div className="mx-auto flex max-w-6xl flex-col gap-3 px-6 py-5 sm:flex-row sm:items-center sm:justify-between md:px-8">
<p className="m-0">{legal}</p>
{links.length > 0 && (
<nav aria-label="Footer">
<ul className="m-0 flex list-none flex-wrap items-center gap-x-4 gap-y-2 p-0">
{links.map((link) => (
<li key={`${link.href}-${link.label}`}>
<a
href={link.href}
className="rounded-sm transition-colors duration-100 ease-out outline-none hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring"
>
{link.label}
</a>
</li>
))}
</ul>
</nav>
)}
</div>
</footer>
);
}
For AI agents
Hand your agent this page, the markdown at /components/footer-minimal/prompt.md, or the Copy AI prompt button above.
When to use
- Apps and docs where the footer is only a formality
- Under a page that already has a closing CTA
When not to use
- When you need more than four links; use footer-columns
Agent notes
- Server component with plain anchors
- Stacks on a phone, one row from sm