import { OverlayHero } from "@/components/email/overlay-hero";
import { defaultTheme } from "@/components/email/theme-default";
export function OverlayHeroDemo() {
return (
<OverlayHero
treatment="block"
position="center-left"
theme={{ ...defaultTheme, containerWidth: "640px" }}
/>
);
}Installation
$ pnpm dlx shadcn@latest add @emailcn/mjml-react/overlay-hero
Usage
import { OverlayHero } from "@/components/email/overlay-hero";<OverlayHero treatment="block" position="center-left" />Examples
Hero aligned overlay
content-left
import { OverlayHero } from "@/components/email/overlay-hero";
export function OverlayHeroTreatmentAlignedVariantContentLeftExampleDemo() {
return <OverlayHero treatment="aligned" variant="content-left" />;
}content-left-reversed
import { OverlayHero } from "@/components/email/overlay-hero";
export function OverlayHeroTreatmentAlignedVariantContentLeftReversedExampleDemo() {
return <OverlayHero treatment="aligned" variant="content-left-reversed" />;
}content-right
import { OverlayHero } from "@/components/email/overlay-hero";
export function OverlayHeroTreatmentAlignedVariantContentRightExampleDemo() {
return <OverlayHero treatment="aligned" variant="content-right" />;
}content-right-reversed
import { OverlayHero } from "@/components/email/overlay-hero";
export function OverlayHeroTreatmentAlignedVariantContentRightReversedExampleDemo() {
return <OverlayHero treatment="aligned" variant="content-right-reversed" />;
}Hero block overlay
left-centered
import { OverlayHero } from "@/components/email/overlay-hero";
export function OverlayHeroTreatmentBlockPositionCenterLeftExampleDemo() {
return <OverlayHero treatment="block" position="center-left" />;
}left-top
import { OverlayHero } from "@/components/email/overlay-hero";
export function OverlayHeroTreatmentBlockBleedFalseVariantLeftTopExampleDemo() {
return <OverlayHero treatment="block" bleed={false} variant="left-top" />;
}left-bottom
import { OverlayHero } from "@/components/email/overlay-hero";
export function OverlayHeroTreatmentBlockBleedFalseVariantLeftBottomExampleDemo() {
return <OverlayHero treatment="block" bleed={false} variant="left-bottom" />;
}left-flush-vertical
import { OverlayHero } from "@/components/email/overlay-hero";
export function OverlayHeroTreatmentBlockBleedFalseVariantLeftFlushVerticalExampleDemo() {
return (
<OverlayHero
treatment="block"
bleed={false}
variant="left-flush-vertical"
/>
);
}right-centered
import { OverlayHero } from "@/components/email/overlay-hero";
export function OverlayHeroTreatmentBlockBleedFalseVariantRightCenteredExampleDemo() {
return (
<OverlayHero treatment="block" bleed={false} variant="right-centered" />
);
}right-top
import { OverlayHero } from "@/components/email/overlay-hero";
export function OverlayHeroTreatmentBlockBleedFalseVariantRightTopExampleDemo() {
return <OverlayHero treatment="block" bleed={false} variant="right-top" />;
}right-bottom
import { OverlayHero } from "@/components/email/overlay-hero";
export function OverlayHeroTreatmentBlockBleedFalseVariantRightBottomExampleDemo() {
return <OverlayHero treatment="block" bleed={false} variant="right-bottom" />;
}right-flush-vertical
import { OverlayHero } from "@/components/email/overlay-hero";
export function OverlayHeroTreatmentBlockBleedFalseVariantRightFlushVerticalExampleDemo() {
return (
<OverlayHero
treatment="block"
bleed={false}
variant="right-flush-vertical"
/>
);
}Hero block with bleed
left-centered
import { OverlayHero } from "@/components/email/overlay-hero";
export function OverlayHeroTreatmentBlockBleedVariantLeftCenteredExampleDemo() {
return <OverlayHero treatment="block" bleed variant="left-centered" />;
}left-top
import { OverlayHero } from "@/components/email/overlay-hero";
export function OverlayHeroTreatmentBlockBleedVariantLeftTopExampleDemo() {
return <OverlayHero treatment="block" bleed variant="left-top" />;
}left-bottom
import { OverlayHero } from "@/components/email/overlay-hero";
export function OverlayHeroTreatmentBlockBleedVariantLeftBottomExampleDemo() {
return <OverlayHero treatment="block" bleed variant="left-bottom" />;
}left-flush-vertical
import { OverlayHero } from "@/components/email/overlay-hero";
export function OverlayHeroTreatmentBlockBleedVariantLeftFlushVerticalExampleDemo() {
return <OverlayHero treatment="block" bleed variant="left-flush-vertical" />;
}right-centered
import { OverlayHero } from "@/components/email/overlay-hero";
export function OverlayHeroTreatmentBlockBleedVariantRightCenteredExampleDemo() {
return <OverlayHero treatment="block" bleed variant="right-centered" />;
}right-top
import { OverlayHero } from "@/components/email/overlay-hero";
export function OverlayHeroTreatmentBlockBleedVariantRightTopExampleDemo() {
return <OverlayHero treatment="block" bleed variant="right-top" />;
}right-bottom
import { OverlayHero } from "@/components/email/overlay-hero";
export function OverlayHeroTreatmentBlockBleedVariantRightBottomExampleDemo() {
return <OverlayHero treatment="block" bleed variant="right-bottom" />;
}right-flush-vertical
import { OverlayHero } from "@/components/email/overlay-hero";
export function OverlayHeroTreatmentBlockBleedVariantRightFlushVerticalExampleDemo() {
return <OverlayHero treatment="block" bleed variant="right-flush-vertical" />;
}Hero with overlay gradient
split-no-logo
import { OverlayHero } from "@/components/email/overlay-hero";
export function OverlayHeroTreatmentGradientVariantSplitNoLogoExampleDemo() {
return <OverlayHero treatment="gradient" variant="split-no-logo" />;
}split-with-logo
import { OverlayHero } from "@/components/email/overlay-hero";
export function OverlayHeroTreatmentGradientVariantSplitWithLogoExampleDemo() {
return <OverlayHero treatment="gradient" variant="split-with-logo" />;
}unified-no-logo
import { OverlayHero } from "@/components/email/overlay-hero";
export function OverlayHeroTreatmentGradientVariantUnifiedNoLogoExampleDemo() {
return <OverlayHero treatment="gradient" variant="unified-no-logo" />;
}unified-with-logo
import { OverlayHero } from "@/components/email/overlay-hero";
export function OverlayHeroTreatmentGradientVariantUnifiedWithLogoExampleDemo() {
return <OverlayHero treatment="gradient" variant="unified-with-logo" />;
}API Reference
| Prop | Type | Default | Description |
|---|---|---|---|
theme | EmailTheme | defaultTheme | Renderer theme configuration. |
content | { eyebrow?: string; heading?: string; emphasis?: string; subheading?: string; description?: string; price?: string; actions?: Array<{ href: string; label: string }> } | - | Configures the component's content. |
backgroundImage | { src: string; alt?: string } | - | Configures the component's backgroundimage. |
brand | { logo: { src: string; alt?: string }; href?: string } | - | Configures the component's brand. |
treatment | "aligned" | "block" | "gradient" | "content-card" | "block" | Configures the component's treatment. |
position | "top-left" | "center-left" | "bottom-left" | "top-right" | "center-right" | "bottom-right" | "center-left" | Configures the component's position. |
bleed | boolean | false | Configures the component's bleed. |
reverse | boolean | false | Configures the component's reverse. |
variant | "content-left" | "content-left-reversed" | "content-right" | "content-right-reversed" | "left-centered" | "left-top" | "left-bottom" | "left-flush-vertical" | "right-centered" | "right-top" | "right-bottom" | "right-flush-vertical" | "split-with-logo" | "split-no-logo" | "unified-with-logo" | "unified-no-logo" | Derived from the other props | Selects an exact legacy composition when needed. |
On This Page
InstallationUsageExamplesHero aligned overlaycontent-leftcontent-left-reversedcontent-rightcontent-right-reversedHero block overlayleft-centeredleft-topleft-bottomleft-flush-verticalright-centeredright-topright-bottomright-flush-verticalHero block with bleedleft-centeredleft-topleft-bottomleft-flush-verticalright-centeredright-topright-bottomright-flush-verticalHero with overlay gradientsplit-no-logosplit-with-logounified-no-logounified-with-logoAPI Reference