Вот альтернатива, основанная на предложении Ханифа, которая использует оба псевдоэлемента вместо одного с отрицательным z-индексом.Для некоторых фонов (например, изображения или градиента) может потребоваться отрегулировать положение фона для ::after
button {
position: relative;
display: inline-block;
vertical-align: top;
background-color: blue;
color: #fff;
border-radius: none;
text-transform: uppercase;
border: none;
padding: 10px 12px;
}
button::before {
content: '';
position: absolute;
top: 5px;
left: -5px;
right: -5px;
bottom: -5px;
border: 1px solid red;
display: block;
}
button::after {
content: '';
position: absolute;
top: 5px;
left: 0;
right: 0;
height: 1px;
background: inherit;
display: block;
}
<button>View Project</button>