0.0.2 • Published 6 months ago

@svelte-bin/qr v0.0.2

Weekly downloads
-
License
-
Repository
-
Last release
6 months ago

@svelte-bin/qr

render QR as child, img or canvas, optionally with logo

Installation

npm i @svelte-bin/qr

Usage

<script>
	// @ts-ignore
	import { onMount } from 'svelte';
	// @ts-ignore
	import { qrcode } from '$lib/qrAction';

	/** @type {import('@svelte-bin/qr').Options} */
	let options = {
		data: 'Hello World',
		cornersSquareOptions: {
			type: 'extra-rounded'
		},
		qrOptions: {},
		cornersDotOptions: {
			type: 'square'
		}
	};
	let color = 'black';
	// @ts-ignore
	$: options['dotsOptions'] = {
		color
	};
</script>

<h1 class="text-center my-2">Svelte QrCode Action</h1>

<h2>Fill the value:</h2>
<div class="input-group mb-4">
	<input class="form-control" bind:value={options.data} />
	<input type="color" class="form-control-color input-group-text" bind:value={color} />
</div>

<div class="card">
    <!-- this will no work -->
	<svg use:qrcode={options} /> 

    <!-- this will work -->
	<canvas use:qrcode={options} />
	<img alt="qrcode" use:qrcode={options} />
    <!-- qrcode will  append inside div element as child element -->
	<div class="card-body mx-auto" use:qrcode={options} />
</div>

Api Documentation

the action will detect automatic element is img or canvas (we decide not use svg)

options structure

PropertyTypeDefault ValueDescription
widthnumber300Size of canvas
heightnumber300Size of canvas
typestring ('canvas' 'svg')canvasThe type of the element that will be rendered
datastringThe date will be encoded to the QR code
imagestringThe image will be copied to the center of the QR code
marginnumber0Margin around canvas
qrOptionsobjectOptions will be passed to qrcode-generator lib
imageOptionsobjectSpecific image options, details see below
dotsOptionsobjectDots styling options
cornersSquareOptionsobjectSquare in the corners styling options
cornersDotOptionsHelperobjectDots in the corners styling options
backgroundOptionsobjectQR background styling options

options.qrOptions structure

PropertyTypeDefault Value
typeNumbernumber (0 - 40)0
modestring ('Numeric' 'Alphanumeric' 'Byte' 'Kanji')
errorCorrectionLevelstring ('L' 'M' 'Q' 'H')'Q'

options.imageOptions structure

PropertyTypeDefault ValueDescription
hideBackgroundDotsbooleantrueHide all dots covered by the image
imageSizenumber0.4Coefficient of the image size. Not recommended to use ove 0.5. Lower is better
marginnumber0Margin of the image in px
crossOriginstring('anonymous' 'use-credentials')Set "anonymous" if you want to download QR code from other origins.

options.dotsOptions structure

PropertyTypeDefault ValueDescription
colorstring'#000'Color of QR dots
gradientobjectGradient of QR dots
typestring ('rounded' 'dots' 'classy' 'classy-rounded' 'square' 'extra-rounded')'square'Style of QR dots

options.backgroundOptions structure

PropertyTypeDefault Value
colorstring'#fff'
gradientobject

options.cornersSquareOptions structure

PropertyTypeDefault ValueDescription
colorstringColor of Corners Square
gradientobjectGradient of Corners Square
typestring ('dot' 'square' 'extra-rounded')Style of Corners Square

options.cornersDotOptions structure

PropertyTypeDefault ValueDescription
colorstringColor of Corners Dot
gradientobjectGradient of Corners Dot
typestring ('dot' 'square')Style of Corners Dot

Gradient structure

options.dotsOptions.gradient

options.backgroundOptions.gradient

options.cornersSquareOptions.gradient

options.cornersDotOptions.gradient

PropertyTypeDefault ValueDescription
typestring ('linear' 'radial')"linear"Type of gradient spread
rotationnumber0Rotation of gradient in radians (Math.PI === 180 degrees)
colorStopsarray of objectsGradient colors. Example [{ offset: 0, color: 'blue' }, { offset: 1, color: 'red' }]

Gradient colorStops structure

options.dotsOptions.gradient.colorStops[]

options.backgroundOptions.gradient.colorStops[]

options.cornersSquareOptions.gradient.colorStops[]

options.cornersDotOptions.gradient.colorStops[]

PropertyTypeDefault ValueDescription
offsetnumber (0 - 1)Position of color in gradient range
colorstringColor of stop in gradient range
0.0.2

6 months ago

0.0.1

6 months ago