Components
Timeline
A vertical event list: a 1px rule runs down the left as a rail, each item hangs a small square dot on it, and stacks a faint timestamp, a title, and supporting body text. Status families recolor the dot — no radius, no shadow.
Basic
Items align to the right of the rail; the last item drops its bottom spacing.
-
09:42Matrix publishedAll 1,204 rates synced to production.
-
09:30Review requestedSent to the Director for sign-off.
-
08:15Missing currency12 rows have no currency set.
-
YesterdayDraft createdImported from the Q3 template.
<ol class="ds-timeline">
<li class="ds-timeline__item">
<span class="ds-timeline__dot is-success"></span>
<div class="ds-timeline__time">09:42</div>
<div class="ds-timeline__title">Matrix published</div>
<div class="ds-timeline__body">All 1,204 rates synced to production.</div>
</li>
<li class="ds-timeline__item">
<span class="ds-timeline__dot is-info"></span>
<div class="ds-timeline__time">09:30</div>
<div class="ds-timeline__title">Review requested</div>
<div class="ds-timeline__body">Sent to the Director for sign-off.</div>
</li>
<li class="ds-timeline__item">
<span class="ds-timeline__dot"></span>
<div class="ds-timeline__time">Yesterday</div>
<div class="ds-timeline__title">Draft created</div>
<div class="ds-timeline__body">Imported from the Q3 template.</div>
</li>
</ol>
Status dots
Five families recolor the dot via is-*; the default (no modifier) uses the neutral rule color.
-
Default
-
Success
-
Warning
-
Danger
-
Info
-
Neutral
<li class="ds-timeline__item">
<span class="ds-timeline__dot is-success"></span>
<div class="ds-timeline__title">Success</div>
</li>
<li class="ds-timeline__item">
<span class="ds-timeline__dot is-danger"></span>
<div class="ds-timeline__title">Danger</div>
</li>
React
The <Timeline> component renders the same markup from an items array; status maps to the dot's is-* class.
import { Timeline } from "@diametral/design-system/react";
<Timeline
items={[
{ time: "09:42", title: "Matrix published", body: "All 1,204 rates synced.", status: "success" },
{ time: "09:30", title: "Review requested", body: "Sent to the Director.", status: "info" },
{ time: "08:15", title: "Missing currency", body: "12 rows have no currency set.", status: "warning" },
{ time: "Yesterday", title: "Draft created", body: "Imported from the Q3 template." },
]}
/>