После того, как я поигрался с псевдоэлементами и другими классами, у меня есть рабочее решение !
Сначала я добавил эти два свойства в свой исходный класс .link, убедившись, что текст стабилизирован:
display: inline;
position: relative;
Затем я создал псевдоэлемент :: after для своего класса .link:
.link::after {
content: '';
position: absolute;
z-index: -1;
top: 0;
right: 0;
bottom: 0;
left: 0;
box-shadow: 0 -0.5em 0 #7ed6df inset;
transform: skew(-20deg);
opacity: 0;
}
Этот элемент использует z-индекс под исходным текстом и скрывается с непрозрачностью 0. Тень блока и перекос применяются к элементу this :: after, но поскольку его содержимое пустое, текст не затрагивается. Все, что мне нужно было сделать, это добавить функцию: hover, которая помещает псевдокласс в 1 непрозрачность:
.link:hover::after {
opacity: 1;
}
Спасибо за предложения, я хотел использовать для этого тень с тенью, поскольку я тоже пытаюсь анимировать движение смахиванием.