Skip to content

Presentation controls

Platform-owned presentation meanings. Templates declare supported choices; saved values remain tenant-owned. An absent override inherits the exact artifact’s authored default. Hidden or unsupported values remain stored but are not projected into template rendering.

Read the machine-readable registry and the heading-size authoring guide. A registry entry is not template support: the exact selected artifact must declare and implement the control.

Control Saved content address Choices Target Reset
sectionLayout content.presentation.sectionLayout image-start, image-end, stacked section-layout remove
colourTreatment content.presentation.colourTreatment standard, soft, contrast section-colour-treatment remove
headingScale content.presentation.headingScale compact, standard, large section-heading remove
sectionSpacing content.presentation.sectionSpacing compact, standard, spacious section-root remove
imageOverlay content.presentation.imageOverlay subtle, standard, strong section-image-treatment remove
headingAlignment content.headingAlignment start, center, end section-heading-and-eyebrow remove
showCollectionLink content.showCollectionLink false, true collection-link remove

Heading size is the first supports.sectionPresentation consumer. The existing alignment and collection-link declarations and storage addresses are unchanged. This is a bounded control registry, not an arbitrary numeric range, CSS selector or conditional-expression interface.

{
"version": 1,
"description": "Platform-owned presentation meanings. Templates declare supported choices; saved values remain tenant-owned. An absent override inherits the exact artifact's authored default. Hidden or unsupported values remain stored but are not projected into template rendering.",
"sectionTypes": [
"hero",
"values",
"cta",
"homeHero",
"impact",
"events",
"articles",
"campaigns",
"emergency",
"stats",
"appealGrid",
"services",
"documents",
"people",
"impactMap",
"courses",
"form"
],
"legacySectionAliases": {
"programmes": "services",
"resources": "documents",
"whatsOn": "events"
},
"controls": {
"sectionLayout": {
"label": "Section layout",
"kind": "choice",
"scope": "section",
"sectionTypes": [
"hero"
],
"contentFields": {
"imageUrl": "image",
"imageAlt": "text"
},
"address": [
"presentation",
"sectionLayout"
],
"options": [
"image-start",
"image-end",
"stacked"
],
"labels": {
"image-start": "Image at start",
"image-end": "Image at end",
"stacked": "Image above"
},
"minimumOptions": 2,
"reset": "remove",
"target": "section-layout",
"responsive": "author-defined",
"attribute": "data-p60-section-layout",
"description": "Author-owned image/text layout for an explicitly supported About introduction. Start/end follow the site direction. Mark the single natural outer root and existing frame/media/content slots; token CSS changes only bounded grid tracks and slot placement when a photograph exists. Missing/reset preserves authored styling. Preserve copy, imagery, reading order, links, gutters and narrow-screen stacking; never invent absent media, add arbitrary containers or target platform islands. Every exact section declaration is independent; missing support is unsupported."
},
"colourTreatment": {
"label": "Colour treatment",
"kind": "choice",
"scope": "section",
"sectionTypes": [
"hero",
"values",
"cta",
"impact",
"events",
"articles",
"campaigns",
"emergency",
"stats",
"appealGrid",
"services",
"documents",
"people",
"courses"
],
"address": [
"presentation",
"colourTreatment"
],
"options": [
"standard",
"soft",
"contrast"
],
"labels": {
"standard": "Standard",
"soft": "Soft",
"contrast": "Contrast"
},
"minimumOptions": 2,
"reset": "remove",
"target": "section-colour-treatment",
"responsive": "author-defined",
"attribute": "data-p60-colour-treatment",
"description": "Coordinated author-owned section surface, copy, links and buttons within the selected Look. Missing/reset retains the original treatment. Mark the natural outer root and explicitly owned colour roles; token CSS changes paint only, never shared palette variables, imagery, layout or island internals. Home hero, impact maps and sections containing platform islands are not supported in this slice."
},
"headingScale": {
"label": "Heading size",
"kind": "choice",
"scope": "section",
"address": [
"presentation",
"headingScale"
],
"options": [
"compact",
"standard",
"large"
],
"labels": {
"compact": "Compact",
"standard": "Standard",
"large": "Large"
},
"minimumOptions": 2,
"reset": "remove",
"target": "section-heading",
"responsive": "author-defined",
"attribute": "data-p60-heading-scale",
"description": "Changes only the actual section heading's responsive font size, never its heading level, eyebrow, body, cards, buttons or islands. Templates provide each size in their own CSS. The declared default describes inherited styling; it is not written into tenant content."
},
"sectionSpacing": {
"label": "Section spacing",
"kind": "choice",
"scope": "section",
"address": [
"presentation",
"sectionSpacing"
],
"options": [
"compact",
"standard",
"spacious"
],
"labels": {
"compact": "Compact",
"standard": "Standard",
"spacious": "Spacious"
},
"minimumOptions": 2,
"reset": "remove",
"target": "section-root",
"responsive": "author-defined",
"attribute": "data-p60-section-spacing",
"description": "Changes only the natural outer section root's block-axis padding, never horizontal gutters, card gaps, heights or island internals. Templates provide each spacing in their own CSS. The declared default describes inherited styling; it is not written into tenant content. Keep the permanent hook even when the heading is hidden."
},
"imageOverlay": {
"label": "Photo overlay",
"kind": "choice",
"scope": "section",
"sectionTypes": [
"homeHero"
],
"requiresSupport": "heroImagery",
"address": [
"presentation",
"imageOverlay"
],
"options": [
"subtle",
"standard",
"strong"
],
"labels": {
"subtle": "Subtle",
"standard": "Standard",
"strong": "Strong"
},
"minimumOptions": 2,
"reset": "remove",
"target": "section-image-treatment",
"responsive": "author-defined",
"attribute": "data-p60-image-overlay",
"description": "Changes only authored palette-derived decorative photo treatments in Home hero, never image opacity, source media, geometry, copy, widgets or a required readability scrim. Each exact artifact declares its safe choices and inherited default. Mark the existing photo wrapper with data-p60-image-overlay-media and empty decorative layers with data-p60-image-overlay-layer; token CSS may target those layers, marked wrapper pseudo-elements or the documented hero-slide-scrim. Missing and reset values preserve the authored treatment."
},
"headingAlignment": {
"label": "Desktop heading alignment",
"kind": "choice",
"scope": "section",
"address": [
"headingAlignment"
],
"options": [
"start",
"center",
"end"
],
"minimumOptions": 1,
"reset": "remove",
"target": "section-heading-and-eyebrow",
"responsive": "desktop-1024",
"attribute": "data-p60-heading-align",
"declaration": "sectionHeadingAlignment"
},
"showCollectionLink": {
"label": "Show collection link",
"kind": "toggle",
"scope": "section",
"address": [
"showCollectionLink"
],
"reset": "remove",
"target": "collection-link",
"responsive": "all",
"attribute": "data-p60-collection-link",
"declaration": "sectionCollectionLinkVisibility"
}
}
}