Fabric.js is a powerful and simple
Javascript HTML5 canvas library

Fabric provides interactive object model on top of canvas element

Fabric also has SVG-to-canvas (and canvas-to-SVG) parser

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

Other features include

Check out demos Read introduction
Download latest version 2.0.0 beta 4 or the latest from 1.x version cdnjs V 1.7.17
Changelog of 1.x branch

Printio.ru Lab Project
Website is running on the fabric 2.0 beta version. Report bugs.