仅 CSS Tailwind CSS 时间线,用于按时间顺序排列的事件列表。带有图标、内容和连接线槽的垂直布局。 WCAG AA 可访问,可与 Django、HTMX、Laravel、React 和任何堆栈配合使用。
时间轴组件按时间顺序显示一系列事件、里程碑或叙述进程。时间表采用语义 HTML 构建,可帮助用户了解历史进展和项目阶段。 Frutjam 时间线系统支持多种方向、颜色和项目样式,非常适合项目历史记录、发行说明和旅程地图。
仅 CSS,无需 JavaScript。 WCAG AA 可访问且与框架无关 - 可与 Django、HTMX、Laravel、React 和任何堆栈配合使用。
| 班级 | 类型 | 描述 |
|---|---|---|
| timeline | 根据 | 按时间顺序排列的事件列表 |
| timeline-item | 修饰符 | 单独事件行 — 放置在每个 <li> 上 |
| timeline-start | 修饰符 | 内容放置在时间轴之前 |
| timeline-middle | 修饰符 | 点以时间轴为中心 |
| timeline-end | 修饰符 | 内容放置在时间轴之后 |
| timeline-horizontal | 修饰符 | 横向布局 |
| timeline-vertical | 修饰符 | 垂直布局(默认) |
| timeline-snap-start | 修饰符 | 隐藏起始列 - 点与左边缘对齐 |
| timeline-snap-end | 修饰符 | 隐藏末尾列 - 点与右边缘对齐 |
| timeline-primary | 颜色 | 原色点和连接器 - 放置在时间线项目上 |
| timeline-secondary | 颜色 | 辅助色点和连接器 — 放置在 timeline-item 上 |
| timeline-accent | 颜色 | 强调色点和连接器 — 放置在 timeline-item 上 |
| timeline-neutral | 颜色 | 中性色点和连接器 - 放置在 timeline-item 上 |
| timeline-info | 颜色 | 信息色点和连接器 — 放置在 timeline-item 上 |
| timeline-success | 颜色 | 成功色点和连接器 — 放置在 timeline-item 上 |
| timeline-warning | 颜色 | 警告色点和连接器 — 放置在 timeline-item 上 |
| timeline-error | 颜色 | 错误色点和连接器 — 放置在 timeline-item 上 |
基本用法
-
Jan 2024Project startedInitial commit pushed
-
Apr 2024Beta releasedOpen testing begins
-
Todayv2.0 launchedTailwind v4 rewrite
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <ul class="timeline timeline-vertical"> <li class="timeline-item"> <div class="timeline-start text-sm opacity-60">Jan 2024</div> <div class="timeline-middle"></div> <div class="timeline-end"> <div class="font-semibold">Project started</div> <div class="text-sm opacity-60">Initial commit pushed</div> </div> </li> <li class="timeline-item"> <div class="timeline-start text-sm opacity-60">Apr 2024</div> <div class="timeline-middle"></div> <div class="timeline-end"> <div class="font-semibold">Beta released</div> <div class="text-sm opacity-60">Open testing begins</div> </div> </li> <li class="timeline-item"> <div class="timeline-start text-sm opacity-60">Today</div> <div class="timeline-middle"></div> <div class="timeline-end"> <div class="font-semibold">v2.0 launched</div> <div class="text-sm opacity-60">Tailwind v4 rewrite</div> </div> </li> </ul> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <ul className="timeline timeline-vertical"> <li className="timeline-item"> <div className="timeline-start text-sm opacity-60">Jan 2024</div> <div className="timeline-middle"></div> <div className="timeline-end"> <div className="font-semibold">Project started</div> <div className="text-sm opacity-60">Initial commit pushed</div> </div> </li> <li className="timeline-item"> <div className="timeline-start text-sm opacity-60">Apr 2024</div> <div className="timeline-middle"></div> <div className="timeline-end"> <div className="font-semibold">Beta released</div> <div className="text-sm opacity-60">Open testing begins</div> </div> </li> <li className="timeline-item"> <div className="timeline-start text-sm opacity-60">Today</div> <div className="timeline-middle"></div> <div className="timeline-end"> <div className="font-semibold">v2.0 launched</div> <div className="text-sm opacity-60">Tailwind v4 rewrite</div> </div> </li> </ul> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <ul class="timeline timeline-vertical"> <li class="timeline-item"> <div class="timeline-start text-sm opacity-60">Jan 2024</div> <div class="timeline-middle"></div> <div class="timeline-end"> <div class="font-semibold">Project started</div> <div class="text-sm opacity-60">Initial commit pushed</div> </div> </li> <li class="timeline-item"> <div class="timeline-start text-sm opacity-60">Apr 2024</div> <div class="timeline-middle"></div> <div class="timeline-end"> <div class="font-semibold">Beta released</div> <div class="text-sm opacity-60">Open testing begins</div> </div> </li> <li class="timeline-item"> <div class="timeline-start text-sm opacity-60">Today</div> <div class="timeline-middle"></div> <div class="timeline-end"> <div class="font-semibold">v2.0 launched</div> <div class="text-sm opacity-60">Tailwind v4 rewrite</div> </div> </li> </ul> |
带颜色的时间轴
向每个时间线项目添加颜色修饰符,以为其点和从其尾随的连接线着色。
-
Step 1Primary
-
Step 2Secondary
-
Step 3Success
-
Step 4Warning
-
Step 5Error
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <ul class="timeline timeline-vertical"> <li class="timeline-item timeline-primary"> <div class="timeline-start text-sm opacity-60">Step 1</div> <div class="timeline-middle"></div> <div class="timeline-end"><div class="font-semibold">Primary</div></div> </li> <li class="timeline-item timeline-secondary"> <div class="timeline-start text-sm opacity-60">Step 2</div> <div class="timeline-middle"></div> <div class="timeline-end"><div class="font-semibold">Secondary</div></div> </li> <li class="timeline-item timeline-success"> <div class="timeline-start text-sm opacity-60">Step 3</div> <div class="timeline-middle"></div> <div class="timeline-end"><div class="font-semibold">Success</div></div> </li> <li class="timeline-item timeline-warning"> <div class="timeline-start text-sm opacity-60">Step 4</div> <div class="timeline-middle"></div> <div class="timeline-end"><div class="font-semibold">Warning</div></div> </li> <li class="timeline-item timeline-error"> <div class="timeline-start text-sm opacity-60">Step 5</div> <div class="timeline-middle"></div> <div class="timeline-end"><div class="font-semibold">Error</div></div> </li> </ul> |
交替双方
在每个项目上的 timeline-start 和 timeline-end 之间交替内容以创建锯齿形布局。
-
Design phaseJan 2024
-
DevelopmentMar 2024
-
TestingMay 2024
-
LaunchJun 2024
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | <ul class="timeline timeline-vertical"> <li class="timeline-item timeline-primary"> <div class="timeline-start"> <div class="font-semibold">Design phase</div> <div class="text-sm opacity-60">Jan 2024</div> </div> <div class="timeline-middle"></div> <div class="timeline-end"></div> </li> <li class="timeline-item timeline-secondary"> <div class="timeline-start"></div> <div class="timeline-middle"></div> <div class="timeline-end"> <div class="font-semibold">Development</div> <div class="text-sm opacity-60">Mar 2024</div> </div> </li> <li class="timeline-item timeline-accent"> <div class="timeline-start"> <div class="font-semibold">Testing</div> <div class="text-sm opacity-60">May 2024</div> </div> <div class="timeline-middle"></div> <div class="timeline-end"></div> </li> <li class="timeline-item timeline-success"> <div class="timeline-start"></div> <div class="timeline-middle"></div> <div class="timeline-end"> <div class="font-semibold">Launch</div> <div class="text-sm opacity-60">Jun 2024</div> </div> </li> </ul> |
双色调连接器
每个项目的连接线都会继承其颜色,从而在不同颜色的步骤之间创建无缝过渡。
-
PlannedBacklog item created
-
In ProgressDevelopment started
-
In ReviewAwaiting approval
-
DoneShipped to production
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | <ul class="timeline timeline-vertical timeline-snap-start"> <li class="timeline-item timeline-info"> <div class="timeline-start"></div> <div class="timeline-middle"></div> <div class="timeline-end"> <div class="font-semibold">Planned</div> <div class="text-sm opacity-60">Backlog item created</div> </div> </li> <li class="timeline-item timeline-primary"> <div class="timeline-start"></div> <div class="timeline-middle"></div> <div class="timeline-end"> <div class="font-semibold">In Progress</div> <div class="text-sm opacity-60">Development started</div> </div> </li> <li class="timeline-item timeline-warning"> <div class="timeline-start"></div> <div class="timeline-middle"></div> <div class="timeline-end"> <div class="font-semibold">In Review</div> <div class="text-sm opacity-60">Awaiting approval</div> </div> </li> <li class="timeline-item timeline-success"> <div class="timeline-start"></div> <div class="timeline-middle"></div> <div class="timeline-end"> <div class="font-semibold">Done</div> <div class="text-sm opacity-60">Shipped to production</div> </div> </li> </ul> |
仅起始端
仅将内容放置在 timeline-start 中,并使用空的 timeline-end 将所有内容推到轴的左侧。
-
Requirements gatheredJan 2024
-
Prototype builtFeb 2024
-
ShippedMar 2024
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <ul class="timeline timeline-vertical timeline-snap-end"> <li class="timeline-item timeline-primary"> <div class="timeline-start"> <div class="font-semibold">Requirements gathered</div> <div class="text-sm opacity-60">Jan 2024</div> </div> <div class="timeline-middle"></div> <div class="timeline-end"></div> </li> <li class="timeline-item timeline-secondary"> <div class="timeline-start"> <div class="font-semibold">Prototype built</div> <div class="text-sm opacity-60">Feb 2024</div> </div> <div class="timeline-middle"></div> <div class="timeline-end"></div> </li> <li class="timeline-item timeline-success"> <div class="timeline-start"> <div class="font-semibold">Shipped</div> <div class="text-sm opacity-60">Mar 2024</div> </div> <div class="timeline-middle"></div> <div class="timeline-end"></div> </li> </ul> |
仅端面
使用 timeline-snap-start 将点推到左边缘,所有内容都在右侧。
-
Launched betaFebruary 2024
-
Public releaseApril 2024
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <ul class="timeline timeline-vertical timeline-snap-start"> <li class="timeline-item timeline-primary"> <div class="timeline-start"></div> <div class="timeline-middle"></div> <div class="timeline-end"> <div class="font-semibold">Launched beta</div> <div class="text-sm opacity-60">February 2024</div> </div> </li> <li class="timeline-item timeline-secondary"> <div class="timeline-start"></div> <div class="timeline-middle"></div> <div class="timeline-end"> <div class="font-semibold">Public release</div> <div class="text-sm opacity-60">April 2024</div> </div> </li> </ul> |
卡片内容丰富
将内容包裹在 border rounded-box p-3 块中,为每个时间线事件提供类似卡片的外观。
-
Jan 15, 2024Project Kickoff
Team assembled, goals defined, and roadmap approved by stakeholders.
-
Mar 1, 2024Alpha Released
Internal testing began with 12 pilot users across 3 departments.
-
Jun 10, 2024v1.0 General Availability
Public launch with full documentation, support, and SLA guarantees.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <ul class="timeline timeline-vertical timeline-snap-start"> <li class="timeline-item timeline-primary"> <div class="timeline-start"></div> <div class="timeline-middle"></div> <div class="timeline-end"> <div class="border rounded-box p-3 mb-2"> <div class="text-xs opacity-60 mb-1">Jan 15, 2024</div> <div class="font-semibold">Project Kickoff</div> <p class="text-sm opacity-70 mt-1">Team assembled, goals defined, and roadmap approved by stakeholders.</p> </div> </div> </li> <li class="timeline-item timeline-secondary"> <div class="timeline-start"></div> <div class="timeline-middle"></div> <div class="timeline-end"> <div class="border rounded-box p-3 mb-2"> <div class="text-xs opacity-60 mb-1">Mar 1, 2024</div> <div class="font-semibold">Alpha Released</div> <p class="text-sm opacity-70 mt-1">Internal testing began with 12 pilot users across 3 departments.</p> </div> </div> </li> <li class="timeline-item timeline-success"> <div class="timeline-start"></div> <div class="timeline-middle"></div> <div class="timeline-end"> <div class="border rounded-box p-3 mb-2"> <div class="text-xs opacity-60 mb-1">Jun 10, 2024</div> <div class="font-semibold">v1.0 General Availability</div> <p class="text-sm opacity-70 mt-1">Public launch with full documentation, support, and SLA guarantees.</p> </div> </div> </li> </ul> |
快速启动
在列表上使用 timeline-snap-start 隐藏开始列并将点与左边缘对齐。
-
Launched betaFebruary 2024
-
Public releaseApril 2024
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <ul class="timeline timeline-vertical timeline-snap-start"> <li class="timeline-item timeline-primary"> <div class="timeline-start"></div> <div class="timeline-middle"></div> <div class="timeline-end"> <div class="font-semibold">Launched beta</div> <div class="text-sm opacity-60">February 2024</div> </div> </li> <li class="timeline-item timeline-secondary"> <div class="timeline-start"></div> <div class="timeline-middle"></div> <div class="timeline-end"> <div class="font-semibold">Public release</div> <div class="text-sm opacity-60">April 2024</div> </div> </li> </ul> |
按扣结束
在列表上使用 timeline-snap-end 隐藏结束列并将点与右边缘对齐。
-
Launched betaFebruary 2024
-
Public releaseApril 2024
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <ul class="timeline timeline-vertical timeline-snap-end"> <li class="timeline-item timeline-primary"> <div class="timeline-start"> <div class="font-semibold">Launched beta</div> <div class="text-sm opacity-60">February 2024</div> </div> <div class="timeline-middle"></div> <div class="timeline-end"></div> </li> <li class="timeline-item timeline-secondary"> <div class="timeline-start"> <div class="font-semibold">Public release</div> <div class="text-sm opacity-60">April 2024</div> </div> <div class="timeline-middle"></div> <div class="timeline-end"></div> </li> </ul> |
使用 Claude Code、Cursor 或其他 AI 编辑器?
Cherry MCP 为您的 AI 编辑器按需提供准确的 时间轴 类名称和结构。不再有幻觉课程。