EventHero
ImplementedFull-bleed event-page hero — background image under a bg-ep-gradient-scrim readability scrim, teal uppercase eyebrow, h1 title, subtitle, a Date/Venue metadata <dl> and one optional inline CTA. FR/EN definition-term labels via locale (default fr). Content-driven height (no viewport preset). Mounts in the EventDetailPublic template's hero slot. No share/save actions, no tabbed info.
components/organisms/eventhero/EventHero.tsxBannière héros plein-largeur avec image de fond, dégradé sombre pour lisibilité, eyebrow + titre + sous-titre + métadonnées (date, lieu) + CTA. FR-CA : « À la une · Festival Jazz MTL · Place des Festivals ».
EventHero
Organism — Event family (Family 2)
Hero plein-largeur (full-bleed) avec image de fond et scrim de lisibilité (`bg-ep-gradient-scrim`) pour garantir la lisibilité du texte blanc. Hauteur déterminée par le contenu (aucun réglage viewport). Le CTA utilise focus-visible:ring-ep-teal + ring-offset pour la lisibilité sur fond sombre.
À la une
Festival Jazz Montréal 2026
14 concerts en plein air, du 24 juin au 5 juillet, sur la Place des Festivals.
- 24 juin → 5 juillet 2026
- Place des Festivals, Montréal
This component supports light and dark mode.
Props
eyebrow*stringSur-titre (ex. : « À la une »).
title*stringTitre principal (1 à 8 mots).
subtitle*stringSous-titre (1 à 2 phrases).
imageUrl*stringURL de l'image de fond (16:9 ou 21:9).
imageAlt*stringTexte alternatif obligatoire.
date*stringDate formatée.
venue*stringLieu.
cta{ label; href }Bouton d'appel à l'action.
locale"fr" | "en"Langue des termes <dt> uniquement — fr : « Date / Lieu », en : « Date / Venue ». Défaut : fr (aucun formatage de date).
classNamestringClasses supplémentaires ajoutées à la racine <section>.
Props
EventHero
eyebrowstring—Uppercase teal overline above the title (e.g. « À la une » / Featured).
titlestring—Rendered as the section <h1>; doubles as the section's accessible name via aria-labelledby.
subtitlestring—Deck line under the title, clamped to max-w-xl; inverse text at opacity-90.
imageUrlstring—Hero background image URL — rendered as an absolute object-cover <img> behind the scrim.
imageAltstring—Alt text for the background <img> — required, not decorative (WCAG 1.1.1).
datestring—Pre-formatted date string rendered verbatim as the Date <dd> — no formatting is applied.
venuestring—Venue line rendered verbatim as the Lieu/Venue <dd>.
cta{ label: string; href: string }—Optional inline link-CTA — bg-ep-btn-primary anchor (hover bg-ep-btn-primary-hover) with a trailing ArrowRight Phosphor icon; hidden when omitted.
locale"fr" | "en"'fr'Label language for the Date/Venue <dt> terms only — fr: « Date / Lieu », en: « Date / Venue ». FR default; no date formatting is applied.
classNamestring—Extra classes appended to the <section> root.
<EventHero />Accessibility
Type
1 ruleARIA
1 ruletap-target
1 ruleUsage
Import
import { EventHero } from "@epasslive/design-system"Example 1
<EventHero eyebrow="Concert" title="SOIRÉE LIVE" subtitle="Quintet invité : Riverside Collective" imageUrl="/img/soiree-live.jpg" imageAlt="Scène éclairée, foule en première ligne" date="24 juin 2026, 20 h" venue="Marché Bonsecours" />Example 2
<EventHero eyebrow="Featured" title="Festival Jazz MTL 2026" subtitle="14 free outdoor concerts" imageUrl="/img/jazz-mtl.jpg" imageAlt="Jazz pianist on stage" date="Jun 24 → Jul 5, 2026" venue="Place des Festivals" cta={{ label: "Get tickets", href: "/events/jazz-mtl-2026" }} locale="en" />Anti-patterns
— Do not fetch data directly in organisms
— Avoid tight coupling to specific data sources
— Do not pass locale expecting date formatting — it switches only the Date/Venue <dt> labels; format date strings at the call site
— Do not reach for this organism for the marketing landing hero — that is Hero (HeroSearch, featured badges, height presets)