Règle : les adjectifs de couleur s'accordent.
Exception 1 : les adjectifs de couleur formé d'un adjectif, et d'un autre adjectif ou adverbe dépendant du premier (bleu clair, bleu-vert...) sont invariables.
Exception 2 : les noms employés comme adjectifs de couleur (orange, marron) sont invariables.
Exception à l'exception 2 : écarlate, mauve, pourpre, rose s'accordent.
Cas particuliers : fauve, adjectif avant d'être nom, s'accorde ; châtain s'accorde toujours en nombre, parfois en genre (châtaine, rare).
Voir aussi la page du site Langue française à ce sujet.