Different user interfaces

No need to design your UI from scratch…
Just choose the one you like!

Editor with a fixed toolbar

The Classic editor offers a toolbar with an editing area placed in a specific position on the page. The toolbar remains visible as you scroll down the page, while the editor expands to fit your content.

BeBold

Note
  • This demo contains just a small subset of available CKEditor features. You are free to add more features to CKEditor regardless what editor type/toolbar you choose.

  • If you wish to build your custom UI, check out our Headless editor demo and documentation.

Check the source code for this demo.

Document editor

The Document editor offers a familiar editing experience akin to native word processors like Microsoft Word, featuring a user interface reminiscent of a traditional paper document.

BeBold

Note
  • This demo contains just a small subset of available CKEditor features. You are free to add more features to CKEditor regardless what editor type/toolbar you choose.

  • If you wish to build your custom UI, check out our Headless editor demo and documentation.

Check the source code for this demo.

Distraction-free editor

The Balloon editor includes a floating toolbar that pops up when you select content for editing. It lets you edit content right where it appears on the webpage, without the hassle of navigating to a separate administration section.

BeBold

Note
  • This demo contains just a small subset of available CKEditor features. You are free to add more features to CKEditor regardless what editor type/toolbar you choose.

  • If you wish to build your custom UI, check out our Headless editor demo and documentation.

Check the source code for this demo.

Distraction-free editor with a block formatting menu

The Balloon Block editor offers the balloon editor with an extra block toolbar which can be accessed using the button attached to the editable content area and following the selection in the document. The toolbar gives access to additional block–level editing features.

BeBold

Note
  • This demo contains just a small subset of available CKEditor features. You are free to add more features to CKEditor regardless what editor type/toolbar you choose.

  • If you wish to build your custom UI, check out our Headless editor demo and documentation.

Check the source code for this demo.

Editor with a disappearing toolbar

The Inline editor comes with a floating toolbar that becomes visible when the editor is focused (e.g. with a click of your mouse). It lets you edit content right where it appears on the webpage, without the hassle of navigating to a separate administration section.

BeBold

Note
  • This demo contains just a small subset of available CKEditor features. You are free to add more features to CKEditor regardless what editor type/toolbar you choose.

  • If you wish to build your custom UI, check out our Headless editor demo and documentation.

Check the source code for this demo.

Editor with a compact toolbar at the bottom

The Bottom configuration moves the main toolbar to the bottom of the editing window. This is often applied in email applications, (forum) post editors, chats, or instant messaging, where text creation comes first and formatting is applied occasionally.

BeBold

Note
  • This demo contains just a small subset of available CKEditor features. You are free to add more features to CKEditor regardless what editor type/toolbar you choose.

  • If you wish to build your custom UI, check out our Headless editor demo and documentation.

Check the source code for this demo.

Editor with grouped toolbar buttons

The Button Grouping option unclutters the main toolbar by merging buttons into expandable groups. This way you can keep the toolbar concise and well-organized, deciding which buttons should be grouped together.

BeBold

Note
  • This demo contains just a small subset of available CKEditor features. You are free to add more features to CKEditor regardless what editor type/toolbar you choose.

  • If you wish to build your custom UI, check out our Headless editor demo and documentation.

Check the source code for this demo.

Trusted and approved by

Can’t see what you’re looking for?

Talk to our Sales Representative to discuss your use case
and learn what more CKEditor can do for you.

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) });