Why? Wouldn't it make more sense to test on FF? If something works on FF, it's probably going to work on other browsers.
OTOH, if something works on chrome, there's a small probability of it working on other browsers.
Considering writing something like that in WASM. But it might have to be from scratch in that case.
FYI: There's an issue with opacity when you draw ellipses with a different color stroke and reduce the opacity. You start seeing the fill shape behind the stroked outline. There's probably a few ways to fix that, depending on how you implemented it. The easiest might be to shrink the inner shape depending on the stroke width.
There's a developer, much better than me, putting his soul into this, that's for sure.
Even building an MS Paint clone in the browser that has good UX on desktop as well as mobile is not an easy task.
I'm happy to have clicked (tapped) the link now that it has 8 comments. Wonder why I only read the headline 15 minutes ago.
The idea is that you can zoom in infinitely with your mousewheel (or two-finger drag).
How much time did it take you to develop this? I just see a few commits on GitHub.
Suggestion: To group multiple elements would be a nice feature to have, I had spent entire day sketching it in rough note book and then implement it in code.
When I placed a circle I immediately pressed control to keep the ratio of the object -- photoshop reflex ahah -- it would be nice to have a similar UX.
i always look for this one feature before i adopt a drawing app - ability to paste in images from my clipboard. i imagine this is mostly just rendering a data:url. but it is so much better workflow than uploading images via some kind of drag and drop. tldraw and excalidraw both offer this now
If I may add one piece of feedback: I’d allow users to choose the native colour picker instead of the HTML widgets. You can still style it without sacrificing accessibility.
[*] literally literally, not “literally” literally
ps. could you share state in url?
Really nice work!
The beauty of the Web is that it’s easy to get started. By all means, make one without React.
The question is how fast you can do it and how easy it is to maintain. React simplifies the effects of state change, at a cost of doing more renders and diff. It's got nice properties for debugging, kinda like functional programming, especially as the thing gets bigger and more complex.
It's not magic. It just makes some things convenient. It seems to hit a sweet spot for ease of writing and maintaining. If you don't like it you don't have to use it.