SiteFooter
Generated from front/ui/catalogue/examples/SiteFooter.json
structure · static (no JavaScript) · no children. All components: component playground.
Description for the model
Section titled “Description for the model”Page footer with brand, a sentence, links and small print.
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": "SiteFooter", "props": { "brand": "Coffee Atlas", "text": "Courses for people who love coffee.", "links": [ { "label": "Privacy", "href": "/privacy" }, { "label": "Terms", "href": "/terms" } ], "note": "(c) 2026 Coffee Atlas" }}| Prop | Type | Required | Notes |
|---|---|---|---|
brand |
string | yes | Brand name. max length 60 |
text |
string | Sentence under the brand. max length 300 | |
links |
array of objects | Links. max 10 items | |
links[].label |
string | yes | Visible text. max length 80 |
links[].href |
string (href) | yes | Target URL. max length 2048 |
note |
string | Small print. max length 200 |
Text fallback
Section titled “Text fallback”What a text-only client, an unknown renderer or a plain-text channel shows for the example above.
Coffee AtlasInvalid 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).
{ "links": "many"}Issues:
/brandis required/linksexpected array, got string
Rendered as:
Nothing: this component has no text of its own.
Accessibility
Section titled “Accessibility”axe-core: 18 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.