Zoeken...  ⌘K GitHub

CTADownload CTA

CTA voor het downloaden van een resource (whitepaper, guide, checklist).

/cta-download
src/components/cta/CTADownload.astro
---
/**
 * CTADownload
 * CTA voor het downloaden van een resource (whitepaper, guide, checklist).
 */
interface Props {
  eyebrow?: string;
  headline: string;
  sub?: string;
  downloadLabel?: string;
  downloadHref: string;
  resourceTitle?: string;
  resourceMeta?: string;
  resourceIcon?: string;
}
const { eyebrow, headline, sub, downloadLabel = 'Download gratis', downloadHref, resourceTitle, resourceMeta, resourceIcon = '📄' } = Astro.props;
---
<section class="ctadl">
  <div class="ctadl-inner">
    <div class="ctadl-text">
      {eyebrow && <span class="ctadl-eyebrow">{eyebrow}</span>}
      <h2 class="ctadl-headline">{headline}</h2>
      {sub && <p class="ctadl-sub">{sub}</p>}
      <a href={downloadHref} class="ctadl-btn">{downloadLabel} ↓</a>
    </div>
    <div class="ctadl-preview">
      <div class="ctadl-doc">
        <span class="ctadl-doc-icon">{resourceIcon}</span>
        {resourceTitle && <span class="ctadl-doc-title">{resourceTitle}</span>}
        {resourceMeta && <span class="ctadl-doc-meta">{resourceMeta}</span>}
      </div>
    </div>
  </div>
</section>
<style>
  .ctadl { background: #f8fafc; border-top: 1px solid #e5e7eb; border-bottom: 1px solid #e5e7eb; padding: 4rem 2rem; }
  .ctadl-inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr auto; gap: 4rem; align-items: center; }
  .ctadl-eyebrow { display: block; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-accent,#6366f1); margin-bottom: 0.75rem; }
  .ctadl-headline { font-size: clamp(1.5rem, 3vw, 2.25rem); font-weight: 800; color: #0a0a0a; letter-spacing: -0.03em; line-height: 1.2; margin: 0 0 0.875rem; }
  .ctadl-sub { font-size: 1rem; color: #6b7280; line-height: 1.65; margin: 0 0 1.75rem; }
  .ctadl-btn { display: inline-flex; align-items: center; padding: 0.75rem 1.75rem; background: var(--color-accent,#6366f1); color: #fff; font-weight: 700; font-size: 0.9375rem; border-radius: 0.5rem; text-decoration: none; transition: opacity 0.2s; }
  .ctadl-btn:hover { opacity: 0.88; }
  .ctadl-doc { background: #fff; border: 1px solid #e5e7eb; border-radius: 0.75rem; padding: 2rem 1.75rem; display: flex; flex-direction: column; align-items: center; gap: 0.75rem; min-width: 160px; box-shadow: 0 4px 20px rgba(0,0,0,0.06); }
  .ctadl-doc-icon { font-size: 3rem; }
  .ctadl-doc-title { font-size: 0.875rem; font-weight: 600; color: #0a0a0a; text-align: center; }
  .ctadl-doc-meta { font-size: 0.75rem; color: #9ca3af; }
  @media (max-width: 640px) { .ctadl-inner { grid-template-columns: 1fr; gap: 2rem; } .ctadl-doc { flex-direction: row; min-width: auto; } }
</style>

Props

Prop Type Default Beschrijving
headline * string Hoofd CTA tekst
downloadHref * string Download URL
downloadLabel string 'Download gratis' Label van de download knop
eyebrow string Eyebrow boven de headline
sub string Ondertitel
resourceTitle string Naam van het document
resourceMeta string Metainfo (bestandstype, pagina's)
resourceIcon string Emoji icon voor het document

* = verplicht