None, figma is built with wasm + complex canvas manipulations, you won't find the advanced snapping feature in any js library Answer from s____s___ on reddit.com
Konva
konvajs.org
Konva - JavaScript Canvas 2d Library
Konva is 2d Canvas JavaScript framework for drawings shapes, animations, node nesting, layering, filtering, event handling, drag and drop and much more.
API Reference
Should Konva automatically update canvas on any changes. Default is true ยท Should we enable hit detection while dragging? For performance reasons, by default it is false. But on some rare cases you want to see hit graph and check intersections. Just set it to true
Tutorials
Get started with Konva.js, the most popular 2D HTML5 Canvas JavaScript framework. Learn to draw shapes, handle events, drag-and-drop, and animate โ with React, Vue, Svelte, and Angular support.
Demos
Interactive Konva Demos
React
Get started with react-konva, the official React binding for Konva.js. Draw shapes, handle events, drag-and-drop, and animate on HTML5 Canvas using React components.
Reddit
reddit.com โบ r/javascript โบ [askjs] what is the best canvas library to make an app like figma or integromat?
r/javascript on Reddit: [AskJS] What is the best canvas library to make an app like figma or integromat?
August 28, 2021 -
I'm looking for a HTML5 canvas library to make an app like those, which one do you guys think would be the best for something like this?
Top answer 1 of 16
56
None, figma is built with wasm + complex canvas manipulations, you won't find the advanced snapping feature in any js library
2 of 16
19
Answer has not changed from the past. Still pixijs.
There are a bunch of other libraries, but none as performant.
Canviskit is interesting, but the documentation is questionable at best.
Might also look into Flutter (or just Dart UI) which is using Dart and built on canvaskit.
[AskJS] What is the best canvas library to make an app like figma or integromat?
None, figma is built with wasm + complex canvas manipulations, you won't find the advanced snapping feature in any js library
More on reddit.comRecommend 2D Library
Even for 2D i found myself using threejs a lot for this type of requirement. By rendering the SVG to a texture and using an instanced quad per shape. I made jigsaw puzzles and maps with this technique. Also wrote about it here if you want to learn more: https://tips4devs.com/articles/make-a-webgl-powered-us-counties-map-with-d3-and-three-js.html Edit: note that with this approach you're rasterizing you vector image so you get limited in resolution use only two triangles per shape. So it's a good trade of in some situations only. More on reddit.com
Most performant 2D immediate-mode drawing library for the web?
https://threejs.org/ More on reddit.com
r/javascript on Reddit: Why JS 2D libraries base on scene graph?
Is there any engine/library that ... all textures on canvas? If not why is that? Is it a performance leak that poor JS interpreters cant handle (that would be my best bet)? I have a problem, because most of libraries are more closer to game maker than 2D libraries... More on reddit.com
MDN Web Docs
developer.mozilla.org โบ en-US โบ docs โบ Web โบ API โบ Canvas_API
Canvas API - Web APIs | MDN
Scrawl-canvas is an open-source JavaScript library for creating and manipulating 2D canvas elements.
Fabric.js
fabricjs.com
Fabric.js Javascript Library
Fabric provides interactive object model on top of canvas element Fabric also provide serialization and has SVG-to-canvas (and canvas-to-SVG) parser ยท On-canvas text editing with rich styling, IME and curve support
Js
two.js.org
Two.js โข Homepage
A two-dimensional drawing api geared towards modern web browsers. It is renderer agnostic enabling the same api to draw in multiple contexts: svg, canvas, and webgl.
GitHub
github.com โบ raphamorim โบ awesome-canvas
GitHub - raphamorim/awesome-canvas: A curated list of awesome HTML5 Canvas with examples, related articles and posts. ยท GitHub
ZIM - ZIM is a general Canvas Framework with simple, powerful JavaScript that lets everyone, from beginners to professionals, code creativity. zrender - A lightweight canvas library which providing 2d draw for Apache ECharts (incubating)
Starred by 1.8K users
Forked by 160 users
Languages ย Markdown
Envato Tuts+
webdesign.tutsplus.com โบ home โบ web design โบ html/css โบ animation
Best Free Canvas Libraries in JavaScript | Envato Tuts+
June 24, 2021 - There are a lot of libraries available for drawing and animating things with the help of canvas. You can visualize any kind of data or a variety of chart types with a library like D3.js, and you also have the option to keep things simple with a library like Chart.js. Similarly, you can create physics-based simulations with Matter-js or animate 2D shapes with Two.js.
Best of JS
bestofjs.org โบ projects
Canvas projects
Best of JS is a project by Michael Rambeau, made in Osaka, Japan
CanvasJS
canvasjs.com โบ home
Beautiful JavaScript Charting Library with 10x Performance
September 12, 2025 - HTML5 JavaScript Charting Library with a Simple API. Renders across devices & is 10x faster than SVG Charts. Examples include source code
W3Schools
w3schools.com โบ html โบ html5_canvas.asp
HTML Canvas
After creating the rectangular canvas area, you must add a JavaScript to do the drawing. ... <script> var c = document.getElementById("myCanvas"); var ctx = c.getContext("2d"); ctx.moveTo(0, 0); ctx.lineTo(200, 100); ctx.stroke(); </script> Try it Yourself ยป
Draw
drawjs.github.io
Draw | A basic 2d canvas graph library
Draw.js is a basic 2d canvas graph library, which is under development currently.
Konva
konvajs.org โบ canvas editor
How to Build a Design Editor with JavaScript Canvas | Konva - JavaScript Canvas 2d Library
This is a demonstration of full canvas editor made with Konva. The demo is made by polotno.dev SDK. Polotno is a very opinionated JavaScript framework that built on top of Konva and React. You can make logos, presentations, designs for social media with it.
Konva
konvajs.org โบ intro
Getting Started with Konva โ HTML5 Canvas 2D Framework | Konva - JavaScript Canvas 2d Library
Konva is an HTML5 Canvas JavaScript framework for building interactive 2D graphics.
MDN Web Docs
developer.mozilla.org โบ en-US โบ docs โบ Web โบ API โบ CanvasRenderingContext2D
CanvasRenderingContext2D - Web APIs | MDN
Returns an object containing the context attributes used by the browser. Context attributes can be requested when using HTMLCanvasElement.getContext() to create the 2D context. ... Returns true if the rendering context was lost. There are three methods that immediately draw rectangles to the canvas.
escher.js
tentone.github.io โบ escher.js
escher.js | 2D graphics canvas framework for easier interactive web graphics.
2D graphics canvas framework for easier interactive web graphics.
Libhunt
js.libhunt.com โบ libs โบ canvas
JavaScript Canvas libraries | LibHunt
Konva.js is an HTML5 Canvas JavaScript framework that extends the 2d context by enabling canvas interactivity for desktop and mobile applications. ... JavaScript diagramming library for interactive flowcharts, org charts, design tools, planning tools, visual languages.