i

Footer

Navigating · researched

The bottom of a page, offering links, contact details and legal information.

organism · contains link

Each block is the real component from that system’s own package, in an isolated frame. They are live: hover, focus and press them. Frames are drawn on white so systems compare on one ground, and a font a system licenses only for its own site (GOV.UK’s Transport) falls back to what the system itself specifies.

Ant Design

Layout.Footer subset native: yes antd 6.6.5
Variants
—
Sizes
—
States documented
—
Accessibility guidance
no

Renders a footer element; structural region of Layout only, no links or legal content supplied.

Carbon

absentCarbon does not ship this component. Nothing is drawn in its place.

Checked docs components list and both source directories. No page footer; only SideNavFooter (inside the side nav) and CardFooter exist.

GOV.UK

GOV.UK footer native: no govuk-frontend 6.5.1
Variants
Footer without links, Footer with links, Footer with secondary navigation, Footer with links and secondary navigation
Sizes
—
States documented
—
Accessibility guidance
no

Renders div-based markup with link lists and licence text; the page template supplies the <footer> element. Docs cover adding links and secondary navigation and the brand refresh.

2 corrected on re-read
  • builds_on_native: "partly" → "no" Macro root is <div class="govuk-footer">; <footer> element is supplied by template.njk
  • variants: null → ["Footer without links","Footer with links","Footer with secondary navigation","Footer with links and secondary navigation"] Docs headings

Material Web

absentMaterial Web does not ship this component. Nothing is drawn in its place.

Checked docs/components (20 component pages), the repo top-level dirs, labs/, labs/gb/components and the installed 2.5.0 package. Nothing footer-like in components or labs.

Primer

absentPrimer does not ship this component. Nothing is drawn in its place.

No footer component. PageLayout has a Footer region (layout slot) only. Checked: primer.style/product/components/ index, internal-components list, ui-patterns, packages/react/src tree (incl. deprecated/, experimental/, internal/).

Spectrum

absentSpectrum does not ship this component. Nothing is drawn in its place.

Checked the sitemap.xml component list, S2 exports, SWC trees and spectrum-css components for a page footer: none. S2/v3 Footer (Content.tsx) is a region slot inside Dialog, Card and similar, not a site footer. Index also lists none.

USWDS

Footer native: yes @uswds/uswds 3.14.0
Variants
big (usa-footer--big), medium (default), slim (usa-footer--slim)
Sizes
—
States documented
default
Accessibility guidance
yes

Agrees with index. Native footer element; big variant collapses link groups on mobile.

1 corrected on re-read
  • variants: ["big (usa-footer--big)","slim (usa-footer--slim)"] → ["big (usa-footer--big)","medium (default)","slim (usa-footer--slim)"] docs preview has Big, Medium, Slim footer; variants table lists big and slim

Platform facts

Native elementfooterSpec: footer for its nearest sectioning content ancestor or body. MDN: implicit role contentinfo when scoped to body, otherwise generic. Spec content model: flow content, no header or footer descendants. Spec: contact information for the author or editor belongs in an address element, possibly inside a footer.
Baseline—
APG patternlandmarks
ARIA role—
Shipped by3 of 7 systems

Anatomy

  1. author / copyright info optional — Spec footer: 'information about its section such as who wrote it, links to related documents, copyright data'.
  2. links to related documents optional — Same spec sentence.
  3. contact information (address element) optional — Spec: contact information for the author or editor of a section belongs in an address element, possibly inside a footer.

The seven states

default Static container.
hover n/a — Not interactive.
focus n/a — Not focusable; its links are.
active n/a — Not interactive.
disabled n/a — Not defined by APG or HTML.
error n/a — Not defined by APG or HTML.
loading n/a — Not defined by APG or HTML.

Every cell was read twice, the second time from raw sources by a separate pass. 3 of 35 fields changed on the second read — open any “corrected” note to see what it said before.