
Scroll Progress Timeline
FreeVisualize ordered processes with scrollable timelines.
Free · Opens the source repo
What Scroll Progress Timeline does
The Scroll Progress Timeline skill allows developers and designers to create engaging, data-driven visualizations of ordered processes. This skill is particularly useful for scenarios where tracking progress through a sequence is essential, such as onboarding experiences, checkout flows, roadmaps, or instructional narratives. By utilizing a single progress line, users can connect various steps in a clear and readable manner, enhancing the user experience while scrolling through the content.
To implement this skill, you start by defining the steps of your process in a structured format. Each step can include an ID, number, title, and body content, which are then rendered as an ordered list. The skill emphasizes maintaining the integrity of the content structure while adding visual enhancements like progress lines and active states. This ensures that the sequence remains navigable and comprehensible, even before any animations are introduced.
The skill also provides guidelines for creating responsive layouts, allowing for different display configurations depending on the content and screen size. Users can choose between vertical or horizontal timelines, centered or left-aligned layouts, and even pinned full-screen chapters for distinct visual states. The animations for step states are designed to keep the content readable, using subtle transitions that enhance the experience without overwhelming the user.
For developers looking to implement this skill, the provided demo and references serve as a practical guide. The skill is built to handle various scenarios, including different screen sizes and user preferences for reduced motion, making it a versatile tool for enhancing user engagement in digital experiences.
When to use it
Use this skill when you need to present a series of steps in a clear, engaging manner, especially in onboarding or instructional contexts.
When not to use it
This skill may not be suitable for non-linear processes or when the content does not require a visual representation of progress.
What you can build with it
Onboarding Process
Implement a scrollable timeline to guide new users through the onboarding steps, making their progress clear.
Checkout Flow
Visualize the steps in a checkout process, allowing users to see their progress as they complete each section.
Instructional Narratives
Create engaging narratives for tutorials or case studies that highlight user progress through a series of steps.
How to install Scroll Progress Timeline
View source1. Install with the skills CLI
npx skills add mengto/skills/scroll-progress-timeline --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by mengtoScroll Progress Timeline
Use one progress line to connect ordered information. The sequence must remain complete, readable, and navigable before animation is added.
Model the steps
Keep the content data-driven:
const steps = [
{ id: "brief", number: "01", title: "Set the direction", body: "..." },
{ id: "build", number: "02", title: "Make the system", body: "..." },
{ id: "ship", number: "03", title: "Release and learn", body: "..." }
];
Render it as an ordered list with real headings. The line, dots, media, and active state enhance that structure; they do not replace it.
Build the line
- Render a quiet base line behind every point.
- Place one progress line on top with
transform-origin: topfor vertical orleftfor horizontal. - Measure the first and last point centers, not arbitrary section edges.
- Normalize scroll position between those centers.
- Apply
scaleY(progress)orscaleX(progress)so updates stay on the compositor. - Mark a step active when the progress head crosses its center.
const progress = Math.min(1, Math.max(0,
(viewportAnchor - lineStart) / (lineEnd - lineStart)
));
line.style.transform = `scaleY(${progress})`;
Schedule DOM writes in one animation frame. Recalculate geometry after font and image loading, resize, orientation changes, and content mutation.
Choose the layout
- Use a centered alternating timeline only when both sides have enough width and similar content weight.
- Use a left rail for long copy, compact steps, or mixed card heights.
- Use a horizontal line for short sequences with concise labels and explicit keyboard-safe overflow.
- Use pinned full-screen chapters only when each step carries a distinct visual state. Keep the pin finite and release before the next section.
- Collapse to a simple left rail on small screens. Do not preserve alternation at the expense of reading order.
Animate step state
Use small opacity, translate, scale, blur, color, or media transitions. Keep every step readable while inactive. Expose active index with aria-current="step" only when that state is meaningful and current; do not announce every scroll update with a live region.
Use IntersectionObserver for simple active-state entry. Use a normalized scroll measurement or GSAP ScrollTrigger when the line must fill continuously or coordinate pinned media.
Handle navigation
- Make step links real anchors when users can jump within the process.
- Add
scroll-marginfor sticky headers. - Preserve focus and do not move it during passive scrolling.
- Keep URLs and browser history stable unless the user explicitly selects a step.
- If steps are interactive, use buttons or links with visible focus; never make a decorative dot the only control.
Reduce motion
Under prefers-reduced-motion: reduce, show the complete line or discrete reached states without scrubbed interpolation, blur, pinning, or large transforms. Keep ordinary document flow and all step content.
Verify
Test variable step counts, uneven card heights, missing media, long translations, 390/768/1024/1440 widths, 200% zoom, fast forward and reverse scrolling, direct anchor navigation, keyboard order, reduced motion, late font/image layout, route cleanup, and console errors. The active step and line head must agree at every boundary.
Use demo/index.html as the working reference and demo/PROMPT.md to recreate or remix it. Keep REFERENCES.md as the links-only implementation source list.
Frequently asked questions about Scroll Progress Timeline
Similar skills
Playwright Component Testing
Test React and Vue components in isolation with Playwright.
Fluent UI Blazor
Integrate Fluent UI components in Blazor applications effortlessly.
Build MCP App
Create interactive UI widgets for MCP servers.
Web Design Reviewer
Identify and fix design issues in websites efficiently.
Markstream Install
Seamlessly integrate Markstream for Markdown rendering.
GSAP & Framer Scroll Animation
Create advanced scroll animations effortlessly.
