ロケット発射ボタンRocket Launch
.cg-btn-rocket {
position: relative;
display: inline-flex;
align-items: center;
gap: 12px;
padding: 15px 34px;
font-size: 15px;
font-weight: 900;
letter-spacing: .1em;
color: #fff;
background: linear-gradient(135deg, #2B2F55, #14162C);
border: none;
border-radius: 12px;
overflow: hidden;
cursor: pointer;
}
.cg-btn-rocket .rocket {
position: relative;
width: 16px;
height: 22px;
border-radius: 50% 50% 40% 40%;
background: linear-gradient(#fff, #C7D0E0);
transition: transform .5s cubic-bezier(.5, -0.3, .7, 1);
}
.cg-btn-rocket .rocket::before {
content: "";
position: absolute;
bottom: 2px;
left: -4px;
right: -4px;
height: 6px;
background: #E8557E;
clip-path: polygon(0 100%, 30% 0, 70% 0, 100% 100%);
}
.cg-btn-rocket .flame {
position: absolute;
bottom: -8px;
left: 50%;
width: 8px;
height: 0;
margin-left: -4px;
border-radius: 50% 50% 60% 60%;
background: linear-gradient(#FFE14D, #FF8A4D);
transform-origin: top;
transition: height .3s;
}
.cg-btn-rocket b { position: relative; z-index: 1; }
/* ホバーでロケットが上へ発射、噴射炎が伸びる */
.cg-btn-rocket:hover .rocket { transform: translateY(-46px); }
.cg-btn-rocket:hover .flame { height: 16px; animation: cg-btn-rocket-flame .15s linear infinite; }
@keyframes cg-btn-rocket-flame {
50% { height: 22px; opacity: .8; }
}
<button class="cg-btn-rocket" type="button"><span class="rocket" aria-hidden="true"><i class="flame"></i></span><b>LAUNCH</b></button>