Generate QR Code universally, in any runtime, to ANSI, Unicode or SVG. ES module , zero dependency, tree-shakable.
Install
# Using npm npm install uqr # Using yarn yarn add uqr # Using pnpm pnpm add uqr
Usage
import { encode, renderANSI, renderSVG, renderUnicode, renderUnicodeCompact, } from 'uqr' const svg = renderSVG('Hello, World!') const ansi = renderANSI('https://192.168.1.100:3000', { // Error correction level ecc: 'L', // Border width border: 2, }) // display QR Code in terminal console.log(ansi)
API
encode
Encode plain text or binary data into QR Code represented by a 2D array.
import { encode } from 'uqr' const { data, // 2D array of boolean, representing the QR Code version, // QR Code version size, // size of the QR Code } = encode(text, options)
renderANSI
Render QR Code to ANSI colored string.
import { renderANSI } from 'uqr' const string = renderANSI(text, options) console.log(string)
renderUnicode
Render QR Code to Unicode string for each pixel. By default it uses █ and ░ to represent black and white pixels, and it can be customizable.
import { renderUnicode } from 'uqr' const string = renderUnicode(text, { blackChar: '█', whiteChar: '░', // ...other options })
renderUnicodeCompact
Render QR Code with two rows into one line with unicode ▀, ▄, █, . It is useful when you want to display QR Code in terminal with limited height.
import { renderUnicodeCompact } from 'uqr' const string = renderUnicodeCompact(text, options) console.log(string)
renderSVG
Render QR Code to SVG string.
import { renderSVG } from 'uqr' const string = renderSVG(text, options)
Credits
QR Code generation algorithm is modified from nayuki/QR-Code-generator by Project Nayuki.
CLI renders are inspired by qrcode-terminal.
License
MIT License