Face de cubo

Face de cubo: um botão em CSS. Copie as regras, ou o prompt que o reconstrói.

text-swapflip3droundedtwo-labels

CSS
.btn-117 {
  position: relative;
  font: 600 14px/1 system-ui,sans-serif;
  color: #fff;
  background: #2563eb;
  border: 0;
  border-radius: 10px;
  width: 150px;
  height: 44px;
  cursor: pointer;
  perspective: 300px;
  transition: background .2s
}
.btn-117 span,.btn-117 i {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-style: normal;
  backface-visibility: hidden;
  transition: transform .45s
}
.btn-117 i {
  transform: rotateX(-90deg) translateZ(22px);
  color: #dbeafe;
  font-weight: 500
}
.btn-117 span {
  transform: rotateX(0) translateZ(22px)
}
.btn-117:hover span {
  transform: rotateX(90deg) translateZ(22px)
}
.btn-117:hover i {
  transform: rotateX(0) translateZ(22px)
}
.btn-117:focus-visible {
  outline: 2px solid #2563eb;
  outline-offset: 3px
}
.btn-117:active {
  background: #1d4ed8
}
HTML
<button class="btn-117"><span>Download</span><i aria-hidden="true">4.2 MB</i></button>
Prompt

Um botão azul #2563eb (raio de 10px, 150px por 44px) cujo rótulo "Download" gira em torno do eixo X como a face de um cubo no hover, enquanto uma segunda face "4.2 MB" em azul claro #dbeafe entra girando por baixo, em 450ms, usando perspective e backface-visibility hidden. Active #1d4ed8. Foco com outline azul de 2px e offset de 3px.