Skip to main content

Modules Documentation

Page specifications

Page-by-page specification using the standard template.

Complete

Three surfaces, three specs. Listing is browse-density. Details is conversion (download CTA prominence). Reader is comprehension (TOC + progress bar + body chrome). Each surface has a strict template.

Listing page

Hero
Brand eyebrow "FOUNDER FILES" + title + lede + filter pill row + "Available in EN, AR, FR" badge strip.
Featured file spotlight
`.card-editorial--spotlight` rendering of the featured file at the top. Larger cover preview, "Featured" eyebrow.
Filter row
Category · Language · Sponsorship status. Filter state persists in URL.
Card grid
`<app-founder-file-card *ngFor (download)="openDownload($event)">` 3-up desktop, 2-up tablet, 1-up mobile.
Download modal
<app-ff-download-modal *ngIf="modalOpen()">. Opens on any card’s Download CTA. Captures lead + consent.

Details page

Hero
2-column on desktop: 3:4 portrait cover (left, with editorial SVG fallback) + Title + brand-eyebrow with file number + dek + Best For block + Download / Open Reader CTAs + reading time + available-languages chip set.
What You’ll Learn
Numbered list of `learningPoints[]` from the file entity. 4-6 items, each one line.
Inside this file
TOC preview — lists section headings from `tocSections[]`. Each section links to its anchor in the reader.
Sponsor mini-row (conditional)
When `sponsorId` is set, renders sponsor tier chip + sponsor name + logo. Locale-aware.

Reader page

Sticky reader header
Back to details link + file title (compressed) + reading progress bar (0-100% based on scroll depth).
TOC sidebar
Sticky left rail on desktop. Lists all sections; current section gets active-state highlight (computed via IntersectionObserver on scroll).
Body sections
Each section has an anchor ID. HTML rendered via [innerHTML] + SafeHtmlPipe. `prose-editorial` typography class.
End-of-file CTAs
Download (if not yet downloaded), Next File (Phase 2), Share. Followed by Related Ecosystem Signals + Inline Signal CTA.