Se formează un curcubeu atunci când lumina albă, cum ar fi lumina soarelui, este îndoită printr-o prismă sau prin picături de apă suspendate în aer. Prisma sau apa determină separarea luminii prin lungimea de undă, deoarece lumina cu lungimi de undă mai lungi, cum ar fi indigo și violet, se îndoaie mai mult decât lumina cu lungimi de undă mai scurte. Dacă un curcubeu trece printr-o a doua prismă, lumina separată poate fi re-combinată în lumină albă.
Uneori, diferitele culori se amestecă una cu cealaltă, ceea ce face dificilă vizualizarea fiecărei culori în mod independent. Roșul este creat atunci când diferența de unghi dintre intrarea și ieșirea soarelui este de 42 de grade, o diferență de 40 de grade produce violet și așa mai departe.