Suele ser una duda que tienen los alumnos extranjeros. La RAE lo explica en su Diccionario Panhispánico de Dudas. Aquí resumo los puntos más importantes.
1) Cuando los nombres de colores modifican a un sustantivo (o sea, funcionan como adjetivos) y son palabras de dos terminaciones (blanco/a, negro/a, rojo/a, amarillo/a, etc.), se usa la forma masculina o la femenina según sea el género del sustantivo al que modifican: falda roja, pantalón negro.
En estos casos, hay que distinguir entre los nombres que designan únicamente colores, los cuales concuerdan siempre con el sustantivo al que modifican (faldas rojas, pantalones verdes, ojos azules, etc.), y los nombres que designan primariamente una flor, un fruto, una sustancia o un objeto que tienen ese color característico, los cuales pueden funcionar como sustantivos, por lo que permanecen invariables en plural (ojos malva, faldas naranja, camisas añil, etc.) o como adjetivos, por lo que deben concordar con el sustantivo, (ojos malvas, faldas naranjas, camisas añiles, etc.).
2) Si, para designar matices, el nombre de color se halla a su vez modificado por otro (verde esmeralda), o por un adjetivo como claro, oscuro o similares, lo normal, de acuerdo con el uso mayoritario, es usar ambos términos en masculino, incluso en referencia a un sustantivo femenino: una camisa rojo oscuro. Esto es así porque se supone que el sustantivo masculino color está implícito en la oración. En estos casos, además, lo normal es mantener ambos elementos invariables en singular, de acuerdo con el uso mayoritario (pantalones verde botella, ojos azul claro, etc.).
A pesar de esto, también es posible (pero menos aceptada) la concordancia en femenino: «La tierra era marrón clara».
3) Si, para designar matices, el nombre de color se usa antes de otro sustantivo, este último permanece invariable: «los verdes botella», «los grises perla», etc.