Glin UI
Block / Organismbeta

Footer Block

Site footer with link groups, brand and newsletter slots, social icons, legal row and theme toggle slot.

Edit on GitHub

Installation

Install from
pnpm dlx @glinui/cli@latest add footer-block

Prefer the package?

Usage

Links render plain anchors; target blank links get `noopener noreferrer` automatically. Columns use logical layout, so RTL flips the order.

Variants

Minimal row and big wordmark.

<FooterBlock layout="minimal" groups={groups} />
<FooterBlock layout="big-wordmark" wordmark="Acme" />

States

Newsletter and social slots are optional.

<FooterBlock groups={groups} />

In a layout

End of a marketing page.

Trusted by builders

Placeholder quote: the setup took an afternoon and the team stopped asking where the buttons came from.

APAlex PlaceholderEngineer, Acme

Placeholder quote: accessible by default, which saved us a long audit.

SESam ExampleDesigner, Nimbus

Placeholder quote: the tokens made dark mode a one line change.

JSJo SampleFounder, Orbit

FAQ

Start today

<FooterBlock groups={groups} />

Accessibility

  • `footer` landmark.
  • Each group is a `nav` labelled by its title.
  • Icon only social links require an accessible label.
  • Newsletter input has a screen reader label.

Reduced Motion

No animation, only color transitions that are disabled under reduced motion.

Affected properties

link color transition

API Reference

PropTypeRequiredDefaultDescription
layoutFooterBlockLayoutNocolumnsFooter layout.
variantBlockVariantNoambient (glinr)Shell look. `plain` under the minimal style, `glass` is opt-in and needs a backdrop.
brand / newsletter / social / themeToggleslots--Brand node, newsletter config, icon links (label required) and a toggle slot.
groupsFooterLinkGroup[]No[]Titled link lists, each its own labelled nav.
copyright / legalReactNode / FooterLink[]--Legal row.
wordmarkstringNo-Oversized text for big-wordmark.
brandReact.ReactNodeNo-Logo, name and tagline.
copyrightReact.ReactNodeNo-Copyright line.
legalFooterLink[]No-Legal links such as Privacy and Terms.
newsletterFooterNewsletterNo-Auto-generated from TypeScript source.
socialFooterSocial[]No-Auto-generated from TypeScript source.
themeToggleReact.ReactNodeNo-Slot for a theme toggle.

Source

Import directly from the package or browse the source on GitHub. Click any file to view it.

Import

import { FooterBlock } from "@glinui/ui"

Dependencies

@glinui/ui

Generated API Snapshot

Beta

Auto-extracted from TypeScript source in packages/ui/src/components/footer-block.tsx. This section is in beta and may lag behind hand-curated docs. Regenerate with pnpm --filter @glinui/docs api:generate.

Generated: 2026-10-08T01:41:21.546Z · Full index: /docs/api-metadata

Primary Props Type

FooterBlockProps

FooterBlockProps

PropTypeRequiredDefaultDescription
brandReact.ReactNodeNo-Logo, name and tagline.
copyrightReact.ReactNodeNo-Copyright line.
groupsFooterLinkGroup[]No[]-
layoutFooterBlockLayoutNo"columns"-
legalFooterLink[]No-Legal links such as Privacy and Terms.
newsletterFooterNewsletterNo--
socialFooterSocial[]No--
themeToggleReact.ReactNodeNo-Slot for a theme toggle.
variantBlockVariantNo-Surface look. Omit to follow the ambient style. `glass` is opt-in and needs a backdrop.
wordmarkstringNo-Oversized text for the `big-wordmark` layout.