Block toolbar
The BlockToolbar
plugin provides an additional configurable toolbar on the left-hand side of the content area (the gutter). The toolbar is represented by a button with a pilcrow (or a paragraph mark — ¶). It is positioned next to the block element that the selection is anchored to (e.g. a paragraph), following the caret as the user edits the content and navigates the document.
The block toolbar comes in handy when the main editor toolbar cannot be accessed. It complements the Balloon editor when it falls short, for example when some content must be inserted (like an image) but the selection is collapsed, leaving the user unable to access the toolbar.
# Example
Move the caret around the content with the balloon editor below to see the block toolbar button following the selection. Click the button (¶) to use the toolbar, for example to create a header or insert an image.
The three greatest things you learn from traveling

Like all the great things on earth traveling teaches us by example. Here are some of the most precious lessons I’ve learned over the years of traveling.
Appreciation of diversity
Getting used to an entirely different culture can be challenging. While it’s also nice to learn about cultures online or from books, nothing comes close to experiencing cultural diversity in person. You learn to appreciate each and every single one of the differences while you become more culturally fluid.
# Configuration
The content of the toolbar can be defined using the blockToolbar
configuration. See the installation instructions to learn more.
Because the toolbar is always connected to the block of content, it works best with the features that modify entire blocks (e.g. create headings) or insert objects (e.g. images or tables) rather than inline styles (e.g. bold or italic).
To adjust the position of the block toolbar button to match the styles of your website, use the CSS transform
property:
.ck.ck-block-toolbar-button {
transform: translateX( -10px );
}
# Installation
Remember to add relevant features to the editor configuration first. The block toolbar provides a space for the buttons, but it does not bring the actual features. For example, the heading1
button will not work if there is no Headings feature in the editor.
To add this feature to your editor install the @ckeditor/ckeditor5-ui
package:
npm install --save @ckeditor/ckeditor5-ui
And add it to your plugin list:
import BlockToolbar from '@ckeditor/ckeditor5-ui/src/toolbar/block/blocktoolbar';
import HeadingButtonsUI from '@ckeditor/ckeditor5-heading/src/headingbuttonsui';
import ParagraphButtonUI from '@ckeditor/ckeditor5-paragraph/src/paragraphbuttonui';
BalloonEditor
.create( document.querySelector( '#editor' ), {
plugins: [ BlockToolbar, ParagraphButtonUI, HeadingButtonsUI, ... ],
blockToolbar: [
'paragraph', 'heading1', 'heading2', 'heading3',
'|',
'bulletedList', 'numberedList',
'|',
'blockQuote', 'imageUpload'
],
toolbar: [ ... ]
} )
.then( ... )
.catch( ... );
Read more about installing plugins.
# Contribute
The source code of the feature is available on GitHub in https://github.com/ckeditor/ckeditor5-ui.