Generate QR Code universally, in any runtime, to ANSI, Unicode or SVG. ES module , zero dependency, tree-shakable.
# Using npm
npm install uqr
# Using yarn
yarn add uqr
# Using pnpm
pnpm add uqr
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)
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)
Render QR Code to ANSI colored string.
import { renderANSI } from 'uqr'
const string = renderANSI(text, options)
console.log(string)
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
})
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)
Render QR Code to SVG string.
import { renderSVG } from 'uqr'
const string = renderSVG(text, options)
QR Code generation algorithm is modified from nayuki/QR-Code-generator by Project Nayuki.
CLI renders are inspired by qrcode-terminal.
MIT License