La discrepancia existe porque algo/alguien se equivocó en el manejo de los espacios de color y/o los perfiles de color.
Una explicación muy corta y cruda:
Los colores en los ordenadores se expresan en forma de números, por ejemplo aquí como RGB con cada color que va de 0 a 255 (es decir, color de 24 bits).
Las pantallas de los ordenadores no son todas iguales: pueden mostrar diferentes gamas de colores. Esto no significa que algunas pantallas no muestren nada cuando se les pide que muestren ciertas combinaciones de R, G y B. En su lugar, se mostrará un color diferente. Esto se llama "valores nativos".
Si eliges un determinado color en la pantalla de tu ordenador y envías ese código de color a tu vecino, lo ideal es que él pueda ver exactamente el mismo color en su ordenador. Si él tiene un tipo de pantalla diferente, lo más probable es que vea un color completamente distinto (aquí ni siquiera estamos teniendo en cuenta la calibración de pantallas individuales del mismo tipo).
Para resolver este problema, existe el concepto de espacios de color y mapeos entre ellos:
Cuando creas los códigos de color originales, tienes que especificar en qué espacio de color los has definido. Es decir, por ejemplo, definir que el color de fondo de este tema tiene que ser RGB (0,43,54) en sRGB. Esto es exactamente lo que hace el tema Solarized Dark.
Cuando cree un programa para cargar códigos de color, tendrá que tener en cuenta el espacio de color de los códigos de color que lea de una fuente externa. Es decir, el programa necesita convertir o mapear el código de color desde el espacio de color del archivo original a una representación interna.
Además, cuando ese programa quiere mostrar el color en la pantalla, necesita asignarlo al espacio de color del monitor conectado.
Para mostrar un ejemplo: Imagina que utilizas un MacBook Pro con un espacio de color de Display P3 y cargas el color RGB (0,43,54) en el espacio de color sRGB.
Si se mira un ilustración de los espacios de color verá que Display P3 es "más grande que" (es decir, incluye completamente) sRGB. Por lo tanto, si algo se define con un valor de rojo de 255 (máximo) en sRGB, tiene que tener un valor más bajo cuando se mapea a Display P3 con el fin de dejar espacio para esos colores adicionales que Display P3 puede mostrar y que no están incluidos en sRGB.
Esto significa que (0,43,54) tendrá que ser enviado a la pantalla como un código de color "más oscuro" con el fin de lograr el mismo color físico cuando es visto por un ser humano.
Además de esta gestión del espacio de color, existe la variación entre pantallas individuales del mismo tipo. No es posible producir pantallas a los costes a los que están acostumbrados los consumidores que sean exactamente iguales en la reproducción del color.
Por lo tanto, las pantallas se "calibran", es decir, se miden sus colores reales y se comparan con los que se supone que deberían mostrar, y se hace un mapeo para compensar esa discrepancia. Esto se almacena como un "perfil de color" en el ordenador.
Si un programa no es compatible con los espacios de color al leer los colores o al mostrarlos, o no es compatible con los perfiles de color correctamente, se pueden producir situaciones como ésta, en la que el mismo color se muestra de forma diferente en distintas aplicaciones.