---
title: "Timeline 컴포넌트 — zenit Zig UI"
description: "시간이나 상태별로 세로 이벤트를 표시합니다.completed / current / pending, 시간, 제목, 설명이 하나의 레일에 정렬됩니다."
url: https://zenit.z.express/ko/components/timeline
language: ko
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_ja: https://zenit.z.express/ja/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하면 됩니다.
