Это делается в два слоя. На первом - картинка, название и вся сопутствующая информация. На втором - кнопки добавления в корзину, поделится и лайк. Второй слой изначально делаете скрытым, рисуете его поверх (position: absolute), скрываете (opacity: 0; visibility: hidden;). При (:focus, :focus-within и :hover) показываете (opacity: 1; visibility: visible;).
Возможно добавляете JS, чтобы узнать, был ли наведен курсор и после убран с карточки (именно в таком порядке), чтобы скрыть второй слой (сделать .blur, если пользователь сфокусирован).