GitPedia

Qr code

Web Component for generating QR codes

From educastellano·Updated May 11, 2026·View on GitHub·

Web Component for generating QR Codes, using (a [fork](https://github.com/educastellano/qr.js) of) [qr.js](https://github.com/lifthrasiir/qr.js) lib. The project is written primarily in JavaScript, distributed under the MIT License license, first published in 2013. Key topics include: customelements, html, javascript, qr, qr-code.

Published on webcomponents.org

<qr-code>

Web Component for generating QR Codes, using (a fork of) qr.js lib.

Demo

Check it live.

Install

sh
npm install webcomponent-qr-code

Usage

js
import 'webcomponent-qr-code'
<!-- ``` <custom-element-demo> <template> <script src="demo/webcomponents-lite.js"></script> <script src="index.js"></script> <next-code-block></next-code-block> </template> </custom-element-demo> ``` -->
html
<qr-code data="hello world!"></qr-code>

Custom element name

js
import QRCode from 'webcomponent-qr-code/qr-code' customElements.define('myapp-qrcode', QRCode)
html
<myapp-qrcode data="hello world!"></myapp-qrcode>

Custom styles

Use the part pseudo-element to style shadow DOM elements:

css
/* format="png" */ qr-code::part(img) {} /* format="html" */ qr-code::part(table) {} /* format="svg" */ qr-code::part(svg) {}

Options

AttributeTypeDefaultDescription
datastringnullThe information encoded by the QR code.
formatstring: png, html, svgpngFormat of the QR code rendered inside the component.
modulesizeint5Size of the modules in pixels.
marginint4Margin of the QR code in modules.
unitstringpxCSS units of the modulesize (Supported for HTML generation only)
ratioint1Multiplier for the modulesize. Example: if units is rem and the ratio is 0.0625, a modulesize of 5px will be translated to 0.3125rem. (Supported for HTML generation only)
ecclevelstring: L, M, Q, H,LError correction level

Contributing

  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

Changelog

  • v1.3.0 January 9, 2025
    • Support to configure error correction level (ECC).
  • v1.2.0 July 12, 2023
    • Support for any CSS unit in HTML generated codes.
  • v1.1.0 November 15, 2022
    • Support for custom styles with the ::part CSS pseudo-element
  • v1.0.0 July 13, 2018
    • Use new API customElements.define
    • Support for a custom element name
    • Keep support for document.register() in /qr-code.es5.js
  • v0.1.9 December 9, 2016
    • Updated docs
  • v0.1.7 April 11, 2015
    • Support for SVG
  • v0.1.6 April 10, 2015
    • Default attributes
    • qr.js removed and used as a dependency
    • Available in NPM
  • v0.1.1 March 31, 2015
    • Framework-agnostic webcomponent (no use of Polymer)
    • Available in Bower
  • v0.0.1 September 18, 2013

License

MIT License

Contributors

Showing top 4 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from educastellano/qr-code via the GitHub API.Last fetched: 6/15/2026