EventDetailPublic
ImplementedEvent detail page layout — EventHero + (Description + Artists + Venue + Reviews + FAQ) on left, sticky TicketTierList + Buy CTA on right.
src/components/templates/eventdetailpublic/EventDetailPublic.tsxTemplate public de fiche événement : bandeau hero plein-largeur + cinq sections labellisées (À propos / Artistes / Lieu / Avis / FAQ) à gauche, panneau de billets sticky 380 px à droite. FR-CA : « À propos · Artistes · Lieu · Avis · FAQ ».
EventDetailPublic
Template - Commerce family (Family 7)
Slot-host de la page événement publique : hero plein-largeur, puis grille [1fr_380px] ≥lg — cinq sections <section aria-labelledby> à gauche, <aside> sticky à droite. Ordre DOM tickets-first sur mobile (NASA Rule 6). Aucun data fetching.
À la une
Festival Jazz Montréal 2026
14 concerts en plein air du 24 juin au 5 juillet.
- 24 juin – 5 juillet 2026
- Place des Festivals, Montréal
À propos
Quatorze concerts en plein air, du piano solo aux grandes formations, sur les scènes extérieures de la Place des Festivals.
Artistes
- Herbie Hancock
- Snarky Puppy
- Cécile McLorin Salvant
Lieu
- Disponible (< 30 %)
- Bien vendu (30-69 %)
- Presque complet (70-94 %)
- Complet (≥ 95 %)
Avis
« Une programmation d'une ampleur rare. » — La Presse
FAQ
Questions fréquentes
This component supports light and dark mode.
Composition
EventDetailPublic compose la page événement publique : un bandeau hero plein-largeur, puis une grille deux colonnes — à gauche les cinq sections labellisées (À propos, Artistes, Lieu, Avis, FAQ ; les trois optionnelles ne s'affichent que si le slot est fourni), à droite un aside sticky de 380 px (≥lg) accueillant le panneau de billets + le CTA d'achat. Sur mobile, l'aside passe au-dessus du contenu (ordre DOM tickets-first, NASA Rule 6). Le template ne s'occupe que de l'échafaudage et des titres de sections : chaque contenu est fourni par l'appelant (slot-host, zéro data fetching).
hero*React.ReactNodeFull-bleed hero band above the two-column body. Canonical filler: EventHero (owns its own heading/landmark semantics).
description*React.ReactNodeAbout-this-event content — first labelled section of the left column (« À propos »). Required (NASA Rule 5).
artistsReact.ReactNodeOptional line-up content — labelled section (« Artistes ») rendered only when provided.
venue*React.ReactNodeVenue block (map, address, access) — labelled section (« Lieu »). Required (NASA Rule 5).
reviewsReact.ReactNodeOptional visitor reviews block — labelled section (« Avis ») rendered only when provided.
faqReact.ReactNodeOptional FAQ block — labelled section (« FAQ ») rendered only when provided.
ticketPanel*React.ReactNodePurchase panel in the right <aside> — sticky ≥lg, above content on mobile (NASA Rule 6). Canonical filler: TicketTierList + Buy CTA.
locale"fr" | "en"Locale for the built-in bilingual section headings map (fr default).
labelsPartial<EventDetailPublicLabels>Per-key override of the bilingual section headings map.
classNamestringExtra classes appended to the root <div> element.
Props
EventDetailPublic
heroReact.ReactNode—Full-bleed hero band rendered edge-to-edge above the two-column body. Canonical filler: the EventHero organism (owns its own heading/landmark semantics — the template adds none).
descriptionReact.ReactNode—About-this-event content — first labelled section of the left column (« À propos »). Required (NASA Rule 5).
artistsReact.ReactNode—Optional line-up / artists content — renders its own labelled section (« Artistes ») only when provided.
venueReact.ReactNode—Venue block (map, address, access info) — labelled section (« Lieu »). Required (NASA Rule 5).
reviewsReact.ReactNode—Optional visitor reviews block — labelled section (« Avis ») only when provided.
faqReact.ReactNode—Optional FAQ block — labelled section (« FAQ ») only when provided.
ticketPanelReact.ReactNode—Ticket purchase panel rendered in the right-hand <aside>: sticky on ≥lg desktop, stacked ABOVE the content on mobile (NASA Rule 6). Canonical filler: TicketTierList + Buy CTA. Required (NASA Rule 5).
locale"fr" | "en"'fr'Switches the five section headings via the DEFAULT_LABELS map (À propos/About this event, Artistes/Line-up, Lieu/Venue, Avis/Reviews, FAQ).
labelsPartial<EventDetailPublicLabels>—Partial per-key override of the bilingual section headings map.
classNamestring—Appended to the root <div> class list.
<EventDetailPublic />Accessibility
Type
1 rulerender
1 rulea11y
1 ruleUsage
Import
import { EventDetailPublic } from "@epasslive/design-system"Example 1
<EventDetailPublic hero={<EventHero … />} description={<Body>…</Body>} venue={<VenueMap … />} ticketPanel={<TicketTierList … />} />Example 2
<EventDetailPublic hero={hero} description={about} artists={lineUp} venue={venueMap} reviews={<Reviews … />} faq={<FAQ … />} ticketPanel={panel} locale="en" />Anti-patterns
— Do not include business logic in templates
— Avoid hardcoded content in templates