Learned about the "outline" property today. It's exactly what I was looking for to create a hover effect recently. The only difference between "outline" and "border" is that outline DOES NOT take up physical space. It's a bit like an illusion, where as border will change the spacing of an object and objects around it. https://www.w3schools.com/css/css_outline.asp
I always * { box-sizing: border-box; } so borders don't change the size of the element nor stuff around (it does compress stuff inside though)