Handle high DPI screens
masterTo prevent blurry signatures on high-resolution (Retina) screens, you must scale the canvas based on devicePixelRatio. This ensures the drawing surface matches the physical pixel density.
function resizeCanvas() {
const ratio = Math.max(window.devicePixelRatio || 1, 1);
canvas.width = canvas.offsetWidth * ratio;
canvas.height = canvas.offsetHeight * ratio;
canvas.getContext("2d").scale(ratio, ratio);
signaturePad.clear(); // otherwise isEmpty() might return incorrect value
}
window.addEventListener("resize", resizeCanvas);
resizeCanvas();