QR Code
<sl-qr-code> | SlQrCode
Generates a QR code and renders it using the Canvas API.
QR codes are useful for providing small pieces of information to users who can quickly scan them with a smartphone. Most smartphones have built-in QR code scanners, so simply pointing the camera at a QR code will decode it and allow the user to visit a website, dial a phone number, read a message, etc.
<div class="qr-overview"> <sl-qr-code value="https://shoelace.style/" label="Scan this code to visit Shoelace on the web!"></sl-qr-code> <br /> <sl-input maxlength="255" clearable label="Value"></sl-input> </div> <script> const container = document.querySelector('.qr-overview'); const qrCode = container.querySelector('sl-qr-code'); const input = container.querySelector('sl-input'); customElements.whenDefined('sl-qr-code').then(() => { input.value = qrCode.value; input.addEventListener('sl-input', () => (qrCode.value = input.value)); }); </script> <style> .qr-overview { max-width: 256px; } .qr-overview sl-input { margin-top: 1rem; } </style>
Examples
Colors
Use the fill
and background
attributes to modify the QR code’s colors. You should
always ensure good contrast for optimal compatibility with QR code scanners.
<sl-qr-code value="https://shoelace.style/" fill="deeppink" background="white"></sl-qr-code>
Size
Use the size
attribute to change the size of the QR code.
<sl-qr-code value="https://shoelace.style/" size="64"></sl-qr-code>
Radius
Create a rounded effect with the radius
attribute.
<sl-qr-code value="https://shoelace.style/" radius="0.5"></sl-qr-code>
Error Correction
QR codes can be rendered with various levels of
error correction
that can be set using the error-correction
attribute. This example generates four codes with
the same value using different error correction levels.
<div class="qr-error-correction"> <sl-qr-code value="https://shoelace.style/" error-correction="L"></sl-qr-code> <sl-qr-code value="https://shoelace.style/" error-correction="M"></sl-qr-code> <sl-qr-code value="https://shoelace.style/" error-correction="Q"></sl-qr-code> <sl-qr-code value="https://shoelace.style/" error-correction="H"></sl-qr-code> </div> <style> .qr-error-correction { display: flex; flex-wrap: wrap; gap: 1rem; } </style>
Properties
Name | Description | Reflects | Type | Default |
---|---|---|---|---|
value
|
The QR code’s value. |
string
|
''
|
|
label
|
The label for assistive devices to announce. If unspecified, the value will be used instead. |
string
|
''
|
|
size
|
The size of the QR code, in pixels. |
number
|
128
|
|
fill
|
The fill color. This can be any valid CSS color, but not a CSS custom property. |
string
|
'black'
|
|
background
|
The background color. This can be any valid CSS color or transparent . It cannot be a
CSS custom property.
|
string
|
'white'
|
|
radius
|
The edge radius of each module. Must be between 0 and 0.5. |
number
|
0
|
|
errorCorrection
error-correction
|
The level of error correction to use. Learn more |
'L' | 'M' | 'Q' | 'H'
|
'H'
|
|
updateComplete |
A read-only promise that resolves when the component has finished updating. |
Learn more about attributes and properties.
Parts
Name | Description |
---|---|
base |
The component’s base wrapper. |
Learn more about customizing CSS parts.