Skip to content

What is this?

Starlight’s default layout spreads to fill whatever screen you give it. That is fine at laptop width, and less fine at 3440 pixels: the navigation ends up pinned to the far left edge, the prose drifts right, and the table of contents lands somewhere near the other end of the desk. Reading is fine. Navigating means a long mouse journey every time.

VitePress solves this by refusing to spread. Everything lives inside one band — 1440 pixels by default — centred in the viewport. Past that width the extra space becomes margin. Sidebar, text and contents stay a flick apart no matter how big the display is.

This theme brings that layout to Starlight, along with VitePress’s palette, type scale and code block chrome.

Three of Starlight’s layout components are replaced:

Component Why
PageFrame Pins the header, sidebar and main frame to the centred band.
TwoColumnContent Makes the contents rail a fixed column one gap away from the prose, instead of a share of the leftover viewport.
PageSidebar Restyles the contents list as VitePress’s document outline.

Everything else — colours, type, tables, callouts, code blocks, the navigation list — is done by re-pointing Starlight’s own custom properties.

No markup is duplicated beyond those three files, so sidebar badges, collapsible groups, the persisted open/closed state, search, i18n, the mobile menu and every user component keep working exactly as documented. If a future Starlight release changes how the sidebar list is built, this theme inherits the change instead of fighting it.