EVENT CARD: Left-border-accent tw-card for events, appointments, and calendar items
VARIANTS: Default (primary) | Confirmed (green) | Pending (orange) | Cancelled (red, dimmed) | Compact (.event-card-sm)

Used in record sidebars and drawer panels to display upcoming events. Left border colour indicates event status. Cancelled events are visually dimmed with a strikethrough title. Uses semantic <time> element for dates. Pairs with existing badge component for status labels.

Default Event Card

Base: Primary left-border accent. Contains a <time> date, event title, and meta line (clock icon + time range + optional status badge). Card has hover and focus-visible states for interactivity.

School Tour — Year 7 Entry
9:30am – 11:00am
<div class="tw-event-card"><time class="tw-event-card-date" datetime="2025-02-24">...</time><div class="tw-event-card-title">...</div><div class="tw-event-card-meta">...</div></div>

Status Variants

Status: Add a status modifier class to change the left border colour and date text colour. Cancelled events are dimmed and title gets a strikethrough. Pair with .badge for inline status labels in the meta area.

School Tour — Year 2 Entry
9:30am – 11:00am Confirmed
Open Morning
10:00am – 12:00pm Pending
Interview — Music Scholarship
2:00pm – 3:00pm Cancelled
Assessment Day
9:00am – 4:00pm Scheduled
<div class="tw-event-card tw-event-card-confirmed">...</div>

With Actions (.event-card-actions)

Actions: Place an .event-card-actions container inside .event-card-meta for inline action buttons. Actions push to the right via ml-auto.

School Tour — Year 2 Entry
9:30am – 11:00am Confirmed
Open Morning
10:00am – 12:00pm Pending
<div class="tw-event-card-meta">...<div class="tw-event-card-actions"><button class="tw-btn tw-btn-secondary tw-btn-sm">View</button></div></div>

Compact Variant (.event-card-sm)

Compact: Tighter spacing and smaller text for drawer panels. Add .event-card-sm alongside .event-card.

School Tour — Year 2 Entry
9:30am – 11:00am Confirmed
Open Morning
10:00am – 12:00pm Pending
<div class="tw-event-card tw-event-card-sm tw-event-card-confirmed">...</div>

In Context (Sidebar Section)

Example: Typical usage inside a record sidebar with a section header and multiple event cards.

Upcoming Events

School Tour — Year 2 Entry
9:30am – 11:00am Confirmed
Open Morning
10:00am – 12:00pm Pending

Empty State

Empty: When no upcoming events exist, show a helpful message with an optional action.

Upcoming Events

No upcoming events scheduled