Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Milestone Rail Footer Block for React

A footer for an architecture practice with two link groups and a rail of four milestones, horizontal with a dot per year on a desktop and vertical on a phone.

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 milestone footer for React with Base UI. The wordmark and one sentence sit beside two link groups in a nav labelled Footer. Under them a band, ruled with a + mark where it meets each rail, holds a rail of four milestones: on a desktop one hairline runs from rail to rail with a dot for each milestone, its year above and its line below; on a phone the rail turns vertical down the start edge. A legal band closes the page. The years are fixed in the data, so the rail never goes stale. It's built from Guides, plain links and your theme's tokens, with no JavaScript of its own.

FAQ

How do I change the milestones?

Edit the MILESTONES array at the top of the file: each entry is a year string and a label, oldest first. Four fill the desktop row; with a different count, change md:grid-cols-4 on the list to match. The years are typed, not computed, so a milestone from 2019 stays 2019.

How is the rail drawn?

There is no script and no SVG. Each item draws its own piece of the rail: a one-pixel hairline across its width and a dot at its start, so the pieces join into one line from rail to rail. On a phone the items stack with a dot on a vertical line that runs down the start edge.

How do screen readers move through it?

The block is a footer element, so at the end of the page it is the content-info landmark. The rail has an h2 ("Twenty years of building") and the milestones are an ordered list, each read as the year and then the line. The rail's drawing, the dots and hairlines, is hidden from assistive technology. The links sit in one nav labelled Footer.

Does the rail follow right-to-left text?

Yes. The dots sit at the start of each item and the first milestone is at the start of the row, so the rail reads from the end side when the page flips. Each year is in a bdi.

How does it fit on a phone?

The brand and the two link groups stack, then the rail becomes a vertical list with a line and a dot at the start of each item, then the legal band. Nothing scrolls sideways at 320 pixels.

  • Pro

    Award Shelf Footer

    Social proof

    A footer for a design-system tool with a shelf of four award cells, each a greyscale laurel drawn around a glyph with the award's name, category and year, above the legal band.

  • Pro

    Stat Cells Footer

    Social proof

    A footer for an observability tool with four stat cells (events a day, uptime, regions, rating) above the brand and three link groups, with a legal band closing the page.

  • Pro

    Latest Release Footer

    Content and updates

    A split footer for a feature-flag service that leads with its latest release: a raised panel with version, title and three tagged changes, beside three link columns.

  • Pro

    A footer for a field-service app with one customer quote and its speaker at the start, behind a split divider the brand and two link groups, and a legal band.

  • Pro

    A footer for a dock-scheduling tool with one customer result: a big 38% figure beside a before and after bar pair in a framed figure, a Read the story button, and two link groups.

  • Pro

    Company Facts Footer

    Company and places

    A company footer for a construction-software firm: a brand with a facts list (founded, headquarters, people, customers, company number) and two link columns in cells sharing hairlines, then a slim band.