Overview

Every built-in extension, what it does and how to configure it.

All extensions are imported from vue-echo-editor (collaboration from vue-echo-editor/collaboration). They are regular Tiptap extensions, so every Tiptap option still applies, plus the toolbar options spacer, divider, toolbar and button.

Core

ExtensionDescription
BaseKitRequired. Document, paragraph, text, placeholder, character count, focus, drop/gap cursor, trailing node, bubble menu. See configuration.
History / UndoRedoUndo and redo. Not needed (and not allowed) with collaboration.

Text formatting

ExtensionShortcutNotes
BoldMod B
ItalicMod I
UnderlineMod U
StrikeMod Shift S
CodeMod EInline code
MoreMarkDropdown with subscript, superscript and inline code
SubAndSuperScriptMod . / Mod ,Separate buttons
ColorText colour picker with recent colours
HighlightBackground colour picker
FontFamilyFontFamily.configure({ fontFamilyMap: { Inter: 'Inter, sans-serif', Georgia: 'Georgia, serif' } })
FontSizeFont size dropdown
LineHeightLine height dropdown
TextAlignMod Shift L/E/R/JTextAlign.configure({ types: ['heading', 'paragraph', 'image'] })
IndentTab / Shift Tab
ClearRemove all formatting
FormatPainterCopy formatting to another selection
LinkLink popover + link bubble menu; Link.configure({ openOnClick: false })

Blocks

ExtensionNotes
HeadingH1–H6 dropdown; Heading.configure({ levels: [1, 2, 3] })
BulletListDisc, circle and square styles
OrderedListDecimal, roman, latin and CJK numbering
TaskListTaskList.configure({ taskItem: { nested: true } })
Blockquote
CodeBlockSyntax highlighting (lazy-loaded prism-code-editor), language picker, line numbers, word wrap, tab size
HorizontalRule
TableGrid picker, table bubble menu, merge/split cells, cell background colour, column resizing
ColumnsTwo, three or four column layouts

Media

ExtensionNotes
ImageResize handles, alignment, flip, size presets, image bubble menu
ImageUploadupload(file) => Promise<url>, acceptMimes, maxSize — see uploads
VideoEmbedded video with size presets
VideoUploadupload(files) => Promise<{ src }[]>
IframeEmbed services from a link (YouTube, Figma, CodePen, …)

Tools

ExtensionNotes
SlashCommand"/" command menu — see slash commands
FindAndReplaceMod F, regex-safe, case-sensitive option
SourceCodeEdit HTML source with syntax highlighting and search
PreviewRead-only preview dialog
PrinterMod P
FullscreenF11
SpecialCharacterSearchable character picker
ImportWordImport .docx via your convert function
MarkdownMarkdown parsing / serialisation — see Markdown
ExportPDF, Markdown, HTML, RTF, text, JSON — see Export

AI & collaboration

ExtensionNotes
AIInline AI menu — see AI assistant
CollaborationKitY.js collaboration — see Collaboration

Using any Tiptap extension

Any Tiptap 3 extension works — it just won't have a toolbar button unless you add one:

import { Mention } from '@tiptap/extension-mention'
import { Typography } from '@tiptap/extension-typography'

const extensions = [BaseKit, Bold, Italic, Typography, Mention.configure({ suggestion })]