.copy-button { position: relative; width: 28px; height: 28px; padding: 0; border: none; background: none; cursor: pointer; transition: opacity 200ms; @media (--can-hover) { &:hover .copy-button__inner { background: var(--color-link-hover); } } &::before { content: ''; position: absolute; top: 0; right: 0; bottom: 0; left: 0; border-radius: 100%; background-color: var(--color-success); visibility: hidden; pointer-events: none; transform: scale(1); transition: transform 400ms ease-out, opacity 400ms; } &__inner { @apply --squircle; display: flex; justify-content: center; align-items: center; width: 100%; height: 100%; background: white; pointer-events: none; } &__icon--initial { display: flex; transform: translateZ(0); } &__icon--success { display: none; width: 24px; height: 24px; color: white; } &__copied { &::before { opacity: 0; visibility: visible; transform: scale(3.5); } .copy-button__inner, .copy-button__inner:hover { background: var(--color-success) !important; animation: check-square-in 250ms ease-in; } .copy-button__icon--initial { display: none; } .copy-button__icon--success { display: flex; animation: check-sign-in 350ms ease-in forwards; } } @keyframes check-sign-in { from { transform: scale(.7); } 80% { transform: scale(1.1); } to { transform: none; } } @keyframes check-square-in { from { transform: scale(1.05); } 80% { transform: scale(.96); } to { transform: none; } } }