Footer

Footer is a ready-made neobrutalist section (block) from Cruise UI, built from its components. A site footer block: logo and blurb, 2–4 link columns, social links, an optional WhatsApp button and newsletter form, and a © row. Dark (.on-deep) by default, with a light variant. Install it with npx shadcn@latest add @cruiseui/cruise-footer.

Install

Terminal

npx shadcn@latest add @cruiseui/cruise-footer

First time? Installation shows the one-off components.json setup (the @cruiseui registry) and how to turn the theme on.

Example

Corners

When to use it

When to use

The bottom of every marketing or shop page.

When not to

Inside an app dashboard (use the Dashboard layout's sidebar for links).

Props

CruiseFooter

PropTypeDefaultDescription
brand?string"Your brand"Name used in the © line and social link labels.
logo?ReactNode—Logo next to (or instead of) the brand name; defaults to the name in Baloo 2.
blurb?ReactNode"One short line about what you do and who it's for."—
columns?CruiseFooterColumn[]DEFAULT_COLUMNS2–4 columns of links.
socials?CruiseFooterSocial[][]—
whatsapp?{ phone: string; message?: string | undefined; label?: string | undefined; }—Adds a WhatsApp button (the WhatsApp component).
newsletter?{ title?: string | undefined; label?: string | undefined; button?: string | undefined; done?: string | undefined; onSubscribe: (email: string) => void | Promise<void>; }—Adds an email sign-up; onSubscribe gets the address.
copyright?ReactNode—Text after "©" and the year; defaults to the brand name.
year?number—Defaults to the current year (shown once the page loads).
variant?"dark" | "light""dark""dark" uses .on-deep; "light" sits on --paper.
signatureBand?booleanfalseThe active city's signature band along the top.
className?string——

Accessibility

  • A <footer> landmark; each link column is a <nav> with its column title as the label.
  • Social links are 44px icon buttons named "Brand on Instagram" and so on.
  • The newsletter field has a real label and shows errors in words.