Animasyonlu kapatma için farklı bir CSS animation yazmalısın. İlkinin aksine opacity değeri 1'den 0'a inmeli. İkinci hata ise animasyonun ardından display:none kullanman. Bunu kullandığında animasyon kullanımı gözardı edilip div'in otomatikman anında gizleniyor.

CSS kısmına şunu ekle:

.search-container.passive{animation: popupKapat .5s linear;}

/* Animasyonlu Kapatma */
@-webkit-keyframes popupKapat {from {top:0; opacity: 1;} to {top:0px; opacity:0;}}
@keyframes popupKapat {from {top:0; opacity: 1;} to {top:0px; opacity:0;}}
javascripti ise şu şekilde değiştir:

const searchInput = document.querySelector(".search-icon");
const searchContainer = document.querySelector(".search-container");
const searchCloseBtn = document.querySelector(".search-close-btn");

searchInput.addEventListener("click", () => {
searchContainer.classList.add("active");
searchContainer.classList.remove("passive");
searchCloseBtn.style.display = "block";
});

searchCloseBtn.addEventListener("click", () => {

searchContainer.classList.add("passive");

setTimeout(function(){
searchContainer.classList.remove("active");
searchCloseBtn.style.display = "none";
}, 500)

searchInput.value = "";
});
Örnek çalışan sayfa