Modern, modular, and developer-friendly React component library for generating Identity Cards, Event Badges, Tickets, QR Codes, and Barcodes.
ID-QR-Kit provides composable UI templates, native QR/barcode rendering, high-resolution export utilities, and an optional Python automation pipeline for batch generation workflows.
- Modular composition — Pre-built templates for ID cards, event badges, and tickets.
- Native scannable assets — QR code and barcode generation using matrix encoders.
- High-fidelity exporting — Export QR codes and barcodes as PNG, with SVG string output for QR codes. PDF export is planned (see Roadmap).
- Type-safe API — Built entirely with TypeScript.
- Utility-first styling — Powered by Tailwind CSS.
- Backend automation — Includes a standalone Python script for headless batch generation.
| Layer | Technologies |
|---|---|
| Frontend | React, Vite |
| Styling | Tailwind CSS, PostCSS |
| Language | TypeScript |
| Rendering | HTML5 Canvas API, SVG |
| Encoding | Matrix encoders |
| Automation | Python |
- Live Playground: https://s0um1kx.github.io/id-qr-kit/
- GitHub Repository: https://github.com/s0um1kx/id-qr-kit
| ID Card | Event Badge | Ticket |
|---|---|---|
![]() |
![]() |
![]() |
| QR Generator | Barcode Generator | Controls Interface |
|---|---|---|
![]() |
![]() |
![]() |
# Clone the repository
git clone https://github.com/s0um1kx/id-qr-kit.git
cd id-qr-kit
# Install dependencies
npm install
# Start development server
npm run devThe playground supports live editing of badge data, QR/barcode values, and export testing.
Copy these folders into your project:
src/components
src/core
src/hooks
src/templates
Install peer dependencies:
npm install tailwindcss postcss autoprefixerimport { EventBadge, EventTicket, QuickQR, QuickBarcode } from './src';
export function AttendeeBadge() {
return (
<div className="flex flex-col items-center gap-4 p-4">
<EventBadge
id="ATT-042"
name="Alex Mercer"
role="Systems Architect"
eventName="HACKATHON 2026"
/>
<QuickQR value="https://github.com/s0um1kx/id-qr-kit" size={128} />
<QuickBarcode value="ID-98402-X" format="CODE128" />
</div>
);
}EventTicket follows the same pattern for conference/event passes:
<EventTicket
id="TCK-9284"
attendeeName="Alex Mercer"
eventName="TECH CONFERENCE 2026"
date="OCT 12, 2026"
seat="A-12"
gate="G3"
tier="VIP PASS"
/>id-qr-kit/
├── playground/
│ ├── App.tsx
│ ├── index.css
│ └── main.tsx
├── public/
│ ├── screenshots/
│ │ ├── preview-id.png
│ │ ├── preview-badge.png
│ │ ├── preview-ticket.png
│ │ ├── preview-qr.png
│ │ ├── preview-barcode.png
│ │ └── preview-controls.png
│ └── favicon.ico
├── python/
│ └── id_kit.py
├── src/
│ ├── components/
│ ├── core/
│ ├── hooks/
│ ├── templates/
│ ├── index.ts
│ └── vite-env.d.ts
├── package.json
├── tailwind.config.js
├── tsconfig.json
└── vite.config.ts
┌──────────────────────────────────────────────┐
│ Playground │
│ App.tsx / Interactive UI │
└──────────────────────┬───────────────────────┘
│
▼
┌──────────────────────────────────────────────┐
│ src/templates │
│ ID Cards / Badges / Ticket Layouts │
└───────────────┬───────────────────┬──────────┘
│ │
▼ ▼
┌──────────────────────┐ ┌──────────────────────┐
│ src/components │ │ src/hooks │
│ QRCode / Barcode UI │ │ Export & Canvas API │
└────────────┬─────────┘ └────────────┬─────────┘
│ │
└────────────┬─────────────┘
▼
┌────────────────────────────┐
│ src/core │
│ Encoders / Matrix Logic │
└────────────────────────────┘
- Core layer converts input strings into QR/barcode matrices.
- Component layer renders SVG or Canvas output.
- Template layer composes visual layouts.
- Hook layer exports rendered components to image or document formats.
Supported output formats:
- PNG (QR codes and barcodes)
- SVG string (QR codes, via
useQR)
Example:
const { dataUrl, downloadPNG } = useQR({ value: 'ID-98402-X', size: 200 });
<button onClick={() => downloadPNG('id-card.png')}>Download PNG</button>useBarcode exposes the same dataUrl / downloadPNG shape for barcodes. PDF export is on the roadmap but not yet implemented.
Generate assets without a browser:
cd python
python id_kit.pyTypical use cases:
- Batch employee ID generation
- Event pass printing
- Offline asset rendering pipelines
npm run dev # Start Vite dev server
npm run build # Production build
npm run preview # Preview production build
npm run lint # Run linterOverride Tailwind classes directly on templates or components:
<EventBadge className="bg-slate-900 text-white border-slate-700" ... />You may also extend tailwind.config.js with custom themes, spacing, or typography tokens.
- NPM package publishing
- PDF export
- React Native support
- Print-optimized templates
- Bulk export worker queue
- Dark-mode preset themes
- Accessibility audit
git checkout -b feature/my-feature
npm test
npm run buildOpen a pull request with a clear description and screenshots for UI changes.
MIT License.
Soumik
- GitHub: https://github.com/s0um1kx
- Project: https://github.com/s0um1kx/id-qr-kit





