resources/layouts/ contains exactly one file:
$ ls resources/layouts/
marketing.stxThe 27 marketing pages were migrated onto it (@extends/@section). The five app/auth pages were not. Instead each hand-writes a layout hint:
$ grep -rln 'name="stx-layout"' resources/views/
resources/views/login.stx # line 61: <meta name="stx-layout" content="auth">
resources/views/dashboard.stx
resources/views/account.stx
resources/views/register.stx
resources/views/sites/new.stxConsequences
Certain: a 23-line :root{...} design-token block is copy-pasted into all five, and the shared chrome has no single owner. Four raw href="/" anchors on those pages were never converted for the same reason.
Reported but NOT reproduced — needs measuring before you trust it: that the server advertises layout group default for these pages while the client-side getCurrentLayoutGroup() reads the hand-written meta as auth/app, so the router sees a layout change on every in-app navigation, discards the fetched fragment and re-fetches the whole page — a wasted fragment fetch plus a full load on all 11 in-app links. I could not reproduce this: the dev server was down when I tried, and a later attempt found no X-STX-Layout-Group header on any route. Measure it before citing it as the reason.
Fix
Add resources/layouts/app.stx and resources/layouts/auth.stx, move the shared chrome and the :root block into them, and replace the five hand-written metas with @extends.
Related
If the double-fetch behaviour is real, these navigations are going down the full-document swap path, which has no runtime/store handoff guard — see stacksjs/stx#1839.