
Timeline
- 7 installs
- 228 repo stars
- Updated June 30, 2026
- thedaviddias/ux-patterns-for-developers
Helps with ai & agent building tasks.
About
timeline is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.
- timeline
- AI & Agent Building
- AI-coding skill
Timeline by the numbers
- 7 all-time installs (skills.sh)
- +1 installs in the week ending Aug 5, 2026 (Skillselion tracking)
- Ranked #12,545 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/thedaviddias/ux-patterns-for-developers --skill timelineAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 7 |
|---|---|
| repo stars | ★ 228 |
| Last updated | June 30, 2026 |
| Repository | thedaviddias/ux-patterns-for-developers ↗ |
What it does
Helps with ai & agent building tasks.
Files
Timeline
Display chronological events and activities
What it solves
A Timeline pattern helps teams create a reliable way to show events in chronological order so users can reconstruct a sequence, audit a process, or follow progress over time. It is most useful when teams need activity history and audits. Compared with adjacent patterns, this pattern should reduce friction without hiding the state, rules, or recovery paths people need to keep moving.
When to use
- Activity history and audits
- Project milestones
- Release and incident narratives
When to avoid
- Use a simpler view when users only need one or two values and not the full layout.
- Avoid this pattern when the task is creation or editing rather than interpretation.
- Do not force the same view onto mobile if another representation would be clearer.
Implementation workflow
1. Confirm the pattern matches the problem and constraints before copying the example. 2. Start from the anatomy and examples in references/pattern.md, then choose the smallest viable variation. 3. Apply accessibility, performance, and interaction guardrails before layering visual polish. 4. Use the testing guidance to verify behavior across keyboard, screen reader, responsive, and failure scenarios.
Accessibility guardrails
Keyboard Interaction
- [ ] Verify that timeline can be completed using keyboard alone.
- [ ] Keep focus order logical when the pattern opens, updates, or reveals additional UI.
- [ ] Preserve a visible focus state that is still readable at high zoom.
Screen Reader Support
- [ ] Use semantic elements first, then add ARIA only where semantics alone are not enough.
- [ ] Announce state changes such as errors, loading, or completion in the right place and with the right politeness.
- [ ] Connect labels, hints, and status text with
aria-describedbyor structural headings when useful.
Visual Accessibility
- [ ] Do not rely on color alone to convey severity, completion, or selection state.
Performance guardrails
- Measure the cost of rendering the default view before adding richer adornments such as nested actions, charts, or inline filters.
- Use pagination, windowing, or progressive disclosure when the layout would otherwise render too many items at once.
- Stabilize heights and placeholder geometry so loading and data refresh states do not cause large layout shifts.
Common mistakes
Choosing the layout before the task
The Problem: Teams often pick a visually familiar pattern before confirming whether users need comparison, exploration, or scanning.
How to Fix It? Start from the user task, then map the layout to comparison, chronology, hierarchy, or overview needs.
Ignoring non-happy states
The Problem: A polished default view still feels broken when loading, empty, and error states are inconsistent.
How to Fix It? Design the data lifecycle up front, including empty, partial, stale, and failed results.
Shipping a desktop-only density model
The Problem: Large tables, dense dashboards, and heavy cards collapse quickly on small screens.
How to Fix It? Define a mobile strategy such as stacked cards, progressive disclosure, or alternate summaries before implementation.
Related patterns
- https://uxpatterns.dev/patterns/data-display/calendar
- https://uxpatterns.dev/patterns/data-display/list-view
- https://uxpatterns.dev/patterns/social/activity-feed
---
For full implementation detail, examples, and testing notes, see references/pattern.md.
Pattern page: https://uxpatterns.dev/patterns/data-display/timeline
Timeline
Learn how to implement timelines for showing chronological data. Discover best practices for activity feeds, history logs, and event sequences.
URL: https://uxpatterns.dev/patterns/data-display/timeline Source: apps/web/content/patterns/data-display/timeline.mdx
---
Overview
A Timeline pattern helps teams create a reliable way to show events in chronological order so users can reconstruct a sequence, audit a process, or follow progress over time. It is most useful when teams need activity history and audits.
Compared with adjacent patterns, this pattern should reduce friction without hiding the state, rules, or recovery paths people need to keep moving.
Use Cases
When to use:
- Activity history and audits
- Project milestones
- Release and incident narratives
When not to use:
- Use a simpler view when users only need one or two values and not the full layout.
- Avoid this pattern when the task is creation or editing rather than interpretation.
- Do not force the same view onto mobile if another representation would be clearer.
Common scenarios and examples
- Activity history and audits where users need a clear, repeatable interface model.
- Project milestones where users need a clear, repeatable interface model.
- Release and incident narratives where users need a clear, repeatable interface model.
Benefits
- Clarifies how timeline should behave before implementation details begin to sprawl.
- Creates a reusable interaction model for teams who need to show events in chronological order so users can reconstruct a sequence, audit a process, or follow progress over time.
- Makes accessibility, edge cases, and recovery paths part of the design instead of post-launch cleanup.
- Gives product, design, and engineering a shared language for evaluating trade-offs.
Drawbacks
- It can become visually dense or noisy when too much state is shown at once.
- Responsive behavior usually needs a deliberate mobile fallback, not just smaller text.
- Loading, empty, and error states are just as important as the happy path.
- Performance work becomes visible quickly when the dataset or layout grows.
Anatomy
flowchart TB
Root[Timeline] --> A[Timeline axis]
Root --> B[Event marker]
Root --> C[Event content]
Root --> D[Time label]
Root --> E[Grouping or filters]Component Structure
1. Timeline axis
- Provides the directional structure for time.
2. Event marker
- Pins each event to a point or range on the axis.
3. Event content
- Contains the description, actor, and metadata.
4. Time label
- Makes the sequence and spacing understandable.
5. Grouping or filters
- Help users focus on a subset of events.
Summary of Components
| Component | Required? | Purpose |
|---|---|---|
| Timeline axis | ✅ Yes | Provides the directional structure for time. |
| Event marker | ✅ Yes | Pins each event to a point or range on the axis. |
| Event content | ✅ Yes | Contains the description, actor, and metadata. |
| Time label | ✅ Yes | Makes the sequence and spacing understandable. |
| Grouping or filters | ❌ No | Help users focus on a subset of events. |
Variations
Activity timeline
Shows many short operational events.
When to use: Use for history logs, status streams, and audit trails.
Narrative timeline
Uses larger milestones and richer descriptions.
When to use: Use for onboarding, releases, or project storytelling.
Hybrid timeline
Combines event sequence with status or ownership metadata.
When to use: Use when users need both chronology and accountability.
Examples
Live Preview
Basic Implementation
<div class="demo-shell card timeline-card">
<ol>
<li><strong>Kickoff approved</strong><p class="muted">Design and engineering aligned on the scope.</p></li>
<li><strong>Prototype tested</strong><p class="muted">Five users completed the revised flow successfully.</p></li>
<li><strong>Launch scheduled</strong><p class="muted">Rollout is planned for next Thursday.</p></li>
</ol>
</div>What this example demonstrates
- A clear baseline implementation of timeline that can be reviewed without framework-specific noise.
- Visible state, spacing, and content hierarchy that mirror the implementation guidance above.
- A small enough surface to copy into a design review or prototype before scaling the pattern up.
Implementation Notes
- Start with semantic HTML and only add JavaScript where the interaction truly requires it.
- Keep styling tokens and spacing consistent with adjacent controls or layouts.
- If the live implementation introduces async behavior, mirror those states in the code example rather than documenting them only in prose.
Best Practices
Content
Do's ✅
- Start with the questions users need answered before choosing the layout.
- Use labels, legends, and headings that explain why the data matters.
- Keep supporting metadata close to the item, card, chart, or row it describes.
Don'ts ❌
- Do not assume everyone already understands the metric, status, or sorting rule.
- Do not rely on truncation to hide critical context.
- Do not bury key actions where they only appear on hover.
Accessibility
Do's ✅
- Verify that timeline can be completed using keyboard alone.
- Keep focus order logical when the pattern opens, updates, or reveals additional UI.
- Preserve a visible focus state that is still readable at high zoom.
- Use semantic elements first, then add ARIA only where semantics alone are not enough.
- Announce state changes such as errors, loading, or completion in the right place and with the right politeness.
Don'ts ❌
- Do not remove focus styles without a visible replacement.
- Do not depend on placeholder or helper text that disappears before the user can act on it.
- Do not assume pointer, touch, and assistive technologies will all interact with the pattern the same way.
Visual Design
Do's ✅
- Use hierarchy to separate primary values from supporting context.
- Reserve space for loading and empty states to avoid layout jumps.
- Design density levels intentionally for desktop and mobile.
Don'ts ❌
- Do not use decorative chrome that competes with the data itself.
- Do not make all rows, cards, or panels look equally important when priorities differ.
- Do not overload a single view with every possible control.
Layout & Positioning
Do's ✅
- Preserve scannability as the viewport shrinks.
- Keep filters, summaries, and data visibly connected.
- Choose stable ordering and grouping rules so users can build muscle memory.
Don'ts ❌
- Do not let controls jump around between breakpoints.
- Do not hide essential data behind horizontal scrolling without a fallback.
- Do not treat empty or zero states as an afterthought.
Common Mistakes & Anti-Patterns 🚫
Choosing the layout before the task
The Problem: Teams often pick a visually familiar pattern before confirming whether users need comparison, exploration, or scanning.
How to Fix It? Start from the user task, then map the layout to comparison, chronology, hierarchy, or overview needs.
---
Ignoring non-happy states
The Problem: A polished default view still feels broken when loading, empty, and error states are inconsistent.
How to Fix It? Design the data lifecycle up front, including empty, partial, stale, and failed results.
---
Shipping a desktop-only density model
The Problem: Large tables, dense dashboards, and heavy cards collapse quickly on small screens.
How to Fix It? Define a mobile strategy such as stacked cards, progressive disclosure, or alternate summaries before implementation.
Data Flow
- Start by defining the source of truth for the dataset, then map how filters, sorting, and view state transform that dataset before render.
- Keep loading, empty, and partial states in the same data flow model as the populated state so the view does not need separate ad hoc logic.
- When the pattern supports drilling into detail, keep the transition between overview and detail explicit so users understand what changed.
Performance
- Measure the cost of rendering the default view before adding richer adornments such as nested actions, charts, or inline filters.
- Use pagination, windowing, or progressive disclosure when the layout would otherwise render too many items at once.
- Stabilize heights and placeholder geometry so loading and data refresh states do not cause large layout shifts.
Usability Considerations
- Test whether people can answer the intended question in under a few seconds; if not, the layout may be too dense or too vague.
- Make sort, filter, and grouping rules visible whenever they change the order or subset of data.
- Give users a clear path back to a simpler or more detailed view when one layout cannot answer every question.
Accessibility
Keyboard Interaction
- [ ] Verify that timeline can be completed using keyboard alone.
- [ ] Keep focus order logical when the pattern opens, updates, or reveals additional UI.
- [ ] Preserve a visible focus state that is still readable at high zoom.
Screen Reader Support
- [ ] Use semantic elements first, then add ARIA only where semantics alone are not enough.
- [ ] Announce state changes such as errors, loading, or completion in the right place and with the right politeness.
- [ ] Connect labels, hints, and status text with
aria-describedbyor structural headings when useful.
Visual Accessibility
- [ ] Do not rely on color alone to convey severity, completion, or selection state.
- [ ] Test the pattern at 200% zoom and with reduced motion enabled.
- [ ] Ensure touch targets remain comfortable on mobile and coarse pointers.
Testing Guidelines
Functional Testing
- [ ] Verify the default, loading, error, and success states for timeline.
- [ ] Test the primary action and the obvious recovery action in the same run.
- [ ] Confirm that state survives refresh, navigation, or retry in the way users would expect.
Accessibility Testing
- [ ] Run keyboard-only checks and at least one screen reader pass on the final implementation.
- [ ] Validate headings, labels, and announcement behavior with real content rather than lorem ipsum.
- [ ] Check color contrast and focus visibility in both default and stressed states.
Edge Cases
- [ ] Test empty, long, duplicated, and unexpectedly formatted content.
- [ ] Check behavior on narrow screens, zoomed layouts, and slower networks.
- [ ] Verify that optimistic or asynchronous states reconcile correctly after a failure.
Frequently Asked Questions
Related Patterns
Resources
References
- WCAG 2.2 - Accessibility baseline for keyboard support, focus management, and readable state changes.
- WAI-ARIA Authoring Practices - Reference patterns for keyboard behavior, semantics, and assistive technology support.
Guides
- web.dev: Rendering on the Web - Rendering tradeoffs for data-rich pages, dashboards, and result-heavy views.
Articles
- Stephanie Walter: Designing complex data tables - Design considerations for dense tables, column behavior, and analytical workflows.
- web.dev: Rendering on the Web - Rendering tradeoffs for data-rich pages, dashboards, and result-heavy views.
NPM Packages
- `vis-timeline` - Timeline visualization for schedules, history views, and temporal data.
- `react-chrono` - Timeline component for milestone flows, process history, and chronological storytelling.
- `date-fns` - Date parsing, formatting, and range math for calendars and schedule interfaces.