Делаем плавное появление блока при наведении

CSS-cвойство display не работает в связке с transition. Поэтому, для плавного появления блока при наведении можно использовать свойства visibility + opacity:

div {
  visibility: hidden;
  opacity: 0;
  transition: visibility 0s, opacity 0.5s linear;
}
div:hover {
  visibility: visible;
  opacity: 1;
}
Если есть вопросы или предложения, пишите мне в телеграм @g3nnadych или whatsapp.