scroll-progress-timeline

Builds data-driven scroll progress timelines with active step states and reduced-motion fallbacks.

5.7k|685|Updated Feb 3, 2026
One-click install
npx skills add https://github.com/MengTo/Skills --skill scroll-progress-timeline
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: scroll-progress-timeline
Source: https://github.com/MengTo/Skills/tree/main/agent-skills/web-design/scroll-progress-timeline
Command: npx skills add https://github.com/MengTo/Skills --skill scroll-progress-timeline

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Ordered processes like onboarding flows, roadmaps, and case studies often lose readers because progress through the sequence is invisible while scrolling. This Skill turns any ordered step list into a scroll story with a truthful progress line, active step states, and accessible fallbacks.

Core Features & Use Cases

  • Normalized progress line: Measures first-to-last point centers and drives a scaleY/scaleX fill from one normalized scroll value, keeping updates on the compositor.
  • Accessible step states: Renders steps as a semantic ordered list, marks the active step with aria-current="step", preserves keyboard order, and honors prefers-reduced-motion.
  • Responsive layouts: Supports centered alternating, left rail, horizontal, and pinned chapter layouts with a mobile collapse that preserves reading order.
  • Use Case: Turn a four-phase research process into a landing page section where a vertical rail fills as the reader scrolls, each step activates as the viewport crosses its dot, and the whole sequence collapses cleanly on mobile.

Quick Start

Use $scroll-progress-timeline to turn this ordered process into a responsive scroll story with one truthful progress line and readable active steps.

Frequently Asked Questions about scroll-progress-timeline

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build a scroll progress timeline in HTML and JavaScript?

Render steps as a semantic ordered list, place a base line behind the points, and overlay a progress line scaled with scaleY from a normalized scroll value. Measure the first and last point centers, batch DOM writes in requestAnimationFrame, and recalculate after resize or font loading.

How to animate a progress line on scroll with GSAP ScrollTrigger?

Use IntersectionObserver for simple active-state entry, and use a normalized scroll measurement or GSAP ScrollTrigger when the line must fill continuously or coordinate pinned media. Keep transform-origin at top for vertical lines or left for horizontal ones so updates stay on the compositor.

Does a scroll timeline work with prefers-reduced-motion?

Yes. Under prefers-reduced-motion: reduce, show the complete line or discrete reached states without scrubbed interpolation, blur, pinning, or large transforms. Ordinary document flow and all step content must remain intact.

Why does my scroll progress line misalign after page load?

Misalignment happens when geometry is measured before fonts and images finish loading or after layout changes. Recalculate point centers after font loading, resize, orientation changes, and content mutation, and schedule DOM writes in a single animation frame.

When should I avoid a pinned full-screen scroll timeline?

Use pinned full-screen chapters only when each step carries a distinct visual state, and keep the pin finite with release before the next section. For long copy or mixed card heights, a left rail layout preserves reading order better than alternation or pinning.