Wondering what’s next for npm?Check out our public roadmap! »

    TypeScript icon, indicating that this package has built-in type declarations

    9.0.0 • Public • Published


    angularx-qrcode is a fast and easy-to-use Ionic 3 and Angular4-9 QR Code component/module library to generate QR Codes (Quick Response) in your Ionic and Angular 4/5/6/7/8/9 app with support for AOT. It is a drop-in replacement for the no-longer-maintained angular2 component ng2-qrcode and based on node-qrcode.

    Demo App

    An Angular app with a working implementation of angularx-qrcode is available on github.com/Cordobo/angularx-qrcode-sample-app.

    Install angularx-qrcode 2.x with Angular 6/7/8/9

    # Angular 6/7/8/9 and Ionic
    npm install angularx-qrcode --save
    # Or use yarn
    yarn add angularx-qrcode

    Older Angular Versions

    # Angular 5
    npm install angularx-qrcode@1.6.4 --save
    # Angular 4
    npm install angularx-qrcode@1.0.3 --save

    New in angularx-qrcode 2.x

    angularx-qrcode is now based on node-qrcode and as a result ships a couple of new features (keeping all the known features)

    • Add your CSS class with cssClass
    • New elementType field: url, img and canvas
    • New margin field. Define how much wide the quiet zone should be.
    • New scale, scale factor. A value of 1 means 1px per modules (black dots).
    • New version field. QR Code version. If not specified the more suitable value will be calculated.

    Upgrade from 1.x to 2.x

    Upgrading should be simple. If any field you use, angularx-qrcode logs warnings to your browser console, telling you which fields should be renamed.

    Old code in 1.x

    <qrcode [qrdata]="'Your data'" [size]="256" [level]="'M'"></qrcode>

    New code in 2.x

    <qrcode [qrdata]="'Your data'" [width]="256" [errorCorrectionLevel]="'M'"></qrcode>
    Deprecated New
    colordark colorDark
    colorlight colorLight
    level errorCorrectionLevel
    size width
    usesvg elementType

    Basic Usage

    Import the module and add it to your imports section in your main AppModule:

    // File: app.module.ts
    // all your imports
    import { QRCodeModule } from 'angularx-qrcode';
    declarations: [
    imports: [
    providers: [],
    bootstrap: [AppComponent]
    export class AppModule { }

    Examples: How to implement angularx-qrcode

    Generate a QR Code from a string (directive only)

    Now that Angular/Ionic knows about the new QR Code module, let's invoke it from our template with a directive. If we use a simple text-string, we need no additional code in our controller.

    <qrcode [qrdata]="'Your data string'" [width]="256" [errorCorrectionLevel]="'M'"></qrcode>

    Create a QR Code from a variable in your controller

    In addition to our <qrcode>-directive in example.html, lets add two lines of code to our controller example.ts.

    // File: example.ts
    export class QRCodeComponent {
      public myAngularxQrCode: string = null;
      constructor () {
        // assign a value
        this.myAngularxQrCode = 'Your QR code data string';
    // File: example.html
    <qrcode [qrdata]="myAngularxQrCode" [width]="256" [errorCorrectionLevel]="'M'"></qrcode>


    Attribute Type Default Description
    allowEmptyString Boolean false Allow empty string
    colorDark String '#000000ff' RGBA color, color of dark module
    colorLight String '#ffffffff' RGBA color, color of light module
    cssClass String 'qrcode' CSS Class
    elementType String 'canvas' 'url', 'img' or 'canvas'
    errorCorrectionLevel String 'M' QR Correction level ('L', 'M', 'Q', 'H')
    margin Number 4 Define how much wide the quiet zone should be.
    qrdata String '' String to encode
    scale Number 4 Scale factor. A value of 1 means 1px per modules (black dots).
    version Number (auto) 1-40
    width Number 10 Height/Width (any value)
    Deprecated New value
    colordark String '#000000' colorDark
    colorlight String '#ffffff' colorLight
    level String 'M' errorCorrectionLevel
    size Number 256 width
    usesvg Boolean false elementType


    Depending on the amount of data of the qrdata to encode, a minimum width is required.

    AOT - Ahead Of Time Compilation

    angularx-qrcode supports AOT Compilation (Ahead-of-Time Compilation) which results in significant faster rendering. An AOT-enabled module is included. Further reading: https://angular.io/guide/aot-compiler

    SSR - Server Side Rendering

    As of version 1.6.0, SSR support is fully implemented, the following workaround is no longer needed. HowTo use Angular QRCode with SSR

    Available commands

    # Build
    npm run build


    • Please open your PR against the development branch.
    • Make sure your editor uses the packages .editorconfig file to minimioze commited code changes.
    • Use npm run lint before you commit


    MIT License

    Copyright (c) 2018 - present Andreas Jacob (Cordobo.com)


    npm i @moukail/angular-qrcode

    DownloadsWeekly Downloads






    Unpacked Size

    197 kB

    Total Files


    Last publish


    • avatar