Labs

Components

Featured

Email Capture

Expandable email CTA with bell-led transitions between idle and success.

All components

Installation

Coming soon. Components will be available via the registry once checkout goes live.

Usage

<EmailCapture
  placeholder="you@company.com"
  buttonLabel="Notify me"
  successMessage="You're on the list"
  onSubmit={async (email) => {
    await fetch("/api/waitlist", { method: "POST", body: JSON.stringify({ email }) });
  }}
/>

Props

PropTypeDefaultDescription
placeholderstring"Enter your email"Placeholder shown inside the expanded input.
buttonLabelstring"Subscribe"Label for the idle/CTA state of the trigger button.
successMessagestring"Subscribed"Confirmation copy shown after a successful submit.
onSubmit(email: string) => Promise<void> | voidHandler invoked with the validated email. Throw to surface an error state.

Use cases

  • Marketing waitlist

    Drop a low-friction CTA on a landing page without commandeering hero space.

  • Newsletter signup

    Inline footer or blog signup that stays unobtrusive until tapped.

  • Product launch alerts

    “Notify me when this ships” pattern for unreleased features or product variants.

  • Beta access requests

    Gate an early-access program behind a single email field that confirms in place.