TicketCard

molecules

Single ticket — barcode (Barcode component) + event title + date + venue + seat/tier + status pill. Tappable to open ticket detail with full barcode.

ARIA Role: button

Demo

Card Title

Card description text goes here.

Props

PropTypeRequiredDefaultDescription
idstringYes
statusTicketStatusYes
barcodeValuestringYesRaw QR/Barcode payload

TypeScript Interface

interface TicketCardProps {
  id: string;
  eventTitle: string;
  eventImage: { url: string; alt: string };
  date: { formatted: string; iso: string };
  venue: { name: string };
  tier: string;
  seat?: string;
  status: 'upcoming' | 'used' | 'expired' | 'cancelled' | 'refunded';
  barcodeValue: string;
  onSelect: () => void;
}

Assertions (NASA Rule 5)

  • [type]status must be valid enum; barcodeValue required(NASA Rule 5 + 7)
  • [aria]Entire card is <button> with descriptive aria-label; barcode is decorative (text alternative)(WCAG 1.1.1, 2.4.4)

Usage

Import

import { Ticketcard } from '@epasslive/design-system'

Basic

<Ticketcard />

With Variants

<Ticketcard variant="primary" size="md" />