GuideShell
A two-pane shell for docs-style reading — sticky scroll-spy nav on the left, a scrollable prose column on the right.
Scroll this column and watch the left nav highlight follow — that's an IntersectionObserver watching every registered section, not a manual scroll handler.
Scroll spy
Each GuideSection registers its own DOM ref via theregisterRef render-prop GuideShell forwards. No section needs to know about any other section.
Prose primitives
Lead is the opening line of a section — slightly larger.
P is the workhorse paragraph weight, muted by default.
Subpages
Above the section nav, an optional subpages prop renders a small tab switcher between sibling guide pages — think "Guide" versus "API Reference" versus "Changelog" for the same feature. Each tab is a{ to, label, exact? } pair rendered through thelinkComponent you already pass for in-page nav links.
The active tab is derived by comparing the current pathnameagainst each tab's to: an exact match when exactis set, a prefix match otherwise, so a nested route under a subpage still highlights its parent tab.
Eyebrows
This section's heading has an eyebrow — the small "Detail" kicker above the title, same treatment the very first section uses ("Extracted"). It's optional per-section, not a running header, so use it to flag the handful of sections that need a label — a status, a category, a difficulty — and leave the rest without one.
Overusing it flattens the signal: if every section has an eyebrow, none of them stand out, and the kicker starts reading as decoration instead of information.
A right-rail overview. Markers are styled by caller-injected kind (here: section, figure, note); the band tracks the panel's real scroll position above — drag it, or click the track, to scrub the panel.
Click or tab to a marker, then Enter to jump.
Overview
Use the list to jump between sections. The active item follows this panel as it scrolls.
Active section
IntersectionObserver tracks a narrow band near the top without a manual scroll handler.
Shareable links
Navigation updates the URL hash so the current section can be copied and revisited.
A compressed picture of a long draft: the bars are the content's shape (headings, prose, a scene break, a blockquote), and the gutter markers flag where review touched it. Click a marker to jump to that passage.
Click a gutter marker to select its target.