The editor ships CSS for its UI components and a default theme. Import the styles you need:
// Required for bubble menu styling (covers text, link, button, and image menus)import '@react-email/editor/styles/bubble-menu.css';// Required for slash command menuimport '@react-email/editor/styles/slash-command.css';// Default color themeimport '@react-email/editor/themes/default.css';
Shortcut:@react-email/editor/themes/default.css bundles all of the above CSS files
into a single import. If you don’t need to cherry-pick styles, just import this one file:
import '@react-email/editor/themes/default.css';
If you prefer to keep your bundle lean, you can import only the CSS for the components you
use instead of the bundled theme file.
The simplest setup uses StarterKit with EditorProvider — no UI overlays, just a content-editable area
with all core extensions (paragraphs, headings, lists, tables, code blocks, and more):
import { StarterKit } from '@react-email/editor/extensions';import { EditorProvider } from '@tiptap/react';const extensions = [StarterKit];const content = { type: 'doc', content: [ { type: 'paragraph', content: [ { type: 'text', text: 'Start typing or edit this text.', }, ], }, ],};export function MyEditor() { return <EditorProvider extensions={extensions} content={content} />;}