Don't Use JS for That: Moving Features to CSS and HTML by Kilian Valkhof
https://www.youtube.com/watch?v=IP_rtWEMR0oA bunch of demos and tools to show off Scroll-driven Animations
https://scroll-driven-animations.style/CSS scroll-driven animations The CSS scroll-driven animations module provides functionality that builds on top of the CSS animations module and Web Animations API. It allows you to animate property values based on a progression along a scroll-based timeline instead of the default time-based document timeline. This means that you can animate an element by scrolling a scrollable element, rather than just by the passing of time. There are two types of scroll-based timelines: scroll progress timeline: You progress this timeline by scrolling a scrollable element (scroller) from top to bottom (or left to right) and back again. The position in the scroll range is converted into a percentage of progress — 0% at the start and 100% at the end. view progress timeline: You progress this timeline based on the change in visibility of an element (known as the subject) inside a scroller. The visibility of the subject inside the scroller is tracked as a percentage of progress — by default, the timeline is at 0% when the subject is first visible at one edge of the scroller, and 100% when it reaches the opposite edge.
https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_scroll-driven_animations