Skip to content

Glossary

Chroma

Vivacidade independente do brilho

By Published Updated

Chroma é o eixo do atributo de cor que captura “quanta cor existe na cor” independente do brilho. Um vermelho puro e um rosa puro podem ter matizes e luminosidades semelhantes mas chromas muito diferentes — rosa está mais próximo do cinza, vermelho está mais distante do cinza.

Chroma às vezes é confundido com saturação. A distinção:

  • Chroma é a distância absoluta do eixo acromático (cinza) em uma determinada luminosidade, medida no espaço de cor escolhido (OKLab, CIELAB, etc.).
  • Saturação é a proporção de chroma para luminosidade — uma medida relativa.

Isso importa no design porque OKLCH (a função de cor CSS moderna) usa chroma, não saturação. oklch(0.72 0.18 47) significa luminosidade 0,72, chroma 0,18, matiz 47°. Ajustar o chroma sozinho mantém a luminosidade e o matiz estáveis; com saturação, ajustar um valor também altera o brilho percebido.

O chroma máximo alcançável varia com matiz e luminosidade. Em sRGB, o amarelo em luminosidade média pode suportar mais chroma do que o azul na mesma luminosidade — os primários amarelos estão mais próximos do limite do gamut sRGB. Valores OKLCH que excedem o gamut sRGB são cortados na fronteira, às vezes deslocando a cor renderizada de forma inesperada. Para um design perceptualmente consistente em uma ampla faixa de matizes, escolha um valor de chroma (por exemplo, 0,12-0,15) que seja alcançável em todos os matizes necessários.

Exemplo prático

Construa uma paleta de 9 passos de cinza a vermelho. Em HSL você poderia começar em hsl(0 0% 50%) e terminar em hsl(0 100% 50%), escalando a saturação linearmente. Os passos intermediários ficam bem no vermelho, mas a mesma abordagem para o azul (hsl(240 0% 50%)hsl(240 100% 50%)) produz um ponto médio que parece visivelmente mais escuro do que o ponto médio vermelho — a luminosidade HSL não é perceptualmente uniforme. Em OKLCH, fixando a luminosidade em 0,65 e escalando o chroma de 0 a 0,18, produz nove passos que correspondem em brilho percebido nos matizes. Concretamente: oklch(0.65 0.00 0), oklch(0.65 0.0225 0), …, oklch(0.65 0.18 0) ficam todos na mesma linha de luminosidade percebida. Repita a mesma rampa de chroma no matiz 240 (azul) e a escala azul resultante se paralelizará visualmente com a escala vermelha passo a passo — impossível de alcançar apenas com HSL.

Numericamente, os valores de chroma OKLCH para cores sRGB dentro do gamut caem aproximadamente na faixa de 0 a 0,37. O máximo depende do matiz e da luminosidade: em L=0,6, o vermelho mais saturado alcançável em sRGB tem chroma de cerca de 0,25; o amarelo mais saturado cerca de 0,21; o azul mais saturado cerca de 0,31. Conhecer esses limites evita especificar valores de paleta impossíveis que o navegador vai cortar silenciosamente.

Quando e por que isso importa

Chroma importa sempre que você precisa de cores que pareçam consistentes nos matizes — sistemas de design com escalas de cor semânticas (vermelho-50 a vermelho-900, azul-50 a azul-900, etc.), visualizações de dados com paletas categóricas que devem ser igualmente legíveis, e interfaces acessíveis onde as proporções de contraste dependem da luminosidade percebida (não bruta). A paleta do Tailwind v4, Radix Colors e o sistema de design IBM Carbon todos publicam rampas OKLCH com chroma controlado exatamente por este motivo. O erro a evitar é tratar “saturação” como sinônimo de “intensidade”: aumentar a saturação em HSL arrasta a luminosidade junto, enquanto aumentar o chroma em OKLCH não. Para visualização de dados, a regra prática é escolher o chroma máximo alcançável em todos os matizes necessários (tipicamente cerca de 0,10-0,13 para sRGB dentro do gamut em todos os matizes), depois manter o chroma fixo e variar a luminosidade para os passos da escala. Referência: W3C CSS Color Module Level 4 — OKLab e OKLCH.

Por que OKLab/OKLCH substituiu o HSL para trabalho sério de design: HSL é uma transformação algébrica simples de RGB — seu eixo de “luminosidade” não é perceptualmente uniforme. Duas cores HSL com valores de luminosidade idênticos podem parecer muito diferentes em brilho real; um amarelo com luminosidade HSL 50% parece muito mais brilhante do que um azul no mesmo valor. OKLab (Björn Ottosson, 2020) foi especificamente projetado para que o eixo L corresponda à percepção humana de luminosidade, e o eixo chroma corresponda à saturação percebida. Passos iguais em OKLab parecem passos iguais ao olho. O CSS Color Module Level 4 adicionou as funções oklab() e oklch() por esse motivo, e os sistemas de design (Tailwind 4, Radix Colors) publicam cada vez mais escalas de paleta geradas em OKLCH para consistência perceptual garantida. Relacionado: cromaticidade, sRGB, gamut. Referência: Björn Ottosson — Um espaço de cor perceptual para processamento de imagem (2020).

Frequently asked questions

O que é chroma na ciência das cores?
Chroma é a vivacidade ou coloração de uma cor independente de seu brilho. Nos modelos de cor CIECAM02 e OKLCH, chroma é a distância radial do eixo acromático (cinza) — um chroma de 0 é cinza; um chroma alto é uma cor vívida e saturada.
Como o chroma é usado no CSS?
CSS Color Level 4 usa a função oklch() com três valores: luminosidade, chroma e matiz. oklch(60% 0.2 120) descreve um verde moderadamente vívido a 60% de luminosidade. Este modelo é perceptualmente uniforme — passos iguais de chroma parecem igualmente vívidos ao olho.
Qual é a diferença entre chroma e saturação?
Saturação é relativa: expressa a coloração como uma proporção do máximo possível para uma determinada luminosidade. Chroma é absoluto: mede a coloração em uma escala fixa independentemente da luminosidade. Em HSL, reduzir a luminosidade em direção ao preto ou branco reduz a saturação mesmo com chroma constante.
Quais valores de chroma estão dentro do gamut sRGB?
Em OKLCH, as cores sRGB tipicamente têm chroma abaixo de 0,37. Display P3 se estende até aproximadamente 0,40 para a maioria dos matizes. Valores acima de 0,40 estão fora do gamut de todos os monitores do consumidor e requerem hardware HDR ou de gamut amplo para renderizar fielmente.

Related

Published May 16, 2026 · Last reviewed May 31, 2026