Mercado
Preços
Iniciar sessãoComeçar
Guia PráticoCor
Cor

Cor HSL: a forma mais amigável de escrever cores em CSS

O hex diz ao navegador o que pintar. O HSL diz-te o que a cor é: que matiz, quão viva, quão clara. Isso faz dele o formato mais fácil de editar à mão.

GradientlyConta Gradiently verificada·1 de outubro de 2026·6 min de leitura
Capa: Floating Era · GR·791P·AD

A versão curta

  • Uma cor HSL descreve uma cor por matiz, saturação e luminosidade em vez de quantidades de vermelho, verde e azul.
  • O matiz é um ângulo no círculo cromático de 0 a 360 graus, onde 0 é vermelho, 120 é verde e 240 é azul.
  • A saturação vai de 0% (cinzento) a 100% (cor plena), e a luminosidade vai de 0% (preto) passando por 50% (o matiz puro) até 100% (branco).
  • O CSS moderno escreve-a como hsl(262 83% 58%), com um alfa opcional depois de uma barra, e todos os navegadores em uso a suportam.
  • A luminosidade do HSL não é o brilho com que uma cor parece às pessoas, por isso duas cores com a mesma luminosidade podem diferir enormemente em contraste.
Nesta página
O que significam matiz, saturação e luminosidadeSintaxe HSL em CSSConstrói uma escala de cor mudando a luminosidadeOnde o HSL te enganaConverter HSL em hex e vice-versa

Uma cor HSL escreve-se com três números: matiz, saturação e luminosidade. Em CSS, hsl(262 83% 58%) significa um matiz de 262 graus (violeta), 83% de saturação (viva) e 58% de luminosidade (um pouco acima do ponto médio). É o mesmo violeta que #7c3bed, mas consegues lê-lo. Queres mais claro? Sobe o último número. Mais suave? Baixa o do meio. Essa propriedade única, um significado por número, é a razão de o HSL ser a forma mais amigável de escrever cores à mão.

O que significam matiz, saturação e luminosidade

O matiz é uma posição no círculo cromático, dada em graus. O vermelho está em 0 e outra vez em 360, o amarelo em 60, o verde em 120, o ciano em 180, o azul em 240 e o magenta em 300. Mover o matiz roda a cor mantendo a sua força.

Matiz de 0 a 360 grauslinear-gradient(90deg, #ff0000 0%, #ffff00 16.67%, #00ff00 33.33%, #00ffff 50%, #0000ff 66.67%, #ff00ff 83.33%, #ff0000 100%)
Todos os matizes a 100% de saturação e 50% de luminosidade. Lê da esquerda para a direita: 0, 60, 120, 180, 240, 300 e de volta a 360.

A saturação é a quantidade de cor. A 0% todos os matizes são o mesmo cinzento; a 100% é tão viva quanto o ecrã permite. A luminosidade vai do preto a 0% ao branco a 100%, com o matiz puro a 50%. O modelo é tratado de forma mais ampla em matiz, saturação e brilho, que também explica como o HSB das aplicações de design difere do HSL do CSS.

Matiz0 a 360 (graus)

O que muda ao alterá-lo

Roda a cor: de violeta a azul e a verde-azulado
Saturação

Intervalo

0% a 100%

O que muda ao alterá-lo

De cinzento a cor plena
Luminosidade

Intervalo

0% a 100%

O que muda ao alterá-lo

De preto, passando pelo matiz puro a 50%, até branco
Alfa (opcional)

Intervalo

0 a 1, ou 0% a 100%

O que muda ao alterá-lo

De invisível a opaco
ValorIntervaloO que muda ao alterá-lo
Matiz0 a 360 (graus)Roda a cor: de violeta a azul e a verde-azulado
Saturação0% a 100%De cinzento a cor plena
Luminosidade0% a 100%De preto, passando pelo matiz puro a 50%, até branco
Alfa (opcional)0 a 1, ou 0% a 100%De invisível a opaco
Quatro números, cada um com uma só função. Essa separação é todo o atrativo.

Sintaxe HSL em CSS

Há duas grafias. A moderna separa os valores com espaços e põe o alfa depois de uma barra. A mais antiga usa vírgulas e uma função hsla() à parte. Os navegadores aceitam ambas, e o hsl() já aceita alfa também, por isso o hsla() deixou de ser necessário. A referência da MDN para hsl() lista todas as formas.

css
.button {
  /* modern syntax */
  background: hsl(262 83% 58%);

  /* with 80% opacity */
  background: hsl(262 83% 58% / 0.8);

  /* older comma syntax, still valid */
  background: hsla(262, 83%, 58%, 0.8);

  /* hue can carry a unit */
  background: hsl(262deg 83% 58%);
}
As quatro são o mesmo violeta. A segunda e a terceira juntam 80% de opacidade.

Constrói uma escala de cor mudando a luminosidade

É aqui que o HSL ganha o seu lugar. Mantém o matiz e a saturação fixos, vai variando a luminosidade e tens uma família de tons claros e escuros que claramente pertencem juntos. Eis um violeta em sete passos, com o hex para que cada um se converte.

hsl(262 83% L) em sete valores de luminosidade. Passos claros para fundos, o do meio para botões, passos escuros para texto.

Combina isto com propriedades personalizadas de CSS e todo o teu tema fica dependente de dois números. Guarda o matiz e a saturação uma só vez e depois escolhe uma luminosidade por função. Muda a variável do matiz e toda a interface passa de violeta a verde-azulado, que é a ideia por trás de variáveis CSS para temas.

css
:root {
  --brand-h: 262;
  --brand-s: 83%;

  --brand-50:  hsl(var(--brand-h) var(--brand-s) 95%);
  --brand-200: hsl(var(--brand-h) var(--brand-s) 85%);
  --brand-500: hsl(var(--brand-h) var(--brand-s) 58%);
  --brand-800: hsl(var(--brand-h) var(--brand-s) 30%);
}

/* a teal theme is one line */
.theme-teal {
  --brand-h: 175;
}
Todas as cores da marca derivam do mesmo matiz, por isso a escala nunca pode sair da família.

Cores relativas

Os navegadores mais recentes suportam também a sintaxe de cor relativa, que lê as partes HSL de qualquer cor e te deixa ajustá-las. hsl(from var(--brand) h s calc(l + 15%)) dá uma versão mais clara seja qual for a cor da marca, mesmo que tenha sido definida em hex. Confirma o suporte atual no caniuse antes de contares com isso e mantém uma alternativa simples. Para misturar duas cores em vez de empurrar uma, color-mix() em CSS é a ferramenta.

Onde o HSL te engana

O HSL é um rearranjo do RGB, não um modelo da visão humana. A sua luminosidade é uma simples média do canal mais claro e do mais escuro, por isso ignora o facto de os nossos olhos verem o amarelo e o verde como muito mais brilhantes do que o azul. O resultado: duas cores com luminosidade HSL idêntica podem parecer completamente diferentes em brilho.

As quatro têm 50% de luminosidade. Contra branco, o amarelo tem um rácio de contraste de cerca de 1,07:1 e o azul de cerca de 8,6:1.

Isto importa em dois sítios. Primeiro, uma escala construída variando a luminosidade HSL será desigual entre matizes: um amarelo a 50% é claro demais para texto, enquanto um azul a 50% passa com facilidade. Testa sempre pares reais com um verificador de contraste. Segundo, os gradientes e as paletas geradas que rodam o matiz a luminosidade fixa vão ficar mais brilhantes e mais ténues ao passar pelo amarelo e pelo azul.

O HSL é bom para

  • Ler e editar cores à mão
  • Tons claros e escuros de um só matiz
  • Troca rápida de tema com variáveis
  • Dessaturar uma cor para um estado esbatido

Usa antes OKLCH para

  • Escalas que coincidem entre matizes diferentes
  • Contraste previsível a partir de um valor de luminosidade
  • Gradientes que se mantêm uniformes em brilho
  • Paletas geradas para sistemas de design

O OKLCH mantém a mesma ideia amigável (luminosidade, colorido, matiz) mas mede a luminosidade como os olhos o fazem. Se estás a começar um sistema de design novo, é a melhor opção por omissão; se estás a editar CSS existente ou queres um ajuste rápido e legível, o HSL continua perfeitamente bom.

Converter HSL em hex e vice-versa

Raramente precisas de fazer as contas, já que todas as ferramentas de design e painéis de ferramentas de programador dos navegadores convertem por ti: clica numa amostra de cor nas ferramentas do Chrome ou do Firefox e percorre os formatos. Por baixo, o HSL converte-se primeiro em RGB, e de RGB para hex é aritmética simples de pares, explicada em hex para RGB. Espera pequenas diferenças de arredondamento: hsl(262 83% 58%) cai em #7c3bed, um passo ao lado do #7c3aed com que podias ter começado, porque percentagens inteiras não conseguem atingir cada um dos 16,7 milhões de valores hex.

Se desenhas no Gradiently, raramente tocas nestes números: um Mark traz a sua própria paleta e, no Pro, o kit de marca guarda as tuas cores para que o Designer as aplique por ti.

Pergunta ao Designer

Descreve o que precisas e a IA da Gradiently cria-o, sobre o teu Mark.

Experimentar o Designer

Perguntas frequentes

O que significa HSL?

Matiz, saturação e luminosidade (em inglês, hue, saturation e lightness). O matiz é o ângulo no círculo cromático, a saturação é quão viva é a cor e a luminosidade é quão perto está do preto ou do branco.

Como escrevo uma cor HSL em CSS?

Usa hsl(matiz saturação% luminosidade%), por exemplo hsl(262 83% 58%). Junta transparência depois de uma barra: hsl(262 83% 58% / 0.5).

O hsla() ainda é necessário?

Não. O hsl() aceita um valor alfa em todos os navegadores atuais, por isso o hsla() só se mantém para código mais antigo.

Qual é a diferença entre HSL e RGB?

O RGB diz quanta luz vermelha, verde e azul misturar; o HSL diz que matiz, quão viva e quão clara. Descrevem as mesmas cores, mas o HSL é mais fácil de ajustar à mão.

Porque é que duas cores HSL com a mesma luminosidade parecem diferentes?

A luminosidade HSL ignora a sensibilidade dos olhos a cada matiz, por isso o amarelo parece muito mais brilhante do que o azul ao mesmo valor. O OKLCH resolve isto com luminosidade percetual.

Partilhar este guia

Escrito pela GradientlyConta Gradiently verificada

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

Nesta página

O que significam matiz, saturação e luminosidadeSintaxe HSL em CSSConstrói uma escala de cor mudando a luminosidadeOnde o HSL te enganaConverter HSL em hex e vice-versa

Partilhar este guia

A seguir em Cor

OKLCH explicado: cor percetual para designers

Continua a ler

Todos os guias de Cor
Cor

OKLCH explicado: cor percetual para designers

6 min de leitura

O HSL prometeu cor legível e quase cumpriu. O OKLCH mantém a parte legível e corrige a mentira sobre a luminosidade, e é por isso que os sistemas de design estão a mudar para ele.

Cor

Hex para RGB: converter códigos de cor à mão ou em código

6 min de leitura

Um código hex são apenas três números escritos em base 16. Quando vês os pares, converter à mão leva segundos, e a versão em código tem quatro linhas.

Cor

Matiz, saturação e brilho (HSB) explicados de forma simples

6 min de leitura

Os códigos hex são para máquinas. Matiz, saturação e brilho são a forma como as pessoas pensam realmente a cor: que cor, quão forte, quão clara. Aprende os três botões e todos os seletores de cor passam a fazer sentido.

Encontra o visual que é só teu.

Cada Mark é um fundo vivo com um só dono. Experimenta um Mark ainda disponível e reserva o teu quando te parecer certo.

Começar a criar

Verificar um certificado

Escreve um número de certificado ou o código de um Mark para veres quem é o dono.

Funciona com o ChatGPT e o Claude

Pede um design à tua IA. Ela cria-o no teu Mark, pronto a editar.

ChatGPTClaude
Como ligar

Produto

  • Mercado
  • Explorar
  • Preços
  • Certificados

Aprender

  • Guia Prático
  • Centro de ajuda
  • Novidades

Programadores

  • Visão geral
  • ChatGPT e Claude
  • Referência da API
  • Chaves de API

Empresa

  • Sobre nós
  • Contactos
  • Iniciar sessão

Legal

  • Termos
  • Privacidade
  • Reembolsos
  • Proteção de Marks
  • Cookies
  • Todas as políticas
Passa pelas letras. Cada uma veste um Mark real.Toca numa letra para veres o seu Mark.Um nome. Dez Marks lá dentro.
© 2026 Gradiently