A versão curta
- Um gradiente turvo é aquele que fica cinzento, castanho ou baço onde as cores se encontram, em vez de se manter vivo de uma ponta à outra.
- A causa é a mistura no espaço de cor sRGB, onde o ponto a meio caminho entre duas cores opostas, como azul e amarelo, é um cinzento liso.
- Misturar em OKLCH mantém a intensidade da cor porque dá a volta ao círculo cromático em vez de atravessar o cinzento.
- Uma paragem intermédia escolhida à mão, como azul-petróleo entre azul e amarelo, corrige o turvo em qualquer ferramenta e em qualquer formato.
- Os matizes vizinhos no círculo cromático quase nunca ficam turvos, e é por isso que os gradientes análogos são os mais seguros de desenhar.
Nesta página
Um gradiente turvo é uma mistura que fica cinzenta, castanha ou baça ao meio, mesmo quando as suas duas cores são vivas. Acontece porque a maioria das ferramentas mistura as cores no espaço de cor sRGB, combinando os valores de vermelho, verde e azul em linha reta. Quando as duas cores estão em lados opostos do círculo cromático, essas linhas retas encontram-se perto do cinzento. A solução é escolher o caminho que a mistura faz: acrescentar uma cor ao meio, misturar em OKLCH ou usar matizes mais próximos.
Porque é que as cores opostas ficam cinzentas
Olha para os números. O azul puro é vermelho 0, verde 0, azul 255. O amarelo puro é vermelho 255, verde 255, azul 0. A meio caminho, todos os canais ficam em cerca de 128, que é #808080: um cinzento médio. O mesmo acontece com vermelho e ciano, laranja e azul-celeste, ou qualquer outro par complementar. Matematicamente, a linha reta entre eles passa mesmo pelo eixo dos cinzentos.
Um segundo problema, mais subtil, é a quebra escura. Azul a vermelho em sRGB passa por #800080, um roxo mais escuro do que qualquer das pontas, por isso o meio da mistura parece uma nódoa negra. As cores não são opostas, mas a mistura perde luminosidade onde se encontram.
Solução 1: acrescenta uma paragem intermédia
A solução mais simples funciona em todas as ferramentas e em todos os formatos: escolhe a cor que queres ao meio e coloca-a lá tu mesmo. Escolhe uma cor viva e saturada que fique entre as duas pontas no círculo cromático. Entre azul e amarelo, é azul-petróleo ou verde. Entre laranja e azul, um rosa leva o caminho quente, o que a maioria dos gradientes de pôr do sol usa.
Solução 2: mistura em OKLCH
O OKLCH descreve a cor como luminosidade, croma (intensidade) e matiz, e foi pensado para que passos iguais pareçam mudanças iguais às pessoas. Misturar em OKLCH mantém o croma elevado e dá a volta ao círculo cromático em vez de o cortar a direito, por isso a mistura nunca cai no cinzento. Em CSS, pedes isso com uma expressão. Também podes escolher para que lado dar a volta ao círculo.
/* Default for hex colours: sRGB, grey in the middle */
.muddy { background: linear-gradient(90deg, #0000ff, #ffff00); }
/* OKLCH, shorter way round the wheel: through teal and green */
.clean { background: linear-gradient(90deg in oklch, #0000ff, #ffff00); }
/* OKLCH, longer way round: through magenta, red and orange */
.sunset { background: linear-gradient(90deg in oklch longer hue, #0000ff, #ffff00); }
/* OKLab: straight line, but with even lightness */
.even { background: linear-gradient(90deg in oklab, #0000ff, #ffff00); }Também vale a pena conhecer o OKLab. É o padrão da sintaxe de cor moderna do CSS e dá misturas suaves e uniformes, mas como continua a viajar em linha reta, os verdadeiros opostos perdem intensidade ao meio. Usa o OKLab para cores que já estão próximas; usa o OKLCH ou uma paragem intermédia para cores afastadas. Para a sintaxe completa, vê gradientes OKLCH em CSS, ou explora o espaço em oklch.com.
Solução 3: escolhe matizes mais próximos
A forma mais fiável de evitar o turvo é não o pedir. As cores que ficam lado a lado no círculo, como azul e violeta ou laranja e rosa, misturam-se de forma limpa em qualquer espaço de cor, porque a sua linha reta nunca passa perto do cinzento. É por isso que as cores análogas dão os gradientes mais seguros, e porque os pares complementares pedem cuidado; vê cores complementares.
| Par | Resultado por omissão | Ponte limpa |
|---|---|---|
| Azul e amarelo | Cinzento liso | Azul-petróleo #14b8a6 ou verde #22c55e |
| Laranja e azul | Cinzento acastanhado | Rosa #ec4899 ou violeta #8b5cf6 |
| Roxo e verde | Cinzento-azulado baço | Azul #0ea5e9 |
| Vermelho e ciano | Cinzento liso | Violeta #8b5cf6 |
| Rosa e verde | Bege turvo | Amarelo-pálido #fde68a ou lavanda #c4b5fd |
| Azul e vermelho | Quebra roxa escura | Magenta vivo #d946ef |
Solução 4: atenção à luminosidade
O turvo não é só cinzento. Uma mistura também pode parecer baça quando a sua luminosidade cai ao meio, ou quando uma ponta é muito mais escura do que a outra e a transição acontece numa faixa estreita. Mantém a luminosidade das paragens mais ou menos igual, ou muda-a de forma constante numa direção, e dá espaço à transição. Uma paragem a 40% ou 60% parece muitas vezes mais natural do que uns mecânicos 50%.
Fica turvo
- Cores opostas sem nada entre elas
- Uma ponta clara e uma escura a encontrarem-se numa faixa estreita
- Muitas cores sem relação numa só mistura
- Confiar na mistura por omissão para pares complementares
Fica limpo
- Uma cor viva escolhida para o ponto médio
- Misturar em OKLCH para matizes afastados
- Matizes vizinhos mais um acento
- Verificar o ponto médio isolado antes de publicar
O turvo agrava-se nos gradientes de malha, onde várias cores se encontram ao mesmo tempo. As mesmas regras aplicam-se a cada sobreposição: mantém as vizinhas próximas e põe uma ponte entre as opostas.
Se preferires partir de uma mistura que já está equilibrada, pesquisa no Mercado por palavras de cor como “azul e amarelo” ou “azul-petróleo profundo” e cria com qualquer Mark que encontres.
Perguntas frequentes
Porque é que o meu gradiente parece cinzento ao meio?
As tuas cores estão quase opostas no círculo cromático e estão a ser misturadas em sRGB, onde o ponto a meio caminho entre opostos é cinzento.
Como corrijo um gradiente turvo?
Acrescenta uma paragem intermédia viva entre as duas cores, mistura em OKLCH em vez de sRGB ou escolhe cores mais próximas no círculo cromático.
O que significa in oklch num gradiente CSS?
Diz ao navegador para misturar as cores no espaço de cor OKLCH, que mantém a intensidade da cor e dá a volta ao círculo cromático em vez de passar pelo cinzento.
O OKLab ou o OKLCH é melhor para gradientes?
O OKLab dá misturas uniformes e suaves para cores próximas. O OKLCH é melhor para matizes afastados porque mantém a sua intensidade.
Que combinações de cores nunca ficam turvas?
Os matizes vizinhos, como azul e violeta ou laranja e rosa, misturam-se de forma limpa em quase qualquer espaço de cor.
Escrito pela Gradiently
A equipa por trás da Gradiently, uma ferramenta de design construída em torno dos Marks: gradientes vivos que fazem tudo o que crias parecer teu.
Ver o nosso perfil


