[GH-ISSUE #2091] [FR] A freehand drawing board #850

Open
opened 2026-03-23 20:42:01 +00:00 by mirror · 15 comments
Owner

Originally created by @annieappflowy on GitHub (Mar 23, 2023).
Original GitHub issue: https://github.com/AppFlowy-IO/AppFlowy/issues/2091

Description

A free-hand sketch/drawing element, just like other elements - text, image, callout, heading etc. Because, no matter how many embeds we offer, sometimes there is something that a user can only write it down by itself and needs to edit it on spot. For this, I even thought of offering an embed to Microsoft Whiteboard, but I prefer it to be something that is a part of the application itself, with features that resonates with other elements. Because, an embed is, still depending on a third-party.

Impact

Users who express via hand drawing

Additional Context

No response

Originally created by @annieappflowy on GitHub (Mar 23, 2023). Original GitHub issue: https://github.com/AppFlowy-IO/AppFlowy/issues/2091 ### Description A free-hand sketch/drawing element, just like other elements - text, image, callout, heading etc. Because, no matter how many embeds we offer, sometimes there is something that a user can only write it down by itself and needs to edit it on spot. For this, I even thought of offering an embed to Microsoft Whiteboard, but I prefer it to be something that is a part of the application itself, with features that resonates with other elements. Because, an embed is, still depending on a third-party. ### Impact Users who express via hand drawing ### Additional Context _No response_
Author
Owner

@a-wallen commented on GitHub (Mar 24, 2023):

Whoever picks this up can refer to this tutorial as an example.

Just an FYI @annieappflowy, this feature might require some constraints for the following reason:
Embedding the freehand drawing widget in a document will run into issues in the gesture arena. For example, if a user swipes up inside of the freehand drawing widget, it's hard to disambiguate whether the user's intent is to scroll down on the page or to draw upwards inside of the widget.

For the aforementioned reason, a reasonable constraint might be that we can embed a AppFlowy FreeHandDrawingWidget in a document, but while it's inside a document, it cannot be editable.

<!-- gh-comment-id:1482218221 --> @a-wallen commented on GitHub (Mar 24, 2023): Whoever picks this up can refer to [this tutorial](https://www.kodeco.com/25237210-building-a-drawing-app-in-flutter) as an example. Just an FYI @annieappflowy, this feature might require some constraints for the following reason: Embedding the freehand drawing widget in a document will run into issues in the [gesture arena](https://docs.flutter.dev/development/ui/advanced/gestures#gesture-disambiguation). For example, if a user swipes up inside of the freehand drawing widget, it's hard to disambiguate whether the user's intent is to scroll down on the page or to draw upwards inside of the widget. For the aforementioned reason, a reasonable constraint might be that we can embed a AppFlowy FreeHandDrawingWidget in a document, but while it's inside a document, it cannot be editable.
Author
Owner

@rileyhawk1417 commented on GitHub (Apr 2, 2023):

@a-wallen So to embed the widget per say is like having a separate dedicated part of the document that can be recognised as a drawing area?

<!-- gh-comment-id:1493362571 --> @rileyhawk1417 commented on GitHub (Apr 2, 2023): @a-wallen So to embed the widget per say is like having a separate dedicated part of the document that can be recognised as a drawing area?
Author
Owner

@Xazin commented on GitHub (May 13, 2023):

The way I see it, whilst embedded in the document, it should be a read-only "area".

The drawing should happen in an edit/expanded mode. This will also make it easier to build this feature.

What do you think @a-wallen ? I can try to make some quick example in Figma to clarify what I mean if needed.

<!-- gh-comment-id:1546729961 --> @Xazin commented on GitHub (May 13, 2023): The way I see it, whilst embedded in the document, it should be a read-only "area". The drawing should happen in an edit/expanded mode. This will also make it easier to build this feature. What do you think @a-wallen ? I can try to make some quick example in Figma to clarify what I mean if needed.
Author
Owner

@Xazin commented on GitHub (May 18, 2023):

@a-wallen
Really bad example, but I didn't want to invest too much time in it, so spent 2 minutes to draw it out in Figma.

image

Of course when editing versus expanding in read mode, there would be color picker, etc.

<!-- gh-comment-id:1553678946 --> @Xazin commented on GitHub (May 18, 2023): @a-wallen Really bad example, but I didn't want to invest too much time in it, so spent 2 minutes to draw it out in Figma. ![image](https://github.com/AppFlowy-IO/AppFlowy/assets/42929161/23f5ab5e-b53e-42af-8fb3-89bb776a74ae) Of course when editing versus expanding in read mode, there would be color picker, etc.
Author
Owner

@a-wallen commented on GitHub (May 18, 2023):

Yep @Xazin, that solution looks good to me: solves the engineering problem with UX :)

<!-- gh-comment-id:1553735407 --> @a-wallen commented on GitHub (May 18, 2023): Yep @Xazin, that solution looks good to me: solves the engineering problem with UX :)
Author
Owner

@Xazin commented on GitHub (May 18, 2023):

Made this, it's not the best, I honestly haven't looked into our designs enough to work according to our design system. But maybe someone can pick it up and make something good off of it.

image

Figma found here

<!-- gh-comment-id:1553782138 --> @Xazin commented on GitHub (May 18, 2023): Made this, it's not the best, I honestly haven't looked into our designs enough to work according to our design system. But maybe someone can pick it up and make something good off of it. ![image](https://github.com/AppFlowy-IO/AppFlowy/assets/42929161/baf9d566-fb05-457b-b0fd-99f73fcdc27b) [Figma found here](https://www.figma.com/file/GlyZ9AykmTXop8PiBLHBpo/AppFlowy-Dark-(Copy)?type=design&node-id=2206-382219&t=rIm9y6ca7iHNrGUz-4)
Author
Owner

@Svk1190 commented on GitHub (Feb 2, 2024):

I think it would be interesting if each document can have two transparent layers, one layer for text (as it is now) and one layer for handwriting / drawing. This would allow users to use their stylus to annotate/highlight/draw on top of their text notes.

The drawing tools can activate the drawing layer. Using the keyboard or the text tools can deactivate the drawing layer and activate the text layer.

Some specific tools may work on both layers simultaneously, for example, introduction of vertical space, eraser, lasso, etc.

<!-- gh-comment-id:1924728543 --> @Svk1190 commented on GitHub (Feb 2, 2024): I think it would be interesting if each document can have two transparent layers, one layer for text (as it is now) and one layer for handwriting / drawing. This would allow users to use their stylus to annotate/highlight/draw on top of their text notes. The drawing tools can activate the drawing layer. Using the keyboard or the text tools can deactivate the drawing layer and activate the text layer. Some specific tools may work on both layers simultaneously, for example, introduction of vertical space, eraser, lasso, etc.
Author
Owner

@imjasoriano commented on GitHub (Feb 12, 2025):

for the text layer, I suggest to make the text rotatable and movable so that map roads or diagrams, for example, can easily fit labels. Adding formating to the text would also be nice (ex. font color, size, bold, etc).

<!-- gh-comment-id:2652506399 --> @imjasoriano commented on GitHub (Feb 12, 2025): for the text layer, I suggest to make the text rotatable and movable so that map roads or diagrams, for example, can easily fit labels. Adding formating to the text would also be nice (ex. font color, size, bold, etc).
Author
Owner

@imjasoriano commented on GitHub (Feb 12, 2025):

For the drawing tool, it would be great to have:

  1. pens - a few pen options (pen, highlighter, fountain pen), line width option, line color options
  2. shapes - resizeable and rotatable shapes like rectangle, oval, triangle, arrow, multi arrow, bent arrow, flexible arrow
  3. paper - adjustable page color fill, background image, grid
  4. resizable paper size and dimensions
<!-- gh-comment-id:2652515685 --> @imjasoriano commented on GitHub (Feb 12, 2025): For the drawing tool, it would be great to have: 1. pens - a few pen options (pen, highlighter, fountain pen), line width option, line color options 2. shapes - resizeable and rotatable shapes like rectangle, oval, triangle, arrow, multi arrow, bent arrow, flexible arrow 3. paper - adjustable page color fill, background image, grid 4. resizable paper size and dimensions
Author
Owner

@hackeresq commented on GitHub (Feb 22, 2025):

I would prefer an existing solution - something like Excalidraw. I think making this a block in the editor makes a lot of sense.

<!-- gh-comment-id:2676013675 --> @hackeresq commented on GitHub (Feb 22, 2025): I would prefer an existing solution - something like Excalidraw. I think making this a block in the editor makes a lot of sense.
Author
Owner

@annieappflowy commented on GitHub (Feb 23, 2025):

I would like to make a suggestion, I would love for you to add a whiteboard where you could make diagrams, brainstorm so that we can be more creative with our work. Thank you.

<!-- gh-comment-id:2676805953 --> @annieappflowy commented on GitHub (Feb 23, 2025): I would like to make a suggestion, I would love for you to add a whiteboard where you could make diagrams, brainstorm so that we can be more creative with our work. Thank you.
Author
Owner

@SOSeriously commented on GitHub (Mar 10, 2025):

I would like to suggest:

  1. The whiteboard should be a separate page with its dedicated tools for drawing, creating diagrams, adding images, and adding text. Similar to other whiteboards.
  2. To link a whiteboard similar to linking a calendar or kanban board in a document.
  3. Drawio has a nice feature called scratchpad where you can save parts of a diagram as a preset, import/export the preset, or add an image from the device as a preset.
<!-- gh-comment-id:2711520614 --> @SOSeriously commented on GitHub (Mar 10, 2025): I would like to suggest: 1. The whiteboard should be a separate page with its dedicated tools for drawing, creating diagrams, adding images, and adding text. Similar to other whiteboards. 2. To link a whiteboard similar to linking a calendar or kanban board in a document. 3. Drawio has a nice feature called scratchpad where you can save parts of a diagram as a preset, import/export the preset, or add an image from the device as a preset.
Author
Owner

@GOKORURI007 commented on GitHub (Jul 20, 2025):

This sounds like the edgeless mode in affine.

<!-- gh-comment-id:3094475146 --> @GOKORURI007 commented on GitHub (Jul 20, 2025): This sounds like the edgeless mode in affine.
Author
Owner

@GlassedSilver commented on GitHub (Dec 6, 2025):

This sounds like the edgeless mode in affine.

Yes or OneNote which I'm dying to switch away from.

I NEED handwriting to take notes, because:

  • I'm much quicker with handwriting than with typing
  • but even so, with handwriting I can much more quickly add a quick doodle to sketch something up to support my thought in-line without placing something which adds a pacing issue when I need to keep up with something

Additionally, even though I so wish to get away from OneNote, it does have some nice tricks up its sleeves like this:
YouTube demo of synched notes with audio recording

<!-- gh-comment-id:3619098709 --> @GlassedSilver commented on GitHub (Dec 6, 2025): > This sounds like the edgeless mode in affine. Yes or OneNote which I'm dying to switch away from. I NEED handwriting to take notes, because: - I'm much quicker with handwriting than with typing - but even so, with handwriting I can much more quickly add a quick doodle to sketch something up to support my thought in-line without placing something which adds a pacing issue when I need to keep up with something Additionally, even though I so wish to get away from OneNote, it does have some nice tricks up its sleeves like this: [YouTube demo of synched notes with audio recording](https://youtu.be/IIPbpJWT5ec)
Author
Owner

@gbostock commented on GitHub (Dec 14, 2025):

So it's not in the plan? I wish to occasionally doodle while typing.

<!-- gh-comment-id:3650156721 --> @gbostock commented on GitHub (Dec 14, 2025): So it's not in the plan? I wish to occasionally doodle while typing.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
AppFlowy-IO/AppFlowy#850
No description provided.