Skip to content

A QRCode React Component ( SVG / Canvas )

License

Notifications You must be signed in to change notification settings

devmehq/react-qr-code

Repository files navigation

@devmehq/react-qr-code

Simple & Advanced React component to generate QR codes

NPM version Build Status Downloads UNPKG

Edit react-qr-code-demo

Installation

npm install @devmehq/react-qr-code
yarn install @devmehq/react-qr-code

Usage

import React from 'react';
import { ReactQrCode } from '@devmehq/react-qr-code';

<ReactQrCode value="http://facebook.github.io/react/" />
var React = require('react');
var { ReactQrCode } = require('@devmehq/react-qr-code');

<ReactQrCode value="http://facebook.github.io/react/" />

Available Props

prop type default value
value string
renderAs string ('canvas' 'svg') 'canvas'
size number 128
bgColor string (CSS color) "#FFFFFF"
fgColor string (CSS color) "#000000"
level string ('L' 'M' 'Q' 'H') 'L'
marginSize number false
images array (see below)

imageSettings

field type default value
src string
x number none, will center
y number none, will center
height number 10% of size
width number 10% of size
excavate boolean false

Custom Styles

@devmehq/react-qr-code will pass through any additional props to the underlying DOM node (<svg> or <canvas>). This allows the use of inline style or custom className to customize the rendering. One common use would be to support a responsive layout.

Note: In order to render QR Codes in <canvas> on high density displays, we scale the canvas element to contain an appropriate number of pixels and then use inline styles to scale back down. We will merge any additional styles, with custom height and width overriding our own values. This allows scaling to percentages but if scaling beyond the size, you will encounter blurry images. I recommend detecting resizes with something like react-measure to detect and pass the appropriate size when rendering to <canvas>.

qrcode-demo

TODO

  • Add Image Ref
  • Add Corner Images and Center Image
  • Add Examples to wifi password, 2fa, and other QR codes
  • ADD SSR Rendering Support
  • Add Download / Share QR Code
  • Add Test

LICENSE MIT