import { SplitHero } from "@/components/email/split-hero";
import { defaultTheme } from "@/components/email/theme-default";
export function SplitHeroDemo() {
return (
<SplitHero
treatment="contained"
imagePosition="right"
theme={{ ...defaultTheme, containerWidth: "640px" }}
/>
);
}Installation
$ pnpm dlx shadcn@latest add @emailcn/react-email/split-hero
Usage
import { SplitHero } from "@/components/email/split-hero";<SplitHero treatment="contained" imagePosition="right" />Examples
Hero overlayed split
overlay-left
import { SplitHero } from "@/components/email/split-hero";
export function SplitHeroTreatmentOverlayVariantOverlayLeftExampleDemo() {
return <SplitHero treatment="overlay" variant="overlay-left" />;
}overlay-right
import { SplitHero } from "@/components/email/split-hero";
export function SplitHeroTreatmentOverlayVariantOverlayRightExampleDemo() {
return <SplitHero treatment="overlay" variant="overlay-right" />;
}Hero split contained
single-image-left
import { SplitHero } from "@/components/email/split-hero";
export function SplitHeroTreatmentContainedImagePositionRightExampleDemo() {
return <SplitHero treatment="contained" imagePosition="right" />;
}single-image-right
import { SplitHero } from "@/components/email/split-hero";
export function SplitHeroTreatmentContainedVariantSingleImageRightExampleDemo() {
return <SplitHero treatment="contained" variant="single-image-right" />;
}square-images-left
import { SplitHero } from "@/components/email/split-hero";
export function SplitHeroTreatmentContainedVariantSquareImagesLeftExampleDemo() {
return <SplitHero treatment="contained" variant="square-images-left" />;
}square-images-right
import { SplitHero } from "@/components/email/split-hero";
export function SplitHeroTreatmentContainedVariantSquareImagesRightExampleDemo() {
return <SplitHero treatment="contained" variant="square-images-right" />;
}portrait-top-left
import { SplitHero } from "@/components/email/split-hero";
export function SplitHeroTreatmentContainedVariantPortraitTopLeftExampleDemo() {
return <SplitHero treatment="contained" variant="portrait-top-left" />;
}portrait-top-right
import { SplitHero } from "@/components/email/split-hero";
export function SplitHeroTreatmentContainedVariantPortraitTopRightExampleDemo() {
return <SplitHero treatment="contained" variant="portrait-top-right" />;
}portrait-bottom-left
import { SplitHero } from "@/components/email/split-hero";
export function SplitHeroTreatmentContainedVariantPortraitBottomLeftExampleDemo() {
return <SplitHero treatment="contained" variant="portrait-bottom-left" />;
}portrait-bottom-right
import { SplitHero } from "@/components/email/split-hero";
export function SplitHeroTreatmentContainedVariantPortraitBottomRightExampleDemo() {
return <SplitHero treatment="contained" variant="portrait-bottom-right" />;
}Hero split full bleed
image-left
import { SplitHero } from "@/components/email/split-hero";
export function SplitHeroTreatmentFullBleedVariantImageLeftExampleDemo() {
return <SplitHero treatment="full-bleed" variant="image-left" />;
}image-right
import { SplitHero } from "@/components/email/split-hero";
export function SplitHeroTreatmentFullBleedVariantImageRightExampleDemo() {
return <SplitHero treatment="full-bleed" variant="image-right" />;
}Hero with overlayed content
default
import { SplitHero } from "@/components/email/split-hero";
export function SplitHeroOverlayContentVariantDefaultExampleDemo() {
return <SplitHero overlayContent variant="default" />;
}slanted-left
import { SplitHero } from "@/components/email/split-hero";
export function SplitHeroOverlayContentVariantSlantedLeftExampleDemo() {
return <SplitHero overlayContent variant="slanted-left" />;
}slanted-right
import { SplitHero } from "@/components/email/split-hero";
export function SplitHeroOverlayContentVariantSlantedRightExampleDemo() {
return <SplitHero overlayContent variant="slanted-right" />;
}Hero with slanted split
left-slanted-up
import { SplitHero } from "@/components/email/split-hero";
export function SplitHeroTreatmentSlantedVariantLeftSlantedUpExampleDemo() {
return <SplitHero treatment="slanted" variant="left-slanted-up" />;
}left-slanted-down
import { SplitHero } from "@/components/email/split-hero";
export function SplitHeroTreatmentSlantedVariantLeftSlantedDownExampleDemo() {
return <SplitHero treatment="slanted" variant="left-slanted-down" />;
}right-slanted-up
import { SplitHero } from "@/components/email/split-hero";
export function SplitHeroTreatmentSlantedVariantRightSlantedUpExampleDemo() {
return <SplitHero treatment="slanted" variant="right-slanted-up" />;
}right-slanted-down
import { SplitHero } from "@/components/email/split-hero";
export function SplitHeroTreatmentSlantedVariantRightSlantedDownExampleDemo() {
return <SplitHero treatment="slanted" variant="right-slanted-down" />;
}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. |
images | Array<{ src: string; alt?: string }> | - | Configures the component's images. |
brand | { logo: { src: string; alt?: string }; href?: string } | - | Configures the component's brand. |
treatment | "contained" | "full-bleed" | "overlay" | "slanted" | "contained" | Configures the component's treatment. |
imagePosition | "left" | "right" | "right" | Configures the component's imageposition. |
slant | "up" | "down" | "down" | Configures the component's slant. |
overlayContent | boolean | false | Configures the component's overlaycontent. |
variant | "overlay-left" | "overlay-right" | "single-image-left" | "single-image-right" | "square-images-left" | "square-images-right" | "portrait-top-left" | "portrait-top-right" | "portrait-bottom-left" | "portrait-bottom-right" | "image-left" | "image-right" | "default" | "slanted-left" | "slanted-right" | "left-slanted-down" | "left-slanted-up" | "right-slanted-down" | "right-slanted-up" | Derived from the other props | Selects an exact legacy composition when needed. |
On This Page
InstallationUsageExamplesHero overlayed splitoverlay-leftoverlay-rightHero split containedsingle-image-leftsingle-image-rightsquare-images-leftsquare-images-rightportrait-top-leftportrait-top-rightportrait-bottom-leftportrait-bottom-rightHero split full bleedimage-leftimage-rightHero with overlayed contentdefaultslanted-leftslanted-rightHero with slanted splitleft-slanted-upleft-slanted-downright-slanted-upright-slanted-downAPI Reference