⚠️ Design system CSS not found. Check the path in cms/docs.config.js → designSystemPath, then re-run npm run docgen.

Page Layouts

One live specimen of every page type

Docs / Page Layouts
Download .md file
Open .md in new tab
On this page
  • The layouts
  • What each one carries
  • Where the source lives

Six layouts, each with a stripped-back specimen and a real page using it. The
specimen shows what the type gives you and nothing else; the real page shows it
carrying actual content. Open both when you are deciding which type a new page
should be.

The rules behind them are in Page Types — this page is only
the showroom.

The layouts

Type Skeleton Live What it is
shelf Shelf Home The top level. Covers on a grid, nothing above it to close to
contents Contents Website Inside one book. Rows, and a close back to the shelf
doc Doc Button The default. Markdown, reading measure, contents rail, pager
page Page none yet Doc chrome, hand-written HTML body, measure released
tool Tool SVG Cleaner The shell and a close. Everything else is the tool's own
bare Bare Contact Header only. No sidebar, outside the page transitions

page has no live instance yet. The type, the wide frame and the raw-HTML body
path are built and exercised by the skeleton, but nothing real uses it — the
first page that needs a body the reading measure would crop will be the proof.

What each one carries

Open the skeleton. That is what this page is for — the specimen shows the chrome
directly, which is quicker to read than any table and cannot go stale.

The chrome matrix itself lives in Page Types, next to the
PAGE_TYPES object it is transcribed from. It was duplicated here until it
drifted from that object, which is the argument for keeping it in one place.

Where the source lives

Type Source
shelf, contents Generated. Nothing to author
doc cms/<name>.md — omit type:
page cms/<name>.md with type: "page", plus a <name>.html body
tool cms/apps/<slug>.md + cms/apps/<slug>.html
bare Hand-written, from templates/page-template.html

The skeletons on this page live in cms/examples/, except the bare one, which
is examples/bare.html — hand-written, because a bare page has no sidebar and
no page-transition container and so cannot come out of the docs template at all.
The build rejects type: "bare" in a cms/*.md file for that reason.

On this page
  • The layouts
  • What each one carries
  • Where the source lives
Previous Page Types
Next Documenting Components

Was this page helpful?

We use this feedback to improve our documentation.

Thanks for your feedback

Send feedback

© 2026 By Default