your opinion wanted to hear
I like to do everything in CSS, but... If the animation needs to be interactive and need to stop her in the process, to roll back to its original position, etc., or some parts of it depend on data (in the broad sense is a motion on complex trajectories, and plotting, etc.) and they are easier to calculate with a script than to find the coefficients of keyframes in CSS, then JS would be the best choice. If is a sequence of small interconnected changes, the scripts will almost always be easier to implement. If we are talking about CSS animations with filters (especially SVG filters), you can fly in a very strong performance issues on weak hardware. And no khaki GPU will not help - it will still be slow. In such a situation, it may make sense not just to write on JS, but also to connect WebGL and doing everything by hand on the shaders.
In other cases it is necessary to look at the situation different :hover / :focus effects are usually easily implemented in CSS, and if so, what for something to invent? CSS recently very good. But if, for example, in the project all the animation is done in JS, it might make sense to continue to do the same, keeping the uniformity in the code.