Zoeken...  ⌘K GitHub

FormLeadMagnet Forms

Donker lead-magnet blok: pitch links, beknopt opt-in formulier rechts.

/form-lead-magnet
src/components/forms/FormLeadMagnet.astro
---
/**
 * FormLeadMagnet — donker lead-magnet blok: pitch links, beknopt opt-in formulier rechts.
 *
 * Props:
 * - tag?: string
 * - headline?: string
 * - sub?: string
 * - benefit?: string
 * - namePlaceholder?: string
 * - emailPlaceholder?: string
 * - button?: string
 * - privacy?: string
 * - action?: string
 */
interface Props {
  tag?: string;
  headline?: string;
  sub?: string;
  benefit?: string;
  namePlaceholder?: string;
  emailPlaceholder?: string;
  button?: string;
  privacy?: string;
  action?: string;
}
const {
  tag = 'Gratis resource',
  headline = 'Download de gratis Google Ads gids',
  sub = 'Voor ambitieuze MKB-ondernemers',
  benefit = '100% gratis, direct in je inbox',
  namePlaceholder = 'Voornaam',
  emailPlaceholder = 'E-mailadres',
  button = 'Stuur mij de gids',
  privacy = 'We respecteren jouw privacy. Afmelden kan altijd.',
  action = '#',
} = Astro.props;
---

<section class="bl-section flm">
  <div class="bl-inner flm__inner">
    <div class="flm__box">
      <div class="flm__content">
        {tag && <p class="flm__tag">{tag}</p>}
        <h2 class="flm__headline">{headline}</h2>
        {sub && <p class="flm__sub">{sub}</p>}
        {benefit && <p class="flm__benefit">{benefit}</p>}
      </div>
      <form class="flm__form" action={action} novalidate>
        <input class="flm__input" type="text" name="name" placeholder={namePlaceholder} aria-label={namePlaceholder} required />
        <input class="flm__input" type="email" name="email" placeholder={emailPlaceholder} aria-label={emailPlaceholder} required />
        <button class="flm__btn" type="submit">{button}</button>
        {privacy && <p class="flm__privacy">{privacy}</p>}
      </form>
    </div>
  </div>
</section>

<style>
.flm{background:var(--color-primary, #0a0a0a)}
.flm__box{display:grid;grid-template-columns:1fr;gap:2rem;align-items:center}
.flm__tag{font-size:.8125rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#a5b4fc;margin:0 0 .75rem}
.flm__headline{font-size:clamp(1.75rem,4vw,2.25rem);font-weight:800;color:#fff;letter-spacing:-.02em;margin:0 0 .75rem;line-height:1.2}
.flm__sub{color:#e8e8e8;font-size:1.125rem;line-height:1.6;margin:0 0 1rem}
.flm__benefit{color:#aaa;font-size:1rem;letter-spacing:.02em;margin:0}
.flm__form{display:flex;flex-direction:column;gap:.75rem}
.flm__input{padding:.8rem 1rem;border:1.5px solid #444;border-radius:8px;font-size:1rem;color:#fff;background:#1a1a1a;outline:none;font-family:inherit;transition:border-color .2s;width:100%;box-sizing:border-box}
.flm__input::placeholder{color:#999}
.flm__input:focus{border-color:var(--color-accent, #6366f1)}
.flm__btn{padding:.9rem 1.5rem;background:var(--color-accent, #6366f1);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;transition:opacity .2s;width:100%}
.flm__btn:hover{opacity:.88}
.flm__privacy{font-size:.8125rem;color:#999;text-align:center;margin:0}
@media(min-width:760px){.flm__box{grid-template-columns:1fr 1fr;gap:3rem}}
</style>

Props

Prop Type Default Beschrijving
tag string - Klein label boven de kop
headline string - Koptekst
sub string - Ondertitel
benefit string - Voordeel-regel
namePlaceholder string - Placeholder naamveld
emailPlaceholder string - Placeholder e-mailveld
button string 'Stuur mij de gids' Knoptekst
privacy string - Privacy-regel onder de knop
action string '#' Form action URL

* = verplicht