
In today’s web applications, digital signatures are becoming a standard requirement — whether you’re building a delivery app, a contract approval system, or a form submission workflow. One of the easiest ways to capture a user’s signature in Angular is by using ngx-signature-pad
, a handy wrapper around the popular signature_pad
library.
In this quick guide, I’ll walk you through integrating ngx-signature-pad
step by step.
✅ Prerequisites
Before getting started, make sure you have:
- Node.js & npm installed
- Angular CLI set up
- An existing Angular project (or create one using
ng new
)
Step 1: Install the Library
Run this command inside your Angular project:
npm install ngx-signature-pad --save
This installs the wrapper that helps us use signature_pad
easily in Angular components.
Step 2: Import the Module
Next, open your main module file and add the NgxSignaturePadModule
to your imports:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { NgxSignaturePadModule } from 'ngx-signature-pad';
@NgModule({
declarations: [AppComponent],
imports: [
BrowserModule,
NgxSignaturePadModule
],
bootstrap: [AppComponent]
})
export class AppModule {}
Step 3: Set Up the Component
Let’s update the component where you want the signature pad to appear:
import { Component, ViewChild } from '@angular/core';
import { SignaturePad } from 'ngx-signature-pad';
@Component({
selector: 'app-signature',
templateUrl: './signature.component.html',
styleUrls: ['./signature.component.css']
})
export class SignatureComponent {
@ViewChild('signaturePad') signaturePad!: SignaturePad;
signaturePadOptions: object = {
minWidth: 1,
canvasWidth: 400,
canvasHeight: 200
};
drawStart() {
console.log('Started drawing');
}
drawComplete() {
console.log('Drawing complete');
}
clearSign(): void {
this.signaturePad.clear();
}
}
Step 4: Create the HTML Template
Now add the signature pad to your component template:
<div class="sign-field-container">
<label>Signature</label>
<div class="sign-pad">
<span class="sign-place">X</span>
<input type="button" class="sign-clear-btn" value="Clear" (click)="clearSign()" />
<signature-pad
class="d-block"
[options]="signaturePadOptions"
#signaturePad
(onBeginEvent)="drawStart()"
(onEndEvent)="drawComplete()"
></signature-pad>
</div>
</div>
Step 5: Style the Signature Pad
Feel free to adjust the CSS, but here’s a simple example to start:
.sign-pad {
border: 2px solid #000;
padding: 10px;
width: 420px;
background-color: #fff;
position: relative;
}
.sign-clear-btn {
margin-top: 10px;
background-color: red;
color: white;
border: none;
padding: 5px 10px;
cursor: pointer;
}
.sign-place {
position: absolute;
top: 10px;
left: 10px;
font-weight: bold;
}
Step 6: Run and Test 🚀
Launch your app using:
ng serve
Visit http://localhost:4200/
— you should now see a fully functional signature pad where users can draw and clear their signature.
✅ Final Thoughts
That’s it! You’ve successfully integrated a digital signature pad into your Angular project using ngx-signature-pad
. This can be a great addition to any form or user workflow where approvals, confirmations, or signatures are needed.
💡 Want to save the signature as an image and upload it to your backend? Let me know — I can show you how to convert the signature to a base64 image and send it via HTTP.
Happy coding! 🙌