Fabric.js is a framework that makes it easy to work with HTML5 canvas element.
It is an interactive object model on top of canvas element.
It is also an SVG-to-canvas parser.
Using Fabric.js, you can create and populate objects on canvas; objects like simple geometrical shapes — rectangles, circles, ellipses, polygons, or more complex shapes consisting of hundreds or thousands of simple paths.
You can then scale, move, and rotate these objects with the mouse; modify their properties — color, transparency, z-index, etc. You can also manipulate these objects altogether — grouping them with a simple mouse selection.
You can add text on canvas and dynamically manipulate its size, alignment, fontfamily and other properties. You can apply filters to images, making them grayscale or removing background. You can serialize the entire canvas into a JSON string — saving it locally or on a server — then completely restore it at any time.