Смотря какая анимация вам нужно и что под анимацией вы подразумиваете.
Кто-то путает анимацию с плавными переходами между состояниями (CSS transition), в этом случае обходится все без библиотек, вы указываете стили элемента в одном состояние и указываете какие свойства должны плавно меняться, затем пишите стили для другого состояния где изменены плавноизменяемые свойства. При изменении состояния будет плавное изменение свойств.
Есть именно CSS animation, где вы описываете саму анимацию и применяете её к нужным элементам. Есть разные библиотеки с наборами анимаций которые вы можете использовать у себя просто подключив или скопировав себе стили самой анимации и применив её в нужном месте.
Например
Бывают случаи когда анимация может создаваться динамически в зависимости от положения элемента, координат клика и прочих изменяемых и вычисляемых параметров. В таких случаях можно комбинировать JS и CSS для получения нужного результата, на JS вычисляете необходимые параметры и на их основе либо задаете свойства для анимации или плавных переходов.