Background
The CMS will expose VideoHero content via schema (see feat(cms) schema issue). The web app needs a VideoHero component that consumes this data and renders the hero with video, optional heading/copy, and CTAs.
Expected outcome
- A VideoHero component exists in
apps/web that reads VideoHero block data (from Strapi/GraphQL) and renders the hero (video, heading, subheading, optional CTA).
- Component is integrated into the page/dynamic zone rendering pipeline.
Acceptance criteria
Possible solution(s)
- Add
apps/web/src/components/sections/VideoHero.tsx (or under existing structure); consume component fragment from generated client.
- Reuse shared
Media or Hero primitives if they exist; keep styling consistent with design system.
References
Background
The CMS will expose VideoHero content via schema (see feat(cms) schema issue). The web app needs a VideoHero component that consumes this data and renders the hero with video, optional heading/copy, and CTAs.
Expected outcome
apps/webthat reads VideoHero block data (from Strapi/GraphQL) and renders the hero (video, heading, subheading, optional CTA).Acceptance criteria
Possible solution(s)
apps/web/src/components/sections/VideoHero.tsx(or under existing structure); consume component fragment from generated client.MediaorHeroprimitives if they exist; keep styling consistent with design system.References
Resolves/Implements schema: feat(cms): add schema for VideoHero component #142 (feat(cms): add schema for VideoHero component)
apps/webcomponent structurepackages/graphqlgenerated typesParent: epic(web): Web section components for Experience-driven Easter watch page #176 Epic B (Web)
Related (CMS schema): feat(cms): add schema for VideoHero component #142