This documentation is also published as Markdown for efficient machine reading: the whole site is indexed at /llms.txt, and every page has a clean Markdown copy under /_llms/. These are generated from the same source and cost far fewer tokens to read than this rendered HTML.

Skip to main content

May 13, 2026

Faster, smoother page navigation

By Phil Scott

Clicking around a documentation site shouldn't feel heavy. Pennington's SPA navigation got a round of polish — and a small design refresh, pill-style area and table-of-contents navigation — aimed at making a click feel quick.

The frame stays put

The biggest change is what doesn't move. The sidebar and the header now live outside the region the SPA swaps. Navigate, and they don't reload — they keep their scroll position, an open search box stays open, an expanded section stays expanded. Only the server-driven part, like which page is selected, gets patched on commit. Navigation reads as the content changing, rather than the whole page reloading — which is the truth, since that's all that changed. The mechanics are in SPA navigation through region swaps.

Feedback only when it's needed

Two changes handle the timing of a click. Slow responses get a progress bar across the top of the viewport, but with a delay and a trickle effect, so a fast navigation stays silent — you see the bar only when there's something to wait for.

And the old cross-fade is gone. The fade and the loading shimmer added more visible motion than they hid. Now the old content stays on screen during the fetch, and the swap — DOM, scroll position, and <head> — happens in one synchronous block the browser paints as a single frame: no transition, no flicker, no flash of empty page. The attributes for tuning this are in the SPA reference.