.sticker-btn {
--ink: #101820;
--cream: #f7f3e9;
--mint: #3ee6a8;
cursor: pointer;
position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
font-weight: 700;
line-height: 1;
font-size: 1rem;
border-radius: 1.4rem;
border: none;
background: transparent;
padding: 0;
outline: 2px solid transparent;
outline-offset: 6px;
color: var(--cream);
}
.sticker-btn:active {
outline-color: var(--mint);
}
.sticker-btn:focus-visible {
outline-color: var(--mint);
outline-style: dashed;
}
.sticker-btn .layer1 {
padding: 2px;
border-radius: 1.4rem;
background-color: var(--mint);
transform: translate(-4px, -4px);
transition: transform 150ms ease, box-shadow 150ms ease;
box-shadow: 0.5px 0.5px 0 0 var(--mint), 1px 1px 0 0 var(--mint), 1.5px 1.5px 0 0 var(--mint), 2px 2px 0 0 var(--mint), 2.5px 2.5px 0 0 var(--mint), 3px 3px 0 0 var(--mint), 0 0 0 2px var(--ink), 0.5px 0.5px 0 2px var(--ink), 1px 1px 0 2px var(--ink), 1.5px 1.5px 0 2px var(--ink), 2px 2px 0 2px var(--ink), 2.5px 2.5px 0 2px var(--ink), 3px 3px 0 2px var(--ink), 3.5px 3.5px 0 2px var(--ink), 4px 4px 0 2px var(--ink), 0 0 0 4px var(--cream), 0.5px 0.5px 0 4px var(--cream), 1px 1px 0 4px var(--cream), 1.5px 1.5px 0 4px var(--cream), 2px 2px 0 4px var(--cream), 2.5px 2.5px 0 4px var(--cream), 3px 3px 0 4px var(--cream), 3.5px 3.5px 0 4px var(--cream), 4px 4px 0 4px var(--cream);
}
.sticker-btn:hover .layer1 {
transform: translate(0, 0);
box-shadow: 0 0 0 0 var(--mint), 0 0 0 0 var(--mint), 0 0 0 0 var(--mint), 0 0 0 0 var(--mint), 0 0 0 0 var(--mint), 0 0 0 0 var(--mint), 0 0 0 2px var(--ink), 0 0 0 2px var(--ink), 0 0 0 2px var(--ink), 0 0 0 2px var(--ink), 0 0 0 2px var(--ink), 0 0 0 2px var(--ink), 0 0 0 2px var(--ink), 0 0 0 2px var(--ink), 0 0 0 2px var(--ink), 0 0 0 4px var(--cream), 0 0 0 4px var(--cream), 0 0 0 4px var(--cream), 0 0 0 4px var(--cream), 0 0 0 4px var(--cream), 0 0 0 4px var(--cream), 0 0 0 4px var(--cream), 0 0 0 4px var(--cream), 0 0 0 4px var(--cream);
}
.sticker-btn .layer2 {
position: relative;
pointer-events: none;
border-radius: calc(1.4rem - 2px);
background-color: var(--ink);
}
.sticker-btn .layer2::before {
content: "";
position: absolute;
inset: 0;
border-radius: 1.4rem;
opacity: 0.12;
background-image: radial-gradient(rgb(255 255 255 / 80%) 20%, transparent 20%), radial-gradient(rgb(255 255 255 / 100%) 20%, transparent 20%);
background-position: 0 0, 4px 4px;
background-size: 8px 8px;
mix-blend-mode: hard-light;
box-shadow: inset 0 0 0 1px var(--ink);
animation: dots 0.4s infinite linear;
transition: opacity 150ms ease;
}
.sticker-btn .layer3 {
position: relative;
display: flex;
align-items: center;
gap: 0.4rem;
padding: 0.75rem 1.4rem;
filter: drop-shadow(0 -1px 0 var(--ink));
}
.sticker-btn:hover .layer3 {
filter: drop-shadow(0 -1px 0 rgba(255,255,255,0.12));
}
.sticker-btn:active .layer3 {
transform: translateY(2px);
}
.sticker-btn .rocket {
width: 16px;
height: 16px;
flex-shrink: 0;
transition: transform 250ms ease;
}
.sticker-btn:hover .rocket {
transform: translate(2px, -3px) rotate(8deg);
}
@keyframes dots {
0% {
background-position: 0 0, 4px 4px;
}
100% {
background-position: 8px 0, 12px 4px;
}
}
You need to sign in before you can write a comment.