Browse the library
Blocks / Conversion
Newsletter signup
ProEmail capture section with perks, a consent line or checkbox, honeypot and a success state. Follows light and dark site themes, or sits on the warm ember surface.
Source included with Facade Pro
You get the full TypeScript source (456 lines), installed straight into your project, yours to edit.
Unlock for $149"use client";
import { NewsletterSignup } from "@/components/facade/newsletter-signup";
const wait = () => new Promise<void>((r) => setTimeout(r, 900));
export default function Demo() {
return (
<div>
<NewsletterSignup
variant="ember"
className="pb-6 sm:pb-8"
eyebrow="The Hearth Bakery letter"
title="Know what comes out of the oven this week."
description="A short note every Thursday with the weekend bread list, holiday preorder dates and the occasional recipe from our kitchen in Portland."
perks={["Weekly, on Thursdays", "Preorder dates first", "Unsubscribe anytime"]}
buttonLabel="Get the letter"
requireConsent
consent="Yes, email me the weekly bakery letter. You can unsubscribe with one click in any email."
successTitle="Welcome to the letter."
successText="We sent a confirmation link. The first note arrives on Thursday."
onSubmit={wait}
/>
<NewsletterSignup
className="pt-6 sm:pt-8"
eyebrow="Homeowner tips"
title="Seasonal reminders that save on repairs."
description="Once a month: what to check on your furnace, gutters and water heater before it turns into a service call. Written by our technicians in Denver."
onSubmit={wait}
/>
</div>
);
}Installation
npx shadcn@latest add @facadeui/newsletter-signupPro items install from the private @facadeui registry with your license key. Set it up once.
Usage
import { NewsletterSignup } from "@/components/facade/newsletter-signup";
export default function Page() {
return <NewsletterSignup />;
}Props
NewsletterSignupProps is exported, so you can extend or wrap it. Every prop has a default; <NewsletterSignup /> renders the example above.
| Prop | Type | Description |
|---|---|---|
| eyebrow | string | |
| title | string | |
| description | string | |
| perks | string[] | Short list of what subscribers get. |
| placeholder | string | |
| buttonLabel | string | |
| consent | React.ReactNode | Line under the form. Say how often you send and how to unsubscribe. |
| requireConsent | boolean | Show a checkbox with the consent line that must be checked before submit. |
| successTitle | string | |
| successText | string | |
| onSubmit | (values: NewsletterSignupValues) => void | Promise<void> | Called with valid values. Throw or reject to show the error state. |
| variant | "default" | "ember" | "default" follows the site theme (light and dark). "ember" sits on the warm drifting surface. |
| palette | EmberPaletteInput | Surface colors for the ember variant. Defaults to "ember". |
| cycle | boolean | Cross-fade slowly between the presets (ember variant). |
| className | string |
Ask your agent
With the Facade MCP server connected, this prompt is enough:
Add the Facade newsletter signup to this page and adapt the copy to our business.
FAQ
How do I install the newsletter signup?
Add the @facadeui registry with your license key to components.json once, then run npx shadcn@latest add @facadeui/newsletter-signup. The source lands in components/facade/newsletter-signup.tsx and you own it.
Is the newsletter signup free?
No, it is part of Facade Pro. One license is $149 one-time for one developer and covers unlimited client projects; Team is $399 for up to 10 developers.
Can I customize the newsletter signup?
Yes. It is plain React and Tailwind source in your project. Colors come from semantic tokens such as bg-brand, so your globals.css restyles it. 15 props are typed and exported as NewsletterSignupProps.