5
Sponsor

Progress

Progress rendered with email-safe, renderer-native components.

import { Progress } from "@/components/email/progress";
import { defaultTheme } from "@/components/email/theme-default";

export function ProgressDemo() {
  return (
    <Progress
      layout="single"
      padding="none"
      content="minimal"
      theme={{ ...defaultTheme, containerWidth: "640px" }}
    />
  );
}

Installation

$ pnpm dlx shadcn@latest add @emailcn/react-email/progress

Usage

import { Progress } from "@/components/email/progress";
<Progress layout="single" padding="none" content="minimal" />

Examples

Full-width progress bar

minimal

import { Progress } from "@/components/email/progress";

export function ProgressLayoutSinglePaddingNoneContentMinimalExampleDemo() {
  return <Progress layout="single" padding="none" content="minimal" />;
}

title

import { Progress } from "@/components/email/progress";

export function ProgressLayoutSinglePaddingNoneContentTitleExampleDemo() {
  return <Progress layout="single" padding="none" content="title" />;
}

description

import { Progress } from "@/components/email/progress";

export function ProgressLayoutSinglePaddingNoneContentDescriptionExampleDemo() {
  return <Progress layout="single" padding="none" content="description" />;
}

text-top

import { Progress } from "@/components/email/progress";

export function ProgressLayoutSinglePaddingNoneContentTextTopExampleDemo() {
  return <Progress layout="single" padding="none" content="text-top" />;
}

Progress bar group

minimal

import { Progress } from "@/components/email/progress";

export function ProgressLayoutGroupPaddingNoneContentMinimalExampleDemo() {
  return <Progress layout="group" padding="none" content="minimal" />;
}

minimal padded

import { Progress } from "@/components/email/progress";

export function ProgressLayoutGroupPaddingPaddedContentMinimalExampleDemo() {
  return <Progress layout="group" padding="padded" content="minimal" />;
}

title

import { Progress } from "@/components/email/progress";

export function ProgressLayoutGroupPaddingNoneContentTitleExampleDemo() {
  return <Progress layout="group" padding="none" content="title" />;
}

title padded

import { Progress } from "@/components/email/progress";

export function ProgressLayoutGroupPaddingPaddedContentTitleExampleDemo() {
  return <Progress layout="group" padding="padded" content="title" />;
}

description

import { Progress } from "@/components/email/progress";

export function ProgressLayoutGroupPaddingNoneContentDescriptionExampleDemo() {
  return <Progress layout="group" padding="none" content="description" />;
}

description padded

import { Progress } from "@/components/email/progress";

export function ProgressLayoutGroupPaddingPaddedContentDescriptionExampleDemo() {
  return <Progress layout="group" padding="padded" content="description" />;
}

text-top

import { Progress } from "@/components/email/progress";

export function ProgressLayoutGroupPaddingNoneContentTextTopExampleDemo() {
  return <Progress layout="group" padding="none" content="text-top" />;
}

text-top padded

import { Progress } from "@/components/email/progress";

export function ProgressLayoutGroupPaddingPaddedContentTextTopExampleDemo() {
  return <Progress layout="group" padding="padded" content="text-top" />;
}

Progress bar columns

title

import { Progress } from "@/components/email/progress";

export function ProgressLayoutColumnsPaddingNoneContentTitleExampleDemo() {
  return <Progress layout="columns" padding="none" content="title" />;
}

title padded

import { Progress } from "@/components/email/progress";

export function ProgressLayoutColumnsPaddingPaddedContentTitleExampleDemo() {
  return <Progress layout="columns" padding="padded" content="title" />;
}

description

import { Progress } from "@/components/email/progress";

export function ProgressLayoutColumnsPaddingNoneContentDescriptionExampleDemo() {
  return <Progress layout="columns" padding="none" content="description" />;
}

description padded

import { Progress } from "@/components/email/progress";

export function ProgressLayoutColumnsPaddingPaddedContentDescriptionExampleDemo() {
  return <Progress layout="columns" padding="padded" content="description" />;
}

text-top

import { Progress } from "@/components/email/progress";

export function ProgressLayoutColumnsPaddingNoneContentTextTopExampleDemo() {
  return <Progress layout="columns" padding="none" content="text-top" />;
}

text-top padded

import { Progress } from "@/components/email/progress";

export function ProgressLayoutColumnsPaddingPaddedContentTextTopExampleDemo() {
  return <Progress layout="columns" padding="padded" content="text-top" />;
}

API Reference

PropTypeDefaultDescription
themeEmailThemedefaultThemeRenderer theme configuration.
itemsArray<{ title?: string; description?: string; value: number; color?: string }>Built-in itemsConfigures the component's items.
layout"single" | "group" | "columns""single"Configures the component's layout.
padding"none" | "padded""none"Configures the component's padding.
content"minimal" | "title" | "description" | "text-top""minimal"Configures the component's content.