Why do soap bubbles look rainbow-colored?

Kohaku
KohakuRainbow-like colors swirl across the surface of a soap bubble. Soapy water has no color at all, so isn't that strange?
The answer in 30 seconds
KohakuWhat makes the colors is the light itself.

Soap bubbles look rainbow-colored because two beams of light, one bouncing off the outer surface of the thin film and one off the inner surface, overlap and strengthen or cancel each other color by color. Which color you see depends on the thickness of the film. The thickness differs from place to place and changes over time, so the colors seem to swirl and shift.

Rainbow-colored patterns spreading across the surface of a soap film
The surface of a soap film. Differences in its thickness create patterns of many colors.Photo: Pksois23 / CC BY-SA 4.0 / Wikimedia Commons

Overlapping light waves can grow stronger

Light travels like a wave, and each color has a different wave length. Red has long waves, and violet has short ones. According to the Exploratorium, a science museum in the United States, when two light waves overlap crest to crest, they strengthen each other, and when they overlap crest to trough, they cancel each other out. This is called interference.

Light bounces twice, off both sides of the film

When light hits a soap bubble, some of it bounces off the outer surface of the film, and some goes into the film and bounces off the inner surface. The light that bounces off the inner surface travels farther by the thickness of the film, so its waves are out of step when they overlap with the light from the outer surface. Depending on the thickness of the film, some colors are canceled, and the remaining colors mix together to make what we see.

Figure: How light bounces off a soap film, and how the colors change
Bounces off the outside and insideFilmLight bouncingoff the outsideLight bouncing off the insidegoes a bit farther, then overlapsThinner film, different colorBlue-greenThickBlueRed-violetYellowBlackVerythin
Kohaku
KohakuSo the key is that light bounces twice, off the front and the back of the film.

Thickness changes the color you see

Red has long waves, so it takes a thick film to cancel it. According to the Exploratorium, as the film gets thinner, the canceled color shifts from red to yellow, green, and blue, and the color we see changes from blue-green to blue, red-violet, and yellow. Soap solution flows downward under its own weight, so the film gets thinner toward the top, and the colors sometimes line up in stripes.

Turning black: a sign it will pop

When the film gets very thin, all colors are canceled, because light flips its wave over when it bounces off the outer surface. The film then looks dark. The University of New South Wales also explains that when the top of the film becomes much thinner than the wavelength of light, it looks black. When this black area appears, it is a sign that the bubble will soon pop.

Want to know more?

  • An oil film on a wet road after rain, the inside of an abalone shell, and some bird feathers and insect wings shine with rainbow colors because of the same interference of light.
  • Adding glycerin to bubble solution makes it thicker and slower-flowing, which helps the film last longer.
Kohaku
KohakuColors appear when light bouncing off a thin film overlaps. When the bubble turns dark, it's almost time to say goodbye.

Quick quiz: test yourself

Why do soap bubbles look rainbow-colored?

Show the answer
  1. The soap mixture is colored
  2. Reflected light waves overlap
  3. The film soaks up colors

Reflected light waves overlap Light bouncing off the outer and inner surfaces of the film overlaps, so some colors get stronger and others cancel out. The film's thickness decides which colors we see.

Sources

  1. Bubble ColorsExploratorium
  2. Soap-bubbles, interference colours, surface tension, minimal shapesUNSW Sydney, School of Physics (Physclips)

This article was written after checking the sources above as of 2026-10-03. Explanations may change as research progresses. Photo credits are shown below each photo.