Skip to main content
All extensions are available from @react-email/editor/extensions and are included in StarterKit by default. Each can be configured via StarterKit.configure() or imported individually.

Body

Email body wrapper element.
Record<string, any>
Extra HTML attributes applied to the body element.

Section

Content section container.
Record<string, any>
Extra HTML attributes applied to the section element.

Container

Primary email content wrapper. In StarterKit, top-level blocks are wrapped in a container node so the document exports through React Email’s <Container> component.
Record<string, any>
Extra HTML attributes applied to the editor wrapper for the container node.
When HTML is pasted or imported, this extension also recognizes React Email-style container tables: a presentation table with a max-width and a single row/cell is parsed back into a container node.

Div

Generic div container.
Record<string, any>
Extra HTML attributes applied to the div element.

Paragraph

Text paragraph.
Record<string, any>
Extra HTML attributes applied to the paragraph element.

Heading

Heading levels 1–6.
number[]
default:"[1, 2, 3, 4, 5, 6]"
Which heading levels to enable.
Record<string, any>
Extra HTML attributes applied to the heading element.

Blockquote

Block quote element.
Record<string, any>
Extra HTML attributes applied to the blockquote element.

CodeBlockPrism

Code block with Prism.js syntax highlighting.
string | null
Default language for syntax highlighting.
Record<string, any>
Extra HTML attributes applied to the code block element.

Divider

Horizontal rule / separator.
Record<string, any>
Extra HTML attributes applied to the hr element.

Button

Email button (styled anchor element).
Record<string, any>
Extra HTML attributes applied to the button element.

PreviewText

Email preview text (shown in inbox list views).

BulletList

Unordered list.
Record<string, any>
Extra HTML attributes applied to the ul element.

OrderedList

Ordered (numbered) list.
Record<string, any>
Extra HTML attributes applied to the ol element.

ListItem

Individual list item.
Record<string, any>
Extra HTML attributes applied to the li element.

TwoColumns

Two column layout container. Inserts two ColumnsColumn children.

ThreeColumns

Three column layout container. Inserts three ColumnsColumn children.

FourColumns

Four column layout container. Inserts four ColumnsColumn children.

ColumnsColumn

Individual column within a column layout. Automatically created by column insertion commands.

Table

Table container.
Record<string, any>
Extra HTML attributes applied to the table element.

TableRow

Table row.
Record<string, any>
Extra HTML attributes applied to the tr element.

TableCell

Table cell.
Record<string, any>
Extra HTML attributes applied to the td element.

TableHeader

Table header cell.

Bold

Bold text formatting.
Record<string, any>
Extra HTML attributes applied to the strong element.

Italic

Italic text formatting.
Record<string, any>
Extra HTML attributes applied to the em element.

Strike

Strikethrough text formatting.
Record<string, any>
Extra HTML attributes applied to the s element.

Underline

Underline text formatting.
Record<string, any>
Extra HTML attributes applied to the u element.

Code

Inline code formatting.
Record<string, any>
Extra HTML attributes applied to the code element.

Sup

Superscript text.
Record<string, any>
Extra HTML attributes applied to the sup element.

Uppercase

Uppercase text transform.
Hyperlink with extended email attributes.
boolean
default:"false"
Whether clicking a link navigates to the URL. Disabled by default in the editor.
Record<string, any>
Extra HTML attributes applied to the a element.

Text

Base text node. Required for any text content.

AlignmentAttribute

Adds text alignment support (left, center, right) to block nodes.
string[]
Node types that support alignment.

StyleAttribute

Adds inline CSS style support to nodes.

ClassAttribute

Adds CSS class name support to nodes.

TrailingNode

Keeps an empty block at the end of the target node so the caret can move below the last block and users can continue typing. In StarterKit, it is configured to append an empty paragraph inside each container, section, and columnsColumn.
string
default:"schema default block (typically 'paragraph')"
Node type to insert when a trailing block is needed.
string | string[]
default:"'doc'"
Node type (or array of node types) that receives the trailing block. When an array is provided, a trailing node is appended inside every matching node type. StarterKit overrides this to ['container', 'section', 'columnsColumn'].
string | string[]
default:"[]"
Node types after which no trailing block should be inserted. The inserted node type is always treated as disallowed automatically, so a trailing paragraph will not be added after another paragraph.

PreservedStyle

Preserves inline formatting when unlinking text.

GlobalContent

Stores metadata (like custom CSS) that persists in the document but isn’t visible. Used by the serializer to inject global styles.

MaxNesting

Enforces a maximum nesting depth for the document.
number
Maximum allowed nesting depth.
string[]
Node types to enforce the nesting limit on.

HardBreak

Line break within a block (Shift+Enter).