Nodes
Nodes are block-level elements that form the structure of your document. They define the content model and how different types of content can be nested.Document
The root node that contains all other nodes. Required for every editor instance.
Paragraph
Basic text blocks. The most common node type for regular content.
Text
Represents plain text content. Required for inline content rendering.
Heading
Create hierarchical headings from H1 to H6 for document structure.
Blockquote
Quote blocks for highlighting cited or important text passages.
Code Block
Monospaced code blocks for displaying code snippets.
Bullet List
Unordered lists with bullet points for item collections.
Ordered List
Numbered lists for sequential or ranked items.
List Item
Individual items in bullet or ordered lists.
Horizontal Rule
Visual separators to divide content sections.
Image
Embed images with support for URLs, uploads, and attributes.
Table
Create and edit tables with rows, columns, and cells.
Marks
Marks are inline formatting options that can be applied to text within nodes. They can overlap and be combined to create rich text formatting.Bold
Make text bold with strong emphasis styling.
Italic
Apply italic styling for emphasis or styling purposes.
Strike
Strike through text to indicate deletion or completion.
Underline
Underline text for emphasis or to indicate links.
Code
Format inline code snippets with monospace font.
Link
Create hyperlinks to external or internal resources.
Highlight
Highlight text with customizable background colors.
Text Style
Foundation for custom inline text styling and formatting.
Functionality
Functionality extensions enhance the editor with behaviors, UI components, and special features that don’t directly affect the document structure.Bubble Menu
Context menu that appears when text is selected.
Floating Menu
Menu that appears on empty lines for quick actions.
Drag Handle
Visual handle for dragging and reordering content blocks.
Collaboration
Real-time collaborative editing powered by Yjs.
History
Undo and redo functionality for editor changes.
Placeholder
Show placeholder text when the editor is empty.
Getting Started
To use any extension, first install it via npm:Extension Categories
Essential Extensions
Some extensions are required for a functional editor:- Document: Root node container (required)
- Text: Text content representation (required)
- Paragraph: Basic text blocks (recommended)
Popular Combinations
Common extension bundles for different use cases: Basic Rich Text- Bold, Italic, Strike, Code, Link
- Paragraph, Heading, Bullet List, Ordered List
- All basic extensions, plus:
- Table, Image, Code Block Lowlight
- Bubble Menu, Floating Menu, Drag Handle
- Basic rich text extensions, plus:
- Collaboration, Collaboration Caret
- History (for local undo/redo)
Next Steps
Custom Extensions
Learn how to build your own custom extensions
Extension API
Explore the Extension API reference
Nodes & Marks
Understand the difference between nodes and marks
Commands
Learn about editor commands and how to use them