What is @ckeditor/ckeditor5-ui?
@ckeditor/ckeditor5-ui is a package that provides a set of UI components and utilities for building rich text editors using CKEditor 5. It includes various UI elements like buttons, dropdowns, toolbars, and more, which can be customized and extended to create a tailored editing experience.
What are @ckeditor/ckeditor5-ui's main functionalities?
Button
This code demonstrates how to create a simple button using the ButtonView class from @ckeditor/ckeditor5-ui. The button is labeled 'Click me' and is appended to the document body.
const ButtonView = require('@ckeditor/ckeditor5-ui').ButtonView;
const button = new ButtonView();
button.set({
label: 'Click me',
withText: true
});
button.render();
document.body.appendChild(button.element);
Toolbar
This code shows how to create a toolbar and add a button to it using the ToolbarView class from @ckeditor/ckeditor5-ui. The toolbar is then rendered and appended to the document body.
const ToolbarView = require('@ckeditor/ckeditor5-ui').ToolbarView;
const toolbar = new ToolbarView();
toolbar.items.add(button); // Assuming 'button' is a ButtonView instance
toolbar.render();
document.body.appendChild(toolbar.element);
Dropdown
This code demonstrates how to create a dropdown menu using the DropdownView class from @ckeditor/ckeditor5-ui. The dropdown button is labeled 'Options' and is appended to the document body.
const DropdownView = require('@ckeditor/ckeditor5-ui').DropdownView;
const dropdown = new DropdownView();
dropdown.buttonView.set({
label: 'Options',
withText: true
});
dropdown.render();
document.body.appendChild(dropdown.element);
Other packages similar to @ckeditor/ckeditor5-ui
quill
Quill is a modern WYSIWYG editor built for compatibility and extensibility. It provides a rich API for creating and customizing the editor's UI components, similar to @ckeditor/ckeditor5-ui. However, Quill is a complete editor solution, whereas @ckeditor/ckeditor5-ui focuses on UI components for CKEditor 5.
slate
Slate is a completely customizable framework for building rich text editors. It offers a more flexible approach to creating and managing UI components compared to @ckeditor/ckeditor5-ui, allowing developers to build their own UI from scratch or use third-party components.
draft-js
Draft.js is a JavaScript rich text editor framework maintained by Facebook. It provides a set of React components and utilities for building rich text editors. While it offers similar functionalities to @ckeditor/ckeditor5-ui, it is more tightly integrated with React, making it a good choice for React-based projects.
44.2.1 (February 20, 2025)
We are happy to announce the release of CKEditor 5 v44.2.1.
During a recent internal audit, we identified a cross-site scripting (XSS) vulnerability in the CKEditor 5 real-time collaboration package (CVE-2025-25299
). This vulnerability can lead to unauthorized JavaScript code execution and affects user markers, which represent users' positions within the document.
This vulnerability affects only installations with real-time collaborative editing enabled.
You can read more details in the relevant security advisory and contact us if you have more questions.
Bug fixes
- comments: Fixed a few scenarios for which creating a new comment thread was impossible (for example, when a selection was made on multiple table cells). This was a regression introduced in v44.2.0.
Other changes
Released packages
Check out the Versioning policy guide for more information.
<details>
<summary>Released packages (summary)</summary>
Other releases:
</details>