Как дать transition градиенту?
Смотря какая вам нужна анимация. Просто заменить background не получится, но можно изменять позицию и размер создавая эффект плавного перелива цвета из одного в другой:

snippet
Этого нельзя сделать