5
Sponsor

Split

Split Hero rendered with email-safe, renderer-native components.

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/jsx-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

PropTypeDefaultDescription
themeEmailThemedefaultThemeRenderer 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.
imagesArray<{ 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.
overlayContentbooleanfalseConfigures 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 propsSelects an exact legacy composition when needed.