CKEditor 5 changelog
This is the CKEditor 5 changelog guide. Here you will find information about the most important changes introduced in the release, new features, and bug fixes.
Information about both major and minor breaking changes is available, too, if the release introduces them. You can read more about breaking changes in CKEditor 5 in the Versioning policy guide.
You can find more information about each release in the blog posts linked at the start of each entry.
This guide provides the changelog information for the 3 latest releases of CKEditor 5. For older releases, refer to the release notes on GitHub.
# CKEditor 5 43.3.1 release
We are happy to announce the release of CKEditor 5 v43.3.1.
# Release highlights
We had to revert a change introduced in v43.3.0
related to the icons export in one of our packages. This was due to unforeseen TypeScript issues in some setups.
# Bug fixes
# Other changes
- cloud-services: The
Token
class is now exported as a value instead of a type only. (commit)
# CKEditor 5 43.3.0 release
We are happy to announce the release of CKEditor 5 v43.3.0.
# Release highlights
# Performance improvements
We have improved how the editor handles the document structure by making it more reliable and efficient to access specific elements and verify their positions.
- Node index and offset caching: The
Node
andNodeList
elements now cache index and offset values, reducing the need for recalculations and significantly boosting overall performance during model operations. - Selection range validation: The newly implemented
Position#isValid()
method is also utilized to better validate selection ranges, ensuring more consistent behavior in various editing scenarios. - Performance improvements in numbers: The editor now loads content between 3x and, in some cases, up to 6x faster, depending on the type and size of the content. For instance, where a specific 200-page document previously took almost 25 seconds to load, the time has now been reduced to just 3.5 seconds.
We’re committed to ongoing performance enhancements, so you can expect even faster, smoother experience in future updates.
# Export to Word watermark support
A new configuration option has been added to include a watermark when exporting documents to Word, providing additional flexibility in document branding and protection.
# Notable bug fixes and improvements
- Suggestions retention on revision restore: Suggestions are no longer lost in specific cases when restoring revisions with changes from multiple users. The revision tracking process has been improved to ensure that all operations, including markers, are handled and saved correctly during synchronization. This fix resolves issues where markers were previously not retained, ensuring consistent data handling in collaborative editing scenarios.
- Action dropdown visibility fix: Resolved an issue where the action dropdown remained hidden after permission changes on comments. The dropdown now properly reflects updated permissions, allowing users to interact with the available actions seamlessly.
- AI command enhancements:
- Custom AI Commands are now correctly applied to individual dropdowns when only one group of comments is present, instead of the entire group.
- Empty comment groups no longer render, improving UI clarity.
- Fixed an issue where nested AI command menus would close unexpectedly when used within a balloon toolbar, preventing unintended behavior during selection.
# Features
- engine: Introduced the
getChildAtOffset()
method formodel.Element
andmodel.DocumentFragment
. (commit) - engine: Introduced the
Position#isValid()
method to check whether the position exists in the current model tree. (commit) - export-word: Added a configuration setting for adding a watermark to generated documents.
- revision-history: Introduced the
RevisionTracker#getRevisionDocumentData()
andRevisionTracker#getRevisionRootsAttributes()
methods to the public scope of the editor API. You can use them to retrieve document data saved with the revision. - utils: Made
FocusTracker
extendable with otherFocusTracker
instances to allow logical focus tracking across separate DOM sub-trees (see #17277). (commit)
# Bug fixes
- ai: Empty AI Assistant command groups should not render in the UI.
- ai: The AI Assistant command list should be flat when only one command group is available.
- comments: Fixed an issue where the action dropdown remained hidden when permissions allowing actions on a comment changed.
- engine: The content of an inline object should be handled as a flow root so whitespaces should be trimmed as the content of an inline object element is inside a block element. Closes #17199. (commit)
- image: Handle existing picture element correctly on
sources
downcast. (commit) - link: No longer crash editor after removing link from image when
LinkConfig#addTargetToExternalLinks: true
is set. Closes https://github.com/ckeditor/ckeditor5/issues/17252. (commit) - list-multi-level: Multi-level lists should display correctly in RTL mode for Decoupled Editor.
- pagination: Improved pagination of large tables that are followed by block elements.
- revision-history: Suggestions are no longer lost in some scenarios when restoring revisions in real-time collaboration.
- ui: The dropdown menu component should not cause editor blur if used in a
BalloonToolbar
while the user hovers a nested menu. Closes #17277. (commit) - ui: Made the page unscrollable while the modal is visible. Closes #17093. (commit)
# Other changes
- engine: Node index and offset related values are now cached in model
Node
andNodeList
to improve performance. (commit) - link: Exported link and unlink icons from the
ckeditor5-link
package. Closes #17304. (commit) - ui: Disabled dragging support for modal windows in the
Dialog
plugin. Closes #17290. (commit) - ui: Disabled positioning restrictions for modal windows caused by
config.ui.viewportOffset
. Closes #17290. (commit)
# CKEditor 5 43.2.0 release
We are happy to announce the release of CKEditor 5 v43.2.0.
# Release highlights
# Notable improvements
- Operational Transformation Stability: Significant changes have been made to the OT system, enhancing the undo functionality and real-time collaboration, especially in conflict resolution scenarios. These improvements ensure smoother editor operations during complex interactions.
- Performance Improvements: We have merged several community-driven performance enhancements (thanks @sunesimonsen), that optimize the editor’s core engine. While no changes to the editor’s logic were made, these updates improve overall efficiency and responsiveness.
# More imports available via ckeditor5
and ckeditor5-premium-features
indexes
As users transition to new installation methods (v42.0.0+) with ckeditor5
and ckeditor5-premium-features
as the main packages, we are continuously addressing missing imports for less common classes, functions, types, and utilities, broadening their availability. Since our TypeScript rewrite (v37.0.0), imports can now be made directly through the package indexes, simplifying integration. As many users historically imported from src
, we encourage you to try the new version and report any missing imports. In the future, we are considering removing src
from published packages to reduce package size, so the more feedback we receive, the better and more stable API we will provide.
# Features
- engine: Added the
usePassive
option toDomEventObserver
that enables listening to passive events. Closes #16412. (commit) - media-embed: It is now possible to embed YouTube shorts. Closes #17090. (commit)
- ui: Updated the “Powered by” link. (commit)
# Bug fixes
- ckbox: Editing inline images using
CKBox
no longer changes and reinserts them simultaneously. Closes #17056. (commit) - engine: Fixed incorrect marker handling in some scenarios involving undo and real-time collaboration, which earlier led to a
model-nodelist-offset-out-of-bounds
error. See #9296. (commit) - engine: Fixed incorrect handling of merge changes during undo in some scenarios involving real-time collaboration, which earlier led to a
model-nodelist-offset-out-of-bounds
error. See #9296. (commit) - engine: Fixed conflict resolution error, which led to editor crash in some scenarios where two users removed larger intersecting part of the content and used undo. See #9296. (commit)
- engine: Fixed incorrect undo behavior leading to an editor crash when a user pressed Enter key multiple times, then pressed backspace that many times, then undid all the changes. Closes #9296. (commit)
- theme-lark: Increased the specificity of the dropdown menu panel styles to address issues with incorrect
z-index
ordering. (commit) - ui: Fixed scrolling in dropdowns when a block toolbar button is active. Closes #17067. (commit)
- ui: Increased the specificity of the dropdown menu panel styles to address issues with incorrect
z-index
ordering. (commit)
# Other changes
- basic-styles: Exported the
AttributeCommand
class. Closes #17105. (commit) - ckeditor5-premium-features: Marked the
ckeditor5
package aspeerDependencies
. - engine: Performance improvements. Avoided creating unnecessary arrays. Closes #17143. (commit)
- Exported several classes and utilities from various packages (commit).
Every day, we work hard to keep our documentation complete. Have you spotted outdated information? Is something missing? Please report it via our issue tracker.
With the release of version 42.0.0, we have rewritten much of our documentation to reflect the new import paths and features. We appreciate your feedback to help us ensure its accuracy and completeness.