> ## Documentation Index
> Fetch the complete documentation index at: https://react.email/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Extensions Reference

> Complete reference of all built-in editor extensions.

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.

> **Block Nodes**
>
> ### Body
>
> Email body wrapper element.
>
> **HTMLAttributes** `Record\<string, any\>`
>
> Extra HTML attributes applied to the body element.
>
> ***
>
> ### Section
>
> Content section container.
>
> **HTMLAttributes** `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>`](https://react.email/docs/components/container) component.
>
> **HTMLAttributes** `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.
>
> **HTMLAttributes** `Record\<string, any\>`
>
> Extra HTML attributes applied to the div element.
>
> ***
>
> ### Paragraph
>
> Text paragraph.
>
> **HTMLAttributes** `Record\<string, any\>`
>
> Extra HTML attributes applied to the paragraph element.
>
> ***
>
> ### Heading
>
> Heading levels 1–6.
>
> **levels** `number[]` (default: \[1, 2, 3, 4, 5, 6])
>
> Which heading levels to enable.
>
> **HTMLAttributes** `Record\<string, any\>`
>
> Extra HTML attributes applied to the heading element.
>
> ***
>
> ### Blockquote
>
> Block quote element.
>
> **HTMLAttributes** `Record\<string, any\>`
>
> Extra HTML attributes applied to the blockquote element.
>
> ***
>
> ### CodeBlockPrism
>
> Code block with Prism.js syntax highlighting.
>
> **defaultLanguage** `string | null`
>
> Default language for syntax highlighting.
>
> **HTMLAttributes** `Record\<string, any\>`
>
> Extra HTML attributes applied to the code block element.
>
> ***
>
> ### Divider
>
> Horizontal rule / separator.
>
> **HTMLAttributes** `Record\<string, any\>`
>
> Extra HTML attributes applied to the hr element.
>
> ***
>
> ### Button
>
> Email button (styled anchor element).
>
> **HTMLAttributes** `Record\<string, any\>`
>
> Extra HTML attributes applied to the button element.
>
> ***
>
> ### PreviewText
>
> Email preview text (shown in inbox list views).

> **Lists**
>
> ### BulletList
>
> Unordered list.
>
> **HTMLAttributes** `Record\<string, any\>`
>
> Extra HTML attributes applied to the ul element.
>
> ***
>
> ### OrderedList
>
> Ordered (numbered) list.
>
> **HTMLAttributes** `Record\<string, any\>`
>
> Extra HTML attributes applied to the ol element.
>
> ***
>
> ### ListItem
>
> Individual list item.
>
> **HTMLAttributes** `Record\<string, any\>`
>
> Extra HTML attributes applied to the li element.

> **Layout**
>
> ### 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.

> **Tables**
>
> ### Table
>
> Table container.
>
> **HTMLAttributes** `Record\<string, any\>`
>
> Extra HTML attributes applied to the table element.
>
> ***
>
> ### TableRow
>
> Table row.
>
> **HTMLAttributes** `Record\<string, any\>`
>
> Extra HTML attributes applied to the tr element.
>
> ***
>
> ### TableCell
>
> Table cell.
>
> **HTMLAttributes** `Record\<string, any\>`
>
> Extra HTML attributes applied to the td element.
>
> ***
>
> ### TableHeader
>
> Table header cell.

> **Inline Marks**
>
> ### Bold
>
> Bold text formatting.
>
> **HTMLAttributes** `Record\<string, any\>`
>
> Extra HTML attributes applied to the strong element.
>
> ***
>
> ### Italic
>
> Italic text formatting.
>
> **HTMLAttributes** `Record\<string, any\>`
>
> Extra HTML attributes applied to the em element.
>
> ***
>
> ### Strike
>
> Strikethrough text formatting.
>
> **HTMLAttributes** `Record\<string, any\>`
>
> Extra HTML attributes applied to the s element.
>
> ***
>
> ### Underline
>
> Underline text formatting.
>
> **HTMLAttributes** `Record\<string, any\>`
>
> Extra HTML attributes applied to the u element.
>
> ***
>
> ### Code
>
> Inline code formatting.
>
> **HTMLAttributes** `Record\<string, any\>`
>
> Extra HTML attributes applied to the code element.
>
> ***
>
> ### Sup
>
> Superscript text.
>
> **HTMLAttributes** `Record\<string, any\>`
>
> Extra HTML attributes applied to the sup element.
>
> ***
>
> ### Uppercase
>
> Uppercase text transform.
>
> ***
>
> ### Link
>
> Hyperlink with extended email attributes.
>
> **openOnClick** `boolean` (default: false)
>
> Whether clicking a link navigates to the URL. Disabled by default in the editor.
>
> **HTMLAttributes** `Record\<string, any\>`
>
> Extra HTML attributes applied to the a element.
>
> ***
>
> ### Text
>
> Base text node. Required for any text content.

> **Attributes**
>
> ### AlignmentAttribute
>
> Adds text alignment support (left, center, right) to block nodes.
>
> **types** `string[]`
>
> Node types that support alignment.
>
> ***
>
> ### StyleAttribute
>
> Adds inline CSS style support to nodes.
>
> ***
>
> ### ClassAttribute
>
> Adds CSS class name support to nodes.

> **Utility**
>
> ***
>
> ### 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`.
>
> **node** `string` (default: schema default block (typically 'paragraph'))
>
> Node type to insert when a trailing block is needed.
>
> **appendTo** `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']`.
>
> **notAfter** `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.
>
> **maxDepth** `number`
>
> Maximum allowed nesting depth.
>
> **nodeTypes** `string[]`
>
> Node types to enforce the nesting limit on.
>
> ***
>
> ### HardBreak
>
> Line break within a block (Shift+Enter).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.