A <canvas> is a bitmap you paint with JavaScript. Unlike SVG it is immediate mode: a drawn circle is only pixels, with no element to style or click, which buys speed for big charts, image editors and games. The running example is BookNest's cover designer (Cover Designer).
What you will learn
How the context, its coordinates and its state work, and how to draw sharply on any screen.
How to draw paths, gradients, shadows, clips, composites and wrapped text.
How to process pixels, decode images off the main thread and save a canvas.
How to transform, animate and hit-test a drawing, and when to use a library.