console
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
canvas.width = 600;
canvas.height = 600;
var color = "#42b983";
var size = 100;
var depth = 20;
var angle = Math.PI / 6;
var offsetX = Math.cos(angle) * depth;
var offsetY = Math.sin(angle) * depth;
ctx.fillStyle = color;
ctx.beginPath();
ctx.moveTo(150, 50);
ctx.lineTo(250, 150);
ctx.lineTo(150, 250);
ctx.lineTo(50, 150);
ctx.closePath();
ctx.fill();
ctx.fillStyle = shadeColor(color, -20);
ctx.beginPath();
ctx.moveTo(250, 150);
ctx.lineTo(250 + offsetX, 150 - offsetY);
ctx.lineTo(150 + offsetX, 250 - offsetY);
ctx.lineTo(150, 250);
ctx.closePath();
ctx.fill();
ctx.fillStyle = shadeColor(color, -40);
ctx.beginPath();
ctx.moveTo(150, 250);
ctx.lineTo(150 + offsetX, 250 - offsetY);
ctx.lineTo(50 + offsetX, 150 - offsetY);
ctx.lineTo(50, 150);
ctx.closePath();
ctx.fill();
function shadeColor(color, percent) {
var R = parseInt(color.substring(1,3),16);
var G = parseInt(color.substring(3,5),16);
var B = parseInt(color.substring(5,7),16);
R = parseInt(R * (100 + percent) / 100);
G = parseInt(G * (100 + percent) / 100);
B = parseInt(B * (100 + percent) / 100);
R = (R<255)?R:255;
G = (G<255)?G:255;
B = (B<255)?B:255;
var RR = ((R.toString(16).length==1)?"0"+R.toString(16):R.toString(16));
var GG = ((G.toString(16).length==1)?"0"+G.toString(16):G.toString(16));
var BB = ((B.toString(16).length==1)?"0"+B.toString(16):B.toString(16));
return "#"+RR+GG+BB;
}
<canvas id="canvas" width="600" height="600" style="width:600px; height:600px;"></canvas>