Riscar e substituir
Riscar e substituir: um botão em CSS. Copie as regras, ou o prompt que o reconstrói.
CSS
.btn-119 {
font: 600 15px/1 system-ui,sans-serif;
color: #fff;
background: #16a34a;
border: 0;
border-radius: 8px;
padding: 13px 22px;
cursor: pointer;
display: inline-flex;
gap: 8px;
align-items: center;
transition: background .2s
}
.btn-119 s {
color: #bbf7d0;
text-decoration: none;
position: relative
}
.btn-119 s::after {
content: "";
position: absolute;
left: 0;
right: 100%;
top: 50%;
height: 2px;
background: #fff;
transition: right .3s
}
.btn-119 b {
max-width: 0;
overflow: hidden;
opacity: 0;
transition: max-width .3s,opacity .3s;
font-weight: 800
}
.btn-119:hover s::after {
right: 0
}
.btn-119:hover b {
max-width: 60px;
opacity: 1
}
.btn-119:hover {
background: #15803d
}
.btn-119:focus-visible {
outline: 2px solid #16a34a;
outline-offset: 3px
}
.btn-119:active {
background: #166534
}
HTML
<button class="btn-119"><s>$29</s><b>$19</b>Upgrade</button>Prompt
Um botão verde #16a34a, raio de 8px, texto branco de 15px semibold, padding de 13px por 22px, mostrando "$29 Upgrade" com o preço em verde claro #bbf7d0. No hover uma linha branca de 2px risca o preço antigo da esquerda para a direita (300ms) e um "$19" em bold se expande ao lado; fundo #15803d. Active #166534. Foco com outline verde de 2px e offset de 3px.