import { UtilityFooter } from "@/components/email/utility-footer";
import { defaultTheme } from "@/components/email/theme-default";
export function UtilityFooterDemo() {
return (
<UtilityFooter
content="socials"
alignment="center"
columns={1}
theme={{ ...defaultTheme, containerWidth: "640px" }}
/>
);
}Installation
$ pnpm dlx shadcn@latest add @emailcn/mjml-react/utility-footer
Usage
import { UtilityFooter } from "@/components/email/utility-footer";<UtilityFooter content="socials" alignment="center" columns={1} />Examples
Footer with app store buttons
centered
import { UtilityFooter } from "@/components/email/utility-footer";
export function UtilityFooterContentAppStoresColumns1ExampleDemo() {
return <UtilityFooter content="app-stores" columns={1} />;
}two columns
import { UtilityFooter } from "@/components/email/utility-footer";
export function UtilityFooterContentAppStoresColumns2ExampleDemo() {
return <UtilityFooter content="app-stores" columns={2} />;
}with title
import { UtilityFooter } from "@/components/email/utility-footer";
export function UtilityFooterContentAppStoresColumns1TitleExampleDemo() {
return (
<UtilityFooter content="app-stores" columns={1} title="Download our app" />
);
}Footer with background image
bottom image content left logo
import { UtilityFooter } from "@/components/email/utility-footer";
import { emailAsset } from "@/components/email/email-assets";
export function UtilityFooterBackgroundImagePositionBottomVariantBottomImageContentLogoPositionLeftExampleDemo() {
return (
<UtilityFooter
backgroundImage={{
position: "bottom",
src: emailAsset("images/image-landscape-1.jpg"),
}}
variant="bottom-image-content"
logoPosition="left"
/>
);
}bottom image 2-column menu left logo
import { UtilityFooter } from "@/components/email/utility-footer";
import { emailAsset } from "@/components/email/email-assets";
export function UtilityFooterBackgroundImagePositionBottomVariantBottomImage2ColumnMenuLogoPositionLeftExampleDemo() {
return (
<UtilityFooter
backgroundImage={{
position: "bottom",
src: emailAsset("images/image-landscape-1.jpg"),
}}
variant="bottom-image-2-column-menu"
logoPosition="left"
/>
);
}bottom image 2-column menu right logo
import { UtilityFooter } from "@/components/email/utility-footer";
import { emailAsset } from "@/components/email/email-assets";
export function UtilityFooterBackgroundImagePositionBottomVariantBottomImage2ColumnMenuLogoPositionRightExampleDemo() {
return (
<UtilityFooter
backgroundImage={{
position: "bottom",
src: emailAsset("images/image-landscape-1.jpg"),
}}
variant="bottom-image-2-column-menu"
logoPosition="right"
/>
);
}bottom image 3-column menu left logo
import { UtilityFooter } from "@/components/email/utility-footer";
import { emailAsset } from "@/components/email/email-assets";
export function UtilityFooterBackgroundImagePositionBottomVariantBottomImage3ColumnMenuLogoPositionLeftExampleDemo() {
return (
<UtilityFooter
backgroundImage={{
position: "bottom",
src: emailAsset("images/image-landscape-1.jpg"),
}}
variant="bottom-image-3-column-menu"
logoPosition="left"
/>
);
}bottom image 3-column menu right logo
import { UtilityFooter } from "@/components/email/utility-footer";
import { emailAsset } from "@/components/email/email-assets";
export function UtilityFooterBackgroundImagePositionBottomVariantBottomImage3ColumnMenuLogoPositionRightExampleDemo() {
return (
<UtilityFooter
backgroundImage={{
position: "bottom",
src: emailAsset("images/image-landscape-1.jpg"),
}}
variant="bottom-image-3-column-menu"
logoPosition="right"
/>
);
}bottom image centered
import { UtilityFooter } from "@/components/email/utility-footer";
import { emailAsset } from "@/components/email/email-assets";
export function UtilityFooterBackgroundImagePositionBottomVariantBottomImageCenteredLogoPositionLeftExampleDemo() {
return (
<UtilityFooter
backgroundImage={{
position: "bottom",
src: emailAsset("images/image-landscape-1.jpg"),
}}
variant="bottom-image-centered"
logoPosition="left"
/>
);
}bottom image content right logo
import { UtilityFooter } from "@/components/email/utility-footer";
import { emailAsset } from "@/components/email/email-assets";
export function UtilityFooterBackgroundImagePositionBottomVariantBottomImageContentLogoPositionRightExampleDemo() {
return (
<UtilityFooter
backgroundImage={{
position: "bottom",
src: emailAsset("images/image-landscape-1.jpg"),
}}
variant="bottom-image-content"
logoPosition="right"
/>
);
}top image 3-column menu left logo
import { UtilityFooter } from "@/components/email/utility-footer";
import { emailAsset } from "@/components/email/email-assets";
export function UtilityFooterBackgroundImagePositionTopVariantTopImage3ColumnMenuLogoPositionLeftExampleDemo() {
return (
<UtilityFooter
backgroundImage={{
position: "top",
src: emailAsset("images/image-landscape-1.jpg"),
}}
variant="top-image-3-column-menu"
logoPosition="left"
/>
);
}top image 3-column menu right logo
import { UtilityFooter } from "@/components/email/utility-footer";
import { emailAsset } from "@/components/email/email-assets";
export function UtilityFooterBackgroundImagePositionTopVariantTopImage3ColumnMenuLogoPositionRightExampleDemo() {
return (
<UtilityFooter
backgroundImage={{
position: "top",
src: emailAsset("images/image-landscape-1.jpg"),
}}
variant="top-image-3-column-menu"
logoPosition="right"
/>
);
}top image address left logo
import { UtilityFooter } from "@/components/email/utility-footer";
import { emailAsset } from "@/components/email/email-assets";
export function UtilityFooterBackgroundImagePositionTopVariantTopImageAddressLogoPositionLeftExampleDemo() {
return (
<UtilityFooter
backgroundImage={{
position: "top",
src: emailAsset("images/image-landscape-1.jpg"),
}}
variant="top-image-address"
logoPosition="left"
/>
);
}top image address right logo
import { UtilityFooter } from "@/components/email/utility-footer";
import { emailAsset } from "@/components/email/email-assets";
export function UtilityFooterBackgroundImagePositionTopVariantTopImageAddressLogoPositionRightExampleDemo() {
return (
<UtilityFooter
backgroundImage={{
position: "top",
src: emailAsset("images/image-landscape-1.jpg"),
}}
variant="top-image-address"
logoPosition="right"
/>
);
}top image centered
import { UtilityFooter } from "@/components/email/utility-footer";
import { emailAsset } from "@/components/email/email-assets";
export function UtilityFooterBackgroundImagePositionTopVariantTopImageCenteredLogoPositionLeftExampleDemo() {
return (
<UtilityFooter
backgroundImage={{
position: "top",
src: emailAsset("images/image-landscape-1.jpg"),
}}
variant="top-image-centered"
logoPosition="left"
/>
);
}top image content left logo
import { UtilityFooter } from "@/components/email/utility-footer";
import { emailAsset } from "@/components/email/email-assets";
export function UtilityFooterBackgroundImagePositionTopVariantTopImageContentLogoPositionLeftExampleDemo() {
return (
<UtilityFooter
backgroundImage={{
position: "top",
src: emailAsset("images/image-landscape-1.jpg"),
}}
variant="top-image-content"
logoPosition="left"
/>
);
}top image content right logo
import { UtilityFooter } from "@/components/email/utility-footer";
import { emailAsset } from "@/components/email/email-assets";
export function UtilityFooterBackgroundImagePositionTopVariantTopImageContentLogoPositionRightExampleDemo() {
return (
<UtilityFooter
backgroundImage={{
position: "top",
src: emailAsset("images/image-landscape-1.jpg"),
}}
variant="top-image-content"
logoPosition="right"
/>
);
}top image logo bottom
import { UtilityFooter } from "@/components/email/utility-footer";
import { emailAsset } from "@/components/email/email-assets";
export function UtilityFooterBackgroundImagePositionTopVariantTopImageLogoBottomLogoPositionLeftExampleDemo() {
return (
<UtilityFooter
backgroundImage={{
position: "top",
src: emailAsset("images/image-landscape-1.jpg"),
}}
variant="top-image-logo-bottom"
logoPosition="left"
/>
);
}Footer with company locations
stacked
import { UtilityFooter } from "@/components/email/utility-footer";
export function UtilityFooterContentLocationsColumns1ExampleDemo() {
return <UtilityFooter content="locations" columns={1} />;
}grid
import { UtilityFooter } from "@/components/email/utility-footer";
export function UtilityFooterContentLocationsColumns2ExampleDemo() {
return <UtilityFooter content="locations" columns={2} />;
}Footer with legal text
default
import { UtilityFooter } from "@/components/email/utility-footer";
export function UtilityFooterContentLegalExampleDemo() {
return <UtilityFooter content="legal" />;
}Footer with social icons and address
left
import { UtilityFooter } from "@/components/email/utility-footer";
export function UtilityFooterContentAddressAlignmentLeftExampleDemo() {
return <UtilityFooter content="address" alignment="left" />;
}center
import { UtilityFooter } from "@/components/email/utility-footer";
export function UtilityFooterContentAddressAlignmentCenterExampleDemo() {
return <UtilityFooter content="address" alignment="center" />;
}right
import { UtilityFooter } from "@/components/email/utility-footer";
export function UtilityFooterContentAddressAlignmentRightExampleDemo() {
return <UtilityFooter content="address" alignment="right" />;
}Simple footer with social icons
left
import { UtilityFooter } from "@/components/email/utility-footer";
export function UtilityFooterContentSocialsAlignmentLeftExampleDemo() {
return <UtilityFooter content="socials" alignment="left" />;
}center
import { UtilityFooter } from "@/components/email/utility-footer";
export function UtilityFooterContentSocialsAlignmentCenterColumns1ExampleDemo() {
return <UtilityFooter content="socials" alignment="center" columns={1} />;
}right
import { UtilityFooter } from "@/components/email/utility-footer";
export function UtilityFooterContentSocialsAlignmentRightExampleDemo() {
return <UtilityFooter content="socials" alignment="right" />;
}API Reference
| Prop | Type | Default | Description |
|---|---|---|---|
theme | EmailTheme | defaultTheme | Renderer theme configuration. |
brand | { logo: { src: string; alt?: string }; href?: string } | - | Configures the component's brand. |
socials | Array<{ iconSrc: string; label: string; href: string }> | - | Configures the component's socials. |
legal | { copyright?: string; text?: string; unsubscribeHref?: string; preferencesHref?: string } | - | Configures the component's legal. |
content | "socials" | "address" | "legal" | "locations" | "app-stores" | "socials" | Configures the component's content. |
locations | Array<{ name: string; address: string }> | - | Configures the component's locations. |
address | string | "© 2026 emailcn\nemailcn | 155 Bdv Saint Germain | 75505 Paris" | Configures the component's address. |
title | string | "Follow us" | Configures the component's title. |
alignment | "left" | "center" | "right" | "center" | Configures the component's alignment. |
columns | 1 | 2 | 1 | Configures the component's columns. |
logoPosition | "left" | "right" | "left" | Positions the logo in supported layouts. |
backgroundImage | { src: string; alt?: string; position?: "top" | "bottom" } | - | Configures the component's backgroundimage. |
variant | "centered" | "two-columns" | "with-title" | "bottom-image-content" | "bottom-image-2-column-menu" | "bottom-image-3-column-menu" | "bottom-image-centered" | "top-image-content" | "top-image-3-column-menu" | "top-image-address" | "top-image-centered" | "top-image-logo-bottom" | "stacked" | "grid" | "left-logo" | "right-logo" | "left-aligned" | "right-aligned" | Derived from the other props | Selects an exact legacy composition when needed. |
On This Page
InstallationUsageExamplesFooter with app store buttonscenteredtwo columnswith titleFooter with background imagebottom image content left logobottom image 2-column menu left logobottom image 2-column menu right logobottom image 3-column menu left logobottom image 3-column menu right logobottom image centeredbottom image content right logotop image 3-column menu left logotop image 3-column menu right logotop image address left logotop image address right logotop image centeredtop image content left logotop image content right logotop image logo bottomFooter with company locationsstackedgridFooter with legal textdefaultFooter with social icons and addressleftcenterrightSimple footer with social iconsleftcenterrightAPI Reference