Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Dual Audience Footer Block for React

A footer for a design tool with two audience cells on one hairline, builders and teams, each with a sentence, three points and its own action, over a row of links and a legal band.

Framework
UI library

Preview

Preview width

Installation

Part of Pro
Pro unlocks the code and one-line install of every Pro button and text effect, plus the MCP for your AI editor.
Have Pro already? Sign in to open it.Opens here as soon as you're Pro.

Overview

A footer for React with Base UI that gives two kinds of visitor their own way in. Two cells share one hairline: For builders and For teams. Each has a title, one sentence, three checked points and an action at its foot: the Shine Button "Start building" in the first, an outline "Talk to sales" in the second, so only one control is primary. Under the cells, a band holds the wordmark with one sentence and the links in one row, in a nav labelled Footer, and a legal band closes the page. It is a footer first: the cells are part of it, with the links and the legal row under them, not a closing section of their own. On a phone the cells stack and the links wrap. It has no state: plain links, Guides and your theme's tokens.

FAQ

How do I change the two audiences?

Edit the BUILDERS and TEAMS constants at the top of the file: each is a title, a sentence and three points. Both cells are drawn by one AudienceCell component, and each action is passed to it as children, so you can change a label or a link in the footer's markup without touching the cell.

Why is only one of the two buttons filled?

A filled button says "this is the main thing", and two of them split the visitor's attention. The Shine Button goes to the lower-friction path (building is free) and the outline button to the one that needs a conversation. Swap them if your business works the other way round; keep one of each.

How are the buttons links on each library?

Both are real links styled as buttons. The button renders an anchor through render, with nativeButton off. Point each href at its page.

How does it read to a screen reader?

The block is a footer. Each audience has an h2 over a real list; the links are in a nav labelled Footer and the policies in a list named Legal. The check marks are decorative and hidden: the points are read as plain list items.

How does it fit on a phone?

The cells stack, builders first, each with its action under its list, and the link row wraps under the brand. Nothing scrolls sideways at 320 pixels, and the navigation is on the first screen.

Where does the copyright year come from?

It is the current year, read when the footer renders, so it never goes stale. On a server-rendered site the year is the one in force when the page was rendered.

  • Pro

    A footer for a workflow tool whose call to action is the last cell of the link grid: a brand and three link groups beside a card in a card with a small flow drawing, a title, one line and a Shine Button.

  • Pro

    A brand-first split footer for a design tool: a display wordmark, a tagline and the Shine Button on one half, three link columns and the legal row on the other.

  • Pro

    The classic link-column footer for an email API: a brand column with the wordmark, one sentence and four social links, four groups of links behind a split divider, and a legal band with the copyright and the policy links.

  • Pro

    Plan Pills Footer

    Plans and estimates

    A footer for an invoicing tool with three plan pills, Free, Pro and Team, that show the chosen plan's price and three inclusions beside a Compare plans link, over two link groups and a legal band.

  • Pro

    Dual Action CTA

    Slim bands

    A band call to action between solid rails with one split button: a Shine Button Get started link joined to a chevron that opens a menu of other routes, beside a headline and a sentence, in your theme.

  • Pro

    Upgrade Meter Footer

    Plans and estimates

    A slim footer for cloud storage with a plan band: the plan name, the space used and free, a thin meter, the share as a number and an Upgrade button, over a row of links and a legal band.