Search box creando los efectos y acciones mediante #CSS y #Javascript.
Para poder verlo correctamente necesitas poner el script de fontawesome que te descargas con tu cuenta en el html.
En Javascript utilizamos las propiedades classList.add y classList.remove para generar todas las acciones.