Pattern

Navigation model

There is no menu. The Index is the hub, every page ends on it, and the way back travels with the reader.

01

The model

The Index is the hub
The home lists six pages as tiles. Each tile is the real top of its page, so the reader sees where a door leads before opening it.
No top bar
Nothing is fixed to the top of the screen on any page. The way back lives in the content instead.
Every page ends on the Index
Every page but the home and the night page (404, Blackhole) ends on the whole home, after 200px (160 tablet, 120 phone). Reaching the end of a page is reaching the hub; the current page’s tile is marked aria-current="page".
The way back travels
In the band (“← Index” or “← Index / Parent”), at the top of the rail, and on phones as a block that appears after a short scroll up.
Two levels only
Top-level pages hang off the Index; second-level pages (articles, Hirsla Support, Privacy, Legal, What’s New, Links) hang off one parent and show a breadcrumb.
Hidden pages
The Bookshelf has no tile: reachable by link, noindex, still in the sitemap and llms.txt.
02

Where the way back appears

Phone
Band; scroll-up block on every page but the home.
Tablet
Band; rail number row with the trail at its start; scroll-up block only where there is no rail (Thoughts list, Bookshelf).
Desktop
Band; top of the sticky rail; the Bookshelf’s filter column. Never the scroll-up block.
03

Parts

Header band, Breadcrumb and way back, Rail, Scroll-up way back, Index tile, Page transitions.

04

Adding a page

A new page copies an existing one of its template (see Content page, Starting a new one), gets its title, description, and share card (see Page head and metadata), goes into sitemap.xml and llms.txt, gets the home ending from sync-index.sh, and does not get a tile unless the owner decides. A new tile means changing the TILES lists in sync-index.sh and vt.js, and a layout decision: three rows of two, each pairing a visual tile with a text tile.