• Stars
    star
    3,484
  • Rank 12,780 (Top 0.3 %)
  • Language
    TypeScript
  • License
    Other
  • Created over 10 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A <QRCode/> component for use with React.

qrcode.react

A React component to generate QR codes for rendering to the DOM.

Installation

npm install qrcode.react

Usage

qrcode.react exports three components, supporting rendering as SVG or Canvas. SVG is generally recommended as it is more flexible, but Canvas may be preferable.

All examples are shown using modern JavaScript modules and syntax. CommonJS require('qrcode.react') is also supported.

QRCodeSVG

import ReactDOM from 'react-dom';
import {QRCodeSVG} from 'qrcode.react';

ReactDOM.render(
  <QRCodeSVG value="https://reactjs.org/" />,
  document.getElementById('mountNode')
);

QRCodeCanvas

import ReactDOM from 'react-dom';
import {QRCodeCanvas} from 'qrcode.react';

ReactDOM.render(
  <QRCodeCanvas value="https://reactjs.org/" />,
  document.getElementById('mountNode')
);

QRCode - DEPRECATED

Note: Usage of this is deprecated as of v3. It is available as the default export for compatiblity with previous versions. The renderAs prop is only supported with this component.

import ReactDOM from 'react-dom';
import QRCode from 'qrcode.react';

ReactDOM.render(
  <QRCode value="https://reactjs.org/" renderAs="canvas" />,
  document.getElementById('mountNode')
);

Available Props

prop type default value note
value string
renderAs string ('canvas' 'svg') 'canvas'
size number 128
bgColor string "#FFFFFF" CSS color
fgColor string "#000000" CSS color
level string ('L' 'M' 'Q' 'H') 'L'
includeMargin boolean false DEPRECATED. This is being remvoed in favor of marginSize
marginSize number 0 Specifies the number of modules to use for margin around the symbol. The QR Code specification requires 4, however you may use other values. Values will be turned to integers with Math.floor. Overrides includeMargin default value when specified
imageSettings object See below

imageSettings

field type default value note
src string
x number none Will attempt to center if not specified
y number none Will attempt to center if not specified
height number 10% of size
width number 10% of size
excavate boolean false

Custom Styles

qrcode.react 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>.

Encoding Mode

qrcode.react supports encoding text only, in a single segment. The encoding library being used does minimal detection to determine if the text being encoded can follow an optimized path for Numeric or Alphanumeric modes, allowing for more data to be encoded. Otherwise, it will encode following Byte mode. This mode includes supports multi-byte Unicode characters such as Kanji, however it does not support the optimized Kanji encoding mode.

LICENSE

qrcode.react is licensed under the ISC license.

qrcode.react bundles QR Code Generator, which is available under the MIT license.

More Repositories

1

building-react-from-scratch

Code for my React Rally talk.
JavaScript
374
star
2

hypertheme

Theme manager plugin for hyperterm
JavaScript
44
star
3

powerball

Become a billionaire in seconds!
JavaScript
35
star
4

alwaysAsk

A Firefox extension to make sure you get a prompt when quitting Firefox.
JavaScript
8
star
5

zpao.com

my website, using gatsby, but not hosted on github
CSS
8
star
6

hexo-renderer-react

React renderer for Hexo
JavaScript
7
star
7

addon-compatability-reporter

Git clone of http://viewvc.svn.mozilla.org/vc/addons/trunk/compatibility/
JavaScript
4
star
8

switchToTabBlacklist

A Firefox extension that allows you to blacklist pages from Firefox 4's switch-to-tab feature.
JavaScript
4
star
9

mozilla-hubot-scripts

CoffeeScript
4
star
10

treestatusbuilder

JavaScript
2
star
11

mozilla-scripts

a collection of scripts for the Firefox error console & ScratchPad
JavaScript
2
star
12

zarzpao.com

The wedding website, made with Jekyll
JavaScript
2
star
13

blarg

Blarg is my original attempt at a Ruby on Rails blogging app. It powered my website for a few years.
Ruby
2
star
14

jsonpp

A super simple npm module to pretty print JSON how I do.
JavaScript
2
star
15

trim-for-jetpack

A simple Jetpack feature adding the ability to use tr.im to shorten URLs & copy to your clipboard.
JavaScript
2
star
16

tumblr-themes

to backup the sassy css
2
star
17

resetSession

JavaScript
1
star
18

actions-test

Shell
1
star
19

you-complete-me

A script to help complete your Rdio collection
JavaScript
1
star
20

NOFS

A Firefox add-on to disable support for native Full Screen mode in OS X Lion+
1
star
21

sf04

website for Spring-Ford class of '04
PHP
1
star
22

notAMasterPassword

A Firefox extension to create a "master password" which doesn't actually encrypt your passwords, but adds a prompt when opening the "saved passwords" window.
JavaScript
1
star
23

adventofcode2018

HTML
1
star
24

js-request-experiment

Testing a how a few different JS libraries handle making requests.
JavaScript
1
star
25

ColourClockCSS

1
star
26

react-bundling-example

JavaScript
1
star
27

getbacktowork

To which I redirect my procrastination tools.
1
star