UI Library
Minimal footer
One row: copyright on the left, a short link set on the right, stacking and centring on phones. What a small product or a docs site actually needs instead of a four-column wall.
Navigationfooterminimalsingle-row
Preview
apps/site/blocks/components/FooterMinimal.tsx
export function FooterMinimal({
brand = 'Acme',
links = [
{ label: 'Privacy', href: '#' },
{ label: 'Terms', href: '#' },
{ label: 'Contact', href: '#' },
],
}: {
brand?: string;
links?: { label: string; href: string }[];
}) {
const year = new Date().getFullYear();
return (
<footer className="border-t border-border/60 bg-background">
<div className="mx-auto flex max-w-6xl flex-col items-center gap-4 px-4 py-6 text-sm text-muted-foreground sm:flex-row sm:justify-between sm:px-6">
<div>
© {year} {brand}
</div>
<nav aria-label="Footer" className="flex items-center gap-5">
{links.map((link) => (
<a key={link.label} href={link.href} className="transition-colors hover:text-foreground">
{link.label}
</a>
))}
</nav>
</div>
</footer>
);
}
Dependencies
None. This block is self-contained — plain React and Tailwind utility classes. Paste the file and it renders.
Colours come from CSS variables (--background, --primary, --border) using the shadcn/ui token names, so the block adopts your palette rather than importing ours.