Release highlights
We are happy to announce the release of CKEditor 5 v24.0.0.
This release brings some new features:
- Accessible, Material design like input labels.
- The long-awaited multiline toolbar.
- Inserting images by pasting the URL directly into the editor.
- The
editor.focus()
method.
There were also some important bug fixes:
- Multiple issues with the lists and list styles.
- Follow-ups to the HMTL embed feature introduced in the previous release.
- Pasting plain text on link no longer breaks the link.
- Select All does select all now - including tables and blockquotes.
- The
supportAllValues
option in the font feature now works with nested elements.
Please note that there are some major breaking changes in this release. Be sure to review them before upgrading.
Collaboration features
The CKEditor 5 Collaboration features changelog can be found here: https://ckeditor.com/collaboration/changelog.
MAJOR BREAKING CHANGES ℹ️
- engine: The
DocumentSelection#markers
collection will not include all markers by default. UseDocumentSelection#observeMarkers()
to register that the given marker should be put in the#markers
collection when the document selection is placed inside it. - theme-lark: The look and behavior of the
LabeledFieldView
UI component (used for displaying fields across the project) have changed. This may require changes in your integration if it customizes the.ck-labeled-field-view
selector (or its internals).
MINOR BREAKING CHANGES ℹ️
- image: The parameters of the image utility function
insertImage()
parameters have changed. The removedwriter
instance is no longer needed. Additionally, you can specifyinsertPosition
as an optional parameter.
Features
- build-decoupled-document: Added new features to the build configuration: horizontal line, page break, remove formatting, and special characters). See #6146. (commit)
- core: Introduced the
focus()
method in the baseEditor
class. Closes #714. (commit) - engine: Introduced the
DataProcessor#registerRawContentMatcher()
API that marks content sections which contain arbitrary character data and should not be parsed during the conversion. See #8323. (commit) - image: Support for inserting images by pasting an image URL directly into the editor. Closes #8236. (commit)
- paste-from-office: Support for preserving the list styles while pasting from Word. Closes #8080. (commit)
- theme-lark: Added two new tooltip positions (east and west) in the
TooltipView
class and theButton
interface (see #8340). (commit) - theme-lark: Implemented a toolbar configuration that allows rendering toolbar items in multiple rows. Closes #6146. (commit)
- theme-lark: Added styles for a new south-east position of the
TooltipView
(see #8335). (commit) - ui: Added support for a new south-east position of the
TooltipView
(see #8335). (commit) - Made the input labels accessible across the editor UI. Closes #1098, #8242. (commit)
Bug fixes
- basic-styles: The code style should not be copied to a new line on pressing the Enter key. Closes #8144. (commit)
- clipboard: Pasting plain text inside a link or a restricted editing editable region will no longer break them. Closes #8158. (commit)
- engine:
DomConverter
will not trim whitespaces in nodes that are siblings to inline raw content elements (e.g. MathML). Closes #5870. (commit) - engine: The select all command should include all selectable elements in the content. Closes #7978. (commit)
- engine: The editor should not crash when selecting an image from bottom to top. Closes #7892. (commit)
- font: Fixed the
fontSize.supportAllValues
configuration for theFontSize
plugin to work with nested elements. Closes #8233. (commit) - html-embed: Tooltips in HTML embeds should not affect the editing root size or scrollbar. Closes #8340. (commit)
- html-embed: HTML embed editing UI should not be broken when the editor uses an RTL language. Closes #8335. (commit)
- html-embed: The editor will not crash after inserting broken HTML. Closes #8323. (commit)
- html-embed: Fixed saving the widget content after it lost the selection. Closes #8328. (commit)
- html-embed: The save button will now reflect the command state. Closes #8357. (commit)
- html-embed: The editing root should remain focused when saving changes in the HTML embed widget. Closes #8318. (commit)
- html-embed: Floated images are now properly displayed around HTML embeds. Closes #8332. (commit)
- image: Do not attach the image resizer to images inside the HTML embed preview. Closes #8433. (commit)
- indent: The block indent feature will now work with custom headings. Closes #8177. (commit)
- link: The editor should not crash when inserting a link after another link with the same URL. Closes #8210. (commit)
- link: Fixed the unlink command for a selection spreading over 3+ blocks. Closes #8030. (commit)
- link: Fixed a quick image flicker of the image resize frame when inserting an image. Closes #8088. (commit)
- list: List styles will be inherited correctly when pasting a list into another list. Closes #8160. (commit)
- paste-from-office: Improved the mechanism that detects nested lists when pasting from Word. In some scenarios, pasting nested lists could produce invalid results in the editor. Closes #7805. (commit)
- theme-lark: The HTML embed editing UI should not be broken when the editor uses an RTL language (see #8335). (commit)
- ui: A toolbar with grouped items should wrap to keep items visible in the viewport. Closes #5586 . (commit)
- undo: Fixed restoring selection on undo for some scenarios when some selection ranges are in the graveyard after restoring them. (commit)
- utils: Fixed a memory leak in
EventEmitterMixin
. See #8480. (commit) - Fixed building documentation on Windows. Closes #7212. (commit)
Other changes
- engine: The
DocumentSelection#markers
collection will now be updated only for observed markers groups. SeeDocumentSelection#observeMarkers()
. (commit) - widget:
WidgetResize#visibleResizer
andWidgetResize#getResizerByViewElement()
are now public. See #8088. (commit) - widget:
WidgetResize
will now automatically setWidgetResize#visibleResizer
when callingWidgetResize#attachTo()
if the corresponding resizer's element is focused during the call. See #8088. (commit) - Optimized icons. (commit)
- Updated translations. (commit, commit)
Released packages
Check out the Versioning policy guide for more information.
Major releases (contain major breaking changes):
Minor releases (contain minor breaking changes):
Releases containing new features:
Other releases:
Released packages (summary)