Component Gallery

This page renders every component available to a documentation author, once each. It is the visual regression check for the site: if something here looks wrong, it looks wrong everywhere.

All components are global. There is nothing to import into a page.

Notice

An inset callout for something the reader must not miss. Takes a tone and an optional title.

Available tones, and what each is for:

ToneUse it for
infocontext the reader needs but would not have looked for
warninga foot gun that costs time
riskdata loss, money, or something irreversible
successa confirmation, or the happy path after a hard step
decisiona fork in the road where the reader has to choose

The boxed variant adds a tone icon and a full border. Use it when the callout should read as a panel rather than an aside.

Full width, heavier than a notice, for a statement that governs the whole page rather than one paragraph.

Cards

A link grid. cols sets the column count.

Steps

A numbered sequence where order matters. Each Step takes a title.

First, do the thing

Steps carry their own body content, so each one can be a paragraph, a list, or a code block.

Then, do the next thing

If a procedure is not genuinely ordered, use a plain list instead. Numbering implies a dependency.

Finally, check it worked

End a sequence on something observable, so the reader knows whether to continue or go back.

Accordion

Collapsed detail. Good for troubleshooting and for answers most readers do not need.

Why is my site empty after a build?

Content defaults to draft, and a build skips drafts unless you turn on “Include draft posts in build”. Set the post to published and rebuild.

Why did my theme change not appear?

Nothing on the theme page is live until you rebuild and redeploy. Saving a file or setting a site default only changes what the next build will use.

Comparison

Two columns, before and after, for a change of state or a choice between two options. Content goes in the before and after slots.

Before. The left column. Use it for the current state, the old way, or the first of two options.

After. The right column. Use it for the new state, the better way, or the second option.

Badge

An inline label. Takes color, size, shape, and stroke.

Status: Beta

Media

An image or figure with a caption. layout is full, left, or right.

Placeholder only. This is an inline SVG data URI, not a real screenshot: the docs site has no image assets yet.

Signature

An API signature with collapsible detail. code is the signature line; the body holds the parameters and notes.

Kbd

A key or key combination: press Cmd S to save, or Ctrl S on Windows and Linux.

Code blocks

A fenced block is highlighted with the page theme and gets a copy button on hover. Add title="path" after the language to render a filename bar. Blocks longer than about 18 lines are clamped, with a “Show N more lines” toggle underneath.

A short block has no toggle:

./deploy/docs-deploy.sh

House style

Two rules that apply to every page here.

  1. No em dashes and no en dashes, anywhere: not in prose, not in headings, not in component props. Use a comma, a colon, parentheses, or a full stop. Write ranges as “5 to 10”.
  2. Ground every claim in the code. If a capability cannot be verified in the repository, leave it out rather than describing what a CMS usually does.
Esc