¿Por qué “chucknorris” en HTML es un color?

De acuerdo a como se generan los colores según el estándar, algunas palabras resultan ser colores. Este es el caso de "chucknorris", "ninjaturtle" o "crap".

Navegando por Reddit como suelo hacer encontré una muy curiosa pregunta en StackOverflow donde alguien preguntaba:

¿Por qué ciertas palabras aleatorias resultan ser colores en HTML cuando se usan como color de fondo (background-color)?

Es el caso de “chucknorris“, “mrt“, “ninjaturtle” o “crap” entre otros. Resulta que es un remanente de la época de Nestcape, donde si a un color le faltaban dígitos o tenía dígitos incorrectos estos se cambiaban por ceros.

En este interesante enlace se puede encontrar información de cómo se generan los colores de acuerdo a los estándares. Siguiendo con el ejemplo de “chucknorris” sería algo como esto:

  1.   Reemplazar todos los caracteres hexadecimales no válidos por ceros

chucknorris sería c00c0000000

  1.  Rellenar hasta el siguiente número de caracteres divisible por 3

c00c 0000 0000

  1. Dividir en tres grupos iguales el resultado, donde cada uno representa un color RGB

RGB (c00c, 0000, 0000)

  1. Truncar cada argumento de izquierda a derecha a dos caracteres

RGB (c0, 00, 00) = #C00000RGB(192, 0, 0)

Lo curioso del caso, es que algunas palabras se corresponden con sus colores reales. Por ejemplo: “ninjaturtle” devuelve un verde y “crap” (mierda, en inglés) devuelve un amarillo mostaza oscuro. En el siguiente CodePen se puede ver otro ejemplo:

See the Pen JYJvYg by Fran Verona (@franverona) on CodePen.

Es por ello que algunas palabras devuelven colores en HTML.

La información de este post la he traducido de la pregunta “Why does HTML think ‘chucknorris’ is a color?” en StackOverflow.