Featured
Email Capture
Expandable email CTA with bell-led transitions between idle and success.
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
| Prop | Type | Default | Description |
|---|---|---|---|
| placeholder | string | "Enter your email" | Placeholder shown inside the expanded input. |
| buttonLabel | string | "Subscribe" | Label for the idle/CTA state of the trigger button. |
| successMessage | string | "Subscribed" | Confirmation copy shown after a successful submit. |
| onSubmit | (email: string) => Promise<void> | void | — | Handler 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.