1 pontos por GN⁺ 2024-12-21 | 1 comentários | Compartilhar no WhatsApp
  • Definindo a cor do texto em uma página web

    • Em geral, usa-se a propriedade color do CSS para definir a cor do texto em uma página web.
    • Porém, também existe uma forma de definir cores usando apenas HTML.
  • O atributo de cor no HTML

    • Em versões antigas do HTML, era possível definir a cor do texto usando o atributo color.
    • Por exemplo, ele era usado assim: <font color="#d72b2b">HTMHell rules!</font>.
    • Ao executar esse código no navegador, o texto é exibido em vermelho.
  • Tratamento de valores de cor inválidos

    • Em geral, o HTML não tem estado de erro, e os navegadores tentam lidar com valores inválidos da melhor forma possível.
    • Por exemplo, mesmo um valor de cor inválido como <font color="chucknorris"> é tratado pelo navegador como vermelho.
  • Regras de parsing de valores de cor

    • Limpeza inicial: remove-se o # do início do valor.
    • Substituição de caracteres inválidos: caracteres que não sejam 0-9 ou A-F/a-f são substituídos por 0.
    • Padronização do comprimento: se a string tiver comprimento 0 ou não for múltiplo de 3, adiciona-se 0.
    • Divisão em RGB: a string é dividida em três partes, usadas respectivamente como valores de vermelho, verde e azul.
    • Tratamento do comprimento: se cada componente tiver mais de 8 caracteres, remove-se pela esquerda.
    • Geração da cor final: os valores finais de vermelho, verde e azul são combinados para gerar a cor.
  • Como os navegadores modernos tratam cores

    • No CSS, ao processar valores de cor inválidos, o valor não é rejeitado, mas ajustado.
    • Por exemplo, rgb(300, -50, 1000) é convertido em rgb(255, 0, 255).
  • A flexibilidade da web

    • A web foi construída com base na flexibilidade, e isso permite que até sites de 1996 sejam renderizados em navegadores modernos.
    • Uma web perfeita pode ser entediante; a web precisa ser capaz de lidar com diferentes tipos de entrada.
  • Material de referência

    • São fornecidas informações adicionais sobre o padrão HTML e o parsing de cores.

1 comentários

 
GN⁺ 2024-12-21
Comentário do Hacker News
  • Este artigo parece reciclar o conteúdo de uma pergunta do Stack Overflow de 13 anos atrás

    • Coisas interessantes criadas na internet acabam sendo usadas para marketing
    • É uma pena que antigos usuários do Reddit e contribuidores de fóruns não tenham capturado o valor gerado pelo trabalho deles
    • Pelo menos é bom que isso tenha sido referenciado no final do artigo
  • Gostei do resultado em que 'chocolate' vira '#c0c0a0'

  • O texto era bom, mas o autor cometeu um erro: chucknorris não é renderizado como vermelho, vermelho é renderizado como chucknorris

  • Gosto da natureza permissiva da web

    • O rigor de algo como TypeScript é bom para negócios e trabalho
    • A natureza permissiva de HTML, CSS e JavaScript levou a muita adoção
    • Ao ver Rust enfrentando tantos problemas, talvez não seja um problema da linguagem, mas do tamanho do ecossistema
    • Se você quer rigor e perfeição, aplicações nativas são mais adequadas
    • A web renderiza muito rápido
  • Chuck Norris não é uma cor

    • O navegador tem medo de apontar isso
  • É possível substituir "o" por "0"

    • Ex.: 'coffee' vira '#c0ffee'
    • 'baobab' vira '#ba0bab' e 'decode' vira '#dec0de'
  • Há quem ache que os navegadores deveriam ser menos permissivos e impor perfeição

    • Uma web perfeita seria entediante
    • O importante é fazer a web funcionar aconteça o que acontecer
    • É importante evitar divergências em relação aos padrões
  • Dar nomes a cores é como dar nomes a números

    • Transformaram isso em um jogo
  • Concordo que a postura permissiva possibilita crimes cibernéticos

    • Segurança é um preço importante a pagar
    • Entusiastas de tecnologia legada podem executar navegadores web antigos em VMs com sandbox
  • Pode ter sido uma conversão acidental para vermelho