QR Flutter Plus ✨
QR Flutter Plus — https://github.com/jinosh05/qr_flutter_plus — is a modern, maintained Flutter package for fast, offline QR code rendering via
WidgetorCustomPainter.
Built onqr(Dart) with styled eyes, data modules, gradients, and embedded images — no internet required.
Inspiration: This project is inspired by and built upon the excellent work of theyakka/qr.flutter — now continued at jinosh05/qr_flutter_plus. Huge thanks to the original authors for paving the way.
Support my work: If this package saves you time, consider supporting — https://razorpay.me/@devasundarjinosh • Creator: https://jinosh.site/
Features
- ✅ Null safety • Flutter 3.7+ •
qr: ^4.0.0 - 🔍 Auto version detection (
QrVersions.auto) or manual1–40 - 🛡️ Error correction:
QrErrorCorrectLevel.low/medium/quartile/high - 🎨 Styled eyes (
QrEyeStyle) & data modules (QrDataModuleStyle) — square/circle, border radius, rounded outside corners - 🌈 Gradient rendering (
LinearGradient,RadialGradient) - 🖼️ Embedded image overlay with safe area & shape (
EmbeddedImageShape.square/circle) - 📐 Configurable size, padding, gapless mode
- 🖼️ Export to
ui.Image/ByteDatafor saving to file - ♿ Semantics label, error builder (
errorStateBuilder)
Installing
Add to your pubspec.yaml:
dependencies:
qr_flutter_plus: ^1.0.1
Then run:
flutter pub get
Migrating from
qr_flutter? Just replaceqr_flutterwithqr_flutter_plusand update the import:
import 'package:qr_flutter_plus/qr_flutter_plus.dart';
For legacy compatibility, package:qr_flutter_plus/qr_flutter.dart still works (deprecated shim).
Getting Started
import 'package:qr_flutter_plus/qr_flutter_plus.dart';
QrImageView(
data: 'https://jinosh.site/',
version: QrVersions.auto,
size: 200,
eyeStyle: const QrEyeStyle(
eyeShape: QrEyeShape.square,
color: Color(0xff128760),
borderRadius: 10,
),
dataModuleStyle: const QrDataModuleStyle(
dataModuleShape: QrDataModuleShape.square,
borderRadius: 5,
),
)
Properties
| Property | Type | Description |
|---|---|---|
data |
String |
Content to encode |
version |
int |
QrVersions.auto or 1–40 |
errorCorrectionLevel |
QrErrorCorrectLevel |
low/medium/quartile/high |
size |
double |
Square size; auto if null |
padding |
EdgeInsets |
Outer padding |
backgroundColor |
Color |
Background |
eyeStyle |
QrEyeStyle |
Corner eyes shape/color/radius |
dataModuleStyle |
QrDataModuleStyle |
Dots shape/color/radius, roundedOutsideCorners |
gapless |
bool |
No gaps between modules (default true) |
gradient |
Gradient |
Replace solid color with gradient |
embeddedImage |
ImageProvider |
Center overlay |
embeddedImageStyle |
QrEmbeddedImageStyle |
size, safeArea, shape, borderRadius |
errorStateBuilder |
QrErrorBuilder |
Custom error widget |
semanticsLabel |
String |
Accessibility |
Examples
Basic:
QrImageView(
data: 'https://jinosh.site/',
version: QrVersions.auto,
size: 280,
gapless: false,
)
With embedded logo:
QrImageView(
data: 'https://jinosh.site/',
version: QrVersions.auto,
size: 280,
embeddedImage: AssetImage('assets/jinosh_logo.png'),
embeddedImageStyle: QrEmbeddedImageStyle(
size: Size.square(40),
safeArea: true,
embeddedImageShape: EmbeddedImageShape.square,
borderRadius: 10,
shapeColor: Color(0xff128760),
),
)
Gradient:
QrImageView(
data: 'https://razorpay.me/@devasundarjinosh',
version: QrVersions.auto,
size: 280,
gradient: LinearGradient(
colors: [Color(0xff8B5CF6), Color(0xffF59E0B)],
),
)
Error builder:
QrImageView(
data: 'too long for version 1...',
version: 1,
errorStateBuilder: (cxt, err) => Text('Uh oh! $err'),
)
Use painter for export:
final painter = QrPainter(
data: 'https://jinosh.site/',
version: QrVersions.auto,
gapless: true,
);
final pic = painter.toPicture(600);
final image = await painter.toImage(600);
final bytes = await painter.toImageData(600);
See /example for a full Liquid Glass showcase app with both Website QR (https://jinosh.site/) and Donate QR (https://razorpay.me/@devasundarjinosh).
Credits & Attribution
Core QR logic by Kevin Moore — qr.dart.
Original Flutter bindings by the Yakka — qr.flutter — the inspirational source for this fork.
QR Flutter Plus — https://github.com/jinosh05/qr_flutter_plus — is maintained by Devasundar Jinosh — https://jinosh.site/ — donations: https://razorpay.me/@devasundarjinosh
See AUTHORS for contributors.
License
BSD 3-Clause — see LICENSE.
Support
Love the package? Star the repo, share https://jinosh.site/, and donate via Razorpay — it keeps maintenance alive ❤️
https://razorpay.me/@devasundarjinosh
Libraries
- qr_flutter_plus
- QR Flutter Plus — https://github.com/jinosh05/qr_flutter_plus — fast QR rendering for Flutter.