HWB: A Função de Cor CSS que (Quase) Ninguém Usa – Por Quê?

HWB: Uma Alternativa Intuitiva na Paleta de Cores CSS
No vasto universo do CSS, desenvolvedores e designers dispõem de diversas maneiras para especificar cores. Entre as opções conhecidas como RGB, HSL e códigos hexadecimais, existe uma função menos celebrada, mas potencialmente mais intuitiva: HWB (Hue, Whiteness, Blackness – Matiz, Brancura, Negritude). Apesar de suas promessas de uma abordagem mais humana para a seleção de cores, sua adoção pela comunidade de desenvolvimento web tem sido notavelmente baixa. Este artigo explora os motivos por trás dessa subutilização, mergulhando nas características do HWB, seu histórico e comparando-o com outras funções de cor.
Entendendo a Função de Cor HWB
A função hwb()
no CSS permite definir uma cor com base em três valores: matiz, porcentagem de branco e porcentagem de preto. A matiz (Hue) é um ângulo no círculo cromático (0 a 360 graus), similar ao HSL. Os valores de brancura (Whiteness) e negrume (Blackness) são porcentagens que indicam quanto branco ou preto deve ser misturado à matiz pura. A ideia é simular a mistura de tintas, tornando o processo de escolha de cores teoricamente mais fácil de entender para os humanos.
Por exemplo, para obter um laranja claro, poderíamos usar:
color: hwb(30deg 50% 0%);
Isso significa uma matiz de 30 graus (laranja), com 50% de branco adicionado e 0% de preto.
A Suposta Intuitividade do HWB em Debate
A principal alegação a favor do HWB é sua intuitividade. Afinal, pensar em adicionar branco ou preto a uma cor base parece um processo mental mais direto do que manipular saturação e luminosidade (como no HSL) ou os canais vermelho, verde e azul (RGB). No entanto, essa "intuitividade" é questionável quando comparada mais a fundo com o HSL.
Enquanto o HWB lida com a claridade através de dois argumentos (brancura e negrume), o HSL o faz com apenas um (luminosidade), reservando outro para a saturação. O HWB não oferece uma maneira clara e intuitiva de ajustar apenas a saturação, o que pode ser uma desvantagem para designers que precisam desse controle específico.
HWB vs. HSL: Uma Batalha de Familiaridade e Funcionalidade
Histórico e Adoção pelos Navegadores
Um fator crucial para a baixa popularidade do HWB é seu histórico relativamente recente em comparação com o HSL. O modelo de cor HSL foi criado nos anos 70, enquanto o HWB surgiu em 1996. Mais importante ainda, o HSL foi implementado nos navegadores já em 2008 (começando pelo Safari), enquanto o suporte para HWB só se tornou mais amplo por volta de 2021-2022. Essa diferença de mais de uma década deu ao HSL uma enorme vantagem em termos de familiaridade e uso estabelecido entre os desenvolvedores.
Limitações do HWB
Apesar de sua proposta intuitiva, o HWB, assim como o HSL e o RGB tradicional, opera dentro do gamut de cores sRGB. Isso significa que ele não oferece acesso à gama mais ampla de cores (HD colors) que os displays modernos são capazes de exibir. Funções de cor mais recentes como lch()
, oklch()
, lab()
, e oklab()
foram projetadas para trabalhar com esses espaços de cor mais amplos e oferecem vantagens como uniformidade perceptual, onde as mudanças nos valores correspondem mais de perto à percepção humana da cor.
A uniformidade perceptual é uma deficiência notável do HSL, onde o mesmo valor de luminosidade pode resultar em percepções de brilho muito diferentes dependendo da matiz. O LCH, por exemplo, corrige isso, tornando-o uma escolha mais robusta para certas aplicações de design.
O Argumento para Manter o HWB
Apesar da concorrência de funções de cor mais poderosas e da longa hegemonia do HSL, houve debates sobre a remoção do HWB das especificações do CSS. Em 2022, Lea Verou, uma figura proeminente na comunidade CSS, levantou essa possibilidade. No entanto, a decisão foi manter o HWB, em parte porque os navegadores já estavam em processo de implementação.
O Futuro das Cores no CSS
O cenário das cores no CSS está em constante evolução. A introdução de espaços de cor de alta definição (como Display P3 e Rec2020) e funções como color()
, color-mix()
, LCH, Lab, OKLCH e OKLab está expandindo significativamente as possibilidades para designers e desenvolvedores. Essas ferramentas permitem não apenas acessar mais cores, mas também misturá-las e manipulá-las de formas mais sofisticadas e perceptualmente precisas.
O CSS Color Module Level 4 e os esforços de interoperabilidade, como o Interop 2022, têm sido cruciais para trazer esses recursos avançados para todos os principais navegadores.
HWB no Contexto das Ferramentas de Desenvolvimento
As ferramentas de desenvolvimento dos navegadores, como o Chrome DevTools, já oferecem suporte para inspecionar e editar cores no formato HWB. Isso indica um reconhecimento da função, mesmo que sua utilização prática seja limitada. A compatibilidade com navegadores modernos como Chrome, Firefox, Safari e Edge é agora uma realidade para o HWB.
Conclusão: HWB é uma Curiosidade ou uma Ferramenta Subestimada?
A baixa adoção da função de cor HWB parece ser uma combinação de vários fatores: a longa familiaridade dos desenvolvedores com HSL, o atraso na sua implementação pelos navegadores e a chegada de novas funções de cor mais poderosas que oferecem acesso a gamuts de cores mais amplos e melhor uniformidade perceptual.
Embora o HWB possa oferecer uma maneira marginalmente mais "instintiva" de pensar sobre a mistura de cores para alguns, essa vantagem parece não superar suas limitações e a concorrência. No entanto, sua presença no CSS e o suporte dos navegadores garantem que ele permaneça uma opção válida, ainda que pouco utilizada, na paleta do desenvolvedor web. Para artistas que tradicionalmente misturam cores com branco e preto, o HWB pode ainda encontrar um nicho de preferência.
Em última análise, a escolha de qual função de cor usar dependerá das necessidades específicas do projeto, da familiaridade do desenvolvedor e dos requisitos de compatibilidade e gama de cores. Com o avanço contínuo das tecnologias de cores no CSS, é provável que funções mais robustas como LCH e OKLCH ganhem mais destaque no futuro.
