:root{ --slice-0: inset(50% 50% 50% 50%); --slice-1: inset(80% -6px 0 0); --slice-2: inset(50% -6px 30% 0); --slice-3: inset(10% -6px 85% 0); --slice-4: inset(40% -6px 43% 0); --slice-5: inset(80% -6px 5% 0); } .link{ color: #003346; font-family: 'Oleo Script', cursive; font-size: 28px; font-weight: 300; line-height: 20px; display: inline-block; position: relative; z-index: 1; transition: all 0.5s ease 0.3s; } .link:hover, .link:focus{ color: #FF013C; } .link:after{ content: attr(data-hover); background: linear-gradient(45deg, transparent 3%, #00E6F6 3%, #00E6F6 5%, #FF013C 5%); width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: var(--slice-0); } .link:hover:after{ animation: 1s glitch; animation-timing-function: steps(2, end); } @keyframes glitch{ 0%{ clip-path: var(--slice-1); transform: translate(-20px, -10px); } 10%{ clip-path: var(--slice-3); transform: translate(10px, 10px); } 20%{ clip-path: var(--slice-1); transform: translate(-10px, 10px); } 30%{ clip-path: var(--slice-3); transform: translate(0px, 5px); } 40%{ clip-path: var(--slice-2); transform: translate(-5px, 0px); } 50%{ clip-path: var(--slice-3); transform: translate(5px, 0px); } 60%{ clip-path: var(--slice-4); transform: translate(5px, 10px); } 70%{ clip-path: var(--slice-2); transform: translate(-10px, 10px); } 80%{ clip-path: var(--slice-5); transform: translate(20px, -10px); } 90%{ clip-path: var(--slice-1); transform: translate(-10px, 0px); } 100%{ clip-path: var(--slice-1); transform: translate(0); } } @media only screen and (max-width: 767px){ .link{ margin-bottom: 30px; } }