SVG výstup a štýly
Výstupom je len SVG: jedna even-odd <path> v jednotkách modulov s presným viewBoxom, prístupným titulkom a popisom, bez ID a časových pečiatok — je teda deterministické, dáva stabilný ETag a na jednej stránke sa dá bezpečne zopakovať:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 29 29" width="256" height="256" role="img" aria-label="QR code" shape-rendering="crispEdges"><title>QR code</title><desc>…</desc><rect width="29" height="29" fill="#ffffff"/><path fill="#000000" fill-rule="evenodd" d="M4 4h7v7h-7z…"/></svg>Štýly
use RoundlyConsulting\Qr\Enums\{FinderStyle, ModuleStyle};
// Rounded modules read less reliably — pair them with Q or H
Qr::url($link)->moduleStyle(ModuleStyle::Rounded, 0.35)->errorCorrection('Q')->svg();
// Dots with rounded, coloured finders
Qr::url($link)
->moduleStyle(ModuleStyle::Dots)
->finderStyle(FinderStyle::Rounded, '#0a58ca')
->errorCorrection('H')
->svg();
// Responsive, inherits the text colour, no background rectangle
Qr::url($link)->size(null)->foreground('currentColor')->background('transparent')->svg();- ModuleStyle::Square — trasované obrysy s ostrými hranami (predvolené).
- ModuleStyle::Rounded — vypuklé rohy sa zmenia na štvrťkruhy so zadaným polomerom (0 < r ≤ 0.5 modulu).
- ModuleStyle::Dots — jeden kruh na každý tmavý modul.
- FinderStyle::Rounded — zaoblené rámy a stredy finder vzorov, voliteľne vo vlastnej farbe.
- Farby — hex, rgb()/rgba(), pomenované CSS farby, currentColor; transparent vynechá obdĺžnik pozadia.
- size(null) — responzívne SVG len s viewBoxom, veľkosť určí vaše CSS.
Odporúčania k štýlom
Dodržte silný kontrast (tmavé na svetlom), tichú zónu 4 moduly a nepriehľadné pozadie. Zaoblené moduly, bodky a farebné finder vzory sa čítajú menej spoľahlivo; používajte s nimi korekciu chýb Q alebo H. Platobné kódy nechajte štvorcové, čierne na bielom.
Hodnotový objekt Svg
use RoundlyConsulting\Qr\Enums\DataUriEncoding;
$svg = Qr::url($link)->svg();
$svg->toString(); // the markup
$svg->withXmlDeclaration()->toString(); // prefixed with <?xml …?>
$svg->withAttributes(['class' => 'qr', 'aria-hidden' => 'true']);
$svg->toImgTag('Scan me', ['class' => 'w-32']); // HtmlString: <img src="data:…">
$svg->toDataUri(); // percent-encoded data URI
$svg->toDataUri(DataUriEncoding::Base64); // base64 data URI
$svg->etag(); // quoted SHA-256 prefix
$svg->width(); // ?int — null when responsive
$svg->viewBoxSize(); // modules, quiet zone included
$svg->matrix(); // QrMatrix
$svg->sensitivity(); // SensitivityDoplnkové atribúty sú obmedzené na povolené (class, style, id, data-*, aria-*) a escapované; existujúci kľúč, napríklad aria-label, sa nahradí. Texty aj farby prechádzajú escapovaním a zoznamom povolených hodnôt, takže obsah stránky nemôže do obrázka vložiť skript.
Prejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.