Shadow - Fabric.js

HTML

<canvas id="c" width="400" height="400"></canvas>

JavaScript

var canvas = new fabric.Canvas('c' );

	var origWidth = 40;
	var origHeight = 100;
	var origStrokeWidth = 3;

	var rect = new fabric.Rect({ 
		top: 30,
		left: 30,
		width: origWidth,
		height: origHeight,
		fill: 'rgba(255,255,255,0)',
		strokeWidth: origStrokeWidth,
		stroke: '#000000' 
	});
	canvas.add(rect);
	


	canvas.on('object:scaling', onObjectScaled);

	function onObjectScaled(e) {
		var obj = e.target;
		
		var factorHeight = origHeight / obj.getHeight();
		var factorWidth = origWidth / obj.getWidth();
		var factor;
		if (factorHeight < factorWidth)
		    factor = factorHeight;
		else
		    factor = factorWidth;
		var newStrokeWidth = origStrokeWidth * factor;
		
		obj.setStrokeWidth(newStrokeWidth);
		canvas.renderAll();
	}