TypeCellOS / TypeCellOS/BlockNote

Ability to change the custom block type to another

Open
#2,401 3 comments 0 reactions 1 assignee View on GitHub

@matthewlipski is already working on this.

Since Feb 3, 2026.

bug:P3 sponsor
Dominant language
TypeScript
Stars
10.2k
Forks
772
Avg merge
3d 11h
Merged PRs (30d)
17

Description

It would be very helpful if BlockNote provided a native way to change a custom block type to another block type.

Currently, when selecting text inside BlockNote’s built-in blocks, the formatting toolbar appears with a Block Type dropdown that allows changing the block type. However, this dropdown is not available for custom blocks, which makes it impossible to convert them using the same UX.

Current Limitation

  • Built-in blocks expose the Block Type dropdown in the formatting toolbar
  • Custom blocks do not expose this control
  • As a result, users cannot convert a custom block into another block type using the native UI

Existing Workaround

BlockNote allows developers to manually construct the content of the formatting toolbar. However, this approach has several drawbacks:

  • The formatting toolbar dynamically adapts based on context (e.g. links, images, tables, etc.)
  • Manually reconstructing the toolbar risks:
    • Breaking built-in toolbar logic in certain states
    • Missing context-specific behaviors
    • Losing compatibility with future toolbar features or components

Why Native Support Matters

  • Ensures consistent UX between built-in and custom blocks
  • Avoids fragile workarounds and duplicated logic
  • Preserves automatic toolbar behavior and future extensibility
  • Makes custom blocks feel like first-class citizens in the editor

Ideally, custom blocks should be able to opt into the same Block Type dropdown behavior as built-in blocks without requiring manual toolbar reconstruction.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.