Component showcase

Page teasers

Landing blocks that link to internal pages. 3 variants, 3 rendered live.

cards

page-teasersin useOpen live
desktop preview
desktop 1280px
mobile preview
mobile 390px
Files
  • src/components/sections/PageTeasers.astro
  • src/components/page-teasers.ts
How to pin

no

Reads
none (derived from content.pages) | content.pages[] navLabel/title/intro/teaserImage/image
Used by
not tracked (layout is seeded per site)
Quality gates
11 codes

site shape / pages: thin-page content-coverage page-route-missing broken-internal-link broken-image empty-page missing-pages unlinked-pages unused-scraped-content generic-page-slug language-mismatch

Selected by
planTeaser(): hashSeed(seed#teaser)%2 -> cards|rows, downgraded to rows unless every teaser has a photo; blocks.ts slots the teaser block on the landing

rows

page-teasersin useOpen live
desktop preview
desktop 1280px
mobile preview
mobile 390px
Files
  • src/components/sections/PageTeasers.astro
  • src/components/page-teasers.ts
How to pin

no

Reads
none (derived from content.pages) | content.pages[] navLabel/title/intro/teaserImage/image
Used by
not tracked (layout is seeded per site)
Quality gates
11 codes

site shape / pages: thin-page content-coverage page-route-missing broken-internal-link broken-image empty-page missing-pages unlinked-pages unused-scraped-content generic-page-slug language-mismatch

Selected by
planTeaser(): hashSeed(seed#teaser)%2 -> cards|rows, downgraded to rows unless every teaser has a photo; blocks.ts slots the teaser block on the landing

catalogue

page-cataloguein useOpen live
desktop preview
desktop 1280px
mobile preview
mobile 390px
Files
  • src/components/sections/PageCatalogue.astro
  • src/components/page-teasers.ts
  • src/components/layout.ts
How to pin

no

Reads
none | pagePhotoSets of content.pages in a group
Used by
not tracked (layout is seeded per site)
Quality gates
11 codes

site shape / pages: thin-page content-coverage page-route-missing broken-internal-link broken-image empty-page missing-pages unlinked-pages unused-scraped-content generic-page-slug language-mismatch

Selected by
planBlocks cataloguePage: a landing teaser block for a catalogue group renders PageCatalogue (photo tiles via GalleryTile)