Snow is white, which everybody knows, and a glacier is blue, which everybody has seen in a photograph. The two are made of the same thing. Not similar things, the same thing: ice crystals, with air in between. Nothing is added to a glacier to turn it blue and nothing is removed from snow to keep it white.
So the interesting question is not what colour snow is. It is what single quantity you have to change to walk from one to the other, and the answer turns out to be a distance you can put a number on. Below about 26.7 cm of travel inside ice, you get white. Above it, you start getting blue. Snow sits below that line and a glacier sits far above it, and that is the whole story.
This piece builds the colour of ice from its measured absorption spectrum at every path length from a millimetre to fifty metres, then works out where snow actually falls. It is the other half of what colour water is, which did the same job for the liquid and left the frozen case open.
The answer first
Rendered under D65 daylight from the Warren and Brandt ice constants, here is what the same material looks like at four distances.
#FEFFFF · 0.54 CIEDE2000 from white · indistinguishable from white
#F9FEFF · 2.30 CIEDE2000 from white · the faintest detectable cast
#D4F6FF · 12.07 CIEDE2000 · obviously blue
#3FD2FF · 26.05 CIEDE2000 · 41 percent purity, 484.0 nm
Every one of those is pure ice with nothing in it. The material is constant down the list. Only the distance changes.
Ice has two optical properties and only one of them has a colour
The standard explanation of snow goes something like this: snow is made of countless tiny ice crystals, which scatter all wavelengths of light equally in all directions, and light containing all wavelengths looks white. That explanation is extremely popular. Google’s own summary for the question gives it, and so does almost every article on the first page.
The trouble is that it explains the wrong thing. Scattering being equal across wavelengths does not make something white. It makes it colourless, which is not the same claim, and a colourless scatterer sitting on top of an absorber still shows you the absorber. To see whether the explanation holds you have to look at ice’s two optical numbers separately.
The refractive index sets how strongly light is bent and bounced at every crystal face, which is what scattering is. Across the visible band it goes from 1.3194 at 400 nm to 1.3069 at 700 nm. That is a spread of 0.96 percent. Scattering in snow really is close to colourless, and the first half of the popular explanation is sound.
The absorption coefficient sets how much light the ice swallows per metre travelled. Across the same band it goes from 0.00074 per metre to 0.52061 per metre, a factor of 701.
Those two numbers settle the argument. Ice is a wildly selective filter, 701 times more eager to absorb red than violet, and an almost perfectly neutral scatterer. Which means all of ice’s colour is in its absorption, and absorption only acts over distance. You cannot explain snow’s whiteness with a fact about scattering, because scattering has no colour to contribute either way. The only thing that can save snow from being blue is that the light does not stay inside long enough.
One sanity check on the absorption figures. Warren’s own 2019 review gives the absorption length as roughly 2 m at 700 nm, and the spectrum I computed gives 1.92 m. Those agree.
The ladder: colour as a function of distance
If scattering is colourless then it does only one job, which is to turn light around and send it back out. What comes back has been filtered by however much ice it crossed on the way. So the colour of any lump of ice or snow is a function of a single variable, the total path length inside ice, and I can compute it for every value of that variable using nothing but the measured spectrum.
The threshold row is the one that matters. A just noticeable difference is about 2.3 CIEDE2000 for two colours sharing an edge, and ice reaches that at 26.7 cm. Below that distance the blue is real but nobody can see it. Above it, the colour is on the table.
Worth noting that past about 10 m the colour leaves what a screen can show. The 20 m and 50 m rows are outside the sRGB gamut, so the hex codes above are the nearest displayable versions and the real thing is more saturated than your monitor is admitting. Photographs of deep blue ice are not exaggerated. They are clipped.
So how far does light travel inside snow?
Two independent routes to this, which is reassuring, because they disagree by a factor of three and still land on the same conclusion.
Route one: count the grains
Snow grains have radii of roughly 100 microns. Warren puts it this way: even if a photon needs a thousand refraction events before it finds its way back out of the snowpack, it will have crossed only about 20 cm of actual ice. A thousand bounces sounds like a lot, and it buys you less than a ruler’s length of material.
Route two: invert the measured albedo
Better, because it uses an observation rather than an estimate. Antarctic surface snow has a measured albedo that falls from 0.99 at 400 nm to 0.96 at 700 nm. That drop is the ice absorption showing up. Since I know the absorption coefficient at both wavelengths, I can ask what path length would produce exactly that much more loss in the red than the blue. The answer is 5.9 cm, and 5.9 cm of ice renders at 0.54 CIEDE2000 from white, about a quarter of a visible difference.
I prefer the second number but the first is the honest upper bound, and here is the part I did not expect. Warren’s 20 cm and my threshold of 26.7 cm are a factor of 1.33 apart. Snow is not white by a mile. On the pessimistic estimate of its own path length, snow clears the visibility threshold by about a third, which is close enough that the slight blue cast in the shadowed hollows of a deep snowbank is not your imagination. It is the ladder, visible at the edge of its range.
Is snow white, or is it clear?
Both, and the question contains a category error worth naming. A single ice crystal is transparent, because light goes through it without being turned around. A snowpack is white, because light gets turned around thousands of times and comes back out. Transparency and whiteness are not two colours competing for the same slot. They are two different answers to the question of where the light ended up, and the same material gives either one depending on how it is arranged. Crush a clear ice cube with a hammer and the fragments go white in your hand without any chemistry happening.
Why glacier ice is blue, and the natural experiment that proves it
Running the ladder in the other direction needs long paths, and long paths need the scattering turned down. In a glacier that happens by itself. Snowfall at 300 to 400 kg per cubic metre gets compressed into firn at 550 to 830, and once the density passes about 830 the remaining air is sealed off into isolated bubbles and the material is called glacier ice. Deeper still, the bubbles shrink under pressure and dissolve into the crystal structure entirely.
Bubbles are the scatterers. Remove them and nothing turns the light around for metres at a stretch, which is exactly the condition the bottom of the ladder describes.
The confirmation of this is one of my favourite pieces of fieldwork in colour science, and it needed no laboratory. In the Allan Hills of the Trans-Antarctic Mountains, wind strips the snow away and old ice flows up to replace it, so a six kilometre walk crosses a continuous sequence of surface types: snow, then firn, then young white ice, then old blue ice. Density climbs along the transect and albedo falls at every wavelength. That transect is the path length ladder laid out on the ground as real material, in order, and you can walk down it.
There are two blues in snow and they are not the same blue
Here is where most writing on this topic goes wrong, including several pages currently ranking for it. Snow genuinely does look blue in two completely different situations, and they have different causes and, measurably, different hues.
The first is the one above: light taking a long path through ice and coming back short of red. The second has nothing to do with ice at all. Snow in open shade is lit only by the sky, and the sky is blue. Snow has an albedo near 0.98 and a reflectance spectrum that is flat, so it is very nearly a perfect mirror for whatever light falls on it. Point it at a blue sky and it hands you the blue back without contributing anything of its own.
Both produce something you would call blue snow. Set them to the same blueness and they separate cleanly.
#00ABFF · a* -17.87, b* -54.86 · hue 252.0 deg, 480.8 nm
#C6FDFF · a* +8.69, b* -54.86 · hue 279.0 deg, 474.6 nm
Identical b*, so identical blueness in the yellow to blue direction. But the a* coordinates are 26.6 units apart and opposite in sign. Absorption blue is a cyan, sitting on the green side of neutral, because ice removes red and leaves everything shortward of it. Illuminant blue is a violet blue on the magenta side, because Rayleigh scattering keeps climbing past blue into violet. They are 27 degrees apart in hue and 28.12 CIEDE2000 apart overall, which is not a subtle difference. It survives any reasonable choice of sky model, because the sign of a* is doing the work rather than the magnitude.
So the next time something tells you deep snow looks blue because it absorbs red light, check whether the snow in question is deep or merely shaded. If it is in a shadow on a clear day, the red was never absorbed. It just never arrived.
The CSS colour named snow has the hue backwards
Every browser ships a named colour called snow, and it is #FFFAFA. It is a reasonable thing to reach for and it is pointing the wrong way.
#FFFAFA · a* +1.66, b* +0.59 · hue 19.4 deg, warm
#FDFDFD · a* 0.00, b* 0.00 · neutral
#F0FFFF · 2.57 CIEDE2000 from 1 m of ice · hue 199.1 deg, cool
CSS snow has positive b*, which puts it on the warm side of neutral, a faintly pink white. Real snow is either exactly neutral or, when it shows anything at all, cool. The named colour is 2.45 CIEDE2000 from neutral snow, just past the threshold where that is a visible error rather than a rounding one, and it leans the opposite direction from the material it is named after. It sits 10.15 CIEDE2000 from a metre of real ice. Of the pale named colours in the CSS palette, snow is the only one on the warm side of neutral, and azure is the one that lands nearest to actual ice.
This keeps happening. The paint chip sold as Flamingo Pink is unreachable by flamingo chemistry, and cosmic latte is a white point rather than a colour. Names get fixed early by convention and then stop tracking the thing they describe.
The snow that genuinely is not white
Everything so far is clean ice. Three other cases come up often enough to be worth separating from the physics, because none of them are about ice at all.
- Grey snow. Overcast sky, same mirror argument as the blue shade case. A flat 0.98 reflector under grey light is grey. The snow has not changed.
- Pink and orange snow. Low sun. The illuminant is warm near sunrise and sunset for the usual reasons, and snow reports it faithfully.
- Watermelon snow. Actual pigment, from algae that live in meltwater near freezing. This is the only one on the list where something in the snow is coloured, and it matters beyond aesthetics: darker snow absorbs more sunlight and melts faster.
The pattern across the first two is that snow is a very good reporter and almost never the author. If you want to know what colour a snowfield will photograph as, the sky is a better thing to look at than the snow.
Does freezing change the colour of water?
Barely, and this surprised me. Liquid water transmits at a dominant wavelength of 488.8 nm, which the water piece worked out from the Pope and Fry spectrum. Ice, computed here from an entirely separate dataset measured by different people with different instruments, comes out at 487.1 nm.
That is 1.7 nm apart. Freeze water into a rigid crystal, change its density and its refractive index and its entire molecular arrangement, and the hue moves by less than two nanometres. What does change is the strength: ice is a weaker filter, so it needs 26.7 cm of path to become visible where water needs 17.3 cm. You cannot tell ice from water by colour. You can only tell them apart by how much you need before the colour shows up.
What I am less sure about
Two honest caveats, one of which turned out not to matter.
Ice’s absorption in the blue is the least certain number in this whole field, and Warren says so himself. Measuring it requires metres of laboratory ice, and the early attempts were contaminated by Rayleigh scattering off crystal defects being misread as absorption. The 2008 table I used revised the blue downward, and Warren’s 2019 review quotes roughly 200 m of absorption length at 400 nm against the 1,346 m the table gives, a disagreement of 6.7 times.
So I ran the whole thing again with the pessimistic blue. The threshold moved from 26.7 cm to 26.7 cm. Every hex code in the ladder shifted by at most one digit on one channel. The reason is that the colour of ice is decided by how fast red is removed, not by how slowly blue is, and the red figure is solid and independently confirmed. The uncertainty is real and it lands nowhere near the conclusion.
The second caveat is that treating scattering as a pure path length multiplier is an idealisation. It is justified by the 0.96 percent refractive index spread rather than assumed, but a full radiative transfer treatment with real grain shapes would give slightly different numbers, and natural snow also contains trace impurities which dominate its visible absorption in most of the inhabited world. The Antarctic albedo I inverted is about the cleanest snow on the planet. Snow next to a road is a different measurement and mostly a measurement of the road.
The wider point about one variable doing all the work
What I find worth keeping from this is how often a dramatic difference in appearance turns out to be a boring difference in one quantity. Snow and glacier ice look nothing alike. They differ in no material respect whatsoever. The gap between them is a factor of about 170 in path length, and path length is not a property of ice, it is a property of the arrangement of the air between the bits of ice.
The same shape of answer came up measuring a mirror, which is green because of its glass rather than its silver, and iridescence, whose honest hex code is grey. The question that sounds like it is about substance is usually about geometry.
It is also a good reminder of how weak a visible colour can be and still be real. The blue in snow is present at every thickness and merely unreadable below a quarter of a metre. If you want to find out where your own threshold sits, the colour memory game is the hardest honest version, because it takes the side by side comparison away and makes you hold the target in your head. Spot the difference keeps the comparison and shrinks the gap until you lose it, which is the closest thing to the 26.7 cm measurement above, and hue sort will tell you whether it is small hue steps or small purity steps that defeat you. There is more in the full set.
For the rest of this family of questions, why the ocean is blue has the reflection half of the water story and the finding that most of what you see at the sea surface is sky anyway, the visible spectrum covers why no screen can show a pure wavelength, and the blackest black is the same albedo argument run to the opposite extreme. The method behind every number here is in what CIEDE2000 is.