Sobre o projeto

Signature Pad é uma biblioteca JavaScript para desenhar assinaturas suaves no navegador. Ela é baseada no elemento canvas do HTML5 e usa interpolação de curvas de Bézier de largura variável, uma abordagem descrita no artigo "Smoother Signatures" da Square. A biblioteca não possui dependências externas e tem como objetivo funcionar em navegadores modernos de desktop e móveis. A instalação está disponível via npm (`npm install --save signature_pad`) ou Yarn, e também pode ser carregada diretamente com uma tag script a partir de um CDN. Ela é distribuída tanto em builds UMD quanto em módulos ES6. API principal: após criar uma instância de `SignaturePad` em um elemento canvas, você pode exportar o desenho com `toDataURL()` como PNG, JPEG (com qualidade opcional) ou data URL SVG, ou obter a marcação SVG bruta com `toSVG()`. As assinaturas podem ser carregadas de volta com `fromDataURL()`, ou representadas como um array de grupos de pontos via `toData()` e restauradas com `fromData()`. Outros métodos incluem `redraw()`, `clear()`, `isEmpty()`, `off()` e `on()` para desvincular e revincular manipuladores de eventos. As opções incluem `dotSize`, `minWidth`, `maxWidth`, `throttle`, `minDistance`, `backgroundColor`, `penColor`, `velocityFilterWeight` e `canvasContextOptions`. Elas podem ser definidas na inicialização ou alteradas em tempo de execução. Os eventos incluem `beginStroke` (cancelável), `endStroke`, `beforeUpdateStroke` e `afterUpdateStroke`, registrados por meio de `addEventListener`. O README também documenta tópicos práticos: lidar com telas de alta densidade (high-DPI) dimensionando o canvas com `devicePixelRatio`, lidar com a limpeza do canvas iniciada pelo navegador ao redimensionar, decodificar imagens de data URI no lado do servidor (com exemplos em Ruby, PHP e C#), aparar o espaço vazio ao redor de uma assinatura e desenhar sobre uma imagem existente. O projeto é lançado sob a Licença MIT.