If one looks into the sky on a given day, the person will probably notice varying colors in the clouds, mostly different shades of gray. So why exactly would we say that most clouds are white? This is because most clouds overwhelmingly consist of cloud droplets - tiny droplets of water, or even ice crystals - which scatter all light nearly equally. There are a couple exceptions when non-white clouds can form. Go the end of this story to find more information and a graphic on the non-white cloud exceptions.
With light in the visible spectrum being scattered roughly equally, white light is produced. But on a rainy day, why do the clouds appear darker shades of gray and appear more threatening? Or why do the bases of puffy cumulus clouds in the summer appear gray, while the tops are a crisp white? The answer to such questions relates to where a person is when they are viewing the water-droplet or ice-crystal cloud, and the angle of the sun relative to that person.
As shown above, water-droplet clouds can appear quite dark. The color of the water-droplet cloud all depends on how thick the cloud is, and how much of the cloud is between the viewer and the sun. For instance, fair weather cumulus clouds generally appear white because they are relatively small. Therefore, they usually do not scatter much sunlight and can appear a very bright white color. Below is a simplified cartoon version of this process.
As water-droplet clouds grow thicker, and/or are between the viewer on the ground and the sun, more sunlight is scattered. As more sunlight gets scattered, less makes it to the viewer, and therefore the cloud appears darker. This is why towering cumulus clouds often appear a darker shade of gray near their base, but can still look white near their top, where less sunlight is being scattered. This is also why thick cumulonimbus clouds, associated with thunderstorms, can appear almost black. These "thunderheads" are so thick and tall that they can almost completely scatter the sunlight (some grow to heights of 50 to 70 thousand feet above the ground!). Now you know why some people move indoors when they see dark clouds approaching. Below is a simplified cartoon version of this process.
So essentially, cloud droplets scatter light equally and this produces white light. That is why all water-droplet clouds are white. However, how much scattering occurs between the sun and your eyes due to the cloud determines exactly how bright or dark the cloud will be.
Some people swear they see a greenish hue to the clouds when there is hail present, or a tornado is about to form. This is an entirely different question altogether. Here is the explanation about greenish hues from the National Severe Storms Laboratory in Norman, OK:
Scientists don't agree on why the sky may rarely appear green during severe weather, although there is plenty of anecdotal evidence that it can, and that hail may be nearby. One theory is that large amounts of water and ice in a severe thunderstorm will scatter green light during the strong updrafts that occur in severe storms. Some people report the sky seems "brighter".
So the next time you see a dark cloud approaching your location, it is a good idea to move indoors and stay up-to-date on the weather situation. The dark water-droplet cloud means that the cloud is probably fairly thick and could contain a lot of cloud droplets and precipitation.
The exceptions to the phrase "all clouds are white" are clouds that form from volcanic ash or from the smoke from wild fires, as pointed out by the folks at the Cooperative Institute for Meteorological Satellite Studies (CIMSS) in the at the Space Science and Engineering Center on the UW-Madison campus.
Here is their contribution:
1. Ash from volcanoes can form a cloud which is black, grey, or brown-- in full light or not. Ash clouds primarily absorb light. An Internet search will reveal many examples where there is little scattering of light in the ash cloud emitted from a volcano. A recent example from the Okmok volcano suggests that the ash cloud was, as is typical, not white, since a visible satellite image shows a cloud absorbing light (darker than surrounding weather clouds): http://rammb.cira.colostate.edu/projects/pyrocu/okmok_volcano/visloop.asp. Numerous pilots reported an orange cloud over the Pacific Northwest associated with volcanic activity (http://cimss.ssec.wisc.edu/goes/blog/wp-content/uploads/2008/07/080718_pireps.text). The emission plume from this volcano was traceable through the arrowhead of northeast Minnesota in the days following its eruption, though little if any ash remained in the cloud over the continential United States. Nonetheless, volcanoes do play a very critical role in weather, and ash is a serious threat to airplanes. Ash clouds are rarely white.
2. Wild fires can also produce clouds which are genuinely grey or yellow, as they consist of organic matter. While typically responsible for haze, concentrated areas of smoke can form clouds and absorb light to some degree (depending on density), which may give it a shade of blue, grey, or yellow.
3. Clouds which contain sand may also be a non-white cloud. It depends on the role of the sand in the cloud. Additionally, the definition of a cloud is technically unclear. These sand-based clouds may appear a shade of orange.
Below is an image showing non-white clouds generated by volcanic ash and widfires: