Why are clouds white?

The whiteness of the clouds is due to light of all colors being dispersed by the water/ice of the clouds. Clouds quite a distance away appear yellow due to the blue wavelengths being dispered more than the yellow and red wavelengths by the air and particles in the air (the 'clear' sky is blue!)

Not all clouds are pure white, however, for those that are white, it is due to their altitude and the reflection of sunlight.

For example, a cirrus cloud has an altitude of approximately 8km above sea level. At such extreme altitudes all high-level clouds are made up only of ice crystals, as the water vapor from which they are initially formed has frozen.

The ice crystals reflect sunlight. When flying above clouds during the day, they are always bright white. When we get dark clouds, they are so thick that they soak up most of the sunlight or reflect it upwards, and so things aren't as bright below. Storm clouds are the thickest clouds, and look the darkest from down below, though they still look bright white if we see them from above.

Gray color of the clouds is caused by higher clouds casting their shadow on lower-based clouds, or that the clouds are so dense that their top parts absorb most of the sunlight, casting their own shadow along their base, making them dark on the bottom.