Releases: ckeditor/ckeditor5
v47.1.0
We are happy to announce the release of CKEditor 5 v47.1.0.
Release highlights
This release introduces a minor stability update, featuring focused fixes and UX improvements.
MINOR BREAKING CHANGES ℹ️
-
ai: Simplified CSS for the CKEditor AI integration in a sidebar mode (
config.ai.container.type: 'sidebar'
) by removing default layout constraints:- Removed the default
min-height
from.ck-ai-chat
, - Removed the default
height
from.ck-tabs
, - Removed the default
width
from.ck-ai-tabs
.
Also, the
--ck-tabs-panels-container-width
custom property has been removed from the codebase. - Removed the default
Note
Breaking changes in CKEditor AI are permitted during the Active phase of an LTS release. Learn more why.
Features
- ai: Added the
config.ai.container.visibleByDefault
configuration option to allow for hiding the AI component on the editor initialization.
Bug fixes
- ai: Fixed TypeScript errors when using the
AIChat
plugin caused by incompatibleconstructor()
signatures. - ai: The editor no longer throws an error when accepting or rejecting proposed changes in review mode for "Adjust length" and "Adjust tone and style" checks.
- ai: Fixed an issue where balloons were displayed under the AI container in the overlay mode.
- ai: "Chat commands" from AI Quick Actions could not be correctly used if the selection was collapsed (nothing was selected). Now, a collapsed selection is correctly expanded to the entire element, which includes the selection.
- ai: AI Quick Action buttons added to the editor toolbar and to the balloon toolbar will no longer gain focus on hover, which had led to incorrect UI behavior.
- link: Changing the link's "displayed text" using the link contextual balloon resulted in incorrect changes if track changes were turned on. Closes #19193.
- pagination: Images placed in tables should not affect the pagination calculations.
- revision-history: Revision history was showing incorrect revision data in a scenario where, for the same current revision, a user made a deletion before another user's deletion, in the same element.
Other changes
- ai: Improved performance of the AI Chat prompt input field, which was lagging while typing if the AI Chat feed contained a very long conversation.
- ai: Made the
config.ai.chat.models
configuration property optional because a default configuration is always provided by the plugin anyway. - ai: Enabled keyboard navigation within the custom command form in AI Review.
- ai: Added validation to the AI Review custom command form to disallow sending an empty prompt.
- ai: Changes proposed by AI, which cannot be applied anymore due to other changes that happened in the document, will now be marked as outdated instead of throwing an error when interacted with.
- ai: Improved the title for AI Review parameterized and custom checks, so it is clear what parameters were used to run the review.
- ai: AI Chat will now display a message if the requested model is no longer available. This may happen, for example, when a conversation is loaded from the history.
- ai:
AIQuickActions
now addsAIActions
plugin as its dependency. This is to ensure that the AI Quick Actions dropdown is populated by the default set of actions, without the need to addAIActions
plugin manually.
Released packages
Check out the Versioning policy guide for more information.
Released packages (summary)
Minor releases (contain minor breaking changes):
- @ckeditor/ckeditor5-ai: v47.0.0 => v47.1.0
Other releases:
- @ckeditor/ckeditor5-adapter-ckfinder: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-alignment: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-autoformat: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-autosave: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-basic-styles: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-block-quote: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-bookmark: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-case-change: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-ckbox: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-ckfinder: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-clipboard: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-cloud-services: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-code-block: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-collaboration-core: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-comments: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-core: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-document-outline: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-easy-image: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-editor-balloon: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-editor-classic: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-editor-decoupled: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-editor-inline: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-editor-multi-root: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-email: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-emoji: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-engine: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-enter: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-essentials: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-export-inline-styles: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-export-pdf: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-export-word: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-find-and-replace: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-font: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-format-painter: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-fullscreen: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-heading: v47.0.0 => v47.1.0
- @ckeditor/ckeditor5-highlight: v47.0.0 => v47.1.0
- [@ckeditor/ckeditor5...
v47.0.0
We are happy to announce the release of CKEditor 5 v47.0.0.
Release highlights
CKEditor AI (early access)
We are introducing CKEditor AI, a set of versatile AI-powered features that integrate directly into CKEditor 5. It brings generation, summarization, correction, contextual chat help, reviews, and many other capabilities, right into the editor. With CKEditor AI, users will no longer need to switch between the editor and AI tools.
Three features are available in this early access phase:
- Chat: a conversational AI for dynamic, multi-turn interactions that support various context sources, model selection, which can perform changes directly on the document.
- Quick actions: one-click transformations and instant insights for selected text.
- Review: automatic checks for grammar, tone, correctness, style, and more, with UX optimized for performing full-document review.
Each feature is powered by our state-of-the-art AI service, available in the Cloud today and coming soon for on-premises deployments. This makes CKEditor AI a true plug-and-play solution that works out of the box, eliminating the need for months of custom development.
CKEditor AI is available as part of our free trial in early access.
Long-term Support (⭐)
We are introducing the CKEditor 5 LTS (Long-term Support) Edition, giving teams up to 3 years of stability with guaranteed updates.
The first LTS release is v47.0.0 (October 2025). It will receive 6 months of active development with new features and fixes, then 2.5 years of maintenance with security and critical compatibility updates.
For v47.x, the Maintenance phase starts in April 2026. From then, the next versions in the v47.x line will be available only under a commercial LTS Edition license. Therefore, starting in April, integrators without an LTS license should migrate to v48.x (the next regular release).
If you need long-term stability, contact sales or read more about CKEditor 5 LTS Edition.
Other improvements and fixes
This release also brings several smaller but important enhancements and fixes:
- Widgets: the default
Tab
/Shift+Tab
navigation now works better inside nested editables, improving usability. This change is also reflected in the editor’s current widgets (like tables), leading to more intuitive keyboard navigation. - UI: dialogs in custom features can now be positioned programmatically with more flexible options (
Dialog#show()
). - Comments: confirmation views for deleting comments and threads now use simplified CSS selectors (
.ck-confirm-view
). You may need to adjust custom styles accordingly.
Please refer to the update guide to learn more about these changes.
MAJOR BREAKING CHANGES ℹ️
- ai: Due to the release of the new AI feature, the
ai.*
configuration structure has changed. Until now, the configuration object was used for the formerAIAssistant
feature. Now, this configuration space is used for all AI related features. Configuration for theAIAssistant
was moved. The changes are:ai.aiAssistant
->ai.assistant
,ai.useTheme
->ai.assistant.useTheme
,ai.aws
->ai.assistant.adapter.aws
,ai.openAI
->ai.assistant.adapter.openAI
.
MINOR BREAKING CHANGES ℹ️
- table, widget: The Widget feature implements the default handling for
Tab
/Shift+Tab
to navigate nested editable elements in the editor content. Closes #19083. The listeners are registered on thelow
priority bubbling event in the context of widgets and editable elements. Please verify if your customTab
/Shift+Tab
handling does not collide with the default one. - ai: The internal structure of the package has changed. Importing
AIAssistant
from the source should be done via@ckeditor/ckeditor5-ai/src/aiassistant/aiassistant.js
path instead of the previous@ckeditor/ckeditor5-ai/src/aiassistant.js
. - comments: Changed the CSS selectors used to style the confirmation view displayed when attempting to remove a comment or an entire comment thread. For now, CSS classes will be more generic, for example:
.ck-confirm-view
instead of.ck-thread__remove-confirm
. If you override styles for these components, you will need to update the selectors. - undo: The
UndoCommandRevertEvent
type was renamed toUndoRedoBaseCommandRevertEvent
and moved to thebasecommand.ts
file. Adjust your code if you have used this type in your custom integration. See #19168. - Updated to TypeScript 5.3.
Features
- ai: Introduced CKEditor AI, a brand-new set of versatile AI-powered features, including: chat, quick actions, and document review capabilities.
- ui: The
position
parameter inDialog#show()
now can be a function that takesdialogRect
anddomRootRect
parameters and should return an object withtop
andleft
properties ornull
. It can be used to specify a custom positioning for the dialog. Closes #19167.
Bug fixes
-
engine: The
markerToHighlight()
converter did not clone theview
configuration if passed as plain object leading to incorrect behavior. This affects only custom plugins that used this converter in the described way. Closes #19105. -
engine: The bubbling events now trigger event callbacks according to the registered priorities even if multiple custom contexts are provided. See #19083.
-
export-inline-styles: Fix specificity calculation to handle
:where()
selectors correctly. -
link: The link manual decorators are no longer lost when caption is added to an image. Closes #19024.
-
pagination: Pagination lines should calculate properly for pages with larger horizontal margins.
-
revision-history: Fixed a crash which happened under specific circumstances when a revision was created when document was exported using the Cloud Services REST API (
GET /documents/
endpoint).Although the fix was necessary in Revision History feature code, it was only reproducible in scenarios involving using the mentioned export endpoint.
Other changes
- comments: Corrected types for the
resolvedBy
parameter inCommentThread#resolve
. It was previously typed asundefined | null
, and is now properly typed asundefined | string
. - undo:
RedoCommand
will now fire'revert'
event when executed, similarly toUndoCommand
. TypeUndoCommandRevertEvent
was renamed toUndoRedoBaseCommandRevertEvent
and moved tobasecommand.ts
file. Closes #19168.
Released packages
Check out the Versioning policy guide for more information.
Released packages (summary)
Major releases (contain major breaking changes):
- @ckeditor/ckeditor5-ai: v46.1.1 => v47.0.0
Minor releases (contain minor breaking changes):
- @ckeditor/ckeditor5-table: v46.1.1 => v47.0.0
- @ckeditor/ckeditor5-widget: v46.1.1 => v47.0.0
- @ckeditor/ckeditor5-comments: v46.1.1 => v47.0.0
- @ckeditor/ckeditor5-undo: v46.1.1 => v47.0.0
Releases containing new features:
- @ckeditor/ckeditor5-ui: v46.1.1 => v47.0.0
Other releases:
- @ckeditor/ckeditor5-adapter-ckfinder: v46.1.1 => v47.0.0
- [@ckeditor/ckeditor5-alig...
v46.1.1
We are happy to announce the release of CKEditor 5 v46.1.1.
Release highlights
This is an internal release focused on improving our development infrastructure and the release process. These changes have no impact on integrators but represent significant improvements to our development workflow.
Development environment modernization
We have migrated our package management from Yarn Classic to pnpm, delivering substantial benefits:
- Faster installations through efficient linking mechanisms,
- Improved dependency management with stricter resolution and better peer dependency handling,
- Better disk efficiency by eliminating duplicate packages across projects.
We have also introduced dependency locking mechanisms that provide greater stability and predictability in our build process, ensuring consistent environments across development setups and CI/CD pipelines.
What this means for you
As an integrator, you will not notice any changes in functionality or API. This release maintains full backward compatibility while laying the foundation for more efficient development cycles and faster future releases.
If you fork the repository and develop using source code, you will need to update your development setup according to our development environment guide.
Released packages
Check out the Versioning policy guide for more information.
Released packages (summary)
Minor releases (contain minor breaking changes):
- @ckeditor/ckeditor5-real-time-collaboration: v46.1.0 => v46.1.1
Releases containing new features:
- @ckeditor/ckeditor5-table: v46.1.0 => v46.1.1
Other releases:
- @ckeditor/ckeditor5-adapter-ckfinder: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-ai: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-alignment: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-autoformat: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-autosave: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-basic-styles: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-block-quote: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-bookmark: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-case-change: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-ckbox: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-ckfinder: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-clipboard: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-cloud-services: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-code-block: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-collaboration-core: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-comments: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-core: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-document-outline: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-easy-image: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-editor-balloon: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-editor-classic: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-editor-decoupled: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-editor-inline: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-editor-multi-root: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-email: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-emoji: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-engine: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-enter: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-essentials: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-export-inline-styles: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-export-pdf: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-export-word: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-find-and-replace: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-font: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-format-painter: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-fullscreen: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-heading: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-highlight: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-horizontal-line: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-html-embed: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-html-support: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-icons: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-image: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-import-word: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-indent: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-language: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-line-height: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-link: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-list: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-list-multi-level: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-markdown-gfm: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-media-embed: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-mention: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-merge-fields: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-minimap: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-operations-compressor: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-page-break: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-pagination: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-paragraph: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-paste-from-office: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-paste-from-office-enhanced: v46.1.0 => v46.1.1
- @ckeditor/ckeditor5-remove-format: v46.1.0 => v46.1.1
- [@ckedito...
v46.1.0
We are happy to announce the release of CKEditor 5 v46.1.0.
Release highlights
Smoother drag & drop of widgets on iOS
We updated the implementation for more reliable drag-and-drop on iOS touch devices. The behavior on the desktop devices remains unchanged.
Pagination improvements
We reverted a low-level change to improve stability in pagination, especially in scenarios including long tables.
Hide a user in the Server-side editing API
The Server-side editor API now supports a hidden_in_presence_list
user flag. You can use this mechanism to prevent automation script users from appearing in the editor’s presence list while scripts run.
Comments’ markers clean up
We provided a better handling of edge cases where a marker points to a non-existing comment thread (for example, due to integrator mistakes). Such markers are now removed automatically to keep the editor stable.
MINOR BREAKING CHANGES ℹ️
- real-time-collaboration:
CloudServicesCommentsAdapter#getCommentThread
no longer throws an error when a comment thread does not exist. Instead, it now returnsnull
.
Features
- real-time-collaboration: The user will not be displayed in the Presence List when a server-side editor API script is executed with the
hidden_in_presence_list
parameter. - table: The table caption feature now has a configuration option
table.tableCaption.useCaptionElement
that changes the HTML for table captions. With this option set totrue
the output HTML for table caption changes fromfigure.table > figcaption
tofigure.table > table > caption
. Closes #18988.
Bug fixes
- clipboard, engine, widget: Improved drag & drop of widgets with selection handle on iOS devices. Closes #16335.
- engine: Spaces at the end of list items are correctly preserved when saving and loading data. Closes #18960.
- engine: Fixed an issue where the editor could crash if the selection was moved to a non-existent node during the blur event. Closes #18744.
- merge-fields: Editor no longer incorrectly adds an empty paragraph (that does not exist in data) when loaded data contains a block merge field with a marker (such as comment) on it.
- pagination: Adjusted theme for
<caption>
vs<figcaption>
element in tables. See ckeditor/ckeditor5#18988. - paste-from-office: Ensure consistent formatting of content pasted from Google Docs by replacing tab characters with spaces in preformatted text blocks. Closes #18995.
- revision-history: Fixed an error that prevented previewing a revision that included a removed block merge field.
- uploadcare: Fixed an issue where the Uploadcare image uploader and editor did not work correctly with custom upload URLs or custom CDN canonical names.
- watchdog: Fixed an issue where Watchdog incorrectly restored collaboration data (comment threads and suggestions) after a crash in load and save integrations. Closes #19033.
- widget: Read-only mode no longer focuses the editor and displays UI when selecting nested editables. Closes #18965.
Other changes
- comments, real-time-collaboration: Comment markers linked to non-existing threads are now removed automatically (instead of throwing an error) in real-time collaboration, ensuring the editor remains fully functional.
- track-changes: Error
track-changes-user-not-found
will now be thrown with additional data to help with debugging:authorId
(the ID of the missing user) andsuggestionId
(the ID of the suggestion for which the error was thrown).
Released packages
Check out the Versioning policy guide for more information.
Released packages (summary)
Minor releases (contain minor breaking changes):
- @ckeditor/ckeditor5-real-time-collaboration: v46.0.3 => v46.1.0
Releases containing new features:
- @ckeditor/ckeditor5-table: v46.0.3 => v46.1.0
Other releases:
- @ckeditor/ckeditor5-adapter-ckfinder: v46.0.3 => v46.1.0
- @ckeditor/ckeditor5-ai: v46.0.3 => v46.1.0
- @ckeditor/ckeditor5-alignment: v46.0.3 => v46.1.0
- @ckeditor/ckeditor5-autoformat: v46.0.3 => v46.1.0
- @ckeditor/ckeditor5-autosave: v46.0.3 => v46.1.0
- @ckeditor/ckeditor5-basic-styles: v46.0.3 => v46.1.0
- @ckeditor/ckeditor5-block-quote: v46.0.3 => v46.1.0
- @ckeditor/ckeditor5-bookmark: v46.0.3 => v46.1.0
- @ckeditor/ckeditor5-case-change: v46.0.3 => v46.1.0
- @ckeditor/ckeditor5-ckbox: v46.0.3 => v46.1.0
- @ckeditor/ckeditor5-ckfinder: v46.0.3 => v46.1.0
- @ckeditor/ckeditor5-clipboard: v46.0.3 => v46.1.0
- @ckeditor/ckeditor5-cloud-services: v46.0.3 => v46.1.0
- @ckeditor/ckeditor5-code-block: v46.0.3 => v46.1.0
- @ckeditor/ckeditor5-collaboration-core: v46.0.3 => v46.1.0
- @ckeditor/ckeditor5-comments: v46.0.3 => v46.1.0
- @ckeditor/ckeditor5-core: v46.0.3 => v46.1.0
- @ckeditor/ckeditor5-document-outline: v46.0.3 => v46.1.0
- @ckeditor/ckeditor5-easy-image: v46.0.3 => v46.1.0
- @ckeditor/ckeditor5-editor-balloon: v46.0.3 => v46.1.0
- @ckeditor/ckeditor5-editor-classic: v46.0.3 => v46.1.0
- @ckeditor/ckeditor5-editor-decoupled: v46.0.3 => v46.1.0
- @ckeditor/ckeditor5-editor-inline: v46.0.3 => v46.1.0
- @ckeditor/ckeditor5-editor-multi-root: v46.0.3 => v46.1.0
- @ckeditor/ckeditor5-email: v46.0.3 => v46.1.0
- @ckeditor/ckeditor5-emoji: v46.0.3 => v46.1.0
- @ckeditor/ckeditor5-engine: v46.0.3 => v46.1.0
- @ckeditor/ckeditor5-enter: v46.0.3 => v46.1.0
- @ckeditor/ckeditor5-essentials: v46.0.3 => v46.1.0
- [@ckeditor/ckeditor5-export-inline-styles](https://www.npmjs.com/package/@ckeditor/ckeditor5-export-inline-styles/...
v46.0.3
A Cross-Site Scripting (XSS) vulnerability has been discovered in the CKEditor 5 clipboard package (CVE-2025-58064
). This vulnerability could be triggered by a specific user action, leading to unauthorized JavaScript code execution, if the attacker managed to insert malicious content into the editor, which might happen with a very specific editor configuration.
This vulnerability affects only installations where the editor configuration meets one of the following criteria:
- HTML embed plugin is enabled
- Custom plugin introducing an editable element which implements view RawElement is enabled
You can read more details in the relevant security advisory and contact us if you have more questions.
Released packages
Check out the Versioning policy guide for more information.
Released packages (summary)
Other releases:
- @ckeditor/ckeditor5-adapter-ckfinder: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-ai: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-alignment: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-autoformat: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-autosave: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-basic-styles: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-block-quote: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-bookmark: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-case-change: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-ckbox: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-ckfinder: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-clipboard: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-cloud-services: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-code-block: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-collaboration-core: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-comments: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-core: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-document-outline: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-easy-image: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-editor-balloon: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-editor-classic: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-editor-decoupled: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-editor-inline: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-editor-multi-root: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-email: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-emoji: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-engine: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-enter: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-essentials: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-export-inline-styles: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-export-pdf: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-export-word: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-find-and-replace: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-font: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-format-painter: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-fullscreen: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-heading: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-highlight: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-horizontal-line: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-html-embed: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-html-support: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-icons: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-image: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-import-word: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-indent: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-language: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-line-height: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-link: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-list: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-list-multi-level: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-markdown-gfm: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-media-embed: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-mention: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-merge-fields: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-minimap: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-operations-compressor: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-page-break: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-pagination: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-paragraph: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-paste-from-office: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-paste-from-office-enhanced: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-real-time-collaboration: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-remove-format: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-restricted-editing: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-revision-history: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-select-all: v46.0.2 => v46.0.3
- @ckeditor/ckeditor5-show-blocks: v46.0.2 => v46.0.3
- [@ckeditor/ckeditor5-slash-command](https://www.npmjs.com/package/@ckeditor/ckedi...
v45.2.2
A Cross-Site Scripting (XSS) vulnerability has been discovered in the CKEditor 5 clipboard package (CVE-2025-58064
). This vulnerability could be triggered by a specific user action, leading to unauthorized JavaScript code execution, if the attacker managed to insert malicious content into the editor, which might happen with a very specific editor configuration.
This vulnerability affects only installations where the editor configuration meets one of the following criteria:
- HTML embed plugin is enabled
- Custom plugin introducing an editable element which implements view RawElement is enabled
You can read more details in the relevant security advisory and contact us if you have more questions.
Released packages
Check out the Versioning policy guide for more information.
Released packages (summary)
Other releases:
- @ckeditor/ckeditor5-adapter-ckfinder: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-ai: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-alignment: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-autoformat: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-autosave: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-basic-styles: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-block-quote: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-bookmark: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-case-change: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-ckbox: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-ckfinder: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-clipboard: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-cloud-services: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-code-block: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-collaboration-core: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-comments: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-core: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-document-outline: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-easy-image: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-editor-balloon: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-editor-classic: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-editor-decoupled: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-editor-inline: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-editor-multi-root: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-email: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-emoji: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-engine: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-enter: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-essentials: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-export-inline-styles: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-export-pdf: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-export-word: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-find-and-replace: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-font: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-format-painter: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-fullscreen: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-heading: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-highlight: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-horizontal-line: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-html-embed: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-html-support: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-icons: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-image: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-import-word: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-indent: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-language: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-link: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-list: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-list-multi-level: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-markdown-gfm: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-media-embed: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-mention: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-merge-fields: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-minimap: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-operations-compressor: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-page-break: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-pagination: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-paragraph: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-paste-from-office: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-paste-from-office-enhanced: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-real-time-collaboration: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-remove-format: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-restricted-editing: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-revision-history: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-select-all: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-show-blocks: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-slash-command: v45.2.1 => v45.2.2
- @ckeditor/ckeditor5-source-editing: v45.2.1 => v45.2.2
- [@ckeditor/ckeditor5-source-...
v46.0.2
We are happy to announce the release of CKEditor 5 v46.0.2.
Release highlights
This hotfix release resolves an issue where archived comment threads could incorrectly appear in the sidebar, ensuring they remain properly contained in the comments archive.
Bug fixes
- comments: The
Annotation#isVisible
property of archived comment thread annotations can no longer be modified. This prevents archived comment threads from being incorrectly displayed in the sidebar and ensures they remain properly contained within the archive.
Released packages
Check out the Versioning policy guide for more information.
Released packages (summary)
Other releases:
- @ckeditor/ckeditor5-adapter-ckfinder: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-ai: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-alignment: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-autoformat: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-autosave: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-basic-styles: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-block-quote: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-bookmark: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-case-change: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-ckbox: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-ckfinder: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-clipboard: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-cloud-services: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-code-block: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-collaboration-core: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-comments: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-core: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-document-outline: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-easy-image: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-editor-balloon: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-editor-classic: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-editor-decoupled: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-editor-inline: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-editor-multi-root: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-email: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-emoji: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-engine: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-enter: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-essentials: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-export-inline-styles: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-export-pdf: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-export-word: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-find-and-replace: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-font: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-format-painter: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-fullscreen: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-heading: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-highlight: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-horizontal-line: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-html-embed: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-html-support: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-icons: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-image: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-import-word: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-indent: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-language: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-line-height: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-link: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-list: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-list-multi-level: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-markdown-gfm: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-media-embed: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-mention: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-merge-fields: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-minimap: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-operations-compressor: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-page-break: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-pagination: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-paragraph: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-paste-from-office: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-paste-from-office-enhanced: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-real-time-collaboration: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-remove-format: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-restricted-editing: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-revision-history: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-select-all: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-show-blocks: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-slash-command: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-source-editing: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-source-editing-enhanced: v46.0.1 => v46.0.2
- @ckeditor/ckeditor5-special-characters: v46.0.1 => v46.0.2
- [@c...
v46.0.1
We are happy to announce the release of CKEditor 5 v46.0.1.
Release highlights
Complete documentation redesign is here
We have prepared a new theme for our documentation to enhance its quality. The new look improves readability and addresses several accessibility issues for a better experience. The redesigned navigation bar gives more useful access to various sections of the documentation, making it easier to reference guides for all our products. Improved table of contents makes browsing and finding guides easier, paired with updated search functionality. Check out the new experience yourself!
The pagination plugin just got better
This release introduces a significant pagination update, along with numerous fixes. Page breaks are now calculated taking into account the content styles, bookmark markers, and with better tolerance calculation. Pagination now also finds the correct breakpoint for large tables of contents and images taller than the page.
Table handling with pagination and export to PDF
The pagination and export to PDF features now better support tables containing one or more paragraphs. Cell margins are now correctly applied in exported tables, which improves the precision of pagination rendering.
Bug fixes
- export-word, list-multi-level, real-time-collaboration, revision-history, track-changes: Fixed a bug that caused TypeScript to report compilation errors in
.d.ts
files (e.g.Module has no exported member
) when adding theckeditor5-premium-features
dependency to a project that installs CKEditor 5. The issue was caused by TypeScript compilation problems in theckeditor5-premium-features
package and affected users who didn't have"skipLibCheck": true
set in theirtsconfig.json
. - export-pdf, pagination: The pagination and export to PDF features now better support tables containing one or more paragraphs. Cell margins are now correctly applied in exported tables, which improves the precision of pagination rendering.
- comments, track-changes: Annotations will now be hidden in the sidebar when the target element is not a valid DOM element, preventing sidebar flickering and the appearance of orphaned annotations.
- comments: Resolved comment thread highlight will now be properly removed from the editing area when the comments archive is closed while the editor is in read-only mode.
- comments: Fixed
CommentsEditing
being exported as type instead of value. - html-support: Fixed following plugins being exported as types instead of values:
CodeBlockElementSupport
,CustomElementSupport
,ListElementSupport
,DualContentModelElementSupport
,HeadingElementSupport
,ImageElementSupport
,MediaEmbedElementSupport
,ScriptElementSupport
,StyleElementSupport
,TableElementSupport
,HorizontalLineElementSupport
. Closes #18855. - list: Fix the vertical spacing of a single paragraph in the list item with a nested list. Closes #18831.
- pagination: Pagination correctly handles content styles like
.ck-content > :first-child
. - pagination: Pagination lines do not change position depending on user selection.
- pagination: Pagination correctly finds page breaks on a large table of contents.
- pagination: The pagination line is correctly positioned when there is a bookmark element at the start of the block.
- pagination: Pagination can find page breaks on images taller than a page height.
- paste-from-office: Clean the
width: 0
attribute when tables are pasted from Word. - revision-history: Fixed
RevisionViewerIntegration
being exported as type instead of value. - table: Tables should not be stretched to full page width when printed.
- table: The table caption should not be scrambled when the document is printed. Closes #18903.
- track-changes: Fixed multiple cases where suggestion markers were created on incorrect ranges, causing sidebar flickering.
- track-changes: Fixed
TrackChangesUI
missing an export. - utils: Fixed the
Identifier 'global' has already been declared.
error being thrown in some environments due to the global variable name in the@ckeditor/ckeditor5-utils
package. Closes #18856.
Other changes
- collaboration-core: Make
CollaborationUserColor#id
a public readonly property. - emoji: Improve the initialization performance of the Emoji feature by optimizing the
EmojiUtils#isEmojiSupported()
method. Closes #18822. - export-pdf: Added width constraint for content exported to PDF.
- image: Image caption should be printed on the same page as the image.
- pagination: Pagination uses
0.5mm
tolerance while calculating line breaks.
Released packages
Check out the Versioning policy guide for more information.
Released packages (summary)
Other releases:
- @ckeditor/ckeditor5-adapter-ckfinder: v46.0.0 => v46.0.1
- @ckeditor/ckeditor5-ai: v46.0.0 => v46.0.1
- @ckeditor/ckeditor5-alignment: v46.0.0 => v46.0.1
- @ckeditor/ckeditor5-autoformat: v46.0.0 => v46.0.1
- @ckeditor/ckeditor5-autosave: v46.0.0 => v46.0.1
- @ckeditor/ckeditor5-basic-styles: v46.0.0 => v46.0.1
- @ckeditor/ckeditor5-block-quote: v46.0.0 => v46.0.1
- @ckeditor/ckeditor5-bookmark: v46.0.0 => v46.0.1
- @ckeditor/ckeditor5-case-change: v46.0.0 => v46.0.1
- @ckeditor/ckeditor5-ckbox: v46.0.0 => v46.0.1
- @ckeditor/ckeditor5-ckfinder: v46.0.0 => v46.0.1
- @ckeditor/ckeditor5-clipboard: v46.0.0 => v46.0.1
- @ckeditor/ckeditor5-cloud-services: v46.0.0 => v46.0.1
- @ckeditor/ckeditor5-code-block: v46.0.0 => v46.0.1
- @ckeditor/ckeditor5-collaboration-core: v46.0.0 => v46.0.1
- @ckeditor/ckeditor5-comments: v46.0.0 => v46.0.1
- @ckeditor/ckeditor5-core: v46.0.0 => v46.0.1
- @ckeditor/ckeditor5-document-outline: v46.0.0 => v46.0.1
- @ckeditor/ckeditor5-easy-image: v46.0.0 => v46.0.1
- @ckeditor/ckeditor5-editor-balloon: v46.0.0 => v46.0.1
- @ckeditor/ckeditor5-editor-classic: v46.0.0 => v46.0.1
- @ckeditor/ckeditor5-editor-decoupled: v46.0.0 => v46.0.1
- [@ckeditor/ckeditor5-editor-inline...
v46.0.0
We are happy to announce the release of CKEditor 5 v46.0.0.
Release highlights
Important
This is a major release with significant amount of changes that may affect your CKEditor 5 integration. We strongly encourage you to read the entire update guide to understand all the changes.
Pay special attention to:
- Unified exports and renames in the editor API: Many import/export names have changed
- Introduction of the default content styles: New default styling that may affect your content appearance
These changes are designed to improve the long-term stability and maintainability of CKEditor 5, but they require careful attention during the upgrade process.
Line Height (⭐)
The new Line Height feature allows you to adjust the vertical spacing between lines of text, improving readability and visual harmony in your documents. This premium feature lets you set consistent line spacing across paragraphs and text blocks to enhance document accessibility and maintain visual hierarchy in your content.
Remove Format improvements
Unneeded styles on block elements, such as tables and images, and General HTML Support nodes and attributes are finally eliminated when you hit the remove format button. The feature now cleans what it should, leaving the document structure untouched.
List markers styling
Working with styled lists becomes more intuitive as list markers (bullets and numbers) now automatically inherit text styling properties such as font size adjustments, text color changes, and font weight modifications (bold, italic).
This improvement makes it easier to create visually consistent and professional-looking lists without additional configuration. This improvement also supports Multi-level lists.
Important! This behavior is enabled by default, which means you may experience content change when you load the content to the editor 's new version (for the better in our opinion). But if this is not something you expect, you can opt out.
Markdown processor dependency refresh
The Markdown feature dependencies have been modernized with a switch to the unified
ecosystem, replacing the previous marked
/ turndown
implementation. This change brings more consistent and symmetrical HTML ↔ Markdown conversion. By adopting remark
and rehype
from the same family of tools, we have created a more reliable and maintainable implementation that will better serve your document processing needs.
Manual token refreshing
We have added the config.cloudServices.autoRefresh
configuration property to disable the automatic token refresh mechanism. When it 's set to false
, the token must be refreshed manually. This property opens up the ability to implement custom token handling if a certain use case requires this.
Comment threads improvements
New thread command changes
We have also introduced improvements to the addCommandThread
command, which now supports creating comment threads on specified ranges. Additionally, it allows for creating a comment thread with an initial comment with the provided comment content.
Minor breaking change
The AddCommandThreadCommand#isEnabled
property is no longer false
when the current document selection is empty, as the command now allows for creating comment threads on custom ranges. If you previously used this property (for example, to provide a custom UI element), you should now use the observable AddCommentThreadCommand#hasContent
property instead.
Comments and suggestions annotations
We have introduced dedicated methods for an easier way to get specific annotations related to a comment or a suggestion and vice versa.
Unified exports and renames in the editor API
After the big New Installation Method release (v42.0.0+), some developers upgrading from v41-x to v42-x were greeted by the does not provide an export named ...
error. We addressed issues immediately as they were reported, but we knew it required a deeper are more comprehensive approach long-term.
With this release, we introduced a new, clear set of rules about internal imports, and also added re-exports if they were missing, changed the names of items to be more descriptive and avoid collisions, took care of internal methods that were already exported but not tagged, and cleaned up @deprecated
code that was stale for some time.
If your build throws errors after the update, search and replace the old names with the new ones from the update guide. We have not changed the behavior of these APIs, just the names.
Last but not least, this release put us on the clean and straight path towards the deprecation of old installation methods. Please let us know if you have any questions on GitHub or support channels.
Opinionated default content styles and CSS renames
To improve the out-of-the-box experience and accessibility, we are introducing opinionated defaults for content styling. From this version, we ship a small defaults layer applied to .ck-content
. These content styles are easily replaceable via CSS variable override. You may have already styled those things with more specific selectors.
While working on this initiative, we decided to standardize the CSS naming, too. All older variables that applied to the content styles now share the consistent --ck-content-*
prefix. Read about the details in the update guide.
MAJOR BREAKING CHANGES ℹ️
-
ai: The AI Assistant now uses the more advanced
gpt-4o
model by default, replacing the previousgpt-3.5-turbo
. This update improves response quality and overall capabilities. Additionally, the default limit set bymax_tokens
parameter has been removed, allowing for better and more detailed responses. If you relied on the previous default settings and wish to continue using them, be sure to explicitly define the editor configuration entryai.openAi.requestParameters
to{ model: 'gpt-3.5-turbo', max_tokens: 2000, stream: true }
. -
document-outline: Content area CSS variables have been renamed to use the --ck-content-* prefix for better consistency in the Table of Contents feature. This requires action if you have overridden the variables. See the update guide for details.
-
list: Removed vertical spacing in list items by resetting margins for
<p>
elements that are the child of a<li>
element. -
table: Removed vertical spacing in table cells by collapsing margins of
elements that are the only child of a
<td>
or<th>
element. -
The editor now enforces default browser styles for text content in both the editing view and rendered output. This change may affect existing styling and layout, so any custom CSS overrides should be reviewed. See #18710 for details. The following CSS variables and their default values are now applied:
--ck-content-font-family
:Helvetica, Arial, Tahoma, Verdana, sans-serif
--ck-content-font-size
:medium
--ck-content-font-color
:#000
(HEX instead ofhsl()
to ensure compatibility with email clients)--ck-content-line-height
:1.5
--ck-content-word-break
:break-word
-
The default styles for comment annotations have changed to provide better consistency with the editor UI. A new set of CSS variables is now used to control the appearance of the comment content and input fields. These changes may affect the current appearance of comments in your integration, so please review them after updating. The following CSS variables are now applied:
--ck-comment-content-font-family
--ck-comment-content-font-size
--ck-comment-content-font-color
(default changed fromhsl(0, 0%, 0%)
tohsl(0, 0%, 20%)
)
These variables default to values derived from the editor 's UI styles, and they may differ from your current settings. Customize these variables as needed to match your desired appearance.
-
Content area CSS variables have been renamed to use the
--ck-content-*
prefix for better consistency in the Highlight, Image, List, and Table features. This requires action if you have overridden the variables. See the update guide for details. -
Table-related CSS variables with improper
*-selector-*
naming have been renamed to use*-table-*
for better clarity. This requires action if you have overridden the variables. See the update guide for details.
MINOR BREAKING CHANGES [ℹ️](https://cked...
v45.2.1
We are happy to announce the release of CKEditor 5 v45.2.1.
Release highlights
This hotfix release brings fixes for certain regressions in the field of text selection (with balloon toolbars enabled), multi-level lists, and pagination.
Bug fixes
- engine: Fixed editor crash that happened in a specific scenario, when editing heavily formatted text, text with multiple comments, or text with comments and formatting. Closes #18727. (commit)
- engine: Fixed incorrect cache invalidation in
Mapper
, which could lead to crashes when editing heavily formatted content or when using complex features like multi-level lists. Closes #18678. (commit) - engine: Fixed editor crash that happened when typing over a table content with the balloon toolbar enabled. Closes #18648. (commit)
- list-multi-level: Fixed editor crash that happened when editing deeply nested multi-level lists. Closes #18678. (commit)
- table: Improved calculation of pagination page-breaks on documents with long tables. Closes #18600. (commit)
- typing: Typing over multiple selected blocks next to a code block or a block quote should not crash the editor. Closes #18722. (commit)
Released packages
Check out the Versioning policy guide for more information.
Released packages (summary)
Other releases:
- @ckeditor/ckeditor5-adapter-ckfinder: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-ai: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-alignment: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-autoformat: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-autosave: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-basic-styles: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-block-quote: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-bookmark: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-case-change: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-ckbox: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-ckfinder: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-clipboard: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-cloud-services: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-code-block: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-collaboration-core: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-comments: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-core: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-document-outline: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-easy-image: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-editor-balloon: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-editor-classic: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-editor-decoupled: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-editor-inline: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-editor-multi-root: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-email: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-emoji: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-engine: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-enter: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-essentials: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-export-inline-styles: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-export-pdf: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-export-word: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-find-and-replace: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-font: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-format-painter: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-fullscreen: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-heading: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-highlight: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-horizontal-line: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-html-embed: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-html-support: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-icons: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-image: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-import-word: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-indent: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-language: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-link: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-list: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-list-multi-level: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-markdown-gfm: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-media-embed: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-mention: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-merge-fields: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-minimap: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-operations-compressor: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-page-break: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-pagination: v45.2.0 => v45.2.1
- @ckeditor/ckeditor5-paragraph: v45.2.0 => v45.2.1
- ...