Freshness Ribbon

Per-section last-content-review date badge on each section heading (right end, after [edit] pencil). Three-stop colour scale: fresh (green, ≤90 days) / stale (amber, 91–365 days) / archived (gray, >365 days). Data source: git-blame at section level (excluding whitespace-only commits) or frontmatter content_reviewed_on override. dateModified per-section WebPageElement JSON-LD emission.

Live previewrendered from recipe via {tokens} resolution

Background [edit] 2026-03-15

Current implementations [edit] 2024-09-12

Historical context [edit] 2022-11-04

ARIA notes

Ribbon is <span> (not focusable) inside <h2>. Heading semantic is unbroken. aria-label on ribbon announces date AND semantic class ('Last reviewed YYYY-MM-DD — fresh/stale/archived'). Colour is never sole differentiator — date string is always present. :root[data-freshness-display='off'] hides all ribbons for reader-preference toggle.

The usage tab for this component is not yet authored. Creative Design Contributors — pick this up.

Recipe is at /api/components/freshness-ribbon.json.