npm / @tiptap/vue-3
@tiptap/vue-3
What changed in @tiptap/vue-3 2 to 3, from its official release notes, upgrade guides and advisories. Also covers @tiptap/extension-character-count, @tiptap/extension-dropcursor, @tiptap/extension-history, @tiptap/extension-list-item, @tiptap/extension-placeholder, @tiptap/extension-table-cell, @tiptap/extension-table-header, @tiptap/extension-table-row, @tiptap/extension-task-item, @tiptap/extension-task-list, @tiptap/extensions. Sources checked 2026-10-21.
2 breaking2 performance1 behavior and defaults5 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli init@tiptap/vue-3 38 changes
Performance 2
Scroll-time CPU usage is reduced by deferring viewport recomputation to rAF, adding an overscan margin, and throttling scroll updates.
Placeholder decoration scanning now uses a cursor-resolved fast path for the default config and viewport-limited scanning for the non-default config, reducing overhead on large documents.
Behavior and default changes 1
The Placeholder extension now allows emptyNodeClass to be a function that returns a dynamic CSS class name per node.
Fixes and other changes 5
Placeholder flickering and disappearance on large documents are fixed by incrementally recomputing decorations for top-level nodes touched by each transaction.
Placeholders stay stable when the editor cannot be measured reliably, preventing flickering while a modal overlay is open during transactions.
Placeholder flickering during collaborative editing is fixed.
Fixes peer dependency resolution conflicts when installing dependencies after package updates.
When includeChildren is enabled, placeholder decorations are skipped on non-textblock nodes, preventing duplicate placeholders on wrapper nodes like lists.
@tiptap/vue-3 22 changes
Breaking changes 2
The placeholder extension no longer supports the considerAnyAsEmpty option.
Placeholder is included in the new @tiptap/extensions package; update imports to use the combined package.