Skip to content

Build a Canvas page

Briefing, not authority. (R) rule at linked source · (O) dated upstream fact · (P) procedure · (C) open work · (G) not established.

WHAT THIS MEANS IN DRUPAL

A page is Canvas composition: components placed in order, bound to entity data. Canvas owns layout and section order, not the facts (R) site-building §3.

OWNER

  • Composition, slots, content templates, global regions: Canvas (R) site-building §3.
  • Facts (services, people, proof, metrics, SEO): entity fields bound into Canvas (R) site-building §3.
  • Collections: Views (R) DRY §19, §46.
  • Agent mutation: canvas_tools (R) standard §7.5.

PREREQUISITES

  1. (P) The content entities exist; the components exist (else see Build a component).

DO THIS

  1. (P) Per-bundle display: Canvas content template. One-off page: Canvas page (R) DRY §55.
  2. (P) Bind props to entity fields; reference shared content, do not copy it (R) DRY §12, §52.
  3. (P) Lists via a configurable View block (R) DRY §47.
  4. (P) Agents write auto-save drafts; publish explicitly (R) standard §7.5.
  5. (P) Verify render, props, a11y, not just "page renders" (R) site-building §37.

WATCH FOR

  • Page-specific narrative, order and CTA placement may live on the page; anything a second page would repeat may not (R) site-building §3.
  • Per-user parts need cache contexts or lazy builders (R) standard §10 render rules.

DO NOT

  • page--*.html.twig, big preprocess, custom page-builder module, Controller-rendered marketing pages (R) site-building §3, standard §8.
  • Hardcode headline copy in components (R) site-building §4.

OWNERSHIP / CAN-SHOULD-MAY

  • CAN: Canvas editor, canvas_tools, Canvas CLI for pages.
  • SHOULD: site config owns pages; theme owns chrome.
  • MAY: agent writes land in draft; publish explicitly unless required and governed (R) standard §7.5.

DO NOT REDISCOVER

  • Canvas is the default when enabled; do not recreate it in Twig (R) site-building §3.

CONFLICTS

ID A B Resolution
C-CANVAS-VERSION how-we-build §16: "current stable Canvas is 1.11.x" Same section: do not hardcode versions Treat 1.11.x as a dated observation; check drupal.org.

GO DEEPER

Anchored sources: frontmatter authority_sources. Expires last_verified + 30d.