Timeline
Timeline liệt kê các sự kiện theo thời gian: lịch sử đơn hàng, nhật ký hoạt động, các bước đã qua của một yêu cầu.
Timeline là một
<ol>; mỗi TimelineItem có tiêu đề, thời gian, icon (hoặc Avatar) và nội dung thêm tuỳ chọn. Truyền dateTime để thời gian thành thẻ <time> máy đọc được. variant compact dùng chấm nhỏ và một dòng cho mỗi sự kiện, hợp với nhật ký dài. Icon chỉ để trang trí, nên tiêu đề phải tự nói đủ sự kiện.- Đang giao hàngGiao Hàng Nhanh · mã vận đơn GHN-5520417
- Đã đóng gói
- Đã thanh toán
- Trần Thị Bình đã đặt đơn #2041
Import
Cài từ npm, chép mã nguồn vào dự án bằng @yugen-ui/cli hoặc shadcn CLI, hoặc import thẳng khi làm việc trong repo này.
TSX
// npm install yugen-uiimport { Timeline, TimelineItem } from "yugen-ui";Biến thể
Mỗi ô là một mẫu độc lập: hover để Copy, hoặc bấm Code để xem mã nguồn.
- Cường đã đổi trạng thái sang Hoàn thành10 phút trước
- Dũng đã bình luận1 giờ trước“Mình đã cập nhật số liệu quý 3, nhờ mọi người xem lại.”
- Dũng đã tải lên bao-cao-q3.pdf1 giờ trước
- Bình đã thêm 2 thành viênHôm qua
Compact
Chấm nhỏ, tiêu đề và thời gian trên một dòng; nội dung thêm dùng chữ caption.
- Triển khai v2.4.1 thất bại14:02Kiểm tra sức khoẻ không đạt sau 3 lần thử; đã quay về v2.4.0.
- Thời gian phản hồi tăng 30%13:48
- Đã triển khai v2.4.0Hôm qua
- Đã tạo môi trường staging20/10
Intent không icon
Không có icon thì là chấm tròn theo intent: neutral, brand, success, warning, error.
Cách dùng
Nên
- Xếp sự kiện mới nhất lên đầu, trừ khi người dùng đang theo dõi một quy trình từ đầu đến cuối.
- Viết tiêu đề đủ ý (ai, làm gì) vì icon không được đọc cho trình đọc màn hình.
- Truyền dateTime khi thời gian hiển thị là tương đối (“2 giờ trước”).
Không nên
- Không dùng Timeline cho các bước chưa xảy ra mà người dùng phải đi qua — dùng Stepper.
- Không dùng intent chỉ để trang trí; giữ màu cho trạng thái thật sự khác.
Props
| Prop · Kiểu | Mặc định | Mô tả |
|---|---|---|
| variant"detailed" | "compact" | Mặc định: "detailed" | detailed: ô icon 32px, nội dung bên dưới · compact: chấm nhỏ, một dòng. |
| TimelineItem | Mặc định: — | Sự kiện: ai làm gì. |
| TimelineItem | Mặc định: — | Thời gian hiển thị. |
| TimelineItem | Mặc định: — | Thời điểm ISO 8601 → thẻ <time dateTime>. |
| TimelineItem | Mặc định: — | Icon hoặc Avatar; bỏ trống = chấm tròn. |
| TimelineItem | Mặc định: "neutral" | Màu ô icon / chấm. Giá trị cũ "danger" đã lỗi thời (bỏ ở 1.0). |
| TimelineItem | Mặc định: — | Nội dung thêm: bình luận, tệp, thẻ. |