<div class="container">
  <div class="search-box">
    <input type="text" />
    <span></span>
  </div>
</div>
body {
  background: #e03a29;
}
body, html {
  * { 
      box-sizing:border-box;
  }
}

.container {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%);
}

.search-box { 
  input[type="text"] {
    border: none;
    background: none;
    z-index: 1;
    width: 25px;
    height: 25px;
    transition: all .25s ease-in .25s;
    color: transparent;
    font-size: .75rem;
    line-height:25px;
    &:hover {
      cursor: pointer;
      &:focus {
        cursor: text;
      }
      + span {
        background: rgba(255,255,255,0.2);
      }
    }
    &:focus {
      width: 200px;
      padding: 0 10px;
      outline: none;
      color: black;
      background:none;
      color: white;
      + span {
        width: 200px;
        &::before {
          width:2px;
          opacity: 0;
          transition: all .25s ease-in;
        }
      }
    }
    + span {
      z-index: -1;
      position: absolute;
      border: 2px solid white;
      top: 0;
      width: 25px;
      height: 25px;
      transition: all .25s ease-in .25s;
      border-radius: 25px;
      left: 0;
      &::before {
        transition: all .25s ease-in .5s;
        transform-origin: left top;
        content: '';
        position: absolute;
        width: 10px;
        height: 5px;
        border-radius: 5px;
        background: white;
        transform: rotate(45deg) translate(26px, -2px);
      }
    }
  }
}
View Compiled

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.