Page
Generated from front/ui/catalogue/examples/Page.json
structure · static (no JavaScript) · renders children. All components: component playground.
Description for the model
Section titled “Description for the model”Root of a page document. Sets the theme and metadata. Children: SiteHeader, Main, SiteFooter in that order.
Live example
Section titled “Live example”Rendered from the example props below with the real component. Theme: coffee · oncall · nightsky · gravity · poland · ulam · platform · open on its own
Example
Section titled “Example”{ "component": "Page", "props": { "theme": "platform", "title": "Brewing basics", "description": "A short course on extraction.", "lang": "en" }, "children": [ { "component": "Main", "props": {}, "children": [ { "component": "Prose", "props": { "markdown": "Brewing is **extraction**: water dissolves flavour from the grounds.\n\n- Grind sets the surface area\n- Time and temperature set the speed" } } ] } ]}| Prop | Type | Required | Notes |
|---|---|---|---|
theme |
"coffee" | "oncall" | "nightsky" | "gravity" | "poland" | "ulam" | "platform" |
yes | Tenant theme preset |
title |
string | yes | Document title for the browser tab and search results. max length 70 |
description |
string | Meta description, under 160 characters. max length 160 | |
lang |
string | BCP 47 language of the page. max length 10, default "en" |
Text fallback
Section titled “Text fallback”What a text-only client, an unknown renderer or a plain-text channel shows for the example above.
Brewing basicsA short course on extraction.Invalid props
Section titled “Invalid props”A node whose props fail the schema never breaks the page: the renderer shows the plain-text fallback instead (and logs the issues in development).
{ "theme": "purple"}Issues:
/titleis required/thememust be one of “coffee”, “oncall”, “nightsky”, “gravity”, “poland”, “ulam”, “platform”
Rendered as:
Nothing: this component has no text of its own.
Accessibility
Section titled “Accessibility”axe-core: 7 rules passed, 0 violations, 0 need manual review. Run at build time on the server-rendered HTML in jsdom. Colour contrast and layout rules need a browser and are covered by the Playwright axe scans of the reference frontend.