Camadas em parallax
Camadas em parallax: um botão em CSS. Copie as regras, ou o prompt que o reconstrói.
CSS
.btn-123 {
position: relative;
font: 700 15px/1 system-ui,sans-serif;
color: #fff;
background: #0891b2;
border: 0;
border-radius: 10px;
padding: 16px 32px;
cursor: pointer;
transform-style: preserve-3d;
transform: perspective(600px) rotateY(0);
transition: transform .3s
}
.btn-123::before {
content: "";
position: absolute;
inset: 0;
border-radius: inherit;
background: #164e63;
transform: translateZ(-14px);
transition: transform .3s
}
.btn-123 span {
display: block;
transform: translateZ(0);
transition: transform .3s
}
.btn-123:hover {
transform: perspective(600px) rotateY(-18deg)
}
.btn-123:hover::before {
transform: translateZ(-24px) translateX(-6px)
}
.btn-123:hover span {
transform: translateZ(18px)
}
.btn-123:focus-visible {
outline: 2px solid #0891b2;
outline-offset: 4px
}
.btn-123:active {
transform: perspective(600px) rotateY(-6deg) scale(.98)
}
HTML
<button class="btn-123"><span>Depth</span></button>Prompt
Um botão ciano #0891b2 com um bloco mais escuro #164e63 em pseudo-elemento posicionado 14px atrás dele em 3D (preserve-3d, perspective 600px), texto branco de 15px bold, raio de 10px, padding de 16px por 32px. No hover o botão inteiro gira 18 graus em torno de Y, o bloco de trás cai para 24px atrás e se desloca para a esquerda, e o rótulo salta 18px para frente, separando as três camadas como em parallax. No active volta suavemente para um giro de 6 graus em escala 0.98. Foco com outline ciano de 2px.