## QR code A scannable QR code — a join link, a deck URL, a Wi-Fi handoff — rendered through the shared QRCode. Tier: composite-antd. Frameworks: HTML (paste-and-run, no build step) · React · Vue 3. Default to the HTML snippet — a CDN-React runnable page (React + antd loaded from a CDN, no build step) — React/Vue use the same shared-themed DataTable via your bundler. Surfaces: audience, editor, dashboard. Props: - value: string, default —. The URL or text to encode - size: number, default 160. Rendered pixel size - errorLevel: L | M | Q | H, default M. Error-correction level - status: active | expired | loading | scanned, default active. Render state — expired/scanned overlay a mask, loading shows a spinner - icon: string, default —. Optional centre logo URL - color: string, default #1A1A1A. Module colour (defaults to ink) - bgColor: string, default #FFFFFF. Module background (kept white per DS) - bordered: boolean, default false. antd's own 1px frame — off, so the .aha-qr container owns the DS frame Tokens: colorPrimary, borderRadius, colorText, colorBorderSecondary. Use when: 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).