jQuery Effects are usually easier to work with than CSS alternatives, single predictable line with events vs multiple lines that you can’t hook thing into easily. Note that I’m not defending jQuery nowadays I even void it and always prefer vanilla, but there are things on that library that are objectify easier to do.
Use CSS animations everywhere you can, but if you need to be able to hook into an animation (to dynamically change the speed, cancel something, sync animations together, etc…) you should be using the Animation API.
jQuery Effects are usually easier to work with than CSS alternatives, single predictable line with events vs multiple lines that you can’t hook thing into easily. Note that I’m not defending jQuery nowadays I even void it and always prefer vanilla, but there are things on that library that are objectify easier to do.
I think you’re forgetting about the Animation API.
Example: making something flash once to get a user’s attention
element.animate( {opacity: [1, 0, 1]}, { duration: 500 } );
Use CSS animations everywhere you can, but if you need to be able to hook into an animation (to dynamically change the speed, cancel something, sync animations together, etc…) you should be using the Animation API.
There’s never a need for jQuery.