<div class="container">
<svg version="1.1"
	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
	 x="0px" y="0px" width="600px" height="600px" viewBox="0 0 600 600" style="enable-background:new 0 0 600 600;"
	 xml:space="preserve">
<defs>
  <mask id="handleMask">
<path class="handleMask" style="fill:#FFFFFF;" d="M487.463,183.88h-133.62c-15.537,0-15.537,0-15.537-15.537v-23.306
	c-0.259-15.537-0.259-15.537,15.537-15.537h133.62c8.545,0,15.537,6.992,15.537,15.537v23.306
	C503,176.888,496.008,183.88,487.463,183.88z"/>   
    <mask>
      <mask id="drillBitMask">
<polygon class="drillBitMask" style="fill:#FFFFFF;" points="81.625,307.25 85.75,301 172,301 172,312 86,312 "/>        
      </mask>
</defs>

    
    
<path class="handle" style="fill:#262626;" d="M487.463,183.88h-133.62c-15.537,0-15.537,0-15.537-15.537v-23.306
	c-0.259-15.537-0.259-15.537,15.537-15.537h133.62c8.545,0,15.537,6.992,15.537,15.537v23.306
	C503,176.888,496.008,183.88,487.463,183.88z"/>
<path class="neck" style="fill:#262626;" d="M328.397,183.88h-10.488c-2.564,0-4.661-2.098-4.661-4.661v-45.058
	c0-2.564,2.098-4.661,4.661-4.661h10.488c2.564,0,4.661,2.098,4.661,4.661v45.058C333.058,181.783,330.961,183.88,328.397,183.88z"
	/>
<rect class="shaft" x="143.021" y="148.902" style="fill:#262626;" width="165.035" height="15.577"/>

<g class="gripGroup" mask="url(#handleMask)" fill="#FCB827">
	<path d="M480.73,151.252H358.504c-3.418,0-6.215-2.797-6.215-6.215v0c0-3.418,2.797-6.215,6.215-6.215
		H480.73c3.418,0,6.215,2.797,6.215,6.215v0C486.945,148.455,484.148,151.252,480.73,151.252z"/>
	<path d="M480.73,174.558H358.504c-3.418,0-6.215-2.797-6.215-6.215v0c0-3.418,2.797-6.215,6.215-6.215
		H480.73c3.418,0,6.215,2.797,6.215,6.215v0C486.945,171.761,484.148,174.558,480.73,174.558z"/>
	<path d="M480.73,197.864H358.504c-3.418,0-6.215-2.797-6.215-6.215l0,0c0-3.418,2.797-6.215,6.215-6.215
		H480.73c3.418,0,6.215,2.797,6.215,6.215l0,0C486.945,195.067,484.148,197.864,480.73,197.864z"/>
</g>
<polygon class="tip" fill="#262626" points="140.425,164.478 89.929,158.478 89.929,154.902 140.425,148.902 "/>
<polygon class="finBot" fill="#262626" points="115.177,170.536 89.929,164.478 89.929,164.478 89.929,157.591 140.425,162.591 
	140.425,164.478 "/>
<polygon class="finTop" fill="#262626" points="115.177,142.844 89.929,148.902 89.929,148.902 89.929,155.789 140.425,150.789 
	140.425,148.902 "/>
    
    <!--DRILL-->
<g class="drillBodyGroup" fill="#262626">
<path class="trigger" stroke-miterlimit="10" d="M376,365.125c0,0,19.25-0.688,23,8.563s12.25,30.813,12.25,34.813
		c-10.5,0-39.25,0-39.25,0S385.75,394.75,376,365.125z"/>	<polygon  stroke-miterlimit="10" points="174.5,296.5 201.5,283 201.5,330 174.5,317 	"/>
	<rect x="206.5" y="276.5"  stroke-miterlimit="10" width="41" height="60"/>
	<polygon class="barrel"  stroke-miterlimit="10" points="250.5,334 250.5,279 257.5,283 257.5,300.5 260.5,300.5 
		260.5,272 294.5,268.667 294.5,345 260.5,341.333 260.5,314 257.5,313.833 257.5,329 	"/>
	<path class="drillBody" stroke="#FCB827" stroke-width="3"  stroke-miterlimit="10" d="M297.5,269v77c0,0,0.75,7.75,7.5,9.25s80.5,7,80.5,7s13.75,1,17.5,11
		s19.25,60,20.75,73s-4.5,21.5-4.5,21.5l-8.5,12.75H509c0,0-6.5-35.75-15-56.75S474.25,377.5,474.5,368s7.75-15.5,14.75-16.75
		c0-12.5-0.25-90.75-0.25-90.75s-170.657,0-174,0S297.5,261.841,297.5,269z"/>
	
	<path  stroke-miterlimit="10" d="M512.667,536.667h-138c-2.75,0-5-2.25-5-5v-43c0-2.75,2.25-5,5-5h138
		c2.75,0,5,2.25,5,5v43C517.667,534.417,515.417,536.667,512.667,536.667z"/>
	<path stroke-miterlimit="10" d="M493.5,261v90c0,0,14-5,18.75-8.5s8-4.5,7.75-14.25
		s-1.25-53.75-1.25-53.75s1.25-7-6-9.25S493.5,261,493.5,261z"/>
<path class="clasp" stroke="#FCB827" stroke-width="3" stroke-miterlimit="10" d="M480.945,510.167H443.5
		c-3.3,0-6-2.7-6-6V475c0-3.3,2.7-6,6-6h37.445c3.3,0,6,2.7,6,6v29.167C486.945,507.467,484.245,510.167,480.945,510.167z"/>  
</g>
<polygon class="drillBit" style="fill:#262626;stroke:none;stroke-miterlimit:10;" points="81.625,306.75 85.75,301.5 172.5,301.5 
	172.5,311.5 86,311.5 "/>

<g class="drillGrooveGroup" style="fill:none;stroke:#FCB827;stroke-width:3;stroke-miterlimit:10;" mask="url(#drillBitMask)">
  
	<line  x1="94.5" y1="299" x2="104.875" y2="312"/>
	<line x1="107.5" y1="299" x2="117.875" y2="312"/>
	<line x1="120.5" y1="299" x2="130.875" y2="312"/>
	<line x1="133.5" y1="299" x2="143.875" y2="312"/>
	<line x1="146.5" y1="299" x2="156.875" y2="312"/>
	<line x1="159.5" y1="299" x2="169.875" y2="312"/>
	<line x1="81.5" y1="299" x2="91.875" y2="312"/>
<line x1="68.5" y1="299.5" x2="78.875" y2="312.875"/>  
</g>    
    
<g class="drillDetailsGroup" stroke="#FCB827" stroke-width="2" >
	<line fill="none" x1="442" y1="282" x2="471" y2="282"/>
	<line fill="none" x1="442" y1="289" x2="471" y2="289"/>
	<line fill="none" x1="442" y1="296" x2="471" y2="296"/>
	<line fill="none" x1="442" y1="303" x2="471" y2="303"/>
	<line fill="none" x1="442" y1="310" x2="471" y2="310"/>
	<line fill="none" x1="442" y1="317" x2="471" y2="317"/>
	<line fill="none" x1="442" y1="324" x2="471" y2="324"/>
	<circle fill="none" cx="453" cy="351" r="7.75"/>
</g>
<g class="drillVentGroup" fill="#FCB827">
	<path d="M325.667,284h-10.418c-0.55,0-1-0.45-1-1v-6c0-0.55,0.45-1,1-1h10.418c0.55,0,1,0.45,1,1v6
		C326.667,283.55,326.217,284,325.667,284z"/>
	<path d="M325.667,298h-10.418c-0.55,0-1-0.45-1-1v-6c0-0.55,0.45-1,1-1h10.418c0.55,0,1,0.45,1,1v6
		C326.667,297.55,326.217,298,325.667,298z"/>
	<path d="M325.667,312h-10.418c-0.55,0-1-0.45-1-1v-6c0-0.55,0.45-1,1-1h10.418c0.55,0,1,0.45,1,1v6
		C326.667,311.55,326.217,312,325.667,312z"/>
	<path d="M325.667,326h-10.418c-0.55,0-1-0.45-1-1v-6c0-0.55,0.45-1,1-1h10.418c0.55,0,1,0.45,1,1v6
		C326.667,325.55,326.217,326,325.667,326z"/>
	<path d="M325.667,340h-10.418c-0.55,0-1-0.45-1-1v-6c0-0.55,0.45-1,1-1h10.418c0.55,0,1,0.45,1,1v6
		C326.667,339.55,326.217,340,325.667,340z"/>
</g>    
    
    <text class="myText" x="35" y="455"><tspan style="font-size:102px;">SVG</tspan><tspan style="font-size:64px;" dx="-210" dy="46">TOOLS</tspan></text>   
</svg>


</div>
@import url(https://fonts.googleapis.com/css?family=Black+Ops+One);
body{
  background-color:#FCB827;
  overflow:hidden;
}
body, html {
    height: 100%;
    width: 100%;
    margin: 0;
    padding: 0;
}

.container{
  max-width:600px;
  height:600px;
}

svg{
  max-width:100%;
}
.myText{
  font-family: 'Black Ops One', cursive;

  fill:#262626;
}
var xmlns="http://www.w3.org/2000/svg", select = function(s) {
      return document.querySelector(s);
    }, selectAll = function(s) {
      return document.querySelectorAll(s);
    }, container = select('.container'), grips = selectAll('.gripGroup path'), finTop = select('.finTop'), finBot = select('.finBot'), tip = select('.tip'), trigger = select('.trigger'), drillGrooves = selectAll('.drillGrooveGroup line'), drillVents = selectAll('.drillVentGroup path'), drillDetails = selectAll('.drillDetailsGroup line')

//center the container cos it's pretty an' that
TweenMax.set(container, {
  position:'absolute',
  top:'50%',
  left:'50%',
  xPercent:-50,
  yPercent:-50
})

var tl = new TimelineMax({repeat:-1});
tl.timeScale(3)
tl.to(grips, 2, {
  y:-23,
  //ease:Linear.easeNone
  ease:Anticipate.easeIn
})
.to(finTop, 2, {
  //y:10,
  scaleY:0,
  transformOrigin:'50% 100%',
  //ease:Linear.easeNone
  ease:Anticipate.easeIn
},'-=2')
.to(finBot, 2, {
  //y:-10,
  scaleY:0,
  transformOrigin:'50% 0%',
  //ease:Linear.easeNone
  ease:Anticipate.easeIn
},'-=2')
/*
.to(tip, 2, {
  scaleY:0.7,
  transformOrigin:'50% 50%',
  ease:Anticipate.easeIn
},'-=2')
*/
.set(grips, {
  y:0
})

.to(grips, 2, {
  y:-23,
  //ease:Linear.easeNone
  ease:Anticipate.easeIn
})
.to(finTop, 2, {
  y:0,
  scaleY:1,
  transformOrigin:'50% 100%',
  //ease:Linear.easeNone
  ease:Anticipate.easeIn
},'-=2')
.to(finBot, 2, {
  y:0,
  scaleY:1,
  transformOrigin:'50% 0%',
  //ease:Linear.easeNone
  ease:Anticipate.easeIn
},'-=2')
/*
.to(tip, 2, {
  scaleY:1,
  transformOrigin:'50% 50%',
  ease:Anticipate.easeIn
},'-=2')
*/
var drillBitTl = new TimelineMax();
drillBitTl.to(drillGrooves, 0.2, {
  x:13,
  repeat:20,
  ease:Linear.easeNone
})
var drillTl = new TimelineMax({repeat:-1, repeatDelay:1});
drillTl.timeScale(1)
drillTl.to(trigger, 0.3, {
  //rotation:-10,
  x:10,
  transformOrigin:'10% 0%',
  repeat:1,
  yoyo:true,
  ease:Sine.easeIn
})
.to(drillBitTl, 3, {
  time:drillBitTl.duration(),
  ease:Sine.easeOut
},'-=0.6')
.staggerTo(drillVents, 0.1, {
  fill:'#262626',
  repeat:21,
  yoyo:true,
  ease:Sine.easeOut
},0.06, '-=3')
.staggerTo(drillDetails, 0.1, {
  stroke:'#262626',
  repeat:21,
  yoyo:true,
  ease:Sine.easeOut
},0.06, '-=3')

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. //s3-us-west-2.amazonaws.com/s.cdpn.io/16327/DrawSVGPlugin.js?r=12
  2. https://cdnjs.cloudflare.com/ajax/libs/gsap/1.19.1/TweenMax.min.js
  3. https://s3-us-west-2.amazonaws.com/s.cdpn.io/35984/AnticipateEase.min.js