
Mads Stoumann, writing for CSS-Tricks, starts off with a simple idea: set a Custom Property to either playing or paused to control animation-play-state.
[data-animation] {
/* … */
animation-play-state: var(--animps, running);
}
/* Use a checkbox to pause animations */
[data-animation-pause]:checked ~ [data-animation] {
--animps: paused;
}
But one of the listed use cases is great: a pure CSS slideshow that has a play/pause button:
See the Pen
<details> Play/Pause Animations by Mads Stoumann (@stoumann)
on CodePen.
Nice one!
More use cases in the full post, including the use of an IntersectionObserver to pause animations for elements that are offscreen.
How to Play and Pause CSS Animations with CSS Custom Properties →