← Corpus / dididecks-ai / sitemap
/play/[deckSlug]/[variantSlug]/print/ — one-shot PDF export surface; renders the whole variant stacked for the browser print dialog
Print-styled route that renders every slot for a given (deck, variant) as a stacked sequence of SlideCanvas instances, page-broken with `page-break-after: always` per slide. No @page size override — the browser decides paper size; each SlideCanvas letterboxes inside that printable area via CSS-only container-query scaling (`cqi`/`cqb`). Reader prints via the browser dialog; PDF comes out as one slide per page. Static HTML/CSS, no JS — same constraint as Play-UI slides themselves, because runtime hydration would break the print render.
- Path
- sitemap/routes/play-print.md
- Authors
- Michael Staton
/play/[deckSlug]/[variantSlug]/print/
Render approach (calmstorm pattern, verbatim)
- Walks
SLOTS[variantSlug]in order - For each slot, looks up per-slide file at
src/components/slides/{variant}/{slot}-{slug}.astro; if found, renders inside<SlideCanvas>; if missing, renders<DecomposeFirstPlaceholder> - Each slide carries
page-break-after: alwaysso the browser inserts a page break between them - No
@pagesize override — browser dialog decides paper size. SlideCanvas’scontainer-type: sizelets the 1920×1080 design stage letterbox to whatever printable area appears.
Why not @page
Setting @page size: 1920px 1080px works in Chrome but is inconsistent across reader environments (Firefox print preview interprets differently; Safari struggles with non-letter sizes). Letting the browser pick paper size + scaling SlideCanvas within it is the more compatible path.
Status
- ✅ Shipped — calmstorm uses this in production for the LP-facing PDF send
- ✅ Plan reference:
Port-Enhanced-v2-Scroll-Slides-to-Static-16x9-Play-Slides-for-PDF-Export
Related
- [[play-slot]] — the per-slot interactive route this complements
- [[play-index]] — variant index
- [[../components/SlideCanvas]] — the 16:9 wrapper component
- [[../components/DecomposeFirstPlaceholder]] — the “not yet ported” stand-in
- [[../../plans/Port-Enhanced-v2-Scroll-Slides-to-Static-16x9-Play-Slides-for-PDF-Export]]