sheengemologic ui
All components

ActivityTimeline

A stable chronological list with complete, current, upcoming, and error states encoded by text and shape.@gemologic/sheen · data display

Playground

  1. ApprovedCompleted
  2. DeployingCurrent
<ActivityTimeline label="Deployment activity" items={[{ id: "approved", title: "Approved", state: "completed", timestamp: "2026-09-08T18:00:00Z", timeLabel: "2:00 PM" }, { id: "deploying", title: "Deploying", state: "current" }]}  density="default"/>

Variant matrix

Deployment activity
  1. ApprovedCompleted
  2. DeployingCurrent
density: compact
  1. ApprovedCompleted
  2. DeployingCurrent
density: default
  1. ApprovedCompleted
  2. DeployingCurrent

Anatomy

Package
@gemologic/sheen
Source
packages/ui/src/primitives/ActivityTimeline.tsx
Tokens
  • --sheen-color-border-control
  • --sheen-color-accent-subtle
  • --sheen-color-success-subtle
  • --sheen-color-danger-subtle

Accessibility

Role: ordered list of article entriesKeyboard: No component-owned keys

Do

  • Keep item IDs stable across refresh and provide a display label with every machine timestamp.

Do not

  • Do not rely on marker color alone; the visible state label is part of the contract.

Generated props

NameTypeDefaultDescription
refHTMLOListElement | ((element: HTMLOListElement) => void)Native ordered-list reference.
label *stringRequired accessible timeline name.
items *readonly ActivityTimelineItem[]Stable-ID chronological records with visible state, optional description/actor, and paired machine/display time.
density"compact" | "default"defaultDefault or compact vertical rhythm.
refreshingbooleanfalseMarks accepted items busy without replacing or dimming them.
Native Solid/HTML attributes remain available and are omitted from this authored-prop view.