AhaSlides Design
v0.52.0React · Vue · Lit

Components · Data Display

QR code

A scannable QR code — a join link, a deck URL, a Wi-Fi handoff — rendered through the shared QRCode.

Examples

API

PropTypeDefaultNotes
valuestringThe URL or text to encode
sizenumber160Rendered pixel size
errorLevelL | M | Q | HMError-correction level
statusactive | expired | loading | scannedactiveRender state — expired/scanned overlay a mask, loading shows a spinner
iconstringOptional centre logo URL
colorstring#1A1A1AModule colour (defaults to ink)
bgColorstring#FFFFFFModule background (kept white per DS)
borderedbooleanfalseantd's own 1px frame — off, so the .aha-qr container owns the DS frame

Install

# .npmrc — once: point the @ahaslides-product scope at GitHub Packages
@ahaslides-product:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}   # a GitHub token with read:packages

npm i @ahaslides-product/design
import '@ahaslides-product/design/tokens.css';   // once, at the app root
import '@ahaslides-product/design/qr-code-theme';   // registers <qr-code>

Agent feed for this component (absolute, fetchable anywhere): qr-code.agent.json · qr-code.md · qr-code.llms.txt

When to use

When to use
  • QR code — a link people scan from a screen with a phone — a join code, a deck URL, an app download
  • a plain link — the destination is clicked, not scanned
Keep the encoded value short so the code stays low-density and scans fast. Always show the human-readable link or join code beside it as a fallback.
Surfaces
audience editor dashboard

Spec

Modules ink #1A1A1A on white #FFFFFF (color / bgColor) · Frame 1px #E3E3E3 border · radius 8 · padding 16 · Size 160 default (set via size) · Error level M default (L / M / Q / H) · Status active default (active / expired / loading / scanned) · Bordered off — the .aha-qr frame supplies the DS border (antd's own bordered defaults on)