O título deste post é um pouco diferente de todos os outros que escrevi até hoje aqui no Blog, Sabia que “Chucknorris” é uma cor no HTML? e ele entra em uma nova categoria de variedades aqui.
Pegue sua caneca de chá ou café, uns biscoitos e leia com calma este artigo, que dá uma pincelada bem de leve no passado da programação HMTL e chega a ser nostálgico e curioso.
Estava eu navegando neste vasto universo que chamamos de web depois de algumas horas programando e criando um sistema maroto (que em breve estará a venda aqui no site), e por algum motivo eu precisei pesquisar algo sobre um código em VBA, não me lembro mais o que é rs rs, mas cheguei até um site que não conhecia, o QA, onde encontrei várias discussões e fóruns interessantes, e um deles falava justamente sobre o tema deste post.
Sou da época em que fazíamos páginas da web no bloco de notas, colocávamos gifs e demorava uma eternidade para carregar a página, nos dias de glória usávamos o extinto FrontPage (Para quem está na casa dos 20 e poucos anos e não sabe o que é front page… “O Microsoft FrontPage era um editor HTML da Microsoft que permite criar e gerir páginas e sites da web. Foi considerado um programa componente da suíte de aplicativos Microsoft Office de 1997 a 2003.”… Asssim como o Teams e o OneDrive hoje em dia.
E nesta gloriosa época em que os sites eram feitos literalmente a mão, sem ajuda de programas fantásticos que temos hoje, que praticamente fazem tudo, os sites tinham uma propriedade chamada BGCOLOR, onde era possível definir a cor do Background, traduzindo a cor de fundo poderia ser definida pelo nome das cores, assim como o exemplo abaixo.
<html> <body bgcolor=”red”> </hmtl>
<html> <body bgcolor="red"> </hmtl>
Se você copiar o código acima em um bloco de notas, colar e salvar o arquivo como .html você terá criado uma página web, e o fundo dela será vermelho, se salvar o bgcolor como Yellow será Amarelo, bgcolor = blue será azul e assim por diante.
O grande barato desta história ainda está por vir e você entenderá o que é curioso e intrigante, mas com uma explicação lógica.
Partindo do principio que Blue, Red e Yellow são palavras, algum gênio decidiu testar se seria possível ao invés de colocar o nome das cores colocar o nome de pessoas, e não poderia ser ninguém menos do que ChuckNorris. (Eu tinha notado que o HTML aceitava o nome das cores, mas nem passou pelaminha cabeça colocar nomes de pessoas rs)
Mas, calma, calma…
Sabia que “Chucknorris” é uma cor no HTML?
Sabemos que Chuck Norris é o mestre dos mestres o senhor dos senhores, mas não é uma exclusividade dele ter uma cor sua na tabela de cores do HTML. rs
(Se você é da geração Z ou pós-millenial com idades entre 8 e 23 anos não deve conhecer o Chuck, dá uma lida neste artigo do ElPais que te ajudará a entender o Mito que ele é)
Testando outros nomes é possível ver que também funciona com outros nomes como o de “Stevensegal”, “Brucelee” e “Denzelwashington” também.
Mas por que isso acontece?
É uma ressaca dos dias do Netscape quando ele usava este formato para renderizar as cores.
Onde em termos simplificados é feita uma conversão das letras para caracteres hexadecimais, e os caracteres não válidos são substituidos pelos zeros.
Os dígitos ausentes ou não válidos são tratados como 0 […]. Um dígito incorreto é simplesmente interpretado como 0.
É da postagem do blog Um pouco sobre a análise de cores do Microsoft Internet Explorer, que o aborda com muitos detalhes, incluindo comprimentos variados de valores de cores, etc.
Se aplicarmos as regras a risca obteremos o seguinte:
Substitua todos os caracteres hexadecimais não válidos pelos zeros
chucknorris = c00c0000000
(Em chucknorris, tudo, exceto C não é um valor hexadecimal válido)
Coloque o próximo número total de caracteres divisíveis por 3 (Chuck Norris =11 seria ChuckNorris0 = 12 caracteres)
Convertendo ficaria assim c00c 0000 0000
Após isso é feita uma divisão em três grupos iguais, com cada componente representando o componente de cor correspondente de uma cor RGB:
RGB (c00c, 0000, 0000)
Após isso é truncado cada um dos argumentos da direita para baixo para dois caracteres, reduzindo dois caracteres de cada bloco.
O que fornece o seguinte resultado:
RGB (c0, 00, 00) = #C00000 or RGB(192, 0, 0)
Em resumo…
- torne a string um comprimento múltiplo de 3 adicionando Zeros:
chucknorris0
- separe a cadeia em três cadeias de comprimento igual:
chuc knor ris0
- truncar cada sequência para 2 caracteres:
ch kn ri
- mantenha os valores hexadecimais e adicione 0 quando necessário:
C0 00 00
Se você chegou até aqui tem uma dica bônus …
Faça o teste direto, o @TimPietrusky criou esta incrível ferramenta de demonstração para nomes de cores aleatórios: http://randomstringtocsscolor.com
Mas e ai você sabia que “Chucknorris” é uma cor no HTML?
Eu quando descobri isso fiquei fascinado e achei super interessante, e o você? Me diz ai o que achou e deixe seu comentário.
Grande abraço e até o próximo post aleatório como este que não necessariamente precisa ser de programação, excel ou qualquer coisa técnica aqui do blog.
Abraços
Douglas Godoy