Filter Icon

ICO Drops filter icon animation

by mromanbanks

HTML

<div class="button" onclick="myFunction()">
  <p class="name">Filter</p>
  <div class="glyph">
    <div class="bar1"></div>
    <div class="bar2"></div>
    <div class="bar3"></div>
  </div>
</div>

<script>
function myFunction() {
	var x = document.getElementsByClassName("glyph");
	var y = document.getElementsByClassName("name");
	var t = y[0].innerText;
    
	x[0].classList.toggle("change");
    
	if (t == "Filter") {
		y[0].innerText = "Hide";
	} else {
		y[0].innerText = "Filter";
	}
}
</script>

CSS

@import url('https://fonts.googleapis.com/css?family=Roboto:500');
html { 
    font-family: 'Roboto', sans-serif; 
    color: #292929; 
    -webkit-user-select: none;
            user-select: none;
}

.button {
    display: inline-block;
    width: 78px;
    height: 24px;
    position: relative;
    cursor: pointer;
    background: #EBEBEB;
    box-shadow: 0 1px 0 0 rgba(0,0,0,0.08), 0 0 0 1px #EBEBEB;
    border-radius: 4px;
}
.name {
    display: inline-block; 
    top: -15px;
    font-size: 15px;
    line-height: 24px;
    letter-spacing: -0.1px;
    margin-left: 10px;
    position: relative;
}

.glyph {
    display: inline-block;
    cursor: pointer;
    position: relative;
    /* top: -2px; */
    margin: 6px 10px 0 0;
    float: right;
}

.bar1, .bar2, .bar3 {
    height: 2px;
    background-color: #292929;
    margin: 1px 0;
    transition: 0.2s;
    border-radius: 1px;
    /* For Smooth Animation */
    transform: translate3d(0,0,0);
    -webkit-transform: translate3d(0,0,0);
}

.bar1 { 
    width: 16px;
}
.bar2 {
    width: 12px;
    margin-left: 2px;
}
.bar3 {
    width: 8px;
    margin-left: 4px;
}

.change .bar1 { transform: translate(0, 3px); }
.change .bar3 { transform: translate(0, -3px); }