Contents rail with reading progress and share

A sticky rail in the left gutter lists the article's sections, highlights the one you're in, shows how far through you are, and carries the share buttons — collapsing inline on phones.

What it is

A collapsible navigation card built from the article's H2 headings. It tracks scroll position to highlight the active section and fill a progress bar anchored to the bottom of the card, and holds share actions. On viewports wide enough to have a gutter it hangs beside the article without shifting the text column; below that it renders inline above the text, collapsed.

Also called: table of contents · reading progress bar · share this article · jump to section

See it
Contents rail with reading progress and share
CustomerBuildingAmountStatus
Ivy Brubaker40×64 Shop$2,720Draft
Ivy BrubakerBarndominium$1,960Approved
Marlin HooverBarndominium$3,290Sent
Delia Yoder30×40 Garage$5,000Approved
Delia YoderEquipment Storage$12,030Open
The sticky rail card: numbered contents with the active row highlighted, the progress bar at the bottom, share icons beneath. Sample data — no customer information appears here.
How it works
  1. 1Headings are extracted server-side from the markdown H2s and slugged with the same function the renderer uses, so anchors always resolve.
  2. 2A passive scroll listener sets the active heading and the progress percentage.
  3. 3The rail is absolutely positioned in the left gutter so it never pushes the article off centre.
  4. 4Below 1300px the rail is hidden and an inline collapsed version renders above the text instead.
Why we built it

The rail's position is the whole design: it "lives on the LEFT SIDE as a rail beside the article — the page grid makes it sticky so it rides along as the reader scrolls," and it is absolutely positioned specifically so "it never pushes the content box sideways." That positioning later caused a real collision — the closing CTA banner "spanned the left gutter and painted straight over the sticky table of contents (Keith 08-21)" — which is why the CTA is a sibling of the article rather than a child of its column.

The problem
  • Long-form articles had no in-page navigation.
  • Readers had no sense of remaining length.
Sound familiar?
What you get
Jump straight to the section that applies
Progress is visible without scrolling to check
Sharing is one click from anywhere in the article

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →