Editor.js: new way to render Toolbar controls

2 min read

The last big update of Editor.js includes several significant improvements. Block Tunes Menu became vertical just like the Toolbox. All the icons were updated. UI got the new fresh look. 🥳

Another notable update is the Menu Config feature. This is the new straightforward way to define Block Tunes appearance.

Menu Config

To render your Block Tune in the menu just specify the icon, label, and a callback — and that's it! No more custom HTML is required for common cases. But it is still supported for special tunes.

Block Tool 

Since 2.26.0 the Block Tool’s renderSettings() method can return tunes Menu Config instead of a custom HTML element. Here's what it looks like:

import { IconAddBorder, IconAddBackground } from '@codexteam/icons'; class ImageTool { // ... renderSettings() { /** * Returns tunes menu items list instead of custom HTML */ return [ { icon: IconAddBorder, label: 'Add Border', onActivate: () => { // logic for adding a border } }, { icon: IconAddBackground, label: 'Add Background', onActivate: () => { // logic for adding a background } } ] } //... }

Here you can see that the renderSettings returns an array of Menu Config items. Each item has an icon and label to be displayed in Tunes Menu. And the onActivate callback that will be executed on the tune click.

Block Tune

Block Tunes API is also updated. Just like Block Tool’s renderSettings(), Block Tune’s render() now supports the new configuration format.

class Tune { // ... render() { /** Returns tunes menu items list instead of custom HTML */ return [ { icon: '<svg>...</svg>', label: 'Tune label', onActivate: () => {} } ] } // ... }

Our newsletter is growing

Stay tuned for the next updates! We're working on some other cool features. Check out our Roadmap for more details. If you want to support development, please consider donating via the Open Collective page.

We continue working on our newsletter with Editor.js news, guides, feature overviews, and other interesting things. Subscribe to it on Reveue.