Two-part filter

by IceCreamYou

HTML

<div id="wrapper">
  <div id="round">+</div><div id="text">Add filter</div>
</div>

CSS

#wrapper {
  box-shadow: 0 0 4px 1px #333;
  display: inline-block;
  border-radius: 10.5px;
  cursor: pointer;
}
#round {
  width: 21px;
  height: 21px;
  border-radius: 10.5px;
  background-color: red;
  color: white;
  font-size: 21px;
  line-height: 21px;
  display: inline-block;
  z-index: 1;
  position: relative;
  text-align: center;
  transition: box-shadow 250ms;
}
#wrapper:hover #round {
  box-shadow: 1px 0 0 0 #FAFAFA;
  transition: box-shadow 250ms;
}
#text {
  background-color: red;
  color: white;
  font-size: 17px;
  box-sizing: border-box;
  height: 21px;
  line-height: 17px;
  padding: 0;
  display: inline-block;
  border-radius: 0 10.5px 10.5px 0;
  margin-left: -10.5px;
  vertical-align: bottom;
  max-width: 0;
  transition: max-width 250ms, padding 250ms;
  overflow: hidden;
  white-space: pre;
}
#wrapper:hover #text {
  padding: 2px 8px 2px 16.5px;
  max-width: 91px;
  transition: max-width 250ms, padding 250ms;
}