Footer Directory

The closing directory of a site: numbered fine print, a breadcrumb, link columns and a legal line.

import { FooterDirectory } from '@brand-studio/ui';

export default function FooterDirectoryDemo() {
  return (
    <FooterDirectory
      notes={['Prices include tax. Kits ship with a strap and a body cap.', 'Service prices apply to cameras made after 2020.']}
      breadcrumbs={[{ label: 'Halden', href: '#home' }, { label: 'Cameras', href: '#cameras' }, { label: 'Halden R', href: '#r' }]}
      columns={[
        { title: 'Shop', links: [{ label: 'Cameras', href: '#cameras' }, { label: 'Lenses', href: '#lenses' }, { label: 'Film', href: '#film' }] },
        { title: 'Service', links: [{ label: 'Repairs', href: '#repairs' }, { label: 'Parts', href: '#parts' }] },
        { title: 'Company', links: [{ label: 'About', href: '#about' }, { label: 'Contact', href: '#contact' }] },
      ]}
      legal={<p>Halden is a fictional brand.</p>}
    />
  );
}

Installation

pnpm add @brand-studio/ui

Usage

import { FooterDirectory } from '@brand-studio/ui';
<FooterDirectory
  notes={['Prices include tax.']}
  breadcrumbs={[{ label: 'Home', href: '/' }, { label: 'Cameras', href: '/cameras' }]}
  columns={[{ title: 'Shop', links: [{ label: 'Cameras', href: '/cameras' }] }]}
  legal={<p>Copyright 2026 Halden.</p>}
/>

Number footnotes in the page copy to match the order of notes.

Accessibility

  • The breadcrumb is a <nav> labelled Breadcrumb, and its last link has aria-current="page".
  • The link columns are a <nav> named by label, each list labelled by its column heading.

API Reference

PropTypeDefault
breadcrumbs?{ label: string; href: string; }[]
columnsFooterColumn[]
notes?React.ReactNode[]
legal?React.ReactNode
label?string
className?string

Still, Deskhand and Hollis are fictional brands. The coffee photographs are original generated artwork. @brand-studio/ui is MIT licensed.