Why does the "evolve" button sometimes show only a silhouette?

Based on the information provided in this thread, it appears that the silhouettes are due to the recent gender split in the Pokédex. If you don't have both genders of an evolved Pokémon, the evolution icon to that Pokémon will be a silhouette until you have gotten both.

In fact, looking through my own Pokédex, it even seems as though the silhouette is for any Pokémon you haven't caught/evolved since the update. For instance, I have 2 Sandslash, but both genders are shown as silhouettes:

male sandshrew

female sandshrew

sandslash entry

Update if the gender isn't registered in your Pokedex then it will show a silhouette. Example male Dragonair shows Dragonite, female shows the Silhouette.

If you are looking at a MALE and have evolved a MALE - then the silhouette is now a colour image of the Pokemon

If you are looking at a FEMALE and have not evolved a FEMALE - then the silhouette is still a silhouette

or vice versa

Luckily, I had the perfect group of Sandshrew to test with (2 males, 1 female, and exactly 50 Sandshrew candy), so I evolved one of the males to see how it affected silhouettes. It appears that until you evolve one after the update, the evolution icon will display a silhouette. Furthermore, the silhouette is, indeed, gender-based.

male sandshrew no silhouette

female sandshrew silhouette

sandslash with male bubble filled

In addition to Vemonus's answer, the button (as of April 20th, 2017) doesn't show evolved Pokemon, even if you have evolved one of their gender, if you evolved it before the button image was introduced.

Here's an example from my Pokemon.

Gyrados evolved way before the button was introduced and a Magikarp of the same gender, now


Pokemon Go