TypeCellOS / TypeCellOS/BlockNote

Drag ghost issues when moving blocks

Open
#2,609 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

What’s broken?

The drag ghost (the visual preview shown while dragging a block) has several rendering and behavior issues:

Image

  • Image block drag ghost is oversized. The drag ghost renders at a much larger size than the original block.
  • Image block becomes undraggable after first drag. Once an image block has been dragged and dropped once, it can no longer be dragged again.
    Image
  • Table block drag ghost lacks grid lines. The grid/borders are not visible in the drag ghost.
    Image
  • Text block drag ghost does not preserve line breaks while dragging. The drag ghost collapses multi-line text onto a single line.
  • No opacity reduction on drag ghost. Dragged elements render at full opacity, making it hard to distinguish the ghost from the actual page content.
What did you expect to happen?
  • The drag ghost should match the original block's dimensions and styling (size, borders, line breaks).
  • Image blocks should remain draggable after being moved.
  • The drag ghost should have reduced opacity so users can clearly tell it apart from the underlying content. For reference, Notion applies opacity and preserves table grids in its drag previews.
Steps to reproduce
  • Open a document containing image, table, and multi-line text blocks.
  • Drag an image block. Observe the oversized ghost.
  • Drop the image, then try to drag it again. Observe it is no longer draggable.
  • Drag a table block. Observe the missing grid lines.
  • Drag a multi-line text block. Observe collapsed line breaks.
  • During any drag, note the lack of opacity difference between the ghost and the page content.
BlockNote version

No response

Environment

macOS 26.4 (25E246)

Additional context

Observed on macOS with Chromium-based browsers (Chrome, Arc, Dia).

Contribution
  • I'd be interested in contributing a fix for this issue
Sponsor
  • I'm a sponsor and would appreciate if you could look into this sooner than later 💖

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.

Research direction

Start by reproducing the drag behavior with image, table, and multiline text blocks in a Chromium-based browser on macOS. Inspect the existing block drag-ghost entry point and verify that the preview preserves dimensions, borders, line breaks, repeat draggability, and reduced opacity across all listed cases.

Written by the indexing model from the issue text.

Assessment

Tech stack
react, typescript
Domain
frontend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.