پیشنمایش زنده
کد HTML
<button class="btn">
<span class="shadow"></span>
<span class="edge"></span>
<span class="front">Just Press!</span>
</button>
کد CSS
.btn {
position: relative;
background: transparent;
border: none;
padding: 0;
cursor: pointer;
outline-offset: 4px;
-webkit-tap-highlight-color: transparent;
}
.btn .shadow {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border-radius: 16px;
background: rgba(0, 0, 0, 0.2);
will-change: transform;
transform: translateY(6px);
filter: blur(5px);
transition: transform 600ms cubic-bezier(0.3, 0.7, 0.4, 1);
}
.btn .edge {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border-radius: 16px;
background: linear-gradient(
to left,
hsl(235, 80%, 40%) 0%,
hsl(235, 80%, 55%) 12%,
hsl(235, 80%, 55%) 88%,
hsl(235, 80%, 40%) 100%
);
}
.btn .front {
display: block;
position: relative;
padding: 16px 40px;
border-radius: 16px;
font-size: 1.25rem;
font-weight: 700;
color: white;
background: hsl(235, 85%, 65%);
will-change: transform;
transform: translateY(-8px);
transition:
transform 600ms cubic-bezier(0.3, 0.7, 0.4, 1),
background 250ms;
box-shadow:
inset 0 2px 3px rgba(255, 255, 255, 0.4),
inset 0 -2px 3px rgba(0, 0, 0, 0.15);
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
letter-spacing: 0.5px;
}
.btn:hover .front {
transform: translateY(-10px);
transition: transform 250ms cubic-bezier(0.3, 0.7, 0.4, 1.5);
background: hsl(235, 85%, 68%);
}
.btn:hover .shadow {
transform: translateY(10px);
filter: blur(7px);
transition: transform 250ms cubic-bezier(0.3, 0.7, 0.4, 1.5);
}
.btn:active .front {
transform: translateY(-2px);
transition: transform 34ms;
}
.btn:active .shadow {
transform: translateY(2px);
filter: blur(2px);
transition: transform 34ms;
}