# Newsletter Signup 5 – Inline callout with contained form

> A horizontal newsletter signup pattern presented inside a soft container to separate it from surrounding content. The headline and description anchor the left side while the inline form sits to the right, creating a clear scan path and compact footprint. Works well as an embedded callout within long pages and collapses cleanly to a stacked layout on smaller screens.

A shadcn/ui block from the [@shadcncraft](https://shadcncraft.com) registry, listed on [shadcn.exchange](https://shadcn.exchange/r/shadcncraft/newsletter-signup-5).

- Page, with a live preview: https://shadcn.exchange/r/shadcncraft/newsletter-signup-5
- Screenshot: https://abzjhwgwpdpz7ua5.public.blob.vercel-storage.com/shots/shadcncraft/newsletter-signup-5-light-71cb0f914a0827bc.png
- Registry item: https://shadcncraft.com/r/newsletter-signup-5.json
- Categories: newsletter-signup
- Listed: 2026-10-13, source last changed 2026-10-13

## Install

```bash
npx shadcn@latest add https://shadcncraft.com/r/newsletter-signup-5.json
```

Run it in a project that has shadcn/ui set up. It adds the files below and installs what they depend on.

## Dependencies

- Registry items: `button`, `input`, `@shadcncraft/section-heading`

## Notes from the registry

Tip: browse, preview and install every shadcncraft block from your editor with the shadcncraft extension for VS Code and Cursor: https://shadcncraft.com/ide-extension

## Files

### `blocks/pro-marketing/newsletter-signup/newsletter-signup-5/index.tsx`

```tsx
"use client";

import { IconPlaceholder } from "@/registry/icons/icon-placeholder";
import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input";
import {
  SectionHeading,
  SectionHeadingBody,
  SectionHeadingTitle,
} from "@/components/shadcncraft/pro-marketing/section-heading";

export function NewsletterSignup5() {
  return (
    <section className="py-6 lg:py-20">
      <div className="mx-auto max-w-7xl px-5 lg:px-8">
        <div className="flex flex-col justify-between gap-16 rounded-xl border bg-muted px-5 py-12 lg:flex-row lg:items-end lg:px-16 lg:py-20">
          {/* Section Heading */}
          <div className="flex-1">
            <SectionHeading>
              <SectionHeadingTitle>Stay in the loop</SectionHeadingTitle>
              <SectionHeadingBody className="text-balance">
                Get insights, product updates, and productivity tips straight to your
                inbox.
              </SectionHeadingBody>
            </SectionHeading>
          </div>

          {/* Newsletter Form */}
          <div className="flex max-w-md flex-col gap-2 lg:gap-3">
            <form className="flex flex-col gap-2 sm:flex-row">
              <Input placeholder="email@example.com" className="w-full" />
              <Button type="submit" aria-label="Subscribe to newsletter">
                <IconPlaceholder
                  lucide="Mail"
                  tabler="IconMail"
                  hugeicons="Mail01Icon"
                  phosphor="EnvelopeIcon"
                  remixicon="RiMailLine"
                />{" "}
                Subscribe
              </Button>
            </form>

            {/* Privacy Policy */}
            <span
              className="text-center text-sm text-muted-foreground lg:text-right"
              role="note"
            >
              We respect your privacy.
            </span>
          </div>
        </div>
      </div>
    </section>
  );
}
```
