NANDHOO.

Canvas and SVG Graphics


HTML5 supports two major graphics approaches: canvas and SVG. They solve different problems.


<canvas>


Purpose:


  • creates a drawing surface controlled with JavaScript

Important attributes:


  • width
  • height

Example:


<canvas id="chart" width="400" height="200"></canvas>

Use canvas for:


  • simple games
  • drawing tools
  • particle effects
  • charts drawn with JavaScript

Simple Canvas Example


<canvas id="demo" width="300" height="150"></canvas>
<script>
const canvas = document.getElementById("demo");
const ctx = canvas.getContext("2d");
ctx.fillStyle = "royalblue";
ctx.fillRect(20, 20, 120, 80);
</script>

<svg>


Purpose:


  • creates vector graphics directly in markup

Important attributes:


  • width
  • height
  • viewBox

Example:


<svg width="120" height="120" viewBox="0 0 120 120">
    <circle cx="60" cy="60" r="40" fill="tomato" />
</svg>

Use SVG for:


  • icons
  • logos
  • diagrams
  • scalable illustrations

Canvas vs SVG


  • canvas is pixel-based and script-driven
  • SVG is markup-based and scalable
  • canvas is good for fast repeated drawing
  • SVG is good for crisp UI graphics and accessible shapes