Skip to content
On this page

Changing UI Elements

Along with the editor itself, BlockNote includes a few additional UI elements in the forms of menus and toolbars:

By default, these are all included in the editor, but you can remove or replace each of them with your own React components.

Positioner Components

Each of the UI elements not only have to show and hide, but also show in the correct positions. This is handled using Positioner components. Each UI element has its own Positioner component, e.g. the Formatting Toolbar:

jsx
export const FormattingToolbarPositioner = (props: {
    editor: BlockNoteEditor<BSchema>;
    formattingToolbar?: FC<FormattingToolbarProps<BSchema>>;
}): JSX.Element => {
    ...
}

Removing UI Elements

In the following example, we remove the Side Menu from the editor. This is done by adding Positioner components for each UI element except the Side Menu:

Each further Positioner component you remove will remove its corresponding UI element from the editor. If you only want to keep the editor itself, add only an empty fragment (<></>) to BlockNoteView's children.

Replacing UI Elements

In the following example, the Side Menu is replaced with a simple component which just displays the name of the element:

As you can see, this is done by passing a React component to the sideMenu prop of SideMenuPositioner. Each Positioner element has a prop through which you can pass the component you want to render (formattingToolbar for the Formatting Toolbar, etc.). If nothing is passed, the Positioner will render the default UI element.