w3resource

HTML5 Canvas : Adding Shadows

Shadows

In HTML5 canvas, you can add shadows on a shape, a line, text, or an image which can create a sense of third dimension. To add shadows with the HTML5 Canvas, you can use the following properties of the canvas context.

  • shadowOffsetX
  • shadowOffsetY
  • shadowColor
  • shadowBlur

shadowOffsetX() Property

The property is used to get or set the horizontal distance of a shadow from a shape. You can use positive or negative values to control the position of a shadow. The default value is zero.

Syntax:

ctx.shadowOffsetX = h_distance;

Where h_distance (type: number) is the horizontal distance of a shadow from a shape.

shadowOffsetY() Property

The property is used to get or set the vertical distance of a shadow from a shape. You can use positive or negative values to control the position of a shadow. The default value is zero.

Syntax:

ctx.shadowOffsetX = v_distance;

Where v_distance (type: number) is the vertical distance of a shadow from a shape.

shadowColor() Property

The property is used to get or set the color to use for shadows.

Syntax:

ctx.shadowColor

Where shadowColor (type: string) is the CSS color.

shadowBlur() Property

The property is used to get or set the current level of blur that is applied to shadows.

Syntax:

ctx.shadowBlur = blur_value

Where blur_value is the amount of blur (type: number) that is applied to shadows.

Example: HTML5 Canvas adding shadow

The following web document creates a series of squares that have different degrees of shadow blur.

Output:

html5 canvas square shadow

Code:

<!DOCTYPE html>
<html>
<head><title>HTML5 Canvas - shadow</title>
</head>
<body>
<canvas id="DemoCanvas" width="500" height="600"></canvas> 
<script>
var canvas = document.getElementById("DemoCanvas");
if (canvas.getContext) 
{
var ctx = canvas.getContext('2d');
ctx.shadowColor = "black";
ctx.shadowBlur = 6;
ctx.shadowOffsetX = 6;
ctx.shadowOffsetY = 6;
ctx.shadowColor = "orange";
ctx.strokeRect(25, 25, 200, 200);
ctx.shadowColor = "green";
ctx.strokeRect(50, 50, 200, 200);
ctx.shadowColor = "blue";
ctx.strokeRect(75, 75, 200, 200);
ctx.shadowColor = "red";
ctx.strokeRect(100, 100, 200, 200);
}
</script>
</body> 
</html>

Here is an another example :

Output:

HTML5 canvas shadow rectangle

Code:

<!DOCTYPE html>
<html>
<head><title>HTML5 Canvas - shadow</title>
</head>
<body>
<canvas id="DemoCanvas" width="500" height="600"></canvas> 
<script>
var canvas = document.getElementById("DemoCanvas");
if (canvas.getContext) 
{
 var ctx = canvas.getContext('2d');
 ctx.rect(100, 40, 200, 100);
 ctx.fillStyle = 'green';
 ctx.shadowColor = '#898';
 ctx.shadowBlur = 20;
 ctx.shadowOffsetX = 20;
 ctx.shadowOffsetY = 20;
 ctx.fill();
}
</script>
</body> 
</html>

Example : HTML5 Canvas adding shadow on Text

The following web document creates shadow on text.

Output:

HTML5 canvas shadow on text

Code :

<!DOCTYPE html>
<html>
<head><title>HTML5 Canvas - shadow</title>
</head>
<body>
<canvas id="DemoCanvas" width="500" height="600"></canvas> 
<script>
var canvas = document.getElementById("DemoCanvas");
if (canvas.getContext) 
{
 var ctx = canvas.getContext('2d');
 ctx.fillStyle = 'green';
 ctx.shadowColor = '#898';
 ctx.shadowBlur = 20;
 ctx.shadowOffsetX = 20;
 ctx.shadowOffsetY = 20;
 //ctx.fill();
 ctx.font = 'italic 32px sans-serif';
 ctx.fillText('HTML5 Canvas Tutorial', 10, 50);  
  
 ctx.fillStyle = 'red';
 ctx.shadowColor = '#998';
 ctx.shadowBlur = 1;
 ctx.shadowOffsetX = 9;
 ctx.shadowOffsetY = 7;
 //ctx.fill();
 ctx.font = 'italic 32px sans-serif';
 ctx.fillText('HTML5 Canvas Tutorial', 10, 150);    
}
</script>
</body> 
</html>

Code Editor:

See the Pen html css common editor by w3resource (@w3resource) on CodePen.

Previous: HTML5 Canvas Text
Next: HTML5 Canvas translation, scaling and rotation tutorial



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://www.w3resource.com/html5-canvas/html5-canvas-shadow.php