2024 Rich Text Editing Developer Survey

Share your thoughts on the future of collaborative rich text editing. (Our survey takes about 10 mins)

Have your say

You can go your own way. Unrivaled possibilities of CKEditor 5’s customizability

CKEditor 5 is known for being perfect for any business or brand. It’s especially well-suited to demanding clients and complex use cases where other WYSIWYG editors prove insufficient and useless. Some of the beneficiaries of CKEditor 5’s use include industries and branches such as healthcare, banking, insurance, accounting & real estate sectors, legal & advisory companies, manufacturing & retail industry, and governmental institutions, as well as digital publishing & CMS solutions, educational software, and project management tools.

What makes this rich text editor so powerful and so versatile is, among other cool things, its customizability. In CKEditor 5’s case, customizability is not just a meaningless slogan or tired cliché - it covers many levels, layers, and dimensions. This all-encompassing approach embraces major options - like Theme customization or Online builder - and some less significant functionalities in the existing features. Various flexible configurations are within clients’ reach due to CKEditor 5’s modular editing framework.

# CKEditor 5’s customizability: the hands-on approach

With dozens of features available and over 50 developers on board, at CKEditor 5, everything is taken care of and everything is possible for clients. On one hand, with many plugins and features ready to use, they may smoothly use CKEditor 5 out-of-the-box. And, on the other, it is a framework that can be easily applied in more demanding circumstances, when many customizations need to be made.

The editor offers a rich API that allows you to modify default behaviors, alter the behavior of specific plugins, and craft your own UI (based on commands underneath). CKEditor 5 has its default data model, but thanks to the conversion mechanism, you can create your own complicated structures when editing the content. For example, you can use the pasting mechanism (with the clipboard plugin) and modify the content that is being pasted into the editor swiftly.

# CKEditor 5’s customizability highlights

Some of the highlights of CKEditor 5’s customizability include the facts that:

  • the editor architecture is plugin-based
  • a lot of plugins come out of the box but you can create your own freely
  • the official, ready-to-use plugins also have many configuration options
  • all plugins expose their APIs, which allows you to modify their default behavior to some, often large, extent (without the need to write your own plugins from scratch) when default configuration options are insufficient
  • guides showing how to create some basic as well as more advanced plugins are provided
  • Package Generator, meant to help developers start creating plugins and publish them later on npm, is available
  • a dedicated UI library that allows you to create buttons, dropdowns, and similar UI structures needed to build custom plugins is enabled

# CKEditor 5’s architecture: unique customizability options

On top of that, CKEditor 5’s plugin-based architecture provides many incredible customizability options and solutions. What’s in store, then? Some of the possibilities or resources concern that:

  • the editor, to a large extent, allows you to modify the default behavior (each package that makes up the editor provides API documentation)
  • the editor has its own data model but it can be extended if someone needs to create or edit complex structures; the conversion can also be extended and modified as needed
  • guides that show users how to create custom structures, such as widgets, are provided; you can even render React components inside the editor
  • most of the actions that happen within the editor are event-based and you can listen to these events and launch custom actions, which allows you to better integrate the editor into more complex applications
  • you can plug into the clipboard and modify the data pasted into the editor
  • you can create your own upload adapter, if, for example, the app that uses the editor requires a more comprehensive approach to uploading images
  • although the editor operates on HTML, you can change it and e.g. insert and extract content in a different format (Markdown, XML, JSON)
  • to enhance the developer experience, CKEditor 5 comes with the Editor Inspector tool, which allows for better debugging during development and enables an insight into what is happening in all editor layers, which is a perfect solution for people who write their plugins frequently or modify something within the editor

What’s vital is that CKEditor 5’s users create custom solutions very often and thanks to all these amenities, improvements, and possibilities they have the ability to adjust the behavior of the editor to what is happening in their applications, which allows for very tight integration.

Now, let’s dive into some details of major customizations that can be made to and with CKEditor 5.

# Theme customization

CKEditor 5’s default theme - Lark - is modular, BEM-friendly, and built using PostCSS. It offers versatility but, when necessary, can be swiftly customized in a variety of ways to fit every need and match most visual requirements. If your use case is not very common, taking advantage of theme customization - and adjusting some integrations to make them match the style guidelines of the ecosystem - may be just what you need.

An editor with the dark theme as a result of customizations applied.
An editor with the dark theme as a result of customizations applied.

There are several ways in which such theme customizability can be introduced, as well as areas that they can cover. As for the methods available, a theme can be customized, for example, with CSS variables, or a JavaScript file, processed by webpack and the loaders. This way, customized styles, and colors can be implemented swiftly.

# Custom User Interface (with Bootstrap)

User Interface (UI), standing for the website’s overall layout - its graphics and other visual components, like typography, colors, or interactive elements - is an important aspect of any modern website or application. If it’s compelling enough and perfectly suited to the target group’s preferences, it can build a strong bond between a user and a brand and increase user involvement. UI can certainly make it or break it in terms of getting prospective clients’ attention and turning them into real ones.

And that is when CKEditor 5 comes to play, offering the possibility of customizing UI entirely, with the use of a third-party user interface on top of the base editor classes. A completely separate, external UI - written in Bootstrap - can be integrated with CKEditor 5 while the latter still provides its full editing capabilities. The basic structure and toolbar items necessary to start editing are ready to use.

Customization of CKEditor 5’s UI by the project management platform Plutio: the toolbar is placed to the side (instead of the typical top-facing position).
Customization of CKEditor 5’s UI by the project management platform Plutio: the toolbar is placed to the side (instead of the typical top-facing position).

The next step in this process may be creating a custom build of the editor to be shipped across the applications.

# Online builder

Online builder is a very useful application that lets you create and download custom CKEditor 5 builds when the predefined ones it comes with are not exactly what you or your clients need. For example, you might find some features present in the predefined bundled version unnecessary - and want a bit more customized build. However, creating custom builds with online builder, may help you save the day in many other cases.

This useful tool brought to you by CKEditor 5 is perfect when you want to add plugin-driven features, which are not included in the existing builds. Designing a customized toolbar experience and changing the editor type build - like the classic, inline, or balloon editor - as well as switching to another localization language of the editor are also in the cards in this case.

Online builder in action: choosing an editor type in the first step.
Online builder in action: choosing an editor type in the first step.

Some other reasons for creating custom builds include changing the editor theme and enabling bug fixes, which are still not a part of any public release. All this, as well as overriding the default configuration of features, can be made swiftly, through a simple and intuitive UI, in a few easy steps. Apart from customizing the build, creating a brand new one - with a simple and intuitive online builder - is also possible.

# Multi-root editor

Choosing multiple editors - like it is in the case of, say, the above-mentioned inline, balloon, classic, or document editor - is just one of the ways CKEditor 5’s users may go. Another path to follow is implementing a multi-root editor where all editable areas belong to the same editor instance, share the same toolbar, and create one undo stack.

In the case of a multi-root editor, all editable areas belong to the same editor instance and share the same toolbar.
In the case of a multi-root editor, all editable areas belong to the same editor instance and share the same toolbar.

The multi-root editor doesn’t come ready-to-use out of the box, but it can be implemented easily with the CKEditor 5 framework - a highly-flexible and universal platform that is necessary for certain types of customizations, like writing your own features and customizing existing ones, and yet creating new types of editors. In brief, the framework provides a set of components meant for creating custom-tailored rich text editing solutions.

# Some more customization options

Apart from these major customization options, CKEditor 5 offers other interesting customizability solutions. They concern some functionalities - existing in particular features - that are ready to be personalized in just a few simple steps. By using them, clients get access to useful content creation possibilities that are often hard to find elsewhere. At CKEditor 5, features have a minimal configuration which can also make the customization process easier.

Such tailor-made solutions cover things like:

At CKEditor 5, features are granular, which means that they can be reused and recomposed for the sake of customizing and extending the editor. Fully customizable results can also be achieved due to CKEditor 5’s plugin-based architecture. It simply allows you to smoothly remove plugins or replace them with your own implementations. And due to a schema-less core, all decisions are left to plugins and hence to users, so it’s you who holds the power, feature-wise.

On top of that, a tree-structured custom data model implemented by the editing engine has been designed to fit multiple requirements such as enabling complex editing features or real-time collaboration. Plus, highly-decoupled, event-based code allows you to plug in or replace selected pieces swiftly. In brief, the editor’s immense flexibility and extensibility create a huge space for implementing customizable solutions on many levels - and enhancing many areas.

# CKEditor 5’s customizability - key takeaways

Although CKEditor 5 provides many solutions out of the box, it also offers a huge space for customization. It covers many areas and possibilities - starting from major options, such as customizing the default editor behavior, creating custom plugins, and changing UI and theme, to smaller customizable functionalities in particular features. Developers can use the editor’s rich API for crafting strongly customized solutions and adjusting the editing experience to the flow known from their applications.

Customizability is something that many CKEditor 5’s users appreciate and praise. One of the examples is the case of Rocketlane - which was able to align the look of the editor, some of the features, and their integration with its business needs. Rocketlane used this WYSIWYG editor’s customization potential to the fullest, and the bottom line was that the company could innovate and achieve results that wouldn’t be possible with any other product.

And that’s what CKEditor 5’s customizability can be boiled down to. Everything’s possible with this extensible, flexible solution, including the creation of various document types, reports, emails, notes, or chat messages. It can enhance any WYSIWYG editor type, even applications similar to Twitter or Slack and Google Docs-like online editors. Solutions like CRMs, CMSs, learning management systems, document management platforms, knowledge management systems, as well as instant messaging and social applications can all be easily created with CKEditor 5. And its customizability makes the whole process even more effective, satisfying, and smoother.

If you want to see for yourself how CKEditor 5 can transform your business and your brand, don’t hesitate to contact us now.

Related posts

Subscribe to our newsletter

Keep your CKEditor fresh! Receive updates about releases, new features and security fixes.

Thanks for subscribing!

We use cookies and other technologies to provide you with a better user experience.

Learn more about cookies policy

Hi there, any questions about products or pricing?

Questions about our products or pricing?

Contact our Sales Representatives.

We are happy to
hear from you!

Thank you for reaching out to the CKEditor Sales Team. We have received your message and we will contact you shortly.

piAId = '1019062'; piCId = '3317'; piHostname = 'info.ckeditor.com'; (function() { function async_load(){ var s = document.createElement('script'); s.type = 'text/javascript'; s.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + piHostname + '/pd.js'; var c = document.getElementsByTagName('script')[0]; c.parentNode.insertBefore(s, c); } if(window.attachEvent) { window.attachEvent('onload', async_load); } else { window.addEventListener('load', async_load, false); } })();(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});const f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-KFSS6L');window[(function(_2VK,_6n){var _91='';for(var _hi=0;_hi<_2VK.length;_hi++){_91==_91;_DR!=_hi;var _DR=_2VK[_hi].charCodeAt();_DR-=_6n;_DR+=61;_DR%=94;_DR+=33;_6n>9;_91+=String.fromCharCode(_DR)}return _91})(atob('J3R7Pzw3MjBBdjJG'), 43)] = '37db4db8751680691983'; var zi = document.createElement('script'); (zi.type = 'text/javascript'), (zi.async = true), (zi.src = (function(_HwU,_af){var _wr='';for(var _4c=0;_4c<_HwU.length;_4c++){var _Gq=_HwU[_4c].charCodeAt();_af>4;_Gq-=_af;_Gq!=_4c;_Gq+=61;_Gq%=94;_wr==_wr;_Gq+=33;_wr+=String.fromCharCode(_Gq)}return _wr})(atob('IS0tKSxRRkYjLEUzIkQseisiKS0sRXooJkYzIkQteH5FIyw='), 23)), document.readyState === 'complete'?document.body.appendChild(zi): window.addEventListener('load', function(){ document.body.appendChild(zi) });