Using Fabric.js, you can create and populate objects on canvas; objects like simple geometrical shapes
or complex shapes consisting of hundreds or thousands of simple paths
or good old images
You can add text and dynamically manipulate its size, alignment, font family, and other properties
You can give any shape a gradient
and apply image filters to images
There's built-in animation support
You can group objects together, and manipulate them at the same time
You can add shadow to any object. Or make it draggable only by its content. Try this star →
Objects can be easily flipped in any direction. Or locked in movement, scaling, etc.
← Try these cats.
There's an extensive event system
You can clip any object to any shape
or use pattern to fill its content
and, of course, use free drawing to create anything you like
Canvas can be serialized to JSON or SVG, and restored at any time