Zoeken...  ⌘K GitHub

CtaImageBg CTA

Full-bleed CTA over een achtergrondafbeelding met donkere overlay: kop, sub en twee knoppen.

/cta-image-bg
src/components/cta/CtaImageBg.astro
---
/**
 * CtaImageBg
 * Full-bleed CTA over een achtergrondafbeelding met donkere overlay: kop, sub
 * en twee knoppen, gecentreerd.
 *
 * Props:
 * - image: string             URL van de achtergrondafbeelding
 * - overlay?: string          overlay-kleur (default donker, 70%)
 * - headline: string
 * - sub?: string
 * - primary?: { label: string; href: string }
 * - secondary?: { label: string; href: string }
 */
interface Props {
  image: string;
  overlay?: string;
  headline: string;
  sub?: string;
  primary?: { label: string; href: string };
  secondary?: { label: string; href: string };
}
const { image, overlay = 'rgba(0,0,0,0.7)', headline, sub, primary, secondary } = Astro.props;
---

<section class="bl-section ctaib" style={`background-image:url('${image}')`}>
  <div class="ctaib-overlay" style={`background:${overlay}`}></div>
  <div class="bl-inner bl-inner--narrow ctaib-inner">
    <h2 class="ctaib-headline">{headline}</h2>
    {sub && <p class="ctaib-sub">{sub}</p>}
    {(primary || secondary) && (
      <div class="ctaib-btns">
        {primary && <a href={primary.href} class="ctaib-btn-primary">{primary.label}</a>}
        {secondary && <a href={secondary.href} class="ctaib-btn-secondary">{secondary.label}</a>}
      </div>
    )}
  </div>
</section>

<style>
.ctaib{position:relative;background-size:cover;background-position:center}
.ctaib-overlay{position:absolute;inset:0}
.ctaib-inner{position:relative;z-index:1;text-align:center}
.ctaib-headline{font-size:clamp(2rem,5vw,3.5rem);font-weight:900;color:#fff;letter-spacing:-.04em;line-height:1.1;margin:0 0 1.25rem}
.ctaib-sub{font-size:1.125rem;color:#f0f0f0;line-height:1.65;margin:0 0 2.5rem}
.ctaib-btns{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
.ctaib-btn-primary{padding:.9375rem 2.5rem;background:var(--color-accent,#6366f1);color:#fff;font-weight:700;font-size:1rem;border-radius:.5rem;text-decoration:none;transition:opacity .2s}
.ctaib-btn-primary:hover{opacity:.88}
.ctaib-btn-secondary{padding:.9375rem 2.5rem;border:2px solid rgba(255,255,255,.6);color:#fff;font-weight:600;font-size:1rem;border-radius:.5rem;text-decoration:none;transition:border-color .2s}
.ctaib-btn-secondary:hover{border-color:#fff}
</style>

Props

Prop Type Default Beschrijving
image * string - URL van de achtergrondafbeelding
overlay string rgba(0,0,0,0.7) Overlay-kleur
headline * string - H2-kop
sub string - Ondertitel
primary { label: string; href: string } - Primaire knop
secondary { label: string; href: string } - Secundaire knop

* = verplicht