CKEditor 5 v10.1.0 with tables, soft line breaks and improved composition

We are happy to report the release of CKEditor 5 v10.1.0. This version includes the first iteration of the table feature as well as support for soft line breaks (Shift+Enter). Apart from that, we introduced a selection post-fixer and fixed many text composition issues thanks to major improvements to the DOM renderer. There is also a (temporary) workaround for typing before and after images… and a bunch of important bug fixes. Read on for details.
# New features
The tables are here! This release also includes the first new plugin that was volunteered by a member of the community in response to the need expressed by the developers, and we are really grateful for the help.
# Tables
A screencast is worth more than 1000 words, so here you go:

This is the first version of the table feature. It is an MVP (a minimum viable product) so it is not feature complete yet and may be edgy in come cases. We continue working on this feature now and will gradually bring more functionalities (our goal is to finish the “Milestone 2” defined in Functional requirements) and stability in edge cases.
However, we wanted to bring it to you as soon as possible because we already consider it ready to use and because we would like to know what you think about it. Your feedback was extremely valuable when we were designing the UI/UX of the table plugin and we look forward to more of it in the future. We would also like to express special thanks to David Twist for his amazing input.
The table plugin is available by default in the Document editor build and can be installed in all other editor types.
Check out the demo and installation instructions.
# Shift+Enter
Support for soft line breaks (Shift+Enter) was the most demanded feature in the community, so good news — it is now available by default in all builds. No more problems when creating your poetry in CKEditor 5 — you can easily create lines and stanzas as you see fit.

Big thanks to Alex Eckermann for contributing this plugin.
# Improvements
Apart from the new features, this release also boasts some important improvements.
# Text composition and rendering
Text composition (by using various IMEs) is by far the trickiest mechanism a text editor needs to integrate with. IMEs are provided by the operating system and there is no API to control them from JavaScript.
CKEditor 5 architecture takes this into account by implementing a virtual DOM and a DOM renderer which should be capable of carefully changing the DOM in such a way that does not break text composition.
In this release we included important improvements to how the DOM renderer calculates minimal changes (1, 2) which allowed us to close plenty of bugs with text composition. This should make CKEditor 5 far more usable for Chinese, Japanese and Korean users.
# Selection validation
For a long time we planned that the model should automatically fix its selection after every batch of changes. There are scenarios when browsers put selections in incorrect places like before the first paragraph in the content. Such selections need to be automatically corrected by the editor. Furthermore, this feature became even more important when we implemented tables (which use widgets underneath and, at the moment, implement many restrictions regarding the selection).
The first implementation of selection post-fixer fixed already a range of bugs and we plan to improve it with time to cover even more scenarios and to ensure seamless behavior of this system with tables and other widgets.
# Typing before and after images
So far CKEditor 5 does not provide an equivalent of CKEditor 4 magic line, which allows for reaching inaccessible places. It is a complex feature and we have not been able to implement it yet.
We heard your feedback, though, and decided to give a simple workaround a try. You can now press Enter to create a new paragraph after an image or Shift+Enter to create a new paragraph before an image.
This is not meant to be a target solution and we are discussing further improvements. However, we hope it is at least going to make the wait more bearable.
# And more…
As usual, the new version brings more bug fixes. The most notable ones are:
- CKEditor 5 will work fine when loaded in an
<iframe>
from a different domain. This fixes issues with CKEditor 5 used on e.g. JSFiddle. - Accessibility of toolbar buttons was improved.
- Toolbar buttons will now react to touch on iOS correctly.
- Line breaks will not be lost when pasting plain text.
- Highlight and font size features will now display correctly when used together.
Additionally, we prepared a couple of mechanisms which are a base for features that will be introduced in the next release. Stay tuned!
# What’s next?
We begun working on React and Angular integrations. However, at the moment they are blocked by changes which we plan to make. The upcoming release will thus be a major release due to changes in builds repositories, the ability to create detached editors and upgrade to webpack 4. Once these changes are done, integrations will follow.
Other than that, we start working on Paste from Word and plan to release a couple of smaller plugins (like autosave and block toolbar).
# Download
CKEditor 5 builds can be downloaded from the CDN, npm or as zip packages. Read more in the Installation guide.
# License
CKEditor 5 is available under Open Source and Commercial licenses. Full details can be found on our license page.
# Reporting issues and contributing
You can report all general issues in the main CKEditor 5 repository. Read more in the Reporting issues guide.
# Support
The project documentation is growing and always up to date. Community support is available through Stack Overflow. Read more in the Getting support guide.