Design System

Wordnerds Template Vocabulary

Version: 0.2
Last updated: 2026-05-28
Renderer contracts: lib/template-contracts.ts (variants + slots — validation source of truth)
Orchestration guidance: docs/TEMPLATE-REGISTRY.md (SB7 beats, AEO blocks, variant selection rules)

This file is the canonical vocabulary of all templates available in the Wordnerds site renderer. It is the source of truth for: which templates exist, their grid pattern, their slot definitions (with types), their funnel-stage suitability, and which surfaces they apply to.

Design-orchestrator uses this file for template selection (funnel-stage suitability field). It then reads docs/TEMPLATE-REGISTRY.md for SB7/AEO overlay and variant selection rules. Neither doc duplicates the other.


Renderer Sync Checklist

Adding a new template to this file triggers four simultaneous changes:

  1. lib/schema.ts — add the new name to the TemplateType union
  2. lib/template-contracts.ts — add a TemplateContract entry (variants, required_slots, optional_slots)
  3. lib/fragments/<name>.ts — implement the renderer fragment; register in lib/renderer.ts
  4. design-orchestrator/SKILL.md Prerequisites — add the new template name to Stage 1.1 load list

Changing a variant name or slot name: update template-contracts.ts + this file in the same commit. Out-of-sync entries silently degrade orchestrator decisions.


Quick Reference

Template Grid pattern Funnel stages Surfaces
Organisms
SiteNavOrganism Full bleed (12) All website, gen-ui
SiteFooterOrganism Full bleed (12) All website, gen-ui
Templates
HeroTemplate Full bleed (12) or Asymmetric (7+5) All website, gen-ui, lead-magnets
ProblemStatementTemplate Even split (6+6) EXPLORING, TRYING website, gen-ui
FeaturePillarsTemplate 3-up (4+4+4) or 4-up (3+3+3+3) EXPLORING, TRYING website, gen-ui, lead-magnets, slides
StepCardsTemplate 3-up (4+4+4) or 4-up (3+3+3+3) EXPLORING, TRYING website, gen-ui, lead-magnets, slides
DiagramExplainerTemplate Centred diagram (10-col) + 8-col-centred prose EXPLORING, TRYING website, gen-ui
PathwayCardsTemplate 3-up (4+4+4) or 2-up (6+6) EXPLORING, TRYING website, gen-ui
ProofOutcomeTemplate Asymmetric (7+5) TRYING, COMMITMENT website, gen-ui, lead-magnets, slides
IntegrationCalloutTemplate Wide + narrow (8+4) EXPLORING, TRYING website, gen-ui
FAQTemplate 10-col centred or full (12) EXPLORING, TRYING website, gen-ui
FooterCTATemplate Full bleed (12) All website, gen-ui, lead-magnets
PromoBandTemplate Full bleed (12) EXPLORING, TRYING website, gen-ui
ResourcesRowTemplate 2-col (6+6) or 3-col (4+4+4) TRYING, INTEGRATING website

Organisms

SiteNavOrganism

Purpose. Site-wide navigation header — same on every page, content variation only.
Grid pattern. Full bleed (12-col). Content constrained to .wn-container (1280px).
Layer: organism — positioned outside <main> by the renderer.

Slot Kind Required
logo image
links list
primary_cta cta

Variants: sticky-dark · sticky-light
Funnel stages: all
Surfaces: website, gen-ui
Orchestration: docs/TEMPLATE-REGISTRY.md#SiteNavOrganism


SiteFooterOrganism

Purpose. Site-wide footer — legal, navigation reinforcement, secondary CTAs.
Grid pattern. Full bleed (12-col dark background); 3-col content grid inside.
Layer: organism — positioned outside <main> by the renderer.

Slot Kind Required
brand text
tagline text
nav_groups list
legal_links list
social_links list

Variants: dark-3col
Funnel stages: all
Surfaces: website, gen-ui
Orchestration: docs/TEMPLATE-REGISTRY.md#SiteFooterOrganism


Templates

HeroTemplate

Purpose. Page-opening section — sets the frame in ≤8 seconds. Mandatory on every page.
Grid pattern.

Section padding: --space-3xl (108→120px) — hero only.

Slot Kind Required
headline text
body rich_text
primary_cta cta
secondary_cta cta
media image

Variants: dark-split · light-split · centred
Funnel stages: all (hero is mandatory on every page regardless of stage)
Surfaces: website, gen-ui, lead-magnets
Orchestration: docs/TEMPLATE-REGISTRY.md#HeroTemplate


ProblemStatementTemplate

Purpose. The empathy moment — "you're not alone." Establishes the villain. Precedes the authority proof.
Grid pattern. Even split (6+6): text left, quote/illustration right (or flipped per variant).
Section padding: --space-2xl (72→80px) standard.

Slot Kind Required
question text
answer_capsule text
body rich_text
quote verbatim
illustration image

Variants: text-left-quote-right · text-right-quote-left
Funnel stages: EXPLORING (primary), TRYING (problem-restatement opener)
Surfaces: website, gen-ui
Orchestration: docs/TEMPLATE-REGISTRY.md#ProblemStatementTemplate


FeaturePillarsTemplate

Purpose. Three or four parallel capabilities or differentiators as visually equal pillars.
Grid pattern.

Slot Kind Required
heading text
pillars listpillar items
intro text
logo_strip image

Variants: 3-up · 4-up
Funnel stages: EXPLORING, TRYING
Surfaces: website, gen-ui, lead-magnets, slides
Orchestration: docs/TEMPLATE-REGISTRY.md#FeaturePillarsTemplate


StepCardsTemplate

Purpose. The named plan — sequential, verb-led steps. Primary plan carrier.
Grid pattern.

Each step card renders a brand-yellow numbered circle chip (.step__number, 28px) top-aligned with the <h3>. See PATTERNS.md §10.

Slot Kind Required
heading text
steps liststep items
intro text
quote_intro verbatim
cta cta

quote_intro slot: renders a <blockquote> above the step cards. Use for a named-customer quote that frames the plan — the quote must have an attribution. Do not use for marketing framing; that belongs in intro (plain text).

Variants: 3-step · 4-step
Funnel stages: EXPLORING, TRYING
Surfaces: website, gen-ui, lead-magnets, slides
Orchestration: docs/TEMPLATE-REGISTRY.md#StepCardsTemplate


DiagramExplainerTemplate

Purpose. Present a process/architecture diagram as the section centrepiece — heading + AEO answer-capsule above, a large centred diagram in the middle, explanatory prose below. For explainer sections where the visual carries the load and demands room (e.g. the five-step data pipeline). Added 2026-05-29. Grid pattern. Heading + capsule and body in .wn-col-8-centred; the diagram in a full-width centred <figure> (max-width 960px). Section padding: --space-2xl-3xl (generous).

Slot Kind Required
heading text
media image
body rich_text
answer_capsule text
caption text

Variants: centered Funnel stages: EXPLORING, TRYING Surfaces: website, gen-ui Orchestration: docs/TEMPLATE-REGISTRY.md#DiagramExplainerTemplate


PathwayCardsTemplate

Purpose. Routes different personas or segments to deeper pages. Each card is a self-contained CTA.
Grid pattern.

Slot Kind Required
heading text
cards listpathway_card items
body rich_text

Variants: 3-up · 2-up
Funnel stages: EXPLORING (primary), TRYING
Surfaces: website, gen-ui
Orchestration: docs/TEMPLATE-REGISTRY.md#PathwayCardsTemplate


ProofOutcomeTemplate

Purpose. Success vision + named proof point — shows what winning looks like.
Grid pattern. Asymmetric (7+5): text + outcome left (.wn-col-7), verbatim aside right (.wn-col-5) — or flipped per variant.
Stat requirement: verbatim or body slot must carry ≥1 specific number tied to a named customer or sector. Flag [STAT REQUIRED] if absent at brief time; sourcing before publication is mandatory.

Slot Kind Required
heading text
answer_capsule text
body rich_text
verbatim verbatim
cta cta
success_vision text

Variants: text-left-aside-right · text-right-aside-left
Funnel stages: TRYING (primary), COMMITMENT
Surfaces: website, gen-ui, lead-magnets, slides
Orchestration: docs/TEMPLATE-REGISTRY.md#ProofOutcomeTemplate


IntegrationCalloutTemplate

Purpose. Integration and ecosystem hook — surfaces Open data approach and Power BI capability concretely.
Grid pattern. Wide + narrow (8+4): main content left (.wn-col-8), media/callout right (.wn-col-4).

Slot Kind Required
heading text
body rich_text
answer_capsule text
integration_media image

Variants: dark · light
Funnel stages: EXPLORING (preview), TRYING (depth)
Surfaces: website, gen-ui
Orchestration: docs/TEMPLATE-REGISTRY.md#IntegrationCalloutTemplate


FAQTemplate

Purpose. Populates FAQPage JSON-LD. Answers questions an AI engine will be asked about Wordnerds.
Grid pattern.

Q1 voice rule: FAQ Q1 ("What is Wordnerds?") uses the third-person entity-assertion answer per the entity-assertion sub-rule in 03-constraints.md. Q2 onwards uses first-person plural per voice-by-subject.

Slot Kind Required
heading text
items listfaq_item items

Variants: single-column · two-column
Funnel stages: EXPLORING, TRYING (mandatory on both)
Surfaces: website, gen-ui
Orchestration: docs/TEMPLATE-REGISTRY.md#FAQTemplate


FooterCTATemplate

Purpose. Final conversion moment for scroll-through visitors.
Grid pattern. Full bleed (12-col). Content centred in .wn-col-8-centred.
Section padding: --space-2xl-3xl (72→120px) — generous to give the CTA room.

Slot Kind Required
heading text
primary_cta cta
body rich_text
secondary_cta cta

Variants: yellow · dark · light
Funnel stages: all
Surfaces: website, gen-ui, lead-magnets
Orchestration: docs/TEMPLATE-REGISTRY.md#FooterCTATemplate


PromoBandTemplate

Purpose. Single timely promotional callout — webinar, playbook, case study. Swappable per campaign without touching the rest of the page.
Grid pattern. Full bleed (12-col). Content in .wn-container (1280px), horizontally arranged.
Configuration: remove from schema when no active promotion; re-add at campaign launch. Do not leave empty.

Slot Kind Required
heading text
primary_cta cta
kicker text
body text
date text
secondary_cta cta

Variants: accent (brand-yellow — time-sensitive) · light (neutral — evergreen)
Funnel stages: EXPLORING (primary), TRYING
Surfaces: website, gen-ui
Orchestration: docs/TEMPLATE-REGISTRY.md#PromoBandTemplate


ResourcesRowTemplate

Purpose. Horizontal content-discovery — latest blog, playbook, and optionally webinar titles. Serves consideration-stage visitors going deeper.
Grid pattern.

Measurement note: treat as a testable hypothesis. Measure column-level clicks; drop if traffic doesn't justify the space.

Slot Kind Required
heading text
columns listresource_column items
cta cta

Each resource_column item: heading (text), items (list of {label, href}), optional cta_label + cta_href.

Variants: 2-col · 3-col
Funnel stages: TRYING (primary), INTEGRATING
Surfaces: website only (content-index pattern — not appropriate for gen-ui lead pages)
Orchestration: docs/TEMPLATE-REGISTRY.md#ResourcesRowTemplate