@fab-orbita/qr-styling
v0.1.0
Published
Zero-dependency styled QR rendering (dot shapes, gradients, finder styles, PNG logos) for @fab-orbita/qr
Maintainers
Readme
@fab-orbita/qr-styling
Стилизация QR-кодов без зависимостей для
@fab-orbita/qr: собственные
формы модулей, градиенты, стили угловых маркеров и PNG-логотипы — в Node.js,
браузерах и edge-рантаймах.
Ядро остаётся строгой реализацией ISO/IEC 18004; этот пакет — отдельный слой, который рисует Produced им матрицу. Ядро не изменяется.
import { generateQR } from '@fab-orbita/qr';
import { renderStyled } from '@fab-orbita/qr-styling';
const qr = generateQR('https://example.com', { ecLevel: 'H' });
const svg = renderStyled(qr, {
dots: { style: 'dot', color: '#1a1a2e' },
corners: { squareStyle: 'rounded', dotStyle: 'dot' },
background: { color: '#ffffff' },
});Установка
npm install @fab-orbita/qr-styling @fab-orbita/qr@fab-orbita/qr — peer-зависимость: он должен быть установлен, но своих
runtime-зависимостей у этого пакета нет.
Что умеет
- Рисует модули данных в стилях
square,dot,rounded,extra-rounded,classy,classy-rounded - Стилизует три finder-паттерна независимо друг от друга (рамку и глаз)
- Сплошные цвета или линейные/радиальные градиенты для данных, finder'ов и фона
- Встраивает PNG-логотип в центр, погашая перекрытые модули в пределах бюджета ошибкоустойчивости
- Экспортирует SVG и PNG
- Работает на Node.js ≥ 18, в браузерах и edge-рантаймах
Что не умеет
- Не меняет матрицу (кодирование, EC и маска остаются у ядра)
- Нет structured append, ECI, FNC1, Micro QR и rMQR
- Нет анимации, нет PDF/WebP/AVIF
- Экспорт в JPEG отложен до v2 —
'jpeg'бросает ошибку
Стилизация снижает сканируемость. Круглые точки, градиенты и логотипы ухудшают распознавание. Используйте
ecLevel: 'H'(30% восстановления) при любой стилизации, держитеmargin ≥ 4и проверяйте реальным сканером до печати. См. docs/ru/compliance.md.
Документация
| | |
|---|---|
| docs/ru/api.md | полный справочник опций и порядок валидации |
| docs/ru/styles.md | каталог стилей модулей и finder'ов с превью |
| docs/ru/logo.md | опции логотипа, поддерживаемый PNG, бюджет EC |
| docs/ru/compliance.md | цена стилизации и что доказывает CI |
| docs/ru/performance.md | измеренные числа и гейт |
| docs/ru/migration.md | переход с qr-code-styling |
Английские версии — в docs/.
Точки входа
import { renderStyled } from '@fab-orbita/qr-styling'; // асинхронный PNG
import { renderStyled } from '@fab-orbita/qr-styling/node'; // синхронный PNG + файлы
import { renderStyled } from '@fab-orbita/qr-styling/browser'; // асинхронный PNGРазработка
npm install
npm run lint && npm run typecheck
npm run test:coverage # 100% statements, branches, functions и lines
npm run build
node scripts/analyze.mjs # бюджет по gzip
npm run test:bundle # дымовые проверки exports/бандлинга
npm run decode # рендер матрицы вариантов для cv2 + zxing-cpp
npm run previews # перегенерация docs/previews/*.svg для docs/ru/styles.md
npm run bench # перф-гейтЛицензия
MIT © ООО «ДЕВОРБИТ»
