
Security News
CISA Kills Off RSS Feeds for KEVs and Cyber Alerts
CISA is discontinuing official RSS support for KEV and cybersecurity alerts, shifting updates to email and social media, disrupting automation workflows.
@ckeditor/ckeditor5-core
Advanced tools
The core architecture of CKEditor 5 – the best browser-based rich text editor.
@ckeditor/ckeditor5-core is a core package for CKEditor 5, a modern JavaScript rich text editor. It provides essential functionalities and utilities for building and customizing CKEditor 5 editors.
Editor Creation
This feature allows you to create and initialize a CKEditor 5 instance. The code sample demonstrates how to create a classic editor and attach it to a DOM element.
const ClassicEditor = require('@ckeditor/ckeditor5-editor-classic/src/classiceditor');
const Editor = require('@ckeditor/ckeditor5-core/src/editor/editor');
ClassicEditor.create(document.querySelector('#editor'))
.then(editor => {
console.log('Editor was initialized', editor);
})
.catch(error => {
console.error(error.stack);
});
Plugin Management
This feature allows you to create and manage plugins for CKEditor 5. The code sample demonstrates how to create a custom plugin and include it in the editor configuration.
const Plugin = require('@ckeditor/ckeditor5-core/src/plugin');
class MyPlugin extends Plugin {
init() {
console.log('MyPlugin was initialized');
}
}
ClassicEditor.create(document.querySelector('#editor'), {
plugins: [ MyPlugin ]
})
.then(editor => {
console.log('Editor with MyPlugin was initialized', editor);
})
.catch(error => {
console.error(error.stack);
});
Command Management
This feature allows you to create and manage commands in CKEditor 5. The code sample demonstrates how to create a custom command and execute it within the editor.
const Command = require('@ckeditor/ckeditor5-core/src/command');
class MyCommand extends Command {
execute() {
console.log('MyCommand executed');
}
}
ClassicEditor.create(document.querySelector('#editor'))
.then(editor => {
editor.commands.add('myCommand', new MyCommand(editor));
editor.execute('myCommand');
})
.catch(error => {
console.error(error.stack);
});
TinyMCE is another popular rich text editor that provides a wide range of features and plugins. It is similar to CKEditor 5 in terms of functionality but has a different API and plugin system.
Quill is a modern WYSIWYG editor built for compatibility and extensibility. It offers a simpler API compared to CKEditor 5 and is highly customizable through its modular architecture.
Draft.js is a JavaScript rich text editor framework developed by Facebook. It provides a set of React components and an immutable model for managing editor state, making it different from CKEditor 5's approach.
This package implements CKEditor 5's core editor architecture – a set of classes and interfaces which glue everything together.
This plugin is part of the ckeditor5
package. Install the whole package to use it.
npm install ckeditor5
If you want to check full CKEditor 5 capabilities, sign up for a free non-commitment 14-day trial.
For general introduction see the Overview of CKEditor 5 framework guide and then the core editor architecture guide.
Additionally, see the @ckeditor/ckeditor5-core
package page in CKEditor 5 documentation for even more information.
Licensed under a dual-license model, this software is available under:
For more information, see: https://ckeditor.com/legal/ckeditor-licensing-options.
45.0.0 (April 7, 2025)
The CKEditor 5 v45.0.0 release brings powerful new features and improvements, making content creation smoother and more versatile. From enhanced email editing to a refined linking experience and a brand-new full-screen mode, this update is packed with valuable upgrades.
We are making it easier to create and edit emails directly in CKEditor 5 with several enhancements. This release introduces the following new features:
Apart from these new features, this update also brings various fixes and improvements related to table behavior, enhanced HTML support, and better handling of complex email structures. These refinements help ensure a more seamless email editing experience, reducing inconsistencies and improving compatibility with external email clients.
A long-requested feature has finally arrived with the introduction of full-screen editing for the classic and decoupled editor types. This new mode provides a focused writing experience by making the editor the centerpiece of the screen. The expanded screen space allows for better visibility of content in sidebars such as comments, suggestions, and document outlines, enhancing your overall workflow.
Linking in CKEditor 5 has been significantly upgraded with a redesigned user interface, making adding and editing links more intuitive. Users can now easily link to bookmarks within the document and select links from predefined lists (defined by the developer). These improvements make inserting and managing links faster and more flexible than ever before.
During this initiative, we also aligned visual and technical components of the editor. Each balloon got a header with the tile, we also unified the toolbar behavior and keystrokes of Link and Bookmarks with other widget’s toolbars like image and tables.
[!NOTE] The UI got updated in several places: main view, link properties (decorators), and also its technical implementation changed. Make sure to give special attention to the update if you did any customizations to the link interface.
We are continuing to strengthen the new installation methods while phasing out older solutions. We added one of the key components you asked for: replacing our icons with your custom ones. It is now possible to replace the icons via the package’s override mechanism.
[!NOTE] To achieve a proper solution for icons replacement for the npm builds, we needed to introduce a breaking change. If you used our icons for any purposes, make sure to update their paths.
We are progressing with deprecation according to our sunset plan. From this release, predefined builds’ packages, such as @ckeditor/ckeditor-build-classic
, are now officially deprecated. We also dropped support for Webpack 4 in both the old and new installation methods.
By the end of 2025, custom builds that rely on webpack and DLL builds will also be deprecated. Refer to our documentation and migration guides to ensure a smooth transition.
We are committed to making CKEditor 5 even better. Stay tuned for more improvements in upcoming releases! If you have any feedback, let us know — we are always listening.
Please refer to the update guide to learn more about these changes.
Happy editing!
BookmarkUI#actionsView
is no longer available. The bookmark feature is now using the WidgetToolbarRepository
instead.LinkUI#actionsView
is no longer available. The bookmark feature now uses the LinkUI#toolbarView
(an instance of the ToolbarView
class) instead of the custom LinkActionsView
.createBookmarkCallbacks()
helper is now replaced by the isScrollableToTarget()
and scrollToTarget()
helpers.FormRowView
class was moved to the @ckeditor/ckeditor5-ui
package.form.css
component was moved to the @ckeditor/ckeditor5-theme-lark
package.@ckeditor/ckeditor5-icons
package.[class]
) and IDs ([id]
) are inlined within elements, improving compatibility with email clients that strip external styles. It helps maintain consistent formatting across different email clients, reducing rendering issues.<style>
elements from the <head>
section of editor data content using the FullPage
plugin. See #13482. (commit)RevisionHistory#isRevisionViewerOpen
that indicates whether the revision history is opened or not.config.sourceEditingEnhanced.theme
by passing the 'dark'
value. This change enables the use of the dark theme with the CDN installation method, which does not support external CodeMirror
dependencies. Additionally, if you previously used the oneDark
extension directly, you can now switch to theme: 'dark'
for built-in support.role="presentation"
parameter for accessibility. Users can insert layout tables via the editor toolbar and switch between content and layout tables. The editing view now closely matches the rendered output. Closes #18132. (commit)<th>
elements may be lost, table structure remains intact. Closes #18131. (commit)form.css
component . (commit)MenuBarView#disable()
and MenuBarView#enable()
methods. They disable/enable all top-level menus in menu bar. Closes #17940. (commit)ToolbarView#switchBehavior()
method to switch toolbar behavior after the editor has been initialized. Closes #18159. (commit)FormRowView
class. (commit)@ckeditor/ckeditor5-icons
package. Related to #16546. (commit)@ckeditor/ckeditor5-icons
package to the core DLL package. (commit)converterPriority
type definition to HeadingOption
interface. Closes #18182. (commit)Autolink
feature will now correctly autolink http://localhost
and http://localhost:port
. Closes #18185. (commit)<script>
and <style>
tags enabled by the General HTML Support feature. Before, when revision was saved, these elements were saved empty, and this lead to data loss when such revision was restored. Note, that this will not fix revisions that are already affected by this error.UIElement
s and RawElement
s by revision history (may concern third-party custom plugins).[role="textbox"]
from the <td>/
<th>` editables. Windows Narrator no longer reads table dimensions as 0 by 0. Closes #16923. (commit)ShiftEnter
plugin is removed.ButtonView#icon
property can now be set/reset after the button's first render. (commit)WidgetToolbarRepository
instead of a custom ActionsView
to display the bookmark toolbar in the contextual balloon. The new toolbar uses components registered in the ComponentFactory
. (commit)ck-form
and ck-form__row
. (commit)DomConverter#domDocument
property. Closes #18146. (commit)ck-form
and ck-form__row
. (commit)ToolbarView
instead of a custom LinkActionsView
to display the link toolbar in the contextual balloon. The new toolbar uses components registered in the ComponentFactory
. (commit)ck-form
and ck-form__row
. (commit)form.css
to @ckeditor/ckeditor5-theme-lark
package. (commit)FormRowView
to @ckeditor/ckeditor5-ui
package. (commit)IconView
now throws a meaningful error if the provided icon content is not a valid SVG. (commit)WidgetToolbarRepository#register()
now accepts a customized list of desired balloon positions. (commit)Belarusian
language translations for CKEditor 5. Huge thanks to @karavanjo. (commit)target
to es2022
. Closes #17886. (commit)lodash-es
with es-toolkit
. See #16395. (commit)@ckeditor/ckeditor5-build-*
packages are no longer maintained. (commit)Check out the Versioning policy guide for more information.
<details> <summary>Released packages (summary)</summary>New packages:
Major releases (contain major breaking changes):
Releases containing new features:
Other releases:
FAQs
The core architecture of CKEditor 5 – the best browser-based rich text editor.
The npm package @ckeditor/ckeditor5-core receives a total of 872,469 weekly downloads. As such, @ckeditor/ckeditor5-core popularity was classified as popular.
We found that @ckeditor/ckeditor5-core demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CISA is discontinuing official RSS support for KEV and cybersecurity alerts, shifting updates to email and social media, disrupting automation workflows.
Security News
The MCP community is launching an official registry to standardize AI tool discovery and let agents dynamically find and install MCP servers.
Research
Security News
Socket uncovers an npm Trojan stealing crypto wallets and BullX credentials via obfuscated code and Telegram exfiltration.