Skip to main content

syncfusion-angular-modern-rich-text-editor

Implements the Syncfusion Angular Modern Rich Text Editor (ejs-richtexteditor-ui) from @syncfusion/ej2-angular-richtexteditor-ui using RichTextEditorUIModule and SlashCommandService. Use this skill for toolbar configuration, inline/block formatting, slash-command menu, quick toolbar (text/image/link/table), hyperlinks, image insertion and remote upload, lists (numbered/bulleted/checklist), tables, callouts, code blocks, collapsible sections, keyboard shortcuts, events (change, created, destroyed, focus, blur, actionBegin, actionComplete, itemClicked, updatedToolbarStatus, fileUpload*), and the fluent commands() programmatic API in Angular applications.

Source facts

Repository
syncfusion/angular-ui-components-skills
Last source activity
October 23, 2026 at 11:34
Detected SKILL.md language
English
Stars
0
Forks
1

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
16 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
syncfusion-angular-modern-rich-text-editor
description
Implements the Syncfusion Angular Modern Rich Text Editor (ejs-richtexteditor-ui) from @syncfusion/ej2-angular-richtexteditor-ui using RichTextEditorUIModule and SlashCommandService. Use this skill for toolbar configuration, inline/block formatting, slash-command menu, quick toolbar (text/image/link/table), hyperlinks, image insertion and remote upload, lists (numbered/bulleted/checklist), tables, callouts, code blocks, collapsible sections, keyboard shortcuts, events (change, created, destroyed, focus, blur, actionBegin, actionComplete, itemClicked, updatedToolbarStatus, fileUpload*), and the fluent commands() programmatic API in Angular applications.
metadata
{"author":"Syncfusion Inc","version":"34.1.29","category":"File Viewers & Editors"}
# Modern Rich Text Editor for Angular The Syncfusion Angular Modern Rich Text Editor is a WYSIWYG editor that enables users to create, edit, and format rich text content. It supports JSON and HTML content models, a configurable main toolbar, contextual quick toolbars for text/image/link/table, a `/` slash-command menu, image upload to a remote endpoint, hyperlinks with protocol validation, lists, tables, callouts, code blocks, collapsible sections, and deep customization. > **Note:** Although this skill is exposed under the `react-modern-rich-text-editor` name, the implementation targets **Angular** using `@syncfusion/ej2-angular-richtexteditor-ui` and the `<ejs-richtexteditor-ui>` selector. Code samples throughout this skill are Angular standalone components. ## When to Use This Skill Use this skill when you need to: - **WYSIWYG editing** — add a Modern Rich Text Editor to an Angular application - **HTML or JSON output** — capture content as an HTML string or as a structured JSON document - **Custom toolbar** — configure, trim, or extend toolbar items, add custom toolbar actions - **Slash-command menu** — enable `/` to insert block formats and built-in modules - **Quick toolbar** — configure the contextual popups for text, image, link, and table selections - **Image upload** — handle local uploads, remote endpoints, Blob vs Base64, renaming, and authentication - **Hyperlinks** — control link creation, target, allowed protocols, and the Insert-Link dialog - **Lists and tables** — numbered, bulleted, checklist lists, and tables with row/column/cell operations - **Block formats** — paragraph, headings, blockquote, code block, horizontal line, callouts, collapsible sections - **Programmatic API** — dispatch editor actions through the fluent `commands()` builder ## Component Overview The `<ejs-richtexteditor-ui>` component from `@syncfusion/ej2-angular-richtexteditor-ui` provides: - HTML and JSON content formats (`valueFormat: 'html' | 'json'`, default `'json'`) - Configurable main toolbar (`toolbarSettings.items`, `type`, `position`, `enableFloating`) - Slash-command popup (`slashCommandSettings` with `SlashCommandService` provider) - Quick toolbars for text, image, link, and table (`quickToolbarSettings`) - Image upload and remote storage (`imageSettings.uploadUrl`, `imageUrl`, `removeUrl`, `allowedTypes`, `maxFileSize`, `saveFormat`, `dimension`) - Link settings (`linkSettings.linkOnPaste`, `defaultTarget`, `autoPrependProtocol`, `defaultProtocol`, `allowedProtocols`) - List settings (`listSettings.numberFormatListItems`, `bulletFormatListItems`, `checklistType`) - Table settings (`tableSettings.resize`) - Font family, font size, font color, background color settings - Keyboard shortcuts with customizable `keyBindings` - Events: `change`, `created`, `destroyed`, `focus`, `blur`, `actionBegin`, `actionComplete`, `updatedToolbarStatus`, `itemClicked` (on `toolbarSettings`), `fileUploadSuccess`, `fileUploading` - Fluent programmatic command builder (`editor.commands().<builder>().<setter>().apply()`) - Theme integration via `@syncfusion/ej2-material3-theme/styles/richtexteditor-ui/index.css` ## Quick Start Install the wrapper and a theme: ```bash npm install @syncfusion/ej2-angular-richtexteditor-ui npm install @syncfusion/ej2-material3-theme ``` Add the stylesheet to `src/styles.css`: ```css @import '../node_modules/@syncfusion/ej2-material3-theme/styles/richtexteditor-ui/index.css'; ``` Render the editor in a standalone Angular component: ```ts import { Component } from '@angular/core'; import { RichTextEditorUIModule } from '@syncfusion/ej2-angular-richtexteditor-ui'; @Component({ imports: [RichTextEditorUIModule], standalone: true, selector: 'app-root', templateUrl: './app.component.html' }) export class App { public placeholder: string = 'Type something ...'; public value: string = '<p>Getting started with the Rich Text Editor UI.</p>'; public valueFormat: string = 'html'; public toolbarSettings: object = { items: ['Bold', 'Italic', 'Underline', '|', 'Formats', 'Alignment', '|', 'Link', 'Image', 'Table', '|', 'Undo', 'Redo'] }; } ``` ```html <ejs-richtexteditor-ui [placeholder]="placeholder" [value]="value" [valueFormat]="valueFormat" [toolbarSettings]="toolbarSettings"> </ejs-richtexteditor-ui> ``` --- ## Documentation and Navigation Guide This skill is organized into focused reference files. Use the guide below to find the right reference for your task. ### Getting Started 📄 **Read:** [references/getting-started.md](references/getting-started.md) **When to read:** First-time setup, installation, Syncfusion CLI / Angular CLI flow, CSS theme imports, first component **Topics covered:** - Prerequisites (Node.js, Angular CLI, Syncfusion CLI) - Creating an Angular app with the Syncfusion CLI (non-interactive and interactive) - Creating an Angular app with the Angular CLI - Installing `@syncfusion/ej2-angular-richtexteditor-ui` - Adding the theme CSS reference - Rendering `<ejs-richtexteditor-ui>` in a standalone component --- ### Basic Setup 📄 **Read:** [references/getting-started.md](references/getting-started.md) *(basic setup is consolidated in the Getting Started reference)* **When to read:** Configuring initial value, content format, toolbar items, image settings, placeholder, auto-save **Topics covered:** - `value` and `valueFormat` (`'html'` vs `'json'`) - `toolbarSettings.items` initial configuration - `imageSettings` (`allowedTypes`, `maxFileSize`, `uploadUrl`, `removeUrl`, `imageUrl`) - `placeholder` text - `saveInterval` for auto-save behavior - API Reference: `ValueFormat` enum (`'html'` | `'json'`) --- ### Toolbar Configuration 📄 **Read:** [references/toolbar.md](references/toolbar.md) **When to read:** Customizing toolbar items, layout type, position, floating, and custom toolbar actions **Topics covered:** - Default toolbar items list - Available toolbar item identifiers (`Bold`, `Italic`, `Formats`, `Alignment`, `Callout`, `Quote`, `CodeBlock`, `HorizontalLine`, etc.) - Toolbar layout: `type` (`Auto` / `Expanded` / `Scrollable` / `MultiRow`) and `position` (`Top` / `Bottom`) - Floating toolbar (`enableFloating`, `floatingOffset`) - Custom toolbar items via `actionId` and `toolbarSettings.itemClicked` - Updating toolbar items at runtime with `editor.updateToolbarItems(updates)` - The Quick Toolbar configuration object (`quickToolbarSettings.text`, `image`, `link`, `table`) - `enableAppendToBody` for narrow / scroll-constrained containers - Built-in quick-toolbar item identifiers for text, image, link, and table surfaces - Custom toolbar items in quick toolbars and `ToolbarItemClickedEventArgs` - API Reference: `AddToolbarItem`, `BuiltInToolbarItem`, `BuiltInToolbarItemConfig`, `CustomToolbarItem`, `DisableToolbarItem`, `EnableToolbarItem`, `HideToolbarItem`, `HorizontalRuleCommandBuilder`, `itemClickEventArgs`, `QuickToolbarSettings`, `QuickToolbarSettingsModel`, `RemoveToolbarItem`, `ShowToolbarItem`, `ToolbarItem`, `ToolbarItemClickedEventArgs`, `ToolbarItemUpdate`, `ToolbarPosition`, `ToolbarSettings`, `ToolbarSettingsModel`, `ToolbarType`, `UpdatedToolbarStatusEventArgs`, static function `reconcileToolbarItems` --- ### Inline Formats 📄 **Read:** [references/formatting.md](references/formatting.md) **When to read:** Applying character-level marks — bold, italic, underline, colors, font, size, code **Topics covered:** - Available inline formats and their toolbar identifiers - Toggle text styles (Bold, Italic, Underline, StrikeThrough, SubScript, SuperScript, UpperCase, LowerCase, InlineCode) - Font and background color commands (picker vs palette mode, `columns`, `default`, `modeSwitcher`) - Font family configuration (built-in, custom, Google fonts) - Font size configuration (built-in, custom) - Fluently calling commands via `editor.commands().bold().apply()` etc. - Keyboard shortcuts for formatting (Ctrl+B/I/U, etc.) - API Reference: `AlignmentCommandBuilder`, `ColorCommandBuilder`, `FontFamily`, `FontFamilyModel`, `FontFamilyItem`, `FontFamilyCommandBuilder`, `FontSize`, `FontSizeModel`, `FontSizeItem`, `FontSizeCommandBuilder`, `Format`, `FormatModel`, `TextAlignment`, `ToggleCommandBuilder` --- ### Block Formats 📄 **Read:** [references/block-quote.md](references/block-quote.md), [references/callout.md](references/callout.md), [references/codeblock.md](references/codeblock.md), [references/collapsible.md](references/collapsible.md) **When to read:** Applying block-level structure changes — quote, callout, code block, collapsible section **Topics covered:** - **Block quote** — `Quote` toolbar item, `Blockquote` slash command, `blockQuote` command - **Callouts** — `Info`, `Success`, `Warning`, `Error`, `Note` via the `Callout` split-button toolbar item or slash-command entries - **Code blocks** — `CodeBlock` toolbar item, `codeBlock` command with `CodeBlockCommand` payload (`{ language: string }`) - **Collapsible headings** — `Collapsible Paragraph` / `Collapsible Heading 1`–`4` slash-command entries with `collapsible` command and `ToggleCollapsiblePayload` - API Reference: `CalloutCommandBuilder`, `CodeBlockCommandBuilder`, `CollapsibleCommandBuilder` (each block-format reference) --- ### Lists (Numbered, Bulleted, Checklist) 📄 **Read:** [references/lists.md](references/lists.md) **When to read:** Working with `NumberFormatList`, `BulletFormatList`, and `Checklist` items **Topics covered:** - List types overview - `listSettings.numberFormatListItems`, `bulletFormatListItems`, `checklistType` - Available numbering formats (`decimal`, `lower-alpha`, `upper-alpha`, `lower-roman`, `upper-roman`, `lower-greek`) - Available bullet styles (`disc`, `circle`, `square`) - Checklist shape (`Square`, `Circle`) - Common list commands (`numberedList`, `bulletList`, `toggleTaskList`, `setListStyle`) - Keyboard shortcuts for lists and indentation (Tab / Shift+Tab) - API Reference: `BulletFormatList`, `BulletFormatListItem`, `NumberFormatList`, `NumberFormatListItem`, `CustomFormatListItem`, `ListCommandBuilder`, `ListStyleCommandBuilder`, `ChecklistCommandBuilder`, `ListSettings`, `ListSettingsModel` --- ### Tables 📄 **Read:** [references/table.md](references/table.md) **When to read:** Inserting tables, configuring row/column operations, header toggling, cell formatting **Topics covered:** - Table insertion via toolbar, slash command, keyboard shortcut (Ctrl+Shift+E) - 3×10 interactive table grid and Insert Table dialog - Row operations (insert above / below, delete) - Column operations (insert left / right, delete) - Header row toggle - Cell background color, horizontal alignment, vertical alignment - Table deletion - `tableSettings.resize` property - Default `quickToolbarSettings.table` items - Keyboard shortcuts for table popup - API Reference: `TableQuickToolbarItem`, `TableSettings`, `TableSettingsModel` --- ### Links & Hyperlinks 📄 **Read:** [references/links.md](references/links.md) **When to read:** Configuring link creation, target, allowed protocols, and the Link Quick Toolbar **Topics covered:** - `linkSettings` properties (`linkOnPaste`, `defaultTarget`, `autoPrependProtocol`, `defaultProtocol`, `allowedProtocols`) - Paste-link-as-text behavior - Default `target` (`_blank` / `_self` / `_parent` / `_top`) - Configure available protocols - Configure allowed protocols (built-in, adding `sms`/`ftp`, restricting to a single protocol) - Link Quick Toolbar (`Open`, `Copy`, `Edit`, `Remove`) - API Reference: `LinkCommandBuilder`, `LinkQuickToolbarItem`, `LinkSettings`, `LinkSettingsModel` --- ### Image Handling & Upload 📄 **Read:** [references/image.md](references/image.md) **When to read:** Inserting images, configuring upload endpoints, server-side upload pipeline **Topics covered:** - Inserting images from local storage and web URLs - `imageSettings` configuration (`allowedTypes`, `maxFileSize`, `uploadUrl`, `removeUrl`, `imageUrl`) - Image save formats — `Blob` vs `Base64`, and their trade-offs - Image dimension constraints (`dimension.width`, `height`, `min/maxWidth`, `min/maxHeight`) - Image display modes (`inline` / `break`) - Image resize (`resize` property) - Image Quick Toolbar items (`AltText`, `Caption`, `Align`, `Display`, `WrapText`, `Dimension`, `Replace`, `Remove`) - Text wrap modes (`left` / `right` / `none`) - Alignment options (`left` / `center` / `right` / `none`) - Remote image upload (writing an endpoint, `form field name 'UploadFiles'`) - Renaming images on the server (`fileUploadSuccess`) - Secure upload with authentication (`fileUploading` + `currentRequest.setRequestHeader`) - Keyboard shortcut (Ctrl+Shift+I to open image dialog) - API Reference: `ImageDisplayMode`, `ImageSaveFormat`, `ImageQuickToolbarItem`, `ImageSettings`, `ImageSettingsModel`, `BackgroundColor`, `BackgroundColorModel`, `ColorModeType`, `ColorPickerType`, `FontColor`, `FontColorModel` --- ### Quick Toolbar (Contextual Popups)
View on GitHub
This SKILL.md is very large, so SkillsMP previews the first section here. View on GitHub