包详细信息

ckeditor5

ckeditor4.6mSEE LICENSE IN LICENSE.md47.3.0

A set of ready-to-use rich text editors created with a powerful framework. Made with real-time collaborative editing in mind.

ckeditor, ckeditor5, ckeditor 5, wysiwyg

自述文件

CKEditor 5 Tweet

npm version codecov CircleCI TypeScript Support

Join newsletter Follow Twitter

CKEditor 5 is a modern JavaScript rich-text editor with MVC architecture, custom data model, and virtual DOM, written from scratch in TypeScript with excellent support for modern bundlers. It provides every type of WYSIWYG editing solution imaginable with extensive collaboration support. From editors similar to Google Docs and Medium to Slack or Twitter-like applications, all is possible within a single editing framework. As a market leader, it is constantly expanded and updated.

A composition of screenshots presenting various features of CKEditor 5 rich text editor

Table of contents

Quick start

Refer to the Quick Start guide to learn more about CKEditor 5 installation.

CKEditor 5 Builder

The easiest way to start using CKEditor 5 with all the features you need is to prepare a customized setup with the CKEditor 5 Builder. All you need to do is choose the preferred editor type as a base, add all the required plugins, and download the ready-to-use package.

TypeScript support

CKEditor 5 is a TypeScript project. Starting from v37.0.0, it offers native type definitions. Check out our dedicated guide to read more about TypeScript support.

CKEditor 5 advanced installation

For more advanced users or those who need to integrate CKEditor 5 with their applications, we prepared integrations with popular JavaScript frameworks:

CKEditor 5 Framework

CKEditor 5 is also a framework for creating custom-made rich text editing solutions.

To find out how to start building your editor from scratch go to the CKEditor 5 Framework overview section of the CKEditor 5 documentation.

Documentation and FAQ

Extensive documentation dedicated to all things CKEditor 5-related is available. You will find basic guides that will help you kick off your project, advanced deep-dive tutorials to tailor the editor to your specific needs, and help sections with solutions and answers to any of your possible questions. To find out more refer to the following CKEditor 5 documentation sections:

For FAQ please go to the CKEditor Ecosystem help center. For a high-level overview of the project see the CKEditor Ecosystem website.

Releases

Follow the CKEditor 5 changelog for release details and check out the CKEditor 5 release blog posts on the CKSource blog for important release highlights and additional information.

Editing and collaboration features

The CKEditor 5 Framework offers access to a plethora of various plugins, supporting all kinds of editing features.

From collaborative editing support providing comments and tracking changes, through editing tools that let users control the content looks and structure such as tables, lists, and font styles, to accessibility helpers and multi-language support - CKEditor 5 is easily extensible and customizable. Special duty features like Markdown input and output and source editing, or export to PDF and Word provide solutions for users with diverse and specialized needs. Images and videos are easily supported and CKEditor 5 offers various upload and storage systems to manage these.

The number of options and the ease of customization and adding new ones make the editing experience even better for any environment and professional background.

Refer to the CKEditor 5 Features documentation for details.

Create a free account and test full potential

If you want to check full CKEditor 5 capabilities, including premium features, sign up for a free non-commitment 14-day trial.

Contributing and project organization

Ideas and discussions

The development repository of CKEditor 5 is located at https://github.com/ckeditor/ckeditor5. This is the best place for bringing opinions and contributions. Letting the core team know if they are going in the right or wrong direction is great feedback and will be much appreciated!

Development

CKEditor 5 is a modular, multi-package, monorepo project. It consists of several packages that create the editing framework, based on which the feature packages are implemented.

The ckeditor5 repository is the place that centralizes the development of CKEditor 5. It bundles different packages into a single place, adding the necessary helper tools for the development workflow, like the builder and the test runner. Basic information on how to set up the development environment can be found in the documentation.

See the official contributors' guide to learn how to contribute your code to the project.

Reporting issues and feature requests

Report issues in the ckeditor5 repository. Read more in the Getting support section of the CKEditor 5 documentation.

License

Licensed under a dual-license model, this software is available under:

For more information, see: https://ckeditor.com/legal/ckeditor-licensing-options.

更新日志

Changelog

47.3.0 (December 3, 2025)

We are happy to announce the release of CKEditor 5 v47.3.0.

Release highlights

This release introduces a minor stability update, featuring focused fixes and improvements, as well as experimental features.

CKEditor AI improvements and bug fixes

Finding a specific AI Quick Action in a long list with multiple groups can be difficult. To improve this, we are adding a filter input that lets users search for quick actions directly within the dropdown.

Visibility of the input can be easily configured using the config.ai.quickActions.isSearchEnabled configuration option.

This release also brings several minor but significant enhancements and fixes:

  • Track Changes markers not related to AI suggestions are now displayed in gray in the AI balloon text preview, consistent with the behavior of AI chat.
  • When retrying a specific AI Review, we are now ensuring the latest version of the document is used.
  • We also improved error handling across CKEditor AI, making it easier to debug backend-related issues by including more detailed error messages.

New experimental options

We keep our LTS version promise: no breaking changes until the Active LTS moves to Maintenance LTS phase (April 2026). It also means that introducing larger features can be challenging if someone is waiting for specific improvements.

To address this, we are introducing experimental flags and experimental plugins. These options allow you to preview and test upcoming changes.

  • New table alignment options

    Enable config.experimentalFlags.useExtendedTableBlockAlignment and load the experimental UI plugins TablePropertiesUIExperimental and TableCellPropertiesUIExperimental for upcoming improvements to table block alignment. New options allow setting left and right table block alignment without text wrapping and resolve issues such as #3225. We also improved table properties and cell properties balloon interfaces. This change will be the default in version 48.0.0.

  • Improved table border normalization

    Setting config.experimentalFlags.upcastTableBorderZeroAttributes enables support for the normalization of HTML tables that use border="0". This change will be the default in version 48.0.0.

  • Better deep schema validation

    After enabling the config.experimentalFlags.modelInsertContentDeepSchemaVerification flag, the editor performs deep schema verification during model.insertContent() operations. This ensures that the inserted content fully follows the editor’s schema, even in complex or nested structures. This change will be the default in version 48.0.0.

Read more about these experimental features in the documentation.

Features

  • ai: The AI balloon contents is always scrolled to the bottom, so the most recent content is always visible to the user.
  • ai: AI Quick Actions are now searchable in the dropdown. Search input can be hidden using the config.ai.quickActions.isSearchEnabled configuration option.
  • restricted-editing: Introducing an automatic command (restrictedEditingExceptionAuto) and dedicated toolbar button (restrictedEditingException:auto) for creating restricted editing exceptions (both block and inline). Closes #19353.

Bug fixes

  • ai: AI Review now uses the latest editor content when the review check was retried (via "Try again" button).

    This improvement fixes the issue when cached content was send on retry and any new changes, applied review suggestions or changes made by other users in real-time collaboration, were not sent and accounted by AI when generating new results.

  • ai: AI Review no longer results in an error when the AI service returns an unexpected response (multiple elements when one is expected).
  • ai: Track Changes markers not related to AI suggestions are now displayed in gray in AI balloon text preview, consistent with AI chat behavior.
  • ai: The translate check in AI Review now correctly translates the image alt attribute text.
  • ai: The caption of images (<figcaption> element) is now correctly processed by AI Review checks instead of being ignored.
  • ai: Errors caused by AI feature during initialization no longer crash the editor.
  • ai: The AI feature keeps the correct UI state after a runtime error occurs.
  • ai: The AI Review "Custom command" is hidden if the model list cannot be obtained.
  • ai: Error messages in AI Chat History are now displayed correctly. Previously, errors caused the history view to appear empty instead of showing the error message.
  • ai: AI suggestions balloon content no longer stick out of the balloon on very small screens.
  • ckbox: Fixed CKBox Image Editor not respecting the language configuration option. Closes #19338.
  • comments: Fixed an issue where the comment toolbar button remained enabled even when the command to create a new comment thread was disabled (e.g., in read-only mode).
  • comments: Disabled revision history toolbar and menu bar buttons in comments-only mode to prevent users from using revision history features.
  • footnotes: Fixed an issue where cutting and pasting an empty footnotes list in the middle of a paragraph would incorrectly split the paragraph.
  • footnotes: Fixed an issue where the content of pasted footnotes was lost when the multiBlock configuration option was disabled.
  • footnotes: Fixed incorrect start number shown in footnotes UI when loading a document with existing footnotes.
  • footnotes: Footnote lists styled with alpha-lower and alpha-upper are now correctly highlighted in the footnotes UI.
  • line-height: When line height is applied to a to-do list item, the checkbox is now vertically centered correctly.
  • pagination: Improved calculation of page breaks when long tables are present in the content.
  • revision-history: Fixed an issue where revision history buttons remained incorrectly enabled in read-only mode in the menubar.
  • table: Fixed an issue where tables with merged cells ([rowspan]) in header columns were not handled correctly. Closes #14826.

    Thanks to @bendemboski.

Other changes

  • ai: Review suggestions can now be previewed by hovering over changes in the content, significantly enhancing the review process.
  • ai: Stopping generation in AI chat now clears the selection from the pending context.
  • ai: Custom AI quick actions referencing unavailable models are now disabled.

    They are displayed as grayed out, and an error is logged to the console during the editor initialization to help integrators detect and fix the issue before it impacts end-users.

  • ai: Removed misleading console warnings that appeared during AI response streaming.
  • ai: Error messages concerning the AI feature logged in the browser console now contain the details provided by the backend service.
  • engine: Introduced the experimentalFlags configuration option that allows enabling or disabling specific experimental behaviors in CKEditor 5. Closes #19217.

    Added a new experimental flag: modelInsertContentDeepSchemaVerification. When enabled, the editor performs a deep schema verification during model.insertContent() operations, ensuring that inserted content fully complies with the editor’s schema even in complex or nested contexts.

  • list: Added support for passing consume parameter to ListEditing#registerDowncastStrategy method which allows to control whether the downcasted element should be consumed or not. It also disables consume checks for the downcasted element to allow defining side effects without consuming the model attribute.
  • table: Added experimental support for importing HTML tables with the [border="0"] attribute. Tables with this attribute are now automatically converted to borderless tables in the editor by applying border-style: none to both table and table cell elements. Closes #19038.

    This change needs to be enabled by setting experimentalFlags.upcastTableBorderZeroAttributes to true. In the next major release, this flag will be removed and the upcast will be performed by default.

  • The development environment for CKEditor 5 now requires Node v24.11.

Released packages

Check out the Versioning policy guide for more information.

<summary>Released packages (summary)</summary> Releases containing new features: @ckeditor/ckeditor5-ai: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-restricted-editing: v47.2.0 => v47.3.0 Other releases: @ckeditor/ckeditor5-adapter-ckfinder: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-alignment: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-autoformat: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-autosave: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-basic-styles: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-block-quote: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-bookmark: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-case-change: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-ckbox: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-ckfinder: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-clipboard: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-cloud-services: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-code-block: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-collaboration-core: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-comments: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-core: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-document-outline: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-easy-image: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-editor-balloon: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-editor-classic: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-editor-decoupled: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-editor-inline: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-editor-multi-root: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-email: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-emoji: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-engine: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-enter: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-essentials: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-export-inline-styles: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-export-pdf: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-export-word: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-find-and-replace: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-font: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-footnotes: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-format-painter: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-fullscreen: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-heading: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-highlight: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-horizontal-line: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-html-embed: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-html-support: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-icons: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-image: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-import-word: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-indent: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-language: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-line-height: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-link: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-list: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-list-multi-level: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-markdown-gfm: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-media-embed: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-mention: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-merge-fields: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-minimap: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-operations-compressor: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-page-break: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-pagination: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-paragraph: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-paste-from-office: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-paste-from-office-enhanced: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-real-time-collaboration: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-remove-format: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-revision-history: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-select-all: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-show-blocks: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-slash-command: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-source-editing: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-source-editing-enhanced: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-special-characters: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-style: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-table: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-template: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-theme-lark: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-track-changes: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-typing: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-ui: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-undo: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-upload: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-uploadcare: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-utils: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-watchdog: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-widget: v47.2.0 => v47.3.0 @ckeditor/ckeditor5-word-count: v47.2.0 => v47.3.0 ckeditor5: v47.2.0 => v47.3.0 ckeditor5-collaboration: v47.2.0 => v47.3.0 * ckeditor5-premium-features: v47.2.0 => v47.3.0

47.2.0 (November 5, 2025)

Release highlights

CKEditor AI

We are introducing CKEditor AI, a powerful writing assistant that brings AI-powered content creation directly into CKEditor 5. It helps users create, review, and refine content without switching between tools, making the editing experience faster and more productive.

CKEditor AI includes three core capabilities:

  • AI Chat: a conversational AI assistant for multi-turn interactions that supports context setting and model selection. All conversations are tracked in a persistent chat history, and suggestions are reviewable before being applied.
  • AI Quick Actions: one-click transformations for selected text, including rewriting, simplifying, expanding, summarizing, or adjusting tone. Changes appear inline with preview capabilities.
  • AI Review: automatic quality assurance that checks grammar, tone, clarity, and style across the document. Suggested changes are presented in a visual review interface where users can accept or reject individual edits or apply all approved suggestions in bulk.

Power users can select their preferred model during sessions (GPT-5, Claude 3.5, Gemini 2.5, and more), while integrators maintain control over access rules and usage tiers.

Built as a plugin for CKEditor 5, it integrates quickly into existing applications with minimal configuration, and all AI interactions are fully observable via audit logs and optional APIs.

CKEditor AI is available as a premium add-on to all paid CKEditor 5 plans with a transparent subscription-plus-usage pricing model. A 14-day trial is available with access to all premium features.

Footnotes (⭐)

A brand-new Footnotes feature is here! It lets users insert and manage footnotes directly in their content, keeping references organized and readable. Footnotes stay linked to their source text and update automatically when edited, ideal for academic, legal, or technical writing. You can also customize the numbering, including the starting number and numbering style, to match your document’s formatting needs.

Restricted editing for blocks (⭐)

Restricted editing now supports block-level restrictions, not just inline ones. This makes it easier to protect the entire content while still allowing controlled edits where required. A common use case is unlocking for editing template sections like paragraphs, tables, or structured document parts, and protecting the rest of the content.

Old installation methods sunset timelines

We are extending the sunset period for old installation methods (#17779) to the end of Q1 2026. It is a good moment to consider switching to the LTS edition for long-term stability and an additional 3 years of support for the old installation methods.

Other improvements and fixes

This release also brings several smaller but important enhancements and fixes:

  • View engine stability: Fixed a bug where placeholders could remain visible after view changes, such as moving or replacing elements.
  • Downcast reliability: The elementToStructure helper now handles nested structures and list elements more consistently, ensuring correct reconversion and structure maintenance.

Features

  • ai: Added a new configuration option, config.ai.chat.context.searchInputVisibleFrom, to manage the visibility of the search input in the AI Chat context panel.
  • footnotes: Added a new package @ckeditor/ckeditor5-footnotes that provides the footnotes feature. This feature allows users to add and manage footnotes in their documents, enhancing the document's readability and providing additional context where necessary.
  • fullscreen: Enabled CKEditor AI support in Fullscreen mode, allowing users to access AI tools while editing in fullscreen. Closes #19234.
  • fullscreen: Sidebars in the fullscreen mode will now automatically collapsed and expanded depending on the available space in the viewport. Closes #19294.
  • restricted-editing: Introduced block editable areas in restricted editing. Closes #9071, #5953.

Bug fixes

  • ai: If the content you were working on in AI Balloon gets removed (for example, by another user), a proper message will appear with the information and prevent further actions that could lead to errors.
  • ai: Conversations loaded from AI Chat History are now correctly scrolled to the last message.
  • ai: Fixed visual inconsistencies of hover state in AI Chat.
  • ai: Fixed visual inconsistencies in AI Chat context section.
  • ai: Fixed AI Chat resize button hover and active visual states.
  • ai: Fixed various visual issues across the AI feature.
  • ai: Fixed an issue where using DLLs for the AI package together with the TrackChanges plugin could fail due to a DocumentCompare plugin conflict.
  • ai: Removed doubled border at the bottom of review mode suggestions list.
  • ai: The styles in the AI feature operate independently from one another.
  • ai: Prevent editor crash on exiting pending AI review check.
  • ai: Configuration option ai.availableReplyActions will now also impact visibility of buttons displayed next to "Change X" header, which are displayed in AI Chat feed when AI returns multiple changes.
  • ai: Fixed handling inline objects (such as inline images) by AI Review. Inline objects were incorrectly presented in the AI Review sidebar, and often were removed from the editor content upon accepting a change next to it.
  • ai: When a user applied and then undone an AI-proposed change, which has affected existing markers, these markers were incorrectly removed instead of being restored.
  • ai: Improved AI Review content processing mechanism preventing some errors originating from unexpected LLM responses.
  • ai: Improved the positioning of the model selection dropdown in the AI Chat feature to ensure it remains visible when space is limited.
  • ai: Navigation across changes proposed in AI Chat should not break if unsupported changes (which cannot be displayed) were returned by the agent.
  • ai: Fixed crash happening when an AI-proposed change, that included an existing suggestion, was itself inserted as a suggestion.
  • ai: The CKEditor AI balloon displaying content changes should remain within the viewport boundaries when used with long content selections in the editor.
  • ai: The AI balloon with suggested content changes should always position itself next to the relevant piece of content in the editor during navigation across multiple changes.
  • clipboard: The drop marker is now shown only when the target range is editable. Dropping content into non-editable is now prevented. Closes #19028.
  • engine: The elementToStructure downcast helper created elements should work more reliably in various edge cases: Closes #16055, #15919, #11739, #19209.

    • It should properly detect required reconversion on all nesting levels.
    • It should use proper position inside slot to maintain proper view structure.
    • It should refresh child elements when they got renamed, for example paragraph to heading.
    • It should work correctly with lists inside.
    • It should create proper structure with list inside.
  • engine: The model.insertContent() and model.insertObject() should verify the whole Schema context before checking auto-paragraphing. Closes #19210.
  • engine: Fixed a bug where placeholders could become stuck and remain visible on elements when the view changed. Closes #14354, #18149.

    This resolves two scenarios:

    • Dropping an image into the editor before an element with a placeholder (the placeholder could remain on the original element).
    • Moving the element that hosts the placeholder to a different place in the view tree (the placeholder could stay attached to the old node).
  • icons: Removed obsolete clip-path attributes from various SVG icons (IconAIHistory, IconShowChangesOff, IconShowChangesOn, IconUploadcareImageUpload) that cause rendering issues in some corner cases. Closes #19291.
  • pagination: Fixed an issue where the pagination feature incorrectly displayed redundant page break indicators in editing mode when a page break was inserted between two tables.
  • paste-from-office: No longer treat elements with mso-list:none as list items.
  • restricted-editing: Empty editable regions created with Restricted Editing should not get dropped when reloading the editor's data. Closes #16376.
  • restricted-editing: Backspace should remove content in restricted editing mode when the entire section is selected. Closes #18892.
  • table: The editor should not crash when trying to load data with a table inside an image caption. Closes #19211.
  • table: The TableConfig type is no longer exported as internal.
  • widget: Fixed changing (expanding and shrinking) the selection with the keyboard while widgets are involved. Closes #19212.

Other changes

  • ai, track-changes: CKEditor AI no longer requires the Track Changes feature, and can be used without it. In such setup, CKEditor AI will not be able to insert AI-proposed changes as suggestions and all related buttons will be hidden.
  • ai: Renamed the automatically selected AI model to "Auto" (previously "Agent"). Allowed for using 'auto' in config.ai.chat.models.defaultModelId and config.ai.chat.models.displayedModels configurations to make integration easier.
  • ai: Improved real-time collaboration support in AI Review. Changes adjacent or within review suggestions in the editor content, made by remote users, will correctly invalidate/restore review suggestions.
  • ai: Added missing AISuggestionActionName export, which is used in the CKEditor AI feature configuration.
  • ai: AI Review suggestions now remain visible after being accepted or rejected, also can be marked as outdated if they are affected by RTC changes.
  • clipboard: Loosened rules for drop target position lookup so it is possible to drop in-text when there is anything droppable into in-text context.
  • icons: Added IconDocumentOutlineToggle icon.
  • icons: Introducing an icon that represents an outdated state. Closes #19282.
  • paste-from-office: Added normalization of footnotes while pasting content from Word.
  • table: Fixed incorrect Japanese translations for table layout feature. Closes #19255.

    Thanks to @ponyoxa.

  • uploadcare: Added a configuration option config.uploadcare.locale that allows providing custom translations for Uploadcare components or using predefined CDN URLs for other languages, enabling full localization beyond the default English version.
  • utils: Exposed a utility function getConstrainedViewportRect(), which returns the bounds of the visible viewport. Closes #19222.
  • widget: The <kbd>Esc</kbd> key handling in widgets is registered in the editable element context. This allows easier customization of handlers for <kbd>Esc</kbd> keypress inside widgets and nested editable elements.
  • Updated translations.

Released packages

Check out the Versioning policy guide for more information.

<summary>Released packages (summary)</summary> New packages: @ckeditor/ckeditor5-footnotes: v47.2.0 Minor releases (contain minor breaking changes): @ckeditor/ckeditor5-ai: v47.1.0 => v47.2.0 Releases containing new features: @ckeditor/ckeditor5-fullscreen: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-restricted-editing: v47.1.0 => v47.2.0 Other releases: @ckeditor/ckeditor5-adapter-ckfinder: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-alignment: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-autoformat: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-autosave: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-basic-styles: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-block-quote: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-bookmark: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-case-change: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-ckbox: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-ckfinder: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-clipboard: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-cloud-services: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-code-block: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-collaboration-core: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-comments: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-core: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-document-outline: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-easy-image: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-editor-balloon: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-editor-classic: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-editor-decoupled: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-editor-inline: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-editor-multi-root: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-email: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-emoji: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-engine: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-enter: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-essentials: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-export-inline-styles: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-export-pdf: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-export-word: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-find-and-replace: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-font: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-format-painter: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-heading: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-highlight: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-horizontal-line: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-html-embed: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-html-support: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-icons: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-image: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-import-word: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-indent: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-language: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-line-height: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-link: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-list: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-list-multi-level: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-markdown-gfm: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-media-embed: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-mention: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-merge-fields: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-minimap: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-operations-compressor: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-page-break: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-pagination: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-paragraph: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-paste-from-office: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-paste-from-office-enhanced: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-real-time-collaboration: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-remove-format: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-revision-history: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-select-all: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-show-blocks: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-slash-command: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-source-editing: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-source-editing-enhanced: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-special-characters: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-style: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-table: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-template: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-theme-lark: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-track-changes: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-typing: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-ui: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-undo: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-upload: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-uploadcare: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-utils: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-watchdog: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-widget: v47.1.0 => v47.2.0 @ckeditor/ckeditor5-word-count: v47.1.0 => v47.2.0 ckeditor5: v47.1.0 => v47.2.0 ckeditor5-collaboration: v47.1.0 => v47.2.0 * ckeditor5-premium-features: v47.1.0 => v47.2.0

47.1.0 (October 16, 2025)

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.

[!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 incompatible constructor() 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 adds AIActions 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 add AIActions plugin manually.

Released packages

Check out the Versioning policy guide for more information.

<summary>Released packages (summary)</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-horizontal-line: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-html-embed: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-html-support: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-icons: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-image: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-import-word: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-indent: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-language: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-line-height: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-link: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-list: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-list-multi-level: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-markdown-gfm: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-media-embed: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-mention: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-merge-fields: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-minimap: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-operations-compressor: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-page-break: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-pagination: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-paragraph: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-paste-from-office: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-paste-from-office-enhanced: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-real-time-collaboration: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-remove-format: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-restricted-editing: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-revision-history: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-select-all: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-show-blocks: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-slash-command: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-source-editing: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-source-editing-enhanced: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-special-characters: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-style: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-table: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-template: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-theme-lark: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-track-changes: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-typing: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-ui: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-undo: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-upload: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-uploadcare: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-utils: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-watchdog: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-widget: v47.0.0 => v47.1.0 @ckeditor/ckeditor5-word-count: v47.0.0 => v47.1.0 ckeditor5: v47.0.0 => v47.1.0 ckeditor5-collaboration: v47.0.0 => v47.1.0 ckeditor5-premium-features: v47.0.0 => v47.1.0

47.0.0 (October 1, 2025)

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 former AIAssistant feature. Now, this configuration space is used for all AI related features. Configuration for the AIAssistant 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 the low priority bubbling event in the context of widgets and editable elements. Please verify if your custom Tab/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 to UndoRedoBaseCommandRevertEvent and moved to the basecommand.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 in Dialog#show() now can be a function that takes dialogRect and domRootRect parameters and should return an object with top and left properties or null. It can be used to specify a custom positioning for the dialog. Closes #19167.

Bug fixes

  • engine: The markerToHighlight() converter did not clone the view 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 in CommentThread#resolve. It was previously typed as undefined | null, and is now properly typed as undefined | string.
  • undo: RedoCommand will now fire 'revert' event when executed, similarly to UndoCommand. Type UndoCommandRevertEvent was renamed to UndoRedoBaseCommandRevertEvent and moved to basecommand.ts file. Closes #19168.

Released packages

Check out the Versioning policy guide for more information.

<summary>Released packages (summary)</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-alignment: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-autoformat: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-autosave: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-basic-styles: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-block-quote: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-bookmark: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-case-change: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-ckbox: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-ckfinder: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-clipboard: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-cloud-services: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-code-block: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-collaboration-core: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-core: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-document-outline: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-easy-image: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-editor-balloon: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-editor-classic: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-editor-decoupled: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-editor-inline: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-editor-multi-root: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-email: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-emoji: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-engine: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-enter: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-essentials: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-export-inline-styles: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-export-pdf: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-export-word: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-find-and-replace: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-font: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-format-painter: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-fullscreen: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-heading: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-highlight: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-horizontal-line: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-html-embed: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-html-support: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-icons: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-image: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-import-word: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-indent: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-language: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-line-height: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-link: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-list: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-list-multi-level: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-markdown-gfm: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-media-embed: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-mention: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-merge-fields: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-minimap: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-operations-compressor: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-page-break: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-pagination: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-paragraph: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-paste-from-office: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-paste-from-office-enhanced: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-real-time-collaboration: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-remove-format: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-restricted-editing: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-revision-history: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-select-all: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-show-blocks: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-slash-command: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-source-editing: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-source-editing-enhanced: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-special-characters: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-style: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-template: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-theme-lark: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-track-changes: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-typing: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-upload: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-uploadcare: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-utils: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-watchdog: v46.1.1 => v47.0.0 @ckeditor/ckeditor5-word-count: v46.1.1 => v47.0.0 ckeditor5: v46.1.1 => v47.0.0 ckeditor5-collaboration: v46.1.1 => v47.0.0 ckeditor5-premium-features: v46.1.1 => v47.0.0

46.1.1 (September 15, 2025)

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.

<summary>Released packages (summary)</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 @ckeditor/ckeditor5-restricted-editing: v46.1.0 => v46.1.1 @ckeditor/ckeditor5-revision-history: v46.1.0 => v46.1.1 @ckeditor/ckeditor5-select-all: v46.1.0 => v46.1.1 @ckeditor/ckeditor5-show-blocks: v46.1.0 => v46.1.1 @ckeditor/ckeditor5-slash-command: v46.1.0 => v46.1.1 @ckeditor/ckeditor5-source-editing: v46.1.0 => v46.1.1 @ckeditor/ckeditor5-source-editing-enhanced: v46.1.0 => v46.1.1 @ckeditor/ckeditor5-special-characters: v46.1.0 => v46.1.1 @ckeditor/ckeditor5-style: v46.1.0 => v46.1.1 @ckeditor/ckeditor5-template: v46.1.0 => v46.1.1 @ckeditor/ckeditor5-theme-lark: v46.1.0 => v46.1.1 @ckeditor/ckeditor5-track-changes: v46.1.0 => v46.1.1 @ckeditor/ckeditor5-typing: v46.1.0 => v46.1.1 @ckeditor/ckeditor5-ui: v46.1.0 => v46.1.1 @ckeditor/ckeditor5-undo: v46.1.0 => v46.1.1 @ckeditor/ckeditor5-upload: v46.1.0 => v46.1.1 @ckeditor/ckeditor5-uploadcare: v46.1.0 => v46.1.1 @ckeditor/ckeditor5-utils: v46.1.0 => v46.1.1 @ckeditor/ckeditor5-watchdog: v46.1.0 => v46.1.1 @ckeditor/ckeditor5-widget: v46.1.0 => v46.1.1 @ckeditor/ckeditor5-word-count: v46.1.0 => v46.1.1 ckeditor5: v46.1.0 => v46.1.1 ckeditor5-collaboration: v46.1.0 => v46.1.1 ckeditor5-premium-features: v46.1.0 => v46.1.1

To see all releases, visit the release page.