StealThis .dev
Pages Medium

DIY — Step-by-Step Project Chapters

A long-form maker project page for the fictional MAKELOG community, built around a folding camp stool made from a single board. It pairs a cover band carrying author, stats and action buttons with eight numbered chapters, each holding a CSS-drawn figure, prose, tip callouts and a per-step thumbs control. A sticky chapter rail tracks reading position with IntersectionObserver, the supplies chapter is a live checklist with mono part refs, and an I Made It gallery closes the page.

Open in Lab
html css vanilla-js
Targets: JS HTML

Code

Step-by-Step Project Chapters

The page opens on a warm cover band: project title, an author chip with a follow toggle, three counters (views, favorites, makes) and a row of actions — favorite, download PDF, share — that all emit toasts. Beside it sits a purely CSS-drawn illustration of the finished stool, scissor legs, teal pivots and all.

The body is a two-column reading layout. On the left, a sticky chapter rail lists all eight chapters and highlights whichever one is in view; clicking scrolls smoothly and a small progress bar reports how far you have read. Each chapter carries a number badge, a big illustrated figure with a caption, prose, and occasional tip or care callouts. The Supplies chapter is a checklist card with quantities and monospaced part refs that strikes items through and keeps a running “gathered” count.

Every chapter ends with a “Did this step work for you?” thumbs control where the two buttons are mutually exclusive and the counts move with your vote. Further down, an “I Made It!” band shows nine community builds as gradient-illustrated cards with maker chips and captions, plus a big post-your-make button that bumps the make counter. Below 1000px the rail collapses into a horizontal pill scroller and a sticky bottom bar appears with prev/next chapter controls (also bound to Alt+Arrow keys).

How this look is built

The information architecture follows Instructables-style project pages as a stylistic reference — long chapters, a supplies section, community makes — but the implementation is modern: a CSS grid shell with position: sticky for the rail and the mobile bar, an IntersectionObserver with an asymmetric rootMargin and multiple thresholds to pick the dominant chapter instead of the old scroll + getBoundingClientRect() loop, scroll-padding-top plus scroll-margin-top so anchor jumps clear the sticky header without JS offsets, and layered radial-gradient plus repeating linear-gradient grids for the paper texture and every illustration, so the page ships zero images. The observer approach costs nothing on the main thread and stays correct when chapter heights vary wildly, which is exactly the failure mode of scroll-position math.

Illustrative UI only — always follow real safety guidance when working with tools, electronics, or repairs.