syncfusion-react-blockeditor

Implement the Syncfusion React BlockEditor component for block-based content editing. Use this skill for block-based rich content editing, document creation, CMS interfaces, markdown alternatives, editor setup, block configuration, toolbar or menu customization, drag-and-drop behavior, formatting op

By syncfusion · 609 installs

npx skills add syncfusion/react-ui-components-skills --skill syncfusion-react-blockeditor

Source repository · Upstream listing

Syncfusion React Block Editor in React Component Overview The Syncfusion React BlockEditorComponent is a powerful block based rich text editor that allows users to create, edit, and format content using a modern block architecture. Each piece of content (paragraphs, headings, lists, tables, code snippets) is a discrete, manageable block. Key Capabilities The BlockEditorComponent provides: Block based architecture Content structured as discrete, reorderable blocks Built in block types Paragraphs, headings, lists, tables, code, callouts, quotes, collapsible sections Intuitive menus Slash commands, context menus, inline toolbars Drag and drop Reorder blocks easily with visual handles Content export Export as JSON, HTML, or plain text Accessibility WCAG 2.1 compliant with keyboard navigation and screen reader support Customization Custom styling, themes, RTL support, globalization Collaborative Editing Real time multi user editing powered by Yjs, with user presence and remote cursors, document version history and snapshot management Documentation Navigation Guide Getting Started 📄 Read: [references/getting started.md](references/getting started.md) Installation and npm package setup Basic component implementation CSS imports and theme configuration Creating your first block editor Setting initial content with blocks Built in Block Types 📄 Read: [references/built in blocks.md](references/built in blocks.md) Block type reference (Paragraph, Heading, List, Table, Code, Quote, Callout) Nested block types (CollapsibleHeading, CollapsibleParagraph) Block indentation and CSS class styling Content configuration and properties Menus and Commands 📄 Read: [references/block editor menus.md](references/block editor menus.md) Slash command menu customization Context menu configuration with Table and Link options Inline toolbar setup with Transform, code, link, and color support Block action menu customization and tooltips Menu events and filtering Drag Drop and Content Management 📄 Read: [references/drag drop and content.md](references/drag drop and content.md) Drag and drop block reordering ( enableDragAndDrop ) Content insertion and nesting Drag events ( blockDragStart , blockDragging , blockDropped ) Programmatic block movement Mentions and Labels 📄 Read: [references/mentions and labels.md](references/mentions and labels.md) users prop and UserModel interface for @mention feature labelSettings prop and LabelItemModel interface for label feature ContentType.Mention / ContentType.Label inline content IMentionContentSettings / ILabelContentSettings Methods and API 📄 Read: [references/methods and api.md](references/methods and api.md) Block management methods (add, remove, update, move) Selection and cursor control Data export/import (JSON, HTML) Content formatting and rendering Styling and Appearance 📄 Read: [references/styling and appearance.md](references/styling and appearance.md) CSS theming and imports Block styling with custom CSS classes Typography and formatting options Dark mode and responsive design Advanced Features 📄 Read: [references/advanced features.md](references/advanced features.md) Paste cleanup and content sanitization Undo/redo functionality Keyboard shortcut customization Read only mode configuration XSS protection and HTML sanitization RTL support and internationalization Collaborative Editing 📄 Read: [references/collaborative editing.md](references/collaborative editing.md) Real time collaborative editing powered by Yjs (CRDT based sync and conflict resolution) Injecting the Collaboration and VersionHistory modules collaborationSettings property (provider, adapter, enableAwareness, versionHistory) Choosing a Yjs provider (y websocket, y webrtc, y indexeddb, Hocuspocus, Liveblocks, PartyKit) Setting up a Yjs document, YjsAdapter , and provider User presence, remote cursors, and text selection overlays (enableAwareness) Configuring the current user via users and currentUserId Version history: creating, listing, renaming, restoring, comparing, exporting, and importing snapshots Custom snapshot storage via the IVersionStorage interface Version history events: snapshotCreated , snapshotRestored Accessibility 📄 Read: [references/accessibility.md](references/accessibility.md) WCAG 2.1 compliance Keyboard navigation patterns Screen reader support and ARIA attributes Focus management Color contrast and visual indicators Quick Start Example Common Patterns 1. Add a Block Programmatically 2. Handle Menu Item Selection 3. Export Content as JSON 4. Enable Read Only Mode Key Props ⚠️ Props toolbarSettings , containerCssClass , and showBlockHandle do not exist in the BlockEditor API and must not be used. Prop Type Description id string Unique identifier for the component blocks BlockModel[] Array of block objects defining content readOnly boolean Enable read only mode (default: false ) width string \ number Width of the editor container (default: '100%' ) height string \ number Height of the editor container commandMenuSettings CommandMenuSettingsModel Customize slash command (/) menu contextMenuSettings ContextMenuSettingsModel Configure right click context menu inlineToolbarSettings InlineToolbarSettingsModel Configure inline text selection toolbar blockActionMenuSettings BlockActionMenuSettingsModel Configure block action (⋮) menu transformSettings TransformSettingsModel Configure block type transform menu imageBlockSettings ImageBlockSettingsModel Configure image upload and rendering codeBlockSettings CodeBlockSettingsModel Configure code block languages pasteCleanupSettings PasteCleanupSettingsModel Control paste sanitization behavior users UserModel[] User list for @mention feature and collaboration presence with avatar colors labelSettings LabelSettingsModel Label items and trigger char for label feature enableDragAndDrop boolean Enable/disable drag and drop reordering (default: true ) undoRedoStack number Max number of undo/redo history steps keyConfig { [key: string]: string } Custom keyboard shortcut mappings locale string Localization language code (default: 'en US' ) blockChanged EmitType<BlockChangedEventArgs Fires when block content changes collaborationSettings CollaborationSettingsModel Configure real time collaboration with Yjs provider, awareness, and version history currentUserId string Unique identifier of the current user for collaboration and cursor identification Common Use Cases Content Management System Build a CMS with block based editing, custom block types, and content export Document Editor Create a collaborative document editor with formatting, templates, and version control Note Taking App Implement a personal notes app with nesting, tagging, and search capabilities Blog Editor Enable blog authors to write with rich formatting, media embeds, and preview Knowledge Base Build internal documentation with organized blocks, search, and linked references Survey/Form Builder Create dynamic surveys with conditional blocks and response capture