Sateenkaari näkyy aina vastakkaisella puolella taivasta kuin aurinko, koska valo heijastuu sadepisaroista takaisin tulosuuntaansa. Pelkkä valon heijastuminen vesipisaroista ei kuitenkaan riitä selittämään sateenkaaren värejä, siihen vaaditaan myös valon taittumista.
Kun auringonvalo taittuu ja heijastuu vesipisaroissa, valkoiselta näyttävä auringonvalo hajoaa – kirjaimellisesti – sateenkaaren väreihin. Värejä on seitsemän paitsi jos on samalla kannalla kuin tieteiskirjailija Isaac Asimov. Hänen mukaansa "indigo ei ole koskaan tuntunut olevan sen väärti, että se ansaitsisi tulla pidetyksi omana värinään".
Yleensä kuitenkin puhutaan seitsemästä väristä. Punainen, oranssi, keltainen, vihreä, sininen, indigo ja violetti ovat väreinä sitä hehkuvampia ja kirkkaampia, mitä suurempia pilvistä tipahtelevat vesipisarat ovat.
Kun auringonvalo kulkee sadepisaran pinnan läpi, valon kulkusuunta muuttuu, koska se siirtyy harvemmasta aineesta tiheämpään: ilmasta veteen.
Valo heijastuu kertaalleen pisaran sisäpinnasta ja kun se taas poistuu vesipisarasta, sen kulkusuunta muuttuu jälleen: tällä kertaa se siirtyy tiheämmästä aineesta harvempaan eli vedestä ilmaan.
Kahden taittumisen ja yhden heijastumisen seurauksena valon kulkusuunta muuttuu vesipisarassa aina saman verran, 42 astetta. Siksi sateenkaari näkyy taivaalla vastapäätä aurinkoa ja kaartuu ilmiötä ihailevan katsojan pään varjon ympärille 42 asteen etäisyydellä.
Valon kulkusuunta ei kuitenkaan muutu täsmälleen 42 astetta, sillä valon eri aallonpituudet eli värit taittuvat eri tavoin: punainen taittuu vähiten ja violetti eniten. Siksi punainen väri on sateenkaaren ulkoreunassa ja violetti sen sisäreunassa. Niiden välissä ovat muut värit.