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


3.0.2 • Public • Published

Published on Vaadin  Directory Stars on vaadin.com/directory Published on webcomponents.org


A custom element to decode a QR Code from an image, using a modified version of Lazersoft's jsqrcode library, to allow jsqrcode to deal with ShadowDOM

Built on lit-element following the open-wc recommendation.

The old Polymer 2.x-1.x version is available on the polymer-hybrid branch.


npm i granite-qrcode-decoder


The element can decode several sources of images:

  • A dataURL, by using the dataUrl property
  • An app-media-image-capture, by injecting it to the blob property
  • A canvas, by calling the decodeCanvas method passing the canvas as parameter
<script type="module">
  import 'granite-qrcode-decoder/granite-qrcode-decoder.js';

Linting with ESLint, Prettier, and Types

To scan the project for linting errors, run

npm run lint

You can lint with ESLint and Prettier individually as well

npm run lint:eslint
npm run lint:prettier

To automatically fix many linting errors, run

npm run format

You can format using ESLint and Prettier individually as well

npm run format:eslint
npm run format:prettier

Testing with Karma

To run the suite of karma tests, run

npm run test

To run the tests in watch mode (for TDD, for example), run

npm run test:watch

Demoing with Storybook

To run a local instance of Storybook for your component, run

npm run storybook

To build a production version of Storybook, run

npm run storybook:build

Tooling configs

For most of the tools, the configuration is in the package.json to reduce the amount of files in your project.

If you customize the configuration a lot, you can consider moving them to individual files. \

Local Demo with es-dev-server

npm start

To run a local development server that serves the basic demo located in demo/index.html


  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -m 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D


MIT License


npm i @granite-elements/granite-qrcode-decoder

DownloadsWeekly Downloads






Unpacked Size

23 kB

Total Files


Last publish


  • avatar