<div class="group">
<div class="main">
<div class="shade"></div>
</div>
<div class="legs"></div>
<div class="rim"></div>
<div class="bubbles"></div>
<div class="broom"></div>
<div class="shadow"></div>
</div>
* {
margin: 0;
padding: 0;
border: 0;
}
html, body {
min-height: 100%;
}
body {
background: #FEE5C6
}
.group {
position: relative;
top: 180px;
left: 0;
right: 0;
bottom: 0;
margin: auto;
width:500px;
height: 500px;
}
.main {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
height: 200px;
width: 200px;
border-radius: 100%;
background: #6A6561;
overflow: hidden;
}
.shade {
position: absolute;
top: 0;
left: 10;
right: 0;
bottom: 0;
margin: auto;
height: 200px;
width: 180px;
border-radius: 100%;
background: #514c48;
opacity: .5;
}
.legs {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
height: 60px;
width: 34px;
border-radius: 0 0 55% 55%;
top: 160px;
left: -145px;
transform: rotate(24deg);
background: #6A6561;
z-index: -1;
}
.legs:after {
position: absolute;
height: 60px;
width: 34px;
background: #6A6561;
border-radius: 0 0 55% 55%;
transform: rotate(-48deg);
bottom: 60px;
left: 131px;
content: "";
}
.legs:before {
content: "";
position: absolute;
height: 60px;
width: 34px;
border-radius: 0 0 55% 55%;
opacity: .5;
transform: rotate(-48deg);
left: 131px;
bottom: 60px;
background: #514c48;
z-index:1;
}
.rim {
position: absolute;
height: 20px;
width: 160px;
left: 170px;
top: 150px;
border-radius: 20px;
background: #6A6561;
overflow: hidden;
}
.rim:after {
content: "";
position: absolute;
height: 20px;
width: 130px;
left: 30px;
opacity: .5;
border-radius: 20px;
background: #514c48;
}
.bubbles {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
top: -190px;
right: 55px;
height: 50px;
width: 50px;
border-radius: 100%;
background: #49c399;
z-index: -1;
animation: bub .6s infinite ease-in-out alternate;
}
.bubbles:after {
position: absolute;
left: 30px;
height: 50px;
width: 50px;
border-radius: 100%;
background: #66cdaa;
content: "";
animation: bub .5s infinite ease-in-out alternate;
}
.bubbles:before {
position: absolute;
left: 60px;
height: 50px;
width: 50px;
border-radius: 100%;
background: #359473;
content: "";
animation: bub 1.5s infinite ease-in-out alternate;
}
.broom {
position: absolute;
top: 0;
left: 30px;
right: 0;
bottom: 270px;
margin: auto;
height: 180px;
width: 20px;
background: #54260e;
border-radius: 5px;
transform: rotate(25deg);
animation: broom 3s ease-in-out alternate infinite;
z-index: -2;
}
/*Shadow*/
.shadow {
position: absolute;
bottom: 120px;
left: 110px;
height: 50px;
width: 270px;
border-radius: 100%;
opacity: .3;
background: #F88E25;
z-index: -2;
}
/*Keyframes*/
@keyframes bub {
0% {
transform: translateY(5px);
}
100% {
transform: translateY(-2px);
}
}
@keyframes broom {
0% {
}
100% {
transform: translateX(-30px);
transform: translateY(23px);
}
}
/* Smartphones (portrait and landscape) ----------- */
@media only screen and (max-width: 767px) { /* phones */
.main {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
height: 12.5vmin;
width: 12.5vmin;
border-radius: 100%;
background: #6A6561;
overflow: hidden;
}
.shade {
position: absolute;
top: 0;
left: 10;
right: 0;
bottom: 0;
margin: auto;
height: 12.5vmin;
width: 11.250vmin;
border-radius: 100%;
background: #514c48;
opacity: .5;
}
.legs {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
height: 3.750vmin;
width: 2.125vmin;
border-radius: 0 0 55% 55%;
top: 10vmin;
left: -9.063vmin;
transform: rotate(24deg);
background: #6A6561;
z-index: -1;
}
.legs:after {
position: absolute;
height: 3.750vmin;
width: 2.125vmin;
background: #6A6561;
border-radius: 0 0 55% 55%;
transform: rotate(-48deg);
bottom: 3.750vmin;
left: 8.188vmin;
content: "";
}
.legs:before {
content: "";
position: absolute;
height: 3.750vmin;
width: 2.125vmin;
border-radius: 0 0 55% 55%;
opacity: .5;
transform: rotate(-48deg);
left: 8.188vmin;
bottom: 3.750vmin;
background: #514c48;
z-index:1;
}
.rim {
position: absolute;
top: 0;
left: 0;
right: 29vmin;
bottom: 30vmin;
margin: auto;
height: 1.250vmin;
width: 10vmin;
left: 29.313vmin;
top: 18.750vmin;
border-radius: 1.250vmin;
background: #6A6561;
overflow: hidden;
}
.rim:after {
content: "";
position: absolute;
height: 1.250vmin;
width: 8.125vmin;
left: 1.875vmin;
opacity: .5;
border-radius: 1.250vmin;
background: #514c48;
}
.bubbles {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
top: -11.875vmin;
right: 3.483vmin;
height: 3.125vmin;
width: 3.125vmin;
border-radius: 100%;
background: #49c399;
z-index: -1;
animation: bub .6s infinite ease-in-out alternate;
}
.bubbles:after {
position: absolute;
left: 3.125vmin;
height: 3.125vmin;
width: 3.125vmin;
border-radius: 100%;
background: #66cdaa;
content: "";
animation: bub .5s infinite ease-in-out alternate;
}
.bubbles:before {
position: absolute;
left: 3.750vmin;
height: 3.125vmin;
width: 3.125vmin;
border-radius: 100%;
background: #359473;
content: "";
animation: bub 1s infinite ease-in-out alternate;
}
.broom {
position: absolute;
top: 0;
left: 3.125vmin;
right: 0;
bottom: 16.875vmin;
margin: auto;
height: 11.250vmin;
width: 1.875vmin;
background: #54260e;
border-radius: .313vmin;
transform: rotate(25deg);
animation: broom 3s ease-in-out alternate infinite;
z-index: -2;
}
/*Shadow*/
.shadow {
position: absolute;
top: 44vmin;
bottom: 31vmin;
right: 29.313vmin;
left: 29.313vmin;
height: 3.125vmin;
width: 16.875vmin;
border-radius: 100%;
opacity: .3;
background: #F88E25;
margin: auto;
z-index: -2;
}
/*Keyframes*/
@keyframes bub {
0% {
transform: translateY(.313vmin);
}
100% {
transform: translateY(-.125vmin);
}
}
@keyframes broom {
0% {
}
100% {
transform: translateX(-3.125vmin);
transform: translateY(1.438vmin);
}
}
}
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.