For Gen 1,
The cover Pokémon are Charizard, Blastoise, Venusaur, and Pikachu.
Fire is red, water is blue, grass is green, electricity is often described as yellow.
For Gen 2,
Lugia is described in-game as a silver beast or something along those lines, Ho-Oh looks golden in the first Pokémon episode and in it’s shiny form, Suicune has a crystal on it’s head.
Gen 3,
The legendaries are the colors of the gems.
Kyogre is blue, Groudon is red, Rayquaza is green,
Gen 4,
Dialga and Palkia have diamonds and pearls on them, and platinums are gray, just like Giratina.
For Gen 5,
Black and white refer to the legendaries (either they were planning on the sequels already or they were referring to N’s legendary),
For Gen 6,
Xerneas is shaped like an X and Yveltal like a Y.
For Gen 7,
Solgaleo has many things to do with the sun (Sol means sun, it “devours the sun” in it’s dex entries, it has SUNsteel strike, and so on). Lunala is shaped like a crescent (crescent moon, pretty obviously), has a move literally named MOONgeist beam, and is said to “call the moon” in Pokedex entries.
For Gen 8,
Zamazenta has a shield on it’s face (must be pretty heavy) and Zacian is holding a sword in their crowned forms. They carry the Rusted Shield and Rusted Sword to go in to these, respectively.