@qr-platform/qr-code.js 0.8.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/publish.yml +18 -0
- package/CHANGELOG.md +233 -0
- package/LICENSE.md +77 -0
- package/README.md +188 -0
- package/docs/advanced-examples.md +523 -0
- package/docs/api-reference-guide.md +254 -0
- package/docs/documentation.md +1592 -0
- package/docs/examples.md +322 -0
- package/docs/license-management.md +501 -0
- package/docs/typescript-types-definitions.md +372 -0
- package/docs/usage-guide.md +622 -0
- package/lib/core/qr-code-js.d.ts +48 -0
- package/lib/core/qr-constant.d.ts +9 -0
- package/lib/core/qr-options-validation.d.ts +13 -0
- package/lib/core/qr-svg.d.ts +76 -0
- package/lib/core/qr-templates.d.ts +6 -0
- package/lib/figures/corner-dot.d.ts +24 -0
- package/lib/figures/corner-square.d.ts +24 -0
- package/lib/figures/dot.d.ts +31 -0
- package/lib/index.d.ts +52 -0
- package/lib/lib/image/GIFImage.d.ts +19 -0
- package/lib/lib/io/Base64.d.ts +10 -0
- package/lib/lib/io/Base64DecodeInputStream.d.ts +15 -0
- package/lib/lib/io/Base64EncodeOutputStream.d.ts +17 -0
- package/lib/lib/io/ByteArrayInputStream.d.ts +12 -0
- package/lib/lib/io/ByteArrayOutputStream.d.ts +12 -0
- package/lib/lib/io/InputStream.d.ts +10 -0
- package/lib/lib/io/OutputStream.d.ts +12 -0
- package/lib/lib/qr-code.d.ts +5 -0
- package/lib/lib/qrcode/BitBuffer.d.ts +11 -0
- package/lib/lib/qrcode/ErrorCorrectLevel.d.ts +23 -0
- package/lib/lib/qrcode/MaskPattern.d.ts +39 -0
- package/lib/lib/qrcode/Mode.d.ts +23 -0
- package/lib/lib/qrcode/Polynomial.d.ts +15 -0
- package/lib/lib/qrcode/QR8BitByte.d.ts +13 -0
- package/lib/lib/qrcode/QRAlphaNum.d.ts +13 -0
- package/lib/lib/qrcode/QRCode.d.ts +22 -0
- package/lib/lib/qrcode/QRCodeMinimal.d.ts +58 -0
- package/lib/lib/qrcode/QRData.d.ts +17 -0
- package/lib/lib/qrcode/QRKanji.d.ts +13 -0
- package/lib/lib/qrcode/QRMath.d.ts +13 -0
- package/lib/lib/qrcode/QRNumber.d.ts +14 -0
- package/lib/lib/qrcode/QRUtil.d.ts +25 -0
- package/lib/lib/qrcode/RSBlock.d.ts +16 -0
- package/lib/lib/text/createStringToBytes.d.ts +9 -0
- package/lib/lib/text/stringToBytes_SJIS.d.ts +8 -0
- package/lib/lib/text/stringToBytes_UTF8.d.ts +7 -0
- package/lib/lib/zbar-wasm/index.d.ts +1 -0
- package/lib/lib/zxing-js/src/browser/BrowserCodeReader.d.ts +410 -0
- package/lib/lib/zxing-js/src/browser/BrowserQRCodeReader.d.ts +29 -0
- package/lib/lib/zxing-js/src/browser/BrowserQRCodeSvgWriter.d.ts +46 -0
- package/lib/lib/zxing-js/src/browser/BrowserSvgCodeWriter.d.ts +49 -0
- package/lib/lib/zxing-js/src/browser/DecodeContinuouslyCallback.d.ts +6 -0
- package/lib/lib/zxing-js/src/browser/HTMLCanvasElementLuminanceSource.d.ts +27 -0
- package/lib/lib/zxing-js/src/browser/HTMLVisualMediaElement.d.ts +4 -0
- package/lib/lib/zxing-js/src/browser/VideoInputDevice.d.ts +22 -0
- package/lib/lib/zxing-js/src/browser.d.ts +3 -0
- package/lib/lib/zxing-js/src/core/ArgumentException.d.ts +7 -0
- package/lib/lib/zxing-js/src/core/ArithmeticException.d.ts +7 -0
- package/lib/lib/zxing-js/src/core/ArrayIndexOutOfBoundsException.d.ts +10 -0
- package/lib/lib/zxing-js/src/core/BarcodeFormat.d.ts +42 -0
- package/lib/lib/zxing-js/src/core/Binarizer.d.ts +53 -0
- package/lib/lib/zxing-js/src/core/BinaryBitmap.d.ts +78 -0
- package/lib/lib/zxing-js/src/core/ChecksumException.d.ts +8 -0
- package/lib/lib/zxing-js/src/core/DecodeHintType.d.ts +91 -0
- package/lib/lib/zxing-js/src/core/Dimension.d.ts +13 -0
- package/lib/lib/zxing-js/src/core/EncodeHintType.d.ts +99 -0
- package/lib/lib/zxing-js/src/core/Exception.d.ts +17 -0
- package/lib/lib/zxing-js/src/core/FormatException.d.ts +8 -0
- package/lib/lib/zxing-js/src/core/HighContrastLuminanceSource.d.ts +27 -0
- package/lib/lib/zxing-js/src/core/IllegalArgumentException.d.ts +7 -0
- package/lib/lib/zxing-js/src/core/IllegalStateException.d.ts +7 -0
- package/lib/lib/zxing-js/src/core/IndexOutOfBoundsException.d.ts +7 -0
- package/lib/lib/zxing-js/src/core/InvertedLuminanceSource.d.ts +22 -0
- package/lib/lib/zxing-js/src/core/LuminanceSource.d.ts +84 -0
- package/lib/lib/zxing-js/src/core/NodeLuminanceSource.d.ts +36 -0
- package/lib/lib/zxing-js/src/core/NotFoundException.d.ts +8 -0
- package/lib/lib/zxing-js/src/core/NullPointerException.d.ts +7 -0
- package/lib/lib/zxing-js/src/core/OutOfMemoryError.d.ts +6 -0
- package/lib/lib/zxing-js/src/core/PlanarYUVLuminanceSource.d.ts +35 -0
- package/lib/lib/zxing-js/src/core/RGBLuminanceSource.d.ts +21 -0
- package/lib/lib/zxing-js/src/core/Reader.d.ts +49 -0
- package/lib/lib/zxing-js/src/core/ReaderException.d.ts +7 -0
- package/lib/lib/zxing-js/src/core/ReedSolomonException.d.ts +7 -0
- package/lib/lib/zxing-js/src/core/Result.d.ts +52 -0
- package/lib/lib/zxing-js/src/core/ResultMetadataType.d.ts +68 -0
- package/lib/lib/zxing-js/src/core/ResultPoint.d.ts +34 -0
- package/lib/lib/zxing-js/src/core/ResultPointCallback.d.ts +11 -0
- package/lib/lib/zxing-js/src/core/UniversalLuminanceSource.d.ts +46 -0
- package/lib/lib/zxing-js/src/core/UnsupportedOperationException.d.ts +7 -0
- package/lib/lib/zxing-js/src/core/Writer.d.ts +30 -0
- package/lib/lib/zxing-js/src/core/WriterException.d.ts +7 -0
- package/lib/lib/zxing-js/src/core/common/BitArray.d.ts +111 -0
- package/lib/lib/zxing-js/src/core/common/BitMatrix.d.ts +98 -0
- package/lib/lib/zxing-js/src/core/common/BitSource.d.ts +38 -0
- package/lib/lib/zxing-js/src/core/common/CharacterSetECI.d.ts +89 -0
- package/lib/lib/zxing-js/src/core/common/DecoderResult.d.ts +64 -0
- package/lib/lib/zxing-js/src/core/common/DefaultGridSampler.d.ts +10 -0
- package/lib/lib/zxing-js/src/core/common/DetectorResult.d.ts +16 -0
- package/lib/lib/zxing-js/src/core/common/ECIEncoderSet.d.ts +37 -0
- package/lib/lib/zxing-js/src/core/common/ECIInput.d.ts +79 -0
- package/lib/lib/zxing-js/src/core/common/GlobalHistogramBinarizer.d.ts +29 -0
- package/lib/lib/zxing-js/src/core/common/GridSampler.d.ts +36 -0
- package/lib/lib/zxing-js/src/core/common/GridSamplerInstance.d.ts +18 -0
- package/lib/lib/zxing-js/src/core/common/HybridBinarizer.d.ts +54 -0
- package/lib/lib/zxing-js/src/core/common/MinimalECIInput.d.ts +123 -0
- package/lib/lib/zxing-js/src/core/common/PerspectiveTransform.d.ts +26 -0
- package/lib/lib/zxing-js/src/core/common/StringUtils.d.ts +48 -0
- package/lib/lib/zxing-js/src/core/common/detector/CornerDetector.d.ts +35 -0
- package/lib/lib/zxing-js/src/core/common/detector/MathUtils.d.ts +36 -0
- package/lib/lib/zxing-js/src/core/common/detector/WhiteRectangleDetector.d.ts +71 -0
- package/lib/lib/zxing-js/src/core/common/reedsolomon/AbstractGenericGF.d.ts +34 -0
- package/lib/lib/zxing-js/src/core/common/reedsolomon/AbstractGenericGFPoly.d.ts +36 -0
- package/lib/lib/zxing-js/src/core/common/reedsolomon/GenericGF.d.ts +58 -0
- package/lib/lib/zxing-js/src/core/common/reedsolomon/GenericGFPoly.d.ts +47 -0
- package/lib/lib/zxing-js/src/core/common/reedsolomon/ReedSolomonDecoder.d.ts +40 -0
- package/lib/lib/zxing-js/src/core/common/reedsolomon/ReedSolomonEncoder.d.ts +41 -0
- package/lib/lib/zxing-js/src/core/qrcode/QRCodeReader.d.ts +35 -0
- package/lib/lib/zxing-js/src/core/qrcode/QRCodeWriter.d.ts +13 -0
- package/lib/lib/zxing-js/src/core/qrcode/decoder/BitMatrixParser.d.ts +58 -0
- package/lib/lib/zxing-js/src/core/qrcode/decoder/DataBlock.d.ts +28 -0
- package/lib/lib/zxing-js/src/core/qrcode/decoder/DataMask.d.ts +36 -0
- package/lib/lib/zxing-js/src/core/qrcode/decoder/DecodedBitStreamParser.d.ts +30 -0
- package/lib/lib/zxing-js/src/core/qrcode/decoder/Decoder.d.ts +44 -0
- package/lib/lib/zxing-js/src/core/qrcode/decoder/ECB.d.ts +12 -0
- package/lib/lib/zxing-js/src/core/qrcode/decoder/ECBlocks.d.ts +16 -0
- package/lib/lib/zxing-js/src/core/qrcode/decoder/ErrorCorrectionLevel.d.ts +38 -0
- package/lib/lib/zxing-js/src/core/qrcode/decoder/FormatInformation.d.ts +33 -0
- package/lib/lib/zxing-js/src/core/qrcode/decoder/Mode.d.ts +56 -0
- package/lib/lib/zxing-js/src/core/qrcode/decoder/QRCodeDecoderMetaData.d.ts +21 -0
- package/lib/lib/zxing-js/src/core/qrcode/decoder/Version.d.ts +44 -0
- package/lib/lib/zxing-js/src/core/qrcode/detector/AlignmentPattern.d.ts +21 -0
- package/lib/lib/zxing-js/src/core/qrcode/detector/AlignmentPatternFinder.d.ts +82 -0
- package/lib/lib/zxing-js/src/core/qrcode/detector/Detector.d.ts +87 -0
- package/lib/lib/zxing-js/src/core/qrcode/detector/FinderPattern.d.ts +26 -0
- package/lib/lib/zxing-js/src/core/qrcode/detector/FinderPatternFinder.d.ts +114 -0
- package/lib/lib/zxing-js/src/core/qrcode/detector/FinderPatternInfo.d.ts +16 -0
- package/lib/lib/zxing-js/src/core/qrcode/encoder/BlockPair.d.ts +7 -0
- package/lib/lib/zxing-js/src/core/qrcode/encoder/ByteMatrix.d.ts +24 -0
- package/lib/lib/zxing-js/src/core/qrcode/encoder/Encoder.d.ts +85 -0
- package/lib/lib/zxing-js/src/core/qrcode/encoder/MaskUtil.d.ts +47 -0
- package/lib/lib/zxing-js/src/core/qrcode/encoder/MatrixUtil.d.ts +37 -0
- package/lib/lib/zxing-js/src/core/qrcode/encoder/QRCode.d.ts +29 -0
- package/lib/lib/zxing-js/src/core/util/Arrays.d.ts +45 -0
- package/lib/lib/zxing-js/src/core/util/ByteArrayOutputStream.d.ts +174 -0
- package/lib/lib/zxing-js/src/core/util/Charset.d.ts +7 -0
- package/lib/lib/zxing-js/src/core/util/Collections.d.ts +11 -0
- package/lib/lib/zxing-js/src/core/util/Float.d.ts +14 -0
- package/lib/lib/zxing-js/src/core/util/Formatter.d.ts +28 -0
- package/lib/lib/zxing-js/src/core/util/Integer.d.ts +19 -0
- package/lib/lib/zxing-js/src/core/util/Long.d.ts +12 -0
- package/lib/lib/zxing-js/src/core/util/OutputStream.d.ts +106 -0
- package/lib/lib/zxing-js/src/core/util/StandardCharsets.d.ts +7 -0
- package/lib/lib/zxing-js/src/core/util/StringBuilder.d.ts +21 -0
- package/lib/lib/zxing-js/src/core/util/StringEncoding.d.ts +51 -0
- package/lib/lib/zxing-js/src/core/util/System.d.ts +10 -0
- package/lib/lib/zxing-js/src/customTypings.d.ts +16 -0
- package/lib/lib/zxing-js/src/index.d.ts +5 -0
- package/lib/lib/zxing-js/src/node.d.ts +1 -0
- package/lib/license/LicenseManager.d.ts +69 -0
- package/lib/license/LicenseManagerNode.d.ts +64 -0
- package/lib/node.d.ts +37 -0
- package/lib/options-demo.d.ts +239 -0
- package/lib/plugins/QRBorderHelpers.d.ts +32 -0
- package/lib/plugins/QRBorderPlugin.d.ts +35 -0
- package/lib/plugins/QRValidatorZbar.d.ts +38 -0
- package/lib/plugins/QRValidatorZbarNode.d.ts +60 -0
- package/lib/plugins/QRValidatorZbarNodeSharp.d.ts +83 -0
- package/lib/qr-code-js-node.js +1 -0
- package/lib/qr-code-js.js +1 -0
- package/lib/templates/borders-inner-outter.d.ts +129 -0
- package/lib/templates/borders-inner-scale-offset.d.ts +497 -0
- package/lib/templates/borders-inner.d.ts +129 -0
- package/lib/templates/borders-no-license.d.ts +129 -0
- package/lib/templates/borders-outter.d.ts +129 -0
- package/lib/templates/borders-text-auto-curved.d.ts +129 -0
- package/lib/templates/borders-text-full-curved.d.ts +133 -0
- package/lib/templates/borders.d.ts +129 -0
- package/lib/templates/scales.d.ts +130 -0
- package/lib/templates/scan-validators/index.d.ts +1 -0
- package/lib/templates/scan-validators/tests/cases/basic-inverted.d.ts +9 -0
- package/lib/templates/scan-validators/tests/cases/basic-no-license.d.ts +3 -0
- package/lib/templates/scan-validators/tests/cases/basic.d.ts +3 -0
- package/lib/templates/scan-validators/tests/cases/colors-inverted.d.ts +2 -0
- package/lib/templates/scan-validators/tests/cases/colors.d.ts +58 -0
- package/lib/templates/scan-validators/tests/cases/out-of-borders-inverted.d.ts +9 -0
- package/lib/templates/scan-validators/tests/cases/out-of-borders.d.ts +9 -0
- package/lib/templates/scan-validators/tests/cases/position-inverted.d.ts +9 -0
- package/lib/templates/scan-validators/tests/cases/position.d.ts +3 -0
- package/lib/templates/scan-validators/tests/index.d.ts +27 -0
- package/lib/tools/browser-image-tools.d.ts +7 -0
- package/lib/tools/browser-utils.d.ts +18 -0
- package/lib/types/helper.d.ts +23 -0
- package/lib/utils/canvas-options.d.ts +7 -0
- package/lib/utils/color.d.ts +4 -0
- package/lib/utils/gradient.d.ts +26 -0
- package/lib/utils/image.d.ts +16 -0
- package/lib/utils/merge.d.ts +5 -0
- package/lib/utils/options.d.ts +220 -0
- package/lib/utils/qrcode.d.ts +8 -0
- package/lib/utils/scan-validator-node.d.ts +15 -0
- package/lib/utils/scan-validators/abstract-scan-validator.d.ts +43 -0
- package/lib/utils/scan-validators/zbar-scan-validator.d.ts +8 -0
- package/lib/utils/scan-validators/zxing-canvas-scan-validator.d.ts +10 -0
- package/lib/utils/scan-validators/zxing-scan-validator.d.ts +8 -0
- package/lib/utils/svg.d.ts +2 -0
- package/lib/utils/token-validator.d.ts +19 -0
- package/package.json +80 -0
package/docs/examples.md
ADDED
@@ -0,0 +1,322 @@
|
|
1
|
+
# QRCode.js Examples
|
2
|
+
<a id="start"></a>
|
3
|
+
|
4
|
+
This document provides basic examples to help you get started with QRCode.js and understand its core features. For more complex scenarios, refer to the [Advanced Examples](./advanced-examples.md#start).
|
5
|
+
|
6
|
+
---
|
7
|
+
|
8
|
+
## Basic Usage
|
9
|
+
|
10
|
+
Here's a minimal example to generate a QR code and append it to the document:
|
11
|
+
|
12
|
+
```javascript
|
13
|
+
// Import the library
|
14
|
+
import { QRCodeJs, Options } from '@qr-platform/qr-code.js';
|
15
|
+
// In Node.js: import { QRCodeJs } from '@qr-platform/qr-code.js/node';
|
16
|
+
|
17
|
+
// Basic options - 'data' is required
|
18
|
+
const options: Options = {
|
19
|
+
data: 'https://example.com'
|
20
|
+
};
|
21
|
+
|
22
|
+
// Create the QR code instance
|
23
|
+
const qrCode = new QRCodeJs(options);
|
24
|
+
|
25
|
+
// Append the generated SVG to your document (in browser)
|
26
|
+
const container = document.getElementById('qr-container');
|
27
|
+
if (container && qrCode.svgElement) {
|
28
|
+
container.appendChild(qrCode.svgElement);
|
29
|
+
} else if (!container) {
|
30
|
+
console.error("Container element not found.");
|
31
|
+
} else {
|
32
|
+
console.error("SVG element not generated.");
|
33
|
+
// Handle SVG generation for Node.js if needed (e.g., serialize to string)
|
34
|
+
// qrCode.serialize().then(svgString => { /* save string */ });
|
35
|
+
}
|
36
|
+
```
|
37
|
+
|
38
|
+
---
|
39
|
+
|
40
|
+
## Examples by Option Group
|
41
|
+
|
42
|
+
### Core Options
|
43
|
+
|
44
|
+
Demonstrating fundamental settings like data, shape, and error correction.
|
45
|
+
|
46
|
+
**Example 1: Minimal QR Code**
|
47
|
+
|
48
|
+
```javascript
|
49
|
+
// filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
|
50
|
+
const qrMinimal = new QRCodeJs({
|
51
|
+
data: 'Just the data!'
|
52
|
+
});
|
53
|
+
qrMinimal.append(document.getElementById('minimal-qr-container'));
|
54
|
+
```
|
55
|
+
|
56
|
+
**Example 2: Circle Shape**
|
57
|
+
|
58
|
+
```javascript
|
59
|
+
// filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
|
60
|
+
const qrCircle = new QRCodeJs({
|
61
|
+
data: 'https://example.com/circle',
|
62
|
+
shape: 'circle' // Make the QR code boundary circular
|
63
|
+
});
|
64
|
+
qrCircle.append(document.getElementById('circle-qr-container'));
|
65
|
+
```
|
66
|
+
|
67
|
+
**Example 3: High Error Correction**
|
68
|
+
|
69
|
+
```javascript
|
70
|
+
// filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
|
71
|
+
const qrHighEC = new QRCodeJs({
|
72
|
+
data: 'Important Data',
|
73
|
+
qrOptions: {
|
74
|
+
errorCorrectionLevel: 'H' // Use 'H' for highest redundancy
|
75
|
+
}
|
76
|
+
});
|
77
|
+
qrHighEC.append(document.getElementById('high-ec-qr-container'));
|
78
|
+
```
|
79
|
+
|
80
|
+
---
|
81
|
+
|
82
|
+
### Layout Options
|
83
|
+
|
84
|
+
Controlling margin, scale, and offsets.
|
85
|
+
|
86
|
+
**Example 1: Adding Margin**
|
87
|
+
|
88
|
+
```javascript
|
89
|
+
// filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
|
90
|
+
const qrMargin = new QRCodeJs({
|
91
|
+
data: 'With Margin',
|
92
|
+
margin: 20 // Add a 20px quiet zone around the QR code
|
93
|
+
});
|
94
|
+
qrMargin.append(document.getElementById('margin-qr-container'));
|
95
|
+
```
|
96
|
+
|
97
|
+
**Example 2: Scaling Down**
|
98
|
+
|
99
|
+
```javascript
|
100
|
+
// filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
|
101
|
+
const qrScaled = new QRCodeJs({
|
102
|
+
data: 'Scaled Down',
|
103
|
+
scale: 0.8 // Make the QR code 80% of its container/border size
|
104
|
+
});
|
105
|
+
qrScaled.append(document.getElementById('scaled-qr-container'));
|
106
|
+
```
|
107
|
+
|
108
|
+
---
|
109
|
+
|
110
|
+
### Styling Options - Dots
|
111
|
+
|
112
|
+
Changing the appearance of the data dots.
|
113
|
+
|
114
|
+
**Example 1: Rounded Dots**
|
115
|
+
|
116
|
+
```javascript
|
117
|
+
// filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
|
118
|
+
const qrRoundedDots = new QRCodeJs({
|
119
|
+
data: 'Rounded Dots',
|
120
|
+
dotsOptions: {
|
121
|
+
type: 'rounded',
|
122
|
+
color: '#007BFF' // Blue rounded dots
|
123
|
+
}
|
124
|
+
});
|
125
|
+
qrRoundedDots.append(document.getElementById('rounded-dots-container'));
|
126
|
+
```
|
127
|
+
|
128
|
+
**Example 2: Dot Style Dots**
|
129
|
+
|
130
|
+
```javascript
|
131
|
+
// filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
|
132
|
+
const qrDotDots = new QRCodeJs({
|
133
|
+
data: 'Dot Style Dots',
|
134
|
+
dotsOptions: {
|
135
|
+
type: 'dot',
|
136
|
+
color: '#DC3545' // Red circular dots
|
137
|
+
}
|
138
|
+
});
|
139
|
+
qrDotDots.append(document.getElementById('dot-dots-container'));
|
140
|
+
```
|
141
|
+
|
142
|
+
---
|
143
|
+
|
144
|
+
### Styling Options - Corner Squares
|
145
|
+
|
146
|
+
Customizing the large corner squares.
|
147
|
+
|
148
|
+
```javascript
|
149
|
+
// filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
|
150
|
+
const qrStyledCorners = new QRCodeJs({
|
151
|
+
data: 'Styled Corners',
|
152
|
+
dotsOptions: { color: '#333' }, // Standard dots
|
153
|
+
cornersSquareOptions: {
|
154
|
+
type: 'dot', // Use 'dot' shape for the large squares
|
155
|
+
color: '#FFC107' // Amber color for corners
|
156
|
+
}
|
157
|
+
});
|
158
|
+
qrStyledCorners.append(document.getElementById('styled-corners-container'));
|
159
|
+
```
|
160
|
+
|
161
|
+
---
|
162
|
+
|
163
|
+
### Styling Options - Corner Dots
|
164
|
+
|
165
|
+
Customizing the small dots inside the corner squares.
|
166
|
+
|
167
|
+
```javascript
|
168
|
+
// filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
|
169
|
+
const qrStyledCornerDots = new QRCodeJs({
|
170
|
+
data: 'Styled Corner Dots',
|
171
|
+
dotsOptions: { color: '#4CAF50' }, // Green dots
|
172
|
+
cornersSquareOptions: { type: 'square', color: '#4CAF50' }, // Green squares
|
173
|
+
cornersDotOptions: {
|
174
|
+
type: 'dot', // Use 'dot' shape for the inner dots
|
175
|
+
color: '#FFFFFF' // White inner dots
|
176
|
+
}
|
177
|
+
});
|
178
|
+
qrStyledCornerDots.append(document.getElementById('styled-corner-dots-container'));
|
179
|
+
```
|
180
|
+
|
181
|
+
---
|
182
|
+
|
183
|
+
### Background Options
|
184
|
+
|
185
|
+
Modifying the background color and shape.
|
186
|
+
|
187
|
+
**Example 1: Colored Background**
|
188
|
+
|
189
|
+
```javascript
|
190
|
+
// filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
|
191
|
+
const qrColoredBg = new QRCodeJs({
|
192
|
+
data: 'Colored Background',
|
193
|
+
dotsOptions: { color: '#FFFFFF' }, // White dots for contrast
|
194
|
+
backgroundOptions: {
|
195
|
+
color: '#673AB7' // Deep Purple background
|
196
|
+
}
|
197
|
+
});
|
198
|
+
qrColoredBg.append(document.getElementById('colored-bg-container'));
|
199
|
+
```
|
200
|
+
|
201
|
+
**Example 2: Rounded Background**
|
202
|
+
|
203
|
+
```javascript
|
204
|
+
// filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
|
205
|
+
const qrRoundedBg = new QRCodeJs({
|
206
|
+
data: 'Rounded Background',
|
207
|
+
backgroundOptions: {
|
208
|
+
color: '#E0E0E0', // Light grey background
|
209
|
+
round: 0.5 // 50% corner rounding
|
210
|
+
}
|
211
|
+
});
|
212
|
+
qrRoundedBg.append(document.getElementById('rounded-bg-container'));
|
213
|
+
```
|
214
|
+
|
215
|
+
**Example 3: Transparent Background**
|
216
|
+
|
217
|
+
```javascript
|
218
|
+
// filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
|
219
|
+
const qrTransparentBg = new QRCodeJs({
|
220
|
+
data: 'Transparent Background',
|
221
|
+
backgroundOptions: false // Disable the background element
|
222
|
+
});
|
223
|
+
qrTransparentBg.append(document.getElementById('transparent-bg-container'));
|
224
|
+
```
|
225
|
+
|
226
|
+
---
|
227
|
+
|
228
|
+
### Gradient Usage
|
229
|
+
|
230
|
+
Applying simple gradients.
|
231
|
+
|
232
|
+
**Example 1: Linear Gradient on Dots**
|
233
|
+
|
234
|
+
```javascript
|
235
|
+
// filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
|
236
|
+
const qrGradientDots = new QRCodeJs({
|
237
|
+
data: 'Gradient Dots',
|
238
|
+
dotsOptions: {
|
239
|
+
type: 'rounded',
|
240
|
+
gradient: {
|
241
|
+
type: 'linear',
|
242
|
+
rotation: Math.PI / 4, // 45 degrees
|
243
|
+
colorStops: [
|
244
|
+
{ offset: 0, color: '#28A745' }, // Green start
|
245
|
+
{ offset: 1, color: '#20C997' } // Teal end
|
246
|
+
]
|
247
|
+
}
|
248
|
+
}
|
249
|
+
});
|
250
|
+
qrGradientDots.append(document.getElementById('gradient-dots-container'));
|
251
|
+
```
|
252
|
+
|
253
|
+
**Example 2: Radial Gradient on Background**
|
254
|
+
|
255
|
+
```javascript
|
256
|
+
// filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
|
257
|
+
const qrGradientBg = new QRCodeJs({
|
258
|
+
data: 'Gradient Background',
|
259
|
+
backgroundOptions: {
|
260
|
+
gradient: {
|
261
|
+
type: 'radial',
|
262
|
+
colorStops: [
|
263
|
+
{ offset: 0, color: '#FFFFFF' }, // White center
|
264
|
+
{ offset: 1, color: '#F8F9FA' } // Light grey edge
|
265
|
+
]
|
266
|
+
}
|
267
|
+
}
|
268
|
+
});
|
269
|
+
qrGradientBg.append(document.getElementById('gradient-bg-container'));
|
270
|
+
```
|
271
|
+
|
272
|
+
---
|
273
|
+
|
274
|
+
### Image Embedding
|
275
|
+
|
276
|
+
Adding a simple logo.
|
277
|
+
|
278
|
+
```javascript
|
279
|
+
// filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
|
280
|
+
const qrWithLogo = new QRCodeJs({
|
281
|
+
data: 'QR with Logo',
|
282
|
+
qrOptions: { errorCorrectionLevel: 'Q' }, // Use Q or H with images
|
283
|
+
image: 'https://via.placeholder.com/50', // Placeholder image URL
|
284
|
+
imageOptions: {
|
285
|
+
imageSize: 0.3, // 30% size relative to QR code
|
286
|
+
margin: 1 // 1 dot margin around logo
|
287
|
+
}
|
288
|
+
});
|
289
|
+
qrWithLogo.append(document.getElementById('logo-qr-container'));
|
290
|
+
```
|
291
|
+
|
292
|
+
---
|
293
|
+
|
294
|
+
### Border Options (Free Version)
|
295
|
+
|
296
|
+
Adding a basic border (includes "QR-Platform" branding).
|
297
|
+
|
298
|
+
```javascript
|
299
|
+
// filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
|
300
|
+
const qrFreeBorder = new QRCodeJs({
|
301
|
+
data: 'Free Border Example',
|
302
|
+
borderOptions: {
|
303
|
+
hasBorder: true,
|
304
|
+
thickness: 30, // Border thickness in pixels
|
305
|
+
color: '#6C757D', // Grey border color
|
306
|
+
radius: '10%' // Slightly rounded corners
|
307
|
+
// Note: Bottom border will show "QR-Platform" branding automatically
|
308
|
+
}
|
309
|
+
});
|
310
|
+
qrFreeBorder.append(document.getElementById('free-border-container'));
|
311
|
+
```
|
312
|
+
*For custom border text and advanced features like inner/outer borders, a [Premium License](./license-management.md#start) is required.*
|
313
|
+
|
314
|
+
---
|
315
|
+
|
316
|
+
### See Also
|
317
|
+
- [QRCode.js Documentation](./documentation.md#start)
|
318
|
+
- [Usage Guide](./usage-guide.md#start)
|
319
|
+
- [API Reference Guide](./api-reference-guide.md#start)
|
320
|
+
- [TypeScript Types and Definitions](./typescript-types-definitions.md#start)
|
321
|
+
- [License Management](./license-management.md#start)
|
322
|
+
- [Advanced Examples](./advanced-examples.md#start)
|