Это можно сделать с помощью CSS: селектор при наведении.
Что они здесь делают, так это то, что они дают низ текст
opacity: 0;
transform: translateY(-10px);
transition: .25s cubic-bezier(.165,.84,.44,1);
и они дают верхний текст
transform: translateY(10px);
transition: .25s cubic-bezier(.165,.84,.44,1);
То, что происходит, плавно перестраивает текст, а также скрывает нижний.
Редактировать:
CSS связан следующим образом:
.project-link:hover .link__headline
.project-link:hover .link__subline
Таким образом, когда .project-link перемещается, нижний и верхний текст анимируются одновременно.