Primary workflow
A clean default configuration for everyday product interfaces.
View detailsPresent responsive chronological activity, milestones, or workflow status with rich item metadata.
Change any prop and inspect the server-rendered component immediately.
A polished default timeline for a modern application.
A clean default configuration for everyday product interfaces.
View detailsA clean default configuration for everyday product interfaces.
View details<Timeline
title="Timeline example"
description="A polished default timeline for a modern application."
items='[
{
"id": "timeline-0-1",
"key": "timeline-0-1",
"value": "primary",
"label": "Primary workflow",
"title": "Primary workflow",
"description": "A clean default configuration for everyday product interfaces.",
"text": "A configurable sample message.",
"href": "#timeline-demo",
"actionHref": "#timeline-demo",
"actionLabel": "View details",
"icon": "icon-[lucide--sparkles]",
"iconClass": "icon-[lucide--sparkles]",
"variant": "primary",
"status": "Active",
"time": "09:30",
"current": true,
"selected": true,
"checked": true,
"disabled": false,
"outgoing": false,
"open": true,
"number": 1,
"count": 16,
"percentage": 72,
"color": "#7c3aed",
"target": "_self",
"ariaLabel": "Open primary workflow 1",
"items": [
{
"label": "Nested option A",
"value": "nested-a"
},
{
"label": "Nested option B",
"value": "nested-b"
}
],
"links": [
{
"label": "Documentation",
"href": "#documentation"
},
{
"label": "API reference",
"href": "#api-reference"
}
],
"values": [
"Included",
"Standard"
]
},
{
"id": "timeline-0-2",
"key": "timeline-0-2",
"value": "secondary",
"label": "Additional option",
"title": "Supporting example",
"description": "A clean default configuration for everyday product interfaces.",
"text": "Another configurable message.",
"href": "#timeline-demo",
"actionHref": "#timeline-demo",
"actionLabel": "View details",
"icon": "icon-[lucide--sparkles]",
"iconClass": "icon-[lucide--sparkles]",
"variant": "primary",
"status": "Active",
"time": "09:30",
"current": false,
"selected": false,
"checked": false,
"disabled": false,
"outgoing": true,
"open": true,
"number": 2,
"count": 32,
"percentage": 72,
"color": "#7c3aed",
"target": "_self",
"ariaLabel": "Open primary workflow 2",
"items": [
{
"label": "Nested option A",
"value": "nested-a"
},
{
"label": "Nested option B",
"value": "nested-b"
}
],
"links": [
{
"label": "Documentation",
"href": "#documentation"
},
{
"label": "API reference",
"href": "#api-reference"
}
],
"values": [
"Included",
"Standard"
]
}
]'
/>
payload.Compare configurations and resize the browser to check responsive behavior.
Explain the sequence and current status of a request or process.
Latest updates for this service request.
Received successfully
Documents are being reviewed
Pending verification
<Timeline
title="Request progress"
description="Latest updates for this service request."
items='[
{
"title": "Request submitted",
"description": "Received successfully",
"time": "09:30",
"status": "complete"
},
{
"title": "Verification",
"description": "Documents are being reviewed",
"time": "10:15",
"current": true
},
{
"title": "Decision",
"description": "Pending verification",
"time": "—"
}
]'
/>
Use a dense history inside drawers, side panels, and record views.
A compact configuration for dashboards and dense product surfaces.
<Timeline
size="sm"
title="Recent activity"
description="A compact configuration for dashboards and dense product surfaces."
items='[
{
"title": "Status changed",
"time": "Today"
},
{
"title": "Comment added",
"time": "Yesterday"
},
{
"title": "Document uploaded",
"time": "3 days ago"
}
]'
variant="soft"
/>
Use icons, descriptions, times, and states for longer workflows.
Planned delivery sequence.
Tokens, themes, and primitives
Reusable UI and documentation
Compose production interfaces
<Timeline
size="lg"
title="Implementation milestones"
description="Planned delivery sequence."
items='[
{
"title": "Foundation",
"description": "Tokens, themes, and primitives",
"icon": "icon-[lucide--layers-3]",
"status": "complete"
},
{
"title": "Components",
"description": "Reusable UI and documentation",
"icon": "icon-[lucide--blocks]",
"current": true
},
{
"title": "Applications",
"description": "Compose production interfaces",
"icon": "icon-[lucide--rocket]"
}
]'
variant="raised"
/>
Use declarative output handlers in .wrn files or register a direct output handler from JavaScript. The canonical API exposes payload and does not require event.detail.
@selectFires when an item, option, card, or result is selected.<Timeline
@select='console.log(payload)'
/>import { registerOutputHandler } from "@wrnexus/csr/outputs"
const component = document.querySelector("[data-ui-component=\"Timeline\"], [data-component=\"Timeline\"]")
if (component) registerOutputHandler(component, "select", (payload) => {
console.log("select", payload)
})All content and behavior shown above is supplied through these props and slots.
| Prop | Type | Default | Required |
|---|---|---|---|
size | string | "default" | No |
color | string | "primary" | No |
title | string | "Timeline" | No |
description | string | "" | No |
items | unknown[] | [] | No |
variant | string | "default" | No |
class | string | "" | No |