---
title: "Timeline コンポーネント — zenit Zig UI"
description: "時間や状態ごとに縦方向のイベントを表示します。completed / current / pending、時刻、タイトル、説明が同じレールに揃います。"
url: https://zenit.z.express/ja/components/timeline
language: ja
alternate_en: https://zenit.z.express/components/timeline.md
alternate_zh: https://zenit.z.express/zh/components/timeline.md
alternate_es: https://zenit.z.express/es/components/timeline.md
alternate_ko: https://zenit.z.express/ko/components/timeline.md
alternate_fr: https://zenit.z.express/fr/components/timeline.md
alternate_de: https://zenit.z.express/de/components/timeline.md
project: zenit v0.1.0-alpha (Zig 0.15.2, macOS)
source: https://github.com/version-next/zenit
---

# Timeline

`ui.widgets.Timeline`

時間や状態ごとに縦方向のイベントを表示します。

[Video](https://zenit.z.express/media/stories/timeline.mp4?v=c760ea6e95)

**BEHAVIOR CONTRACT**

completed / current / pending、時刻、タイトル、説明が同じレールに揃います。

**RECORDED INTERACTION**

注文のライフサイクルを示します。

`examples/storybook/stories.zig:681`

```zig
// ── Timeline ──
pub fn buildTimeline(scope: *ui.Scope, cx: *ui.Cx) anyerror!*ui.Node {
    const items = [_]W.TimelineItem{
        .{ .title = "Created", .description = "Order placed", .time = "09:00", .status = .completed },
        .{ .title = "Shipped", .description = "In transit", .time = "12:30", .status = .active },
        .{ .title = "Delivered", .description = "Pending", .status = .pending },
    };
    return W.Timeline(.{ .items = &items }).mount(scope, cx);
}
```

[GitHub でソースを見るexamples/storybook/stories.zig:681](https://github.com/version-next/zenit/blob/HEAD/examples/storybook/stories.zig#L681)

Storybook にあるこの story のコードそのままです（zenit 5f9add5+wip 2026-09-30）。`W` は `ui.widgets` のことで、`col` / `row` / `label` は Storybook 内の小さなレイアウトヘルパーです。

### TimelineProps

`ui.widgets.Timeline`

[src/ui/components/timeline/mod.zig:52](https://github.com/version-next/zenit/blob/HEAD/src/ui/components/timeline/mod.zig#L52)

```zig
fn Timeline(props: TimelineProps) TimelineBuilder
```

| フィールド | 型 | デフォルト値 | 説明 |
| --- | --- | --- | --- |
| `items` | `[]const TimelineItem` | `&.{}` | — |

### \*Node

`ui.widgets.Timeline`

mount は `*Node` を直接返します。親ノードに append してください。
