<div class="courage">
<div class="head">
<div class="ear left"></div>
<div class="ear right"></div>
<div class="eye-container">
<div class="eye left">
<div class="blood-vessel"></div>
<div class="blood-vessel"></div>
<div class="blood-vessel"></div>
<div class="blood-vessel"></div>
<div class="blood-vessel"></div>
<div class="blood-vessel"></div>
<div class="blood-vessel"></div>
<div class="blood-vessel"></div>
</div>
</div>
<div class="eye-container right">
<div class="eye right">
<div class="blood-vessel"></div>
<div class="blood-vessel"></div>
<div class="blood-vessel"></div>
<div class="blood-vessel"></div>
<div class="blood-vessel"></div>
<div class="blood-vessel"></div>
<div class="blood-vessel"></div>
<div class="blood-vessel"></div>
</div>
</div>
<div class="cheek left">
<div class="dot"></div>
<div class="mustache"></div>
<div class="mustache"></div>
</div>
<div class="cheek right">
<div class="dot"></div>
<div class="dot"></div>
<div class="dot"></div>
<div class="mustache"></div>
</div>
<div class="nouse"></div>
</div>
<div class="body">
<div class="leg top left">
<div class="paw">
<div class="finger"></div>
<div class="finger"></div>
<div class="finger"></div>
</div>
</div>
<div class="leg top right">
<div class="paw">
<div class="finger"></div>
<div class="finger"></div>
<div class="finger"></div>
</div>
</div>
<div class="leg bottom left">
<div class="paw">
<div class="finger"></div>
<div class="finger"></div>
<div class="finger"></div>
</div>
</div>
<div class="leg bottom right">
<div class="paw">
<div class="finger"></div>
<div class="finger"></div>
<div class="finger"></div>
</div>
</div>
</div>
</div>
:root {
--pink: #e99cca;
--dark-pink: #e369c3;
--black: #010100;
--light: #b03702;
--cian: #51bbb7;
--bg-1: #8b45f7;
--bg-2: #3333;
}
body {
background-color: #572fac;
height: 100vh;
overflow: hidden;
display: grid;
place-items: center;
background-image: linear-gradient(
30deg,
var(--bg-1) 12%,
transparent 12.5%,
transparent 87%,
var(--bg-1) 87.5%,
var(--bg-1)
),
linear-gradient(
150deg,
var(--bg-1) 12%,
transparent 12.5%,
transparent 87%,
var(--bg-1) 87.5%,
var(--bg-1)
),
linear-gradient(
30deg,
var(--bg-1) 12%,
transparent 12.5%,
transparent 87%,
var(--bg-1) 87.5%,
var(--bg-1)
),
linear-gradient(
150deg,
var(--bg-1) 12%,
transparent 12.5%,
transparent 87%,
var(--bg-1) 87.5%,
var(--bg-1)
),
linear-gradient(
60deg,
var(--bg-2) 25%,
transparent 25.5%,
transparent 75%,
var(--bg-2) 75%,
var(--bg-2)
),
linear-gradient(
60deg,
var(--bg-2) 25%,
transparent 25.5%,
transparent 75%,
var(--bg-2) 75%,
var(--bg-2)
);
background-size: 20px 35px;
background-position: 0 0, 0 0, 10px 18px, 10px 18px, 0 0, 10px 18px;
// background: #423C6A;
}
.courage {
width: 89px;
height: 190px;
position: relative;
filter: drop-shadow(5px 5px 2px #1118);
transition: transform 1.3s;
&:hover {
transform: scale(1.2);
}
& .head {
width: 89px;
height: 105px;
background-color: var(--pink);
position: absolute;
top: 0;
border-radius: 50% 50% 0% 0% / 72% 72% 0% 0%;
border: 2px solid var(--black);
box-sizing: border-box;
z-index: 2;
& .ear {
position: absolute;
&.left {
width: 16px;
height: 68px;
top: -73px;
left: 7px;
transform-origin: bottom center;
transform: rotate(-60deg);
&::before {
content: "";
width: 7px;
height: 17px;
position: absolute;
bottom: 0;
right: 1px;
background-color: var(--black);
clip-path: polygon(0 0, 100% 0, 100% 100%, 25% 100%);
}
&::after {
content: "";
width: 16px;
height: 52px;
position: absolute;
top: 0;
background-color: var(--black);
background-image: radial-gradient(
7px 44px at 10px center,
var(--light) 38%,
transparent 42%
);
border-radius: 68% 32% 10% 54% / 65% 42% 58% 35%;
}
}
&.right {
width: 77px;
height: 31px;
top: -25px;
left: 70px;
&::before {
content: "";
width: 7px;
height: 36px;
position: absolute;
top: -19px;
left: -4px;
background-color: var(--black);
border-radius: 3px;
transform-origin: bottom center;
transform: rotate(70deg);
}
&::after {
content: "";
width: 16px;
height: 52px;
position: absolute;
top: -11px;
right: 17px;
transform: rotate(115deg);
background-color: var(--black);
background-image: radial-gradient(
5px 50px at 5px center,
var(--light) 38%,
transparent 42%
);
box-shadow: inset 2px 2px var(--black);
border-radius: 68% 32% 40% 54% / 65% 42% 58% 35%;
}
}
}
& .eye-container {
position: relative;
&::after {
content: "";
width: 46px;
height: 30px;
position: absolute;
top: -36px;
left: -18px;
box-shadow: 7px 8px 0 -3px var(--black);
clip-path: polygon(
9% 50%,
150% 70%,
200% 200%,
22% 200%,
-50% 200%,
-15% 80%
);
rotate: -15deg;
border-radius: 50%;
clip-path: polygon(
-50% 70%,
91% 50%,
115% 80%,
200% 200%,
-50% 200%,
-50% 200%
);
}
&.right::after {
left: 70%;
box-shadow: -7px 8px 0 -3px var(--black);
rotate: 18deg;
clip-path: polygon(
9% 50%,
150% 70%,
200% 200%,
22% 200%,
-50% 200%,
-15% 80%
);
}
&::before {
content: "";
width: 46px;
height: 95px;
position: absolute;
border-radius: 50%;
z-index: 1;
top: -19px;
left: -9px;
box-shadow: 1px 5px 0 -3px var(--black);
}
&.right::before {
left: 48px;
box-shadow: -1px 5px 0 -3px var(--black);
}
& .eye {
width: 46px;
height: 95px;
background-color: #fff;
position: absolute;
top: -20px;
border: 2px solid var(--black);
box-sizing: border-box;
overflow: hidden;
&::before {
content: "";
width: 9px;
height: 17px;
position: absolute;
border-radius: 50%;
background: radial-gradient(at 65% 35%, #fff 20%, var(--black) 25%);
top: 30%;
left: 50%;
animation: move 0.2s infinite ease-in-out;
}
&::after {
content: "";
width: 100%;
height: 30%;
position: absolute;
top: 0;
background-color: var(--dark-pink);
clip-path: polygon(0% 0%, 100% 0%, 100% 60%, 0% 100%);
animation: blink 8s infinite ease-in-out;
}
& .blood-vessel {
position: absolute;
background-color: var(--cian);
}
&.left {
left: -6px;
border-radius: 60% 40% 50% 50% / 50% 30% 70% 50%;
clip-path: polygon(0 21%, 0 40%, 0 100%, 100% 100%, 100% 0, 115% 0);
& .blood-vessel:nth-child(1) {
width: 9px;
height: 24px;
bottom: 5px;
right: 8px;
clip-path: polygon(
42% 100%,
34% 88%,
37% 80%,
48% 70%,
53% 64%,
42% 57%,
26% 52%,
26% 45%,
40% 50%,
53% 55%,
62% 58%,
74% 53%,
78% 45%,
75% 35%,
74% 28%,
88% 34%,
91% 44%,
91% 50%,
84% 59%,
75% 65%,
65% 72%,
57% 79%,
55% 86%,
64% 100%
);
}
& .blood-vessel:nth-child(2) {
width: 9px;
height: 9px;
top: 55px;
right: 2px;
clip-path: polygon(
100% 31%,
78% 27%,
53% 28%,
38% 31%,
66% 40%,
86% 46%,
100% 55%
);
}
& .blood-vessel:nth-child(3) {
width: 9px;
height: 9px;
top: 30px;
right: -2px;
clip-path: polygon(
100% 31%,
78% 27%,
53% 28%,
38% 31%,
66% 40%,
86% 46%,
100% 55%
);
}
& .blood-vessel:nth-child(4) {
width: 9px;
height: 9px;
top: 10px;
right: 2px;
clip-path: polygon(
81% 1%,
52% 13%,
41% 25%,
29% 39%,
28% 52%,
26% 63%,
27% 71%,
35% 49%,
45% 39%,
56% 33%,
68% 30%,
81% 29%,
88% 28%,
100% 29%,
100% 0%
);
}
& .blood-vessel:nth-child(5) {
width: 9px;
height: 9px;
bottom: 6px;
left: 10px;
clip-path: polygon(
0 100%,
11% 89%,
18% 81%,
28% 68%,
31% 60%,
37% 50%,
42% 40%,
47% 30%,
46% 40%,
43% 50%,
40% 58%,
38% 66%,
34% 73%,
31% 79%,
27% 85%,
22% 91%,
17% 95%,
13% 100%
);
}
& .blood-vessel:nth-child(6) {
width: 14px;
height: 14px;
bottom: 16px;
left: 3px;
clip-path: polygon(
0% 80%,
9% 66%,
16% 52%,
25% 48%,
39% 46%,
48% 35%,
48% 24%,
51% 15%,
52% 23%,
51% 30%,
54% 39%,
51% 44%,
55% 47%,
61% 49%,
66% 46%,
71% 44%,
77% 46%,
80% 54%,
75% 52%,
66% 52%,
62% 56%,
55% 58%,
49% 54%,
44% 53%,
29% 57%,
25% 62%,
19% 70%,
16% 76%,
8% 88%,
0% 100%
);
}
& .blood-vessel:nth-child(7) {
width: 9px;
height: 9px;
bottom: 46px;
left: 0;
clip-path: polygon(
0% 66%,
8% 52%,
18% 45%,
29% 43%,
37% 45%,
41% 51%,
45% 58%,
53% 58%,
61% 52%,
65% 46%,
67% 53%,
64% 61%,
58% 66%,
50% 70%,
41% 70%,
33% 63%,
26% 63%,
15% 70%,
9% 83%,
0% 89%
);
}
& .blood-vessel:nth-child(8) {
width: 9px;
height: 9px;
bottom: 66px;
left: 4px;
clip-path: polygon(
1% 61%,
15% 49%,
36% 41%,
46% 46%,
60% 48%,
48% 53%,
36% 53%,
24% 55%,
15% 64%,
0 80%
);
}
}
&.right {
right: -6px;
border-radius: 40% 60% 50% 50% / 30% 50% 50% 70%;
clip-path: polygon(0 0, 0 100%, 100% 100%, 100% 22%, 10% 0);
&::before {
top: 25%;
left: 20%;
animation: move 0.2s infinite ease-in-out reverse;
}
&::after {
clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 60%);
}
& .blood-vessel:nth-child(1) {
width: 9px;
height: 24px;
bottom: 5px;
left: 12px;
clip-path: polygon(
1% 98%,
5% 86%,
15% 76%,
28% 66%,
34% 58%,
27% 46%,
26% 38%,
28% 31%,
31% 36%,
32% 46%,
38% 51%,
43% 54%,
52% 51%,
59% 47%,
68% 41%,
74% 32%,
77% 24%,
77% 35%,
76% 41%,
67% 50%,
61% 54%,
53% 58%,
43% 63%,
36% 68%,
30% 75%,
24% 82%,
17% 89%,
10% 100%,
0 100%
);
}
& .blood-vessel:nth-child(2) {
width: 9px;
height: 24px;
bottom: 1px;
right: 5px;
clip-path: polygon(
96% 100%,
96% 81%,
88% 58%,
68% 39%,
59% 30%,
53% 21%,
51% 28%,
54% 36%,
60% 42%,
67% 50%,
73% 62%,
78% 70%,
80% 81%,
81% 91%,
80% 100%
);
}
& .blood-vessel:nth-child(3) {
width: 9px;
height: 9px;
bottom: 25px;
left: 4px;
clip-path: polygon(
0% 60%,
12% 45%,
30% 29%,
44% 24%,
56% 21%,
48% 29%,
32% 37%,
23% 45%,
16% 55%,
10% 64%,
12% 75%,
26% 84%,
39% 85%,
51% 82%,
49% 88%,
36% 93%,
26% 94%,
15% 92%,
7% 88%,
0% 82%
);
}
& .blood-vessel:nth-child(4) {
width: 9px;
height: 9px;
bottom: 40px;
left: 1px;
clip-path: polygon(
0 69%,
12% 68%,
26% 65%,
30% 53%,
33% 42%,
34% 31%,
34% 26%,
38% 37%,
38% 52%,
38% 62%,
38% 71%,
34% 76%,
23% 79%,
11% 83%,
0 86%
);
}
& .blood-vessel:nth-child(5) {
width: 9px;
height: 9px;
bottom: 70px;
left: 1px;
clip-path: polygon(
0 0,
12% 20%,
24% 29%,
46% 43%,
59% 50%,
40% 47%,
28% 44%,
16% 39%,
8% 33%,
0% 27%
);
}
& .blood-vessel:nth-child(6) {
width: 10px;
height: 10px;
bottom: 30px;
right: 1px;
clip-path: polygon(
100% 65%,
93% 59%,
80% 55%,
76% 36%,
66% 25%,
57% 18%,
39% 9%,
29% 5%,
31% 14%,
41% 20%,
47% 23%,
54% 28%,
60% 37%,
64% 46%,
66% 53%,
57% 57%,
44% 56%,
35% 55%,
30% 48%,
32% 58%,
35% 64%,
44% 67%,
56% 67%,
65% 67%,
72% 67%,
82% 69%,
89% 73%,
100% 79%
);
}
& .blood-vessel:nth-child(7) {
width: 9px;
height: 9px;
top: 35px;
right: -2px;
clip-path: polygon(
100% 31%,
78% 27%,
53% 28%,
38% 31%,
66% 40%,
86% 46%,
100% 55%
);
}
& .blood-vessel:nth-child(8) {
width: 9px;
height: 9px;
top: 20px;
right: 1px;
clip-path: polygon(
100% 31%,
78% 27%,
53% 28%,
38% 31%,
66% 40%,
86% 46%,
100% 55%
);
}
}
}
}
& .cheek {
width: 54px;
height: 36px;
border-radius: 50%;
position: absolute;
background-color: var(--pink);
border: 2px solid var(--black);
box-sizing: border-box;
bottom: -12px;
right: -20px;
&.right {
&::after {
content: "";
width: 85px;
height: 8px;
border-radius: 3px;
position: absolute;
background-color: var(--pink);
top: -3px;
left: -53px;
}
& .mustache {
clip-path: polygon(69% -2%, 100% -2%, 100% 40%, 69% 12%);
box-shadow: -1px -2px 0 var(--black);
left: 9px;
top: 16px;
height: 20px;
}
}
& .mustache {
width: 54px;
height: 32px;
left: -11px;
top: 22px;
box-shadow: 1px -2px 0 var(--black);
clip-path: polygon(0% 1%, 34% 0%, 50% 100%, 0% 100%);
border-radius: 50%;
position: absolute;
}
&.left {
left: -20px;
& .mustache {
width: 54px;
height: 32px;
left: -11px;
top: 22px;
box-shadow: 1px -2px 0 var(--black);
clip-path: polygon(0% 1%, 34% 0%, 50% 100%, 0% 100%);
border-radius: 50%;
position: absolute;
&:nth-child(2) {
top: 15px;
left: -32px;
clip-path: polygon(40% -2%, 67% -3%, 50% 50%, 0% 50%);
}
}
}
& .dot {
width: 4px;
height: 4px;
background-color: var(--black);
border-radius: 50%;
position: absolute;
top: 50%;
left: 40%;
}
&.right .dot {
top: 30%;
left: 55%;
}
&.right .dot:nth-child(2) {
top: 65%;
left: 45%;
}
&.right .dot:nth-child(3) {
top: 55%;
left: 70%;
}
}
& .nouse {
width: 65px;
height: 36px;
position: absolute;
bottom: -12px;
left: 12px;
background-color: var(--black);
border: 2px solid var(--black);
box-sizing: border-box;
border-radius: 50% 50% 50% 50% / 30% 30% 70% 70%;
clip-path: polygon(
0 0,
100% 0,
100% 35%,
97% 43%,
60% 97%,
56% 100%,
44% 100%,
40% 97%,
3% 43%,
0 35%
);
background-image: radial-gradient(
65px 20px at center -3px,
#b03702 65%,
transparent 68%
),
radial-gradient(
37px 26px at 15px 2px,
var(--black) 60%,
transparent 63%
),
radial-gradient(55px 40px at center -4px, #b03702 62%, transparent 65%);
}
}
& .body {
width: 100%;
height: 83px;
position: absolute;
border-radius: 100% 0% 67% 55% / 100% 0% 100% 28%;
background: var(--pink);
bottom: 0;
border: 2px solid var(--black);
box-sizing: border-box;
&::before {
content: "";
width: 46px;
height: 91px;
position: absolute;
top: -26px;
left: -40px;
border-radius: 50%;
box-shadow: 2px 0 0 var(--black), 40px 0 0 var(--pink);
clip-path: polygon(300% 26%, 300% 90%, 52% 65%, 50% 28%);
}
& .leg.top {
width: 15px;
height: 32px;
position: absolute;
z-index: 3;
top: 5px;
&::after {
content: "";
width: 20px;
height: 10px;
background-color: var(--pink);
position: absolute;
bottom: -2px;
}
&.left {
left: 25px;
border-radius: 100% 0% 0% 0% / 100% 100% 0% 0%;
box-shadow: -2px 0 0 var(--black), -6px 0 0 var(--pink),
-8px 0 0 var(--black);
&::after {
right: 5px;
transform: rotate(-30deg);
}
animation: tremble 0.2s infinite ease-in-out;
transform-origin: bottom left;
}
&.right {
left: 50px;
border-radius: 0% 100% 0% 0% / 0% 100% 0% 0%;
box-shadow: 2px 0 0 var(--black), 6px 0 0 var(--pink),
8px 0 0 var(--black);
&::after {
left: 5px;
transform: rotate(30deg);
}
animation: tremble 0.2s infinite ease-in-out reverse;
transform-origin: bottom right;
}
& .paw {
width: 16px;
height: 13px;
position: absolute;
top: -10px;
left: -2px;
&::after {
content: "";
width: 5px;
height: 7px;
background-color: var(--pink);
position: absolute;
bottom: -2px;
left: 5px;
border-radius: 50%;
}
& .finger {
width: 8px;
height: 10px;
border-radius: 4px 4px 0 0;
position: absolute;
background-color: var(--pink);
border: 2px solid var(--black);
box-sizing: border-box;
border-bottom-color: transparent;
left: 4px;
top: -2px;
&:nth-child(1) {
transform: rotate(-90deg);
top: 5px;
left: -1px;
}
&:nth-child(2) {
transform: rotate(90deg);
top: 5px;
left: 9px;
}
}
}
&.left .paw {
transform: rotate(35deg);
left: 2px;
}
&.right .paw {
transform: rotate(-37deg);
right: 2px;
}
}
& .leg.bottom {
width: 19px;
height: 35px;
position: absolute;
border-radius: 50%;
top: 66px;
left: 10px;
z-index: 1;
box-shadow: -4px 0 0 -2px var(--black), -8px 0 0 -2px var(--pink),
-10px 0 0 -2px var(--black);
&::after {
content: "";
width: 16px;
height: 10px;
border-radius: 50%;
background-color: var(--pink);
position: absolute;
left: -5px;
top: -1px;
}
&.left {
animation: tremble 0.2s infinite ease-in-out;
transform-origin: top left;
}
&.right {
left: 36px;
box-shadow: 4px 0 0 -2px var(--black), 8px 0 0 -2px var(--pink),
10px 0 0 -2px var(--black);
&::after {
left: 9px;
top: 0px;
}
animation: tremble 0.2s infinite ease-in-out reverse;
transform-origin: top right;
}
& .paw {
width: 16px;
height: 13px;
position: absolute;
bottom: -10px;
left: -2px;
&::after {
content: "";
width: 5px;
height: 7px;
background-color: var(--pink);
position: absolute;
bottom: -2px;
left: 5px;
border-radius: 50%;
}
& .finger {
width: 8px;
height: 10px;
border-radius: 4px 4px 0 0;
position: absolute;
background-color: var(--pink);
border: 2px solid var(--black);
box-sizing: border-box;
border-bottom-color: transparent;
left: 4px;
top: -2px;
&:nth-child(1) {
transform: rotate(-90deg);
top: 5px;
left: -1px;
}
&:nth-child(2) {
transform: rotate(90deg);
top: 5px;
left: 9px;
}
}
}
&.left .paw {
transform: rotate(160deg);
left: -6px;
}
&.right .paw {
transform: rotate(-150deg);
left: 7px;
bottom: -8px;
}
}
&::after {
content: "";
width: 130%;
height: 25px;
position: absolute;
background-color: #0006;
border-radius: 50%;
bottom: -40px;
left: -15px;
box-shadow: 0 0 10px #000;
}
}
}
@keyframes tremble {
from {
transform: rotate(-2deg);
}
to {
transform: rotate(2deg);
}
}
@keyframes blink {
0%,
70%,
100% {
transform: translate(0px, -100%);
}
75%,
95% {
transform: translate(0, 0);
}
}
@keyframes move {
from {
transform: translate(0px, -1px);
}
to {
transform: translate(0px, 1px);
}
}
View Compiled
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.