Syncfusion React Rich Text Editor

syncfusion/react-ui-components-skills/skills/syncfusion-react-rich-text-editor

by syncfusion6fb1c883a8412b611b95f839e0cb06e1fc8170a8No licenseListed Oct 9, 2026Updated Oct 9, 2026

Implements the Syncfusion React Rich Text Editor (RichTextEditorComponent) from ej2-react-richtexteditor, supporting HTML (WYSIWYG) and Markdown editing. Use this skill for toolbar configuration, image/video/audio insertion, paste cleanup, AI assistant integration, emoji picker, slash menu, mentions, import/export Word/PDF, form validation, and source code view in React applications.

Instructions onlySoftware Development
AI-generated overview

Guides implementation of the Syncfusion React Rich Text Editor component, covering setup, toolbar, media, value handling and customization.

What it does
This skill provides reference documentation for integrating the Syncfusion React Rich Text Editor (RichTextEditorComponent) into React applications. It covers installation and CSS setup, module injection, HTML and Markdown editor modes, toolbar configuration, media and content insertion, paste cleanup, form validation, import/export of Word and PDF, AI assistant integration, accessibility, events, methods and properties. It produces configuration guidance and code patterns rather than executable scripts.
When to use it
Use it when adding a WYSIWYG or Markdown rich text editor to a React app, or when configuring its toolbar, media insertion, smart editing features, value binding, validation or styling. It is also suited to looking up the component's events, methods and properties.
Requirements
Requires a React application and the npm packages @syncfusion/ej2-react-richtexteditor and a Syncfusion theme package such as @syncfusion/ej2-tailwind3-theme. Instructions only; no scripts are shipped.

Syncfusion React Rich Text Editor

A WYSIWYG (What You See Is What You Get) editor for creating and formatting rich content as HTML or Markdown. Supports toolbars, media insertion, AI assistance, smart editing features, form validation, and deep customization.

When to Use This Skill

  • Setting up a rich text / WYSIWYG editor in a React app
  • Configuring toolbar items, types, or positions
  • Switching between HTML and Markdown editor modes
  • Inserting images, video, audio, or files
  • Working with smart editing features: emoji, slash menu, mentions, mail merge
  • Integrating AI assistant into the editor
  • Handling editor value: get, set, two-way binding, auto-save, import/export
  • Applying paste cleanup, form validation, or read-only mode
  • Customizing styles, accessibility, or keyboard shortcuts

Quick Start

bash
npm install @syncfusion/ej2-react-richtexteditor
bash
npm install @syncfusion/ej2-tailwind3-theme

src/App.css - add CSS imports

css
@import '../node_modules/@syncfusion/ej2-tailwind3-theme/styles/rich-text-editor/index.css';
tsx
import './App.css';import {  HtmlEditor, Image, Inject, Link,  QuickToolbar, RichTextEditorComponent, Toolbar} from '@syncfusion/ej2-react-richtexteditor';
function App() {  return (    <RichTextEditorComponent height={450}>      <Inject services={[Toolbar, Image, Link, HtmlEditor, QuickToolbar]} />    </RichTextEditorComponent>  );}export default App;

Module Injection Reference

Inject only the modules your app needs — this keeps the bundle lean.

ModuleWhat it enables
ToolbarToolbar rendering and commands
HtmlEditorHTML editing mode (default)
MarkdownEditorMarkdown editing mode
LinkHyperlink insert/edit/remove
ImageImage insertion and management
VideoVideo insertion
AudioAudio insertion
TableHTML table insert/edit
QuickToolbarFloating toolbar for images/links
PasteCleanupClean up pasted content formatting
ClipboardCleanupClean clipboard on copy/cut
FileManagerFile browser for server-side images
ResizeResizable editor area
CountCharacter count display
EmojiPickerEmoji search and insert
SlashMenuSlash / command menu
ImportExportImport Word, export Word/PDF
CodeBlockInline code block formatting
AutoFormatAuto-convert Markdown syntax while typing
FormatPainterCopy-paste text formatting
AIAssistantAI assistant integration

Navigation Guide

Getting Started

📄 Read: references/getting-started.md [blocked]

  • Installation, npm setup, CSS imports
  • Basic component implementation
  • Module injection patterns
  • Toolbar configuration basics
  • Running the application

Editor Modes

📄 Read: references/editor-modes.md [blocked]

  • HTML editor mode (default WYSIWYG)
  • Markdown editor mode with preview
  • IFrame vs DIV mode
  • Inline editing
  • Resizable editor

Toolbar Configuration

📄 Read: references/toolbar-configuration.md [blocked]

  • Default toolbar items
  • Toolbar types: Expand, MultiRow, Scrollable
  • Toolbar position (top/bottom)
  • Sticky/floating toolbar
  • Quick toolbar for images and links

Toolbar Tools

📄 Read: references/toolbar-tools.md [blocked]

  • Built-in tools reference (Bold, Italic, Formats, etc.)
  • Custom toolbar items with templates
  • Text formatting tools
  • Styling tools (font, color, alignment)
  • Fullscreen tool

Inserting Media

📄 Read: references/insert-media.md [blocked]

  • Inserting images (URL, upload, base64)
  • Video insertion and configuration
  • Audio insertion
  • File browser integration

Inserting Content

📄 Read: references/insert-content.md [blocked]

  • Tables: insert, resize, merge cells
  • Hyperlinks: create, edit, open in new tab
  • Code blocks
  • Custom format blocks

Smart Editing Features

📄 Read: references/smart-editing.md [blocked]

  • Emoji picker
  • Slash menu (type / to open)
  • Mentions (tag users)
  • Mail merge

Managing Editor Value

📄 Read: references/editor-value.md [blocked]

  • Setting initial value
  • Getting value via property, event, or method
  • Two-way binding with React state
  • Auto-save with saveInterval
  • Import/export Word and PDF
  • Markdown preview
  • Character count and maxLength
  • Source code view

Paste & Clipboard

📄 Read: references/paste-clipboard.md [blocked]

  • Paste cleanup configuration
  • Clipboard cleanup on copy/cut
  • Executing editor commands programmatically

Validation & Security

📄 Read: references/validation-security.md [blocked]

  • Form support and submission
  • XHTML validation
  • Read-only mode
  • XSS prevention

AI Assistant

📄 Read: references/ai-assistant.md [blocked]

  • AI integration setup
  • AI assistant properties
  • Customizing AI toolbar and responses

Accessibility & Globalization

📄 Read: references/accessibility.md [blocked]

  • WCAG 2.1 compliance
  • Keyboard shortcuts
  • Globalization, localization, RTL
  • Style encapsulation

Styling & Customization

📄 Read: references/styling-customization.md [blocked]

  • CSS variable customization
  • Style encapsulation (shadow DOM)
  • Third-party integrations (CodeMirror, Mention library)
  • Spell/grammar check

Undo / Redo

📄 Read: references/undo-redo.md [blocked]

  • Undo/redo manager behavior
  • Keyboard shortcuts
  • Programmatic undo/redo

Enter Key & Selection

📄 Read: references/enter-key-selection.md [blocked]

  • Enter key configuration (P, BR, DIV)
  • Selection API
  • Cursor positioning

Events

📄 Read: references/events.md [blocked]

  • Infer EventArgs Type value for each events
  • Lifecycle events: created, destroyed, focus, blur
  • Content change: change event with ChangeEventArgs
  • Action events: actionBegin (cancelable), actionComplete
  • Toolbar events: toolbarClick, updatedToolbarStatus
  • Dialog & popup events: beforeDialogOpen/Close, beforePopupOpen/Close
  • Media & file events: image/audio/video upload, select, remove, drop
  • Paste & clipboard events: beforePasteCleanup, afterPasteCleanup
  • AI Assistant events: aiAssistantPromptRequest, aiAssistantToolbarClick
  • Resize, slash menu, selection, quick toolbar, import/export events

Methods

📄 Read: references/methods.md [blocked]

  • Focus & content: focusIn, focusOut, getHtml, getText, getSelectedHtml
  • Toolbar: enableToolbarItem, disableToolbarItem, removeToolbarItem
  • Dialog: showDialog, closeDialog with DialogType enum
  • Selection: selectAll, getRange, selectRange
  • Undo/redo: clearUndoRedo
  • AI Assistant: executeAIPrompt, addAIPromptResponse, getAIPromptHistory, clearAIPromptHistory
  • Utility: executeCommand (all CommandName values), sanitizeHtml, destroy

Properties Reference

📄 Read: references/properties.md [blocked]

  • Core: height, width, enabled, readonly, placeholder, cssClass
  • Toolbar: toolbarSettings, quickToolbarSettings, floatingToolbarOffset
  • Editor mode & behavior: editorMode, iframeSettings, inlineMode, enterKey
  • Value & content: value, maxLength, showCharCount, saveInterval, enableHtmlSanitizer
  • Media: insertImageSettings, insertVideoSettings, insertAudioSettings, fileManagerSettings
  • Font, color & format: fontFamily, fontSize, fontColor, backgroundColor, format, codeBlockSettings
  • Paste: pasteCleanupSettings, enableClipboardCleanup
  • AI Assistant: aiAssistantSettings (full configuration reference)
  • Import/export: importWord, exportWord, exportPdf
  • Misc: undoRedoSteps, keyConfig, slashMenuSettings, emojiPickerSettings

How-To Guides

📄 Read: references/how-to.md [blocked]

  • Capture Ctrl keys to update value
  • Change default font family
  • Check uploaded image size
  • Customize placeholder style
  • Customize shortcut keys
  • File attachment
  • Format code blocks
  • Position cursor at end of content
  • Rename images on server
  • RTE inside Dialog or Tab
  • Set cursor at specific range
  • Tailwind preflight fix
  • Update value programmatically

Common Patterns

Read value on change

tsx
import { ChangeEventArgs } from '@syncfusion/ej2-react-richtexteditor';
function App() {  const onChange = (args: ChangeEventArgs) => {    console.log(args.value); // HTML string  };  return (    <RichTextEditorComponent change={onChange}>      <Inject services={[Toolbar, HtmlEditor]} />    </RichTextEditorComponent>  );}

Controlled value with React state

tsx
const [content, setContent] = useState('<p>Hello</p>');<RichTextEditorComponent value={content} change={(e) => setContent(e.value)}>  <Inject services={[Toolbar, HtmlEditor]} /></RichTextEditorComponent>

Markdown mode

tsx
import { MarkdownEditor } from '@syncfusion/ej2-react-richtexteditor';<RichTextEditorComponent editorMode="Markdown">  <Inject services={[Toolbar, MarkdownEditor]} /></RichTextEditorComponent>

Source and attribution

Source:syncfusion/react-ui-components-skillsinskills/syncfusion-react-rich-text-editorat commit6fb1c88

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal