Hummingbird loading icon

In this example below you will see how to do a Hummingbird loading icon with some HTML / CSS and Javascript

Design sketch for a personal website in SVG + CSSInspiration and source image from Vladimir Mirzoyan on Dribbble:

Thumbnail
This awesome code was written by MisterKeefe, you can see more from this user in the personal repository.
You can find the original code on Codepen.io
Copyright MisterKeefe ©
  • HTML
  • CSS
<!DOCTYPE html>
<html lang="en" >

<head>
  <meta charset="UTF-8">
  <title>Hummingbird loading icon</title>
  
  
  
      <link rel="stylesheet" href="css/style.css">

  
</head>

<body>

  <svg width="240" height="240" id="logo" viewBox="0 0 320 320">
<path class="wing" transform="rotate(25 170 170)" d="M100,310 A125,125 45 0 0 200 130"></path>
<path class="wing" transform="rotate(50 170 170)" d="M100,310 A125,125 45 0 0 200 130"></path>
<path class="wing" transform="rotate(75 170 170)" d="M100,310 A125,125 45 0 0 200 130"></path>
<path class="wing" transform="rotate(100 170 170)" d="M100,310 A125,125 45 0 0 200 130"></path>
<path class="wing" transform="rotate(125 170 170)" d="M100,310 A125,125 45 0 0 200 130"></path>
<path class="wing" transform="rotate(150 170 170)" d="M100,310 A125,125 45 0 0 200 130"></path>
<path transform="translate(110 140)" class="body" d="m0.2 163.5c0.3-0.6 5.5-12.5 11.7-26.3 14.5-32.7 18.1-41 17.6-41.3 12.4-21.1 23.4-51.5 32.1-70.3 4.7-9.7 12.2-17.6 20.8-21.8 11.2-5.5 14.7-5.4 61.1 2.7 21.3 3.7 40.6 7 43 7.4 9.3 1.4 2.6 1.4-16.2 0-10.8-0.8-22.8-1.4-26.5-1.4-13.5 0-23.7 5.2-31 16-5.1 7.4-8.1 17.2-9.8 32.1-0.8 6.7-2.2 15.2-3.1 18.9-5.9 23.2-21.9 44.7-44.5 59.8-12 8-31.7 17.8-44.8 22.1-10.9 3.6-10.9 3.6-10.3 2.1z"></path>
</svg>
  
  

</body>

</html>

/*Downloaded from https://www.codeseek.co/MisterKeefe/hummingbird-loading-icon-NyNYEd */
body, html {
  width: 100%;
  height: 100%;
  padding: 0;
  margin: 0 auto;
  overflow: hidden;
  text-align: center;
  background-color: #F6F6F4
}

#logo {
  margin: 0 auto;
  margin-top: 50px;
  text-align: center;
  display: block;
}

.body {
  fill: rgba(33, 33, 33, 1.0);  
}

.wing {
  fill: rgba(33, 33, 33, 0.5);
  animation-duration: 1.5s;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  animation-direction: alternate;
}

.wing:nth-child(1){
  animation-name: pulse1;
}

.wing:nth-child(2){
  animation-name: pulse2;
}

.wing:nth-child(3){
  animation-name: pulse3;
}

.wing:nth-child(4){
  animation-name: pulse4;
}

.wing:nth-child(5){
  animation-name: pulse5;
}

.wing:nth-child(6){
  animation-name: pulse6;
}


@keyframes pulse1 {
  0% { opacity: 0; }
  10% { opacity: 1; }
}

@keyframes pulse2 {
  0% { opacity: 0; }
  20% { opacity: 1; }
}

@keyframes pulse3 {
  0% { opacity: 0; }
  40% { opacity: 1; }
}

@keyframes pulse4 {
  0% { opacity: 0; }
  60% { opacity: 1; }
}

@keyframes pulse5 {
  0% { opacity: 0; }
  80% { opacity: 1; }
}

@keyframes pulse6 {
  0%, 10% { opacity: 0; }
  100% { opacity: 1; }
}

Comments