About this set
A vertical project timeline whose spine fills with an indigo to violet gradient as the timeline scrolls through the viewport, with no JavaScript and no scroll listener. The demo walks through a twelve-week launch plan, from kick-off and design system to private beta, public launch and a first review, with a week label, a heading and a paragraph per step and a ring on the spine for each. Use it on a case study, a project plan or an about page where the reader’s progress down the page is part of the story. The fill is a ::after pseudo-element scaled from zero to full height by a CSS scroll-driven animation, animation-timeline: view(), so the browser drives it from scroll position off the main thread. Browsers without scroll-driven animations get the spine complete and faded, and so do visitors who ask for reduced motion, so the information never depends on the effect. The steps are an ordered list, and each week label is a time element with an ISO week value. The Bootstrap and Tailwind versions share the same few lines of scroll-driven CSS, since neither framework has a utility for it.
What’s included
- Spine fills on scroll with animation-timeline: view()
- No JavaScript and no scroll listener
- Complete, faded spine as the fallback and for reduced motion
- Ordered list with week labels in time elements
- Gradient fill set by two custom properties
Accessibility
Steps are an ordered list with headings, and each week label is a time element with an ISO week value. The spine, its fill and the rings are CSS pseudo-elements that screen readers ignore. Under prefers-reduced-motion the scroll-linked animation is switched off and the spine is shown complete. Text meets 4.5:1 contrast.
Customise it
Change --sp-from and --sp-to for the fill gradient and --sp-track, --sp-dot and --sp-muted on .spine-tl (plain CSS and Bootstrap), or the --color-sp-* theme colours in Tailwind. animation-range sets how much of the scroll the fill takes.

















