<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
*, *::before, *::after {
padding: 0;
margin: 0 auto;
box-sizing: border-box;
}
body {
background-color: hotpink;
min-height: 100vh;
display: grid;
place-items: center;
font-size: 24px;
&:active :is(.skull, .eye, .nose, .tooth, .bone) {
animation: none;
}
}
.skull {
position: relative;
filter:
drop-shadow(0.2em 0.2em 0 maroon)
drop-shadow(-0.1em -0.1em 0 pink);
cursor: pointer;
animation: skull 4s ease-in-out;
* {
position: absolute;
background-color: rebeccapurple;
}
}
@keyframes skull {
0%, 45% { translate: 0 0; }
7% { translate: 0 0.5em; }
15% { translate: 0 -1em; }
25% { translate: 0 0.25em; }
35% { translate: 0 -0.25em; }
}
.head {
inset: -3em -4em;
border-radius: 50% / 60% 60% 40% 40%;
translate: 0 -2em;
.eye {
inset: 2.2em 3em;
background-color: hotpink;
box-shadow:
0.2em 0.2em 0 maroon inset,
-0.1em -0.1em 0 pink inset;
border-radius: 50% / 40% 40% 60% 60%;
animation: face 4s ease-in-out;
&:nth-child(1) {
translate: -1.2em -0.6em;
rotate: -15deg;
}
&:nth-child(2) {
translate: 1.2em -0.6em;
rotate: 15deg;
}
}
.nose {
inset: 2.2em 3.5em;
background-color: hotpink;
box-shadow:
0.2em 0.2em 0 maroon inset,
-0.1em -0.1em 0 pink inset;
border-radius: 50% / 80% 80% 20% 20%;
translate: 0 1.35em;
animation: face 4s -0.1s ease-in-out;
}
.tooth {
inset: 1.25em 3.25em;
border-radius: 50%;
animation: face 4s ease-in-out;
&:nth-child(3) {
translate: 0em 2.75em;
animation-delay: 0.15s;
}
&:nth-child(4) {
translate: 1.5em 2.75em;
rotate: 15deg;
animation-delay: 0.25s;
}
&:nth-child(5) {
translate: -1.5em 2.75em;
rotate: -15deg;
animation-delay: 0.2s;
}
}
}
@keyframes face {
0%, 45%, 100% { transform: translateY(0em); }
7% { transform: translateY(-0.25em); }
15% { transform: translateY(0.25em); }
25% { transform: translateY(-0.15em); }
33% { transform: translateY(0.15em); }
39% { transform: translateY(-0.05em); }
43% { transform: translateY(0.05em); }
}
.bone {
inset: -0.5em -5.5em;
translate: 0 3em;
animation: bone 4s ease-in-out;
i {
border-radius: 50%;
&:nth-child(1) {
inset: -1em 10em 0.5em -1em;
}
&:nth-child(2) {
inset: 0.5em 10em -1em -1em;
}
&:nth-child(3) {
inset: -1em -1em 0.5em 10em;
}
&:nth-child(4) {
inset: 0.5em -1em -1em 10em;
}
}
&:nth-child(2) {
rotate: 20deg;
transform-origin: 2em 50%
}
&:nth-child(3) {
rotate: -20deg;
transform-origin: 9em 50%;
}
}
@keyframes bone {
0%, 45%, 100% { transform: rotate(0deg); }
7% { transform: rotate(4deg); }
15% { transform: rotate(-8deg); }
25% { transform: rotate(5deg); }
33% { transform: rotate(-3deg); }
39% { transform: rotate(2deg); }
43% { transform: rotate(-1deg); }
}
</style>
</head>
<body>
<div class="skull">
<div class="head">
<div class="eye"></div>
<div class="eye"></div>
<div class="tooth"></div>
<div class="tooth"></div>
<div class="tooth"></div>
<div class="nose"></div>
</div>
<div class="bone">
<i></i><i></i><i></i><i></i>
</div>
<div class="bone">
<i></i><i></i><i></i><i></i>
</div>
</div>
</body>
</html>
index.html
index.html