Converta valores RGB em HSL
Introduza três canais RGB e os valores HSL aparecem enquanto escreve: rgb(59, 130, 246) corresponde a hsl(217.2, 91.2%, 59.8%). O campo aceita números com ou sem parênteses e reconhece canais escritos como frações de 0 a 1. O seletor dá a notação CSS ou a escala do Office.
Como converter RGB em HSL?
Divida cada canal por 255 e encontre o maior e o menor. A luminosidade é a média desses dois valores. A saturação resulta da diferença entre eles, e o matiz do canal mais forte[1].
Fórmula: Δ = máx − mín, L = (máx + mín) ÷ 2, S = Δ ÷ (1 − |2L − 1|), e quando o vermelho é o canal mais forte, H = 60° × ((G − B) ÷ Δ).
Tome rgb(239, 68, 68). Dividido por 255, o vermelho vale 0,937, e o verde e o azul 0,267 cada um. A média é 0,602, por isso a luminosidade é de 60,2%. A diferença, 0,671, dá uma saturação de 84,2%.
O verde e o azul são iguais, por isso o matiz é 0°. A cor completa é hsl(0, 84.2%, 60.2%). Quando o verde é o canal mais forte, o matiz conta-se a partir de 120°, por isso rgb(34, 197, 94) dá hsl(142.1, 70.6%, 45.3%).
O conversor RGB para HEX dá os códigos HEX destas cores, e o conversor HEX para HSL parte de um código.
Em que difere o HSL do RGB?
O RGB descreve uma cor pelas quantidades de luz vermelha, verde e azul que o ecrã combina num píxel. O HSL descreve a mesma cor pelo matiz, pela quantidade de cor e pela luminosidade. A especificação CSS observa que, com números RGB, é difícil adivinhar como clarear uma cor mantendo o seu matiz[1].
As duas notações cobrem o mesmo espaço sRGB. Uma cor escrita em HSL no CSS é convertida pelo navegador em sRGB[1], por isso qualquer cor HSL pode escrever-se como três canais RGB, e vice-versa.
Os autores do modelo, George Joblove e Donald Greenberg, deram outros nomes às suas dimensões em 1978: hue, relative chroma e intensity[2]. A especificação CSS chama-lhes hue, saturation e lightness, em português matiz, saturação e luminosidade[1].
Se tiver a cor noutra notação, como OKLCH, Lab ou código de Android, o conversor de cores mostra-a de uma vez em todas as notações.
Que valores HSL têm os cinzentos RGB?
| Valores RGB | Código HEX | HSL em CSS | HSL no Office (0–255) |
|---|---|---|---|
| 0, 0, 0 | #000000 | hsl(0, 0%, 0%) | 170, 0, 0 |
| 32, 32, 32 | #202020 | hsl(0, 0%, 12.5%) | 170, 0, 32 |
| 64, 64, 64 | #404040 | hsl(0, 0%, 25.1%) | 170, 0, 64 |
| 96, 96, 96 | #606060 | hsl(0, 0%, 37.6%) | 170, 0, 96 |
| 128, 128, 128 | #808080 | hsl(0, 0%, 50.2%) | 170, 0, 128 |
| 160, 160, 160 | #A0A0A0 | hsl(0, 0%, 62.7%) | 170, 0, 160 |
| 192, 192, 192 | #C0C0C0 | hsl(0, 0%, 75.3%) | 170, 0, 192 |
| 224, 224, 224 | #E0E0E0 | hsl(0, 0%, 87.8%) | 170, 0, 224 |
| 255, 255, 255 | #FFFFFF | hsl(0, 0%, 100%) | 170, 0, 255 |
Como se escreve em HSL uma cor RGB com opacidade?
rgba() é o quarto número de hsla(). A tabela mostra sete valores de opacidade para rgb(59, 130, 246) com o código HEX, em que a opacidade ocupa os dois últimos dígitos.| Opacidade | rgba | hsla | Código HEX |
|---|---|---|---|
| 100% | rgba(59, 130, 246, 1) | hsl(217.2, 91.2%, 59.8%) | #3B82F6 |
| 90% | rgba(59, 130, 246, 0.9) | hsla(217.2, 91.2%, 59.8%, 0.9) | #3B82F6E6 |
| 75% | rgba(59, 130, 246, 0.75) | hsla(217.2, 91.2%, 59.8%, 0.75) | #3B82F6BF |
| 50% | rgba(59, 130, 246, 0.5) | hsla(217.2, 91.2%, 59.8%, 0.5) | #3B82F680 |
| 25% | rgba(59, 130, 246, 0.25) | hsla(217.2, 91.2%, 59.8%, 0.25) | #3B82F640 |
| 10% | rgba(59, 130, 246, 0.1) | hsla(217.2, 91.2%, 59.8%, 0.1) | #3B82F61A |
| 0% | rgba(59, 130, 246, 0) | hsla(217.2, 91.2%, 59.8%, 0) | #3B82F600 |
hsl() simples, porque a opacidade total é o valor predefinido.Como se convertem em HSL canais escritos como frações de 0 a 1?
| Canais 0–1 | HSL em CSS | HSL no Office (0–255) |
|---|---|---|
| 0.2314, 0.5098, 0.9647 | hsl(217.2, 91.2%, 59.8%) | 154, 233, 153 |
| 0.1333, 0.7725, 0.3686 | hsl(142.1, 70.6%, 45.3%) | 100, 180, 116 |
| 0.5, 0.5, 0.5 | hsl(0, 0%, 50.2%) | 170, 0, 128 |
| 1.0, 0, 0 | hsl(0, 100%, 50%) | 0, 255, 128 |
1, 0, 0 tem apenas números inteiros, por isso o conversor lê-o na escala 0–255. 1.0, 0, 0 indica frações e dá o vermelho pleno.Que formas de escrever os valores RGB é que este conversor aceita?
| O que escreve | Resultado do conversor | Como lemos |
|---|---|---|
| rgb(59, 130, 246) | hsl(217.2, 91.2%, 59.8%) | A notação CSS com parênteses é aceite sem alterações |
| 59 130 246 | hsl(217.2, 91.2%, 59.8%) | Três números separados por espaços chegam, não são precisos parênteses nem vírgulas |
| R: 59, G: 130, B: 246 | hsl(217.2, 91.2%, 59.8%) | As letras dos canais, como as escreve um manual de marca, são ignoradas e ficamos só com os números |
| rgb(23.1%, 51%, 96.5%) | hsl(217.2, 91.2%, 59.8%) | Os canais em percentagem passamo-los nós para a escala 0–255 |
| rgba(59, 130, 246, 0,5) | hsla(217.2, 91.2%, 59.8%, 0.5) | A opacidade escrita com vírgula decimal é levada para o resultado em hsla |
| 0,2314 0,5098 0,9647 | hsl(217.2, 91.2%, 59.8%) | Os canais escritos em frações de 0 a 1 são reconhecidos pela vírgula e passados para a escala 0–255 |
| [59, 130, 246] | hsl(217.2, 91.2%, 59.8%) | Lemos o array do NumPy que o Python imprime, com os parênteses retos |
| background-color: rgb(59, 130, 246); | hsl(217.2, 91.2%, 59.8%) | Cole a linha inteira da folha de estilos, a cor tiramo-la nós |
| 300, -20, 128 | hsl(329.9, 100%, 50%) | Os valores fora do intervalo são ajustados tal como faz o navegador: 300 desce para 255 e −20 sobe para 0 |
Como converter RGB em HSL no código, no CSS e no Office?
O Python, o CSS e o Office convertem RGB em HSL por conta própria. Cada um escreve o resultado de outra forma, por isso veja aqui como o ler em cada caso.
Python
colorsys.rgb_to_hls(r, g, b)recebe canais de 0 a 1 e devolve matiz, luminosidade e saturação por esta ordem[3]. Para#3B82F6, o matiz é 0,6034. É uma fração de uma volta completa, por isso multiplicado por 360 dá 217,2°.CSS
Com a sintaxe relativahsl(from rgb(59 130 246) h s calc(l + 10)), o próprio navegador converte RGB em HSL e aumenta a luminosidade em 10 pontos[4]. Testámos esta sintaxe no Chromium 151.Caixa Cores do Office
Introduza os canais com o modelo RGB e depois mude o modelo de cor para HSL. A caixa mostra matiz, saturação e luminosidade numa escala de 0 a 255[5], que são os mesmos números que o conversor dá na notação Microsoft Office (0–255).
Converter outras unidades para HSL
Converter RGB para outras unidades
Fontes
- CSS Color Module Level 4 — Converting sRGB Colors to HSL — W3C
- HSL e HSV — Wikipédia
- colorsys — Conversões entre sistemas de cores — Python Software Foundation
- Using relative colors — MDN Web Docs
- Escolher cores na caixa de diálogo Cores — Suporte da Microsoft
Todos os valores das tabelas foram calculados a partir das definições das unidades e verificados aritmeticamente antes da publicação. Os dados históricos e os nomes das unidades locais assentam nas fontes indicadas acima.
Última revisão do conteúdo: · escrito e verificado pela equipa Arteon
Perguntas frequentes sobre converter RGB em HSL
Posso introduzir os canais RGB em percentagem?
Sim. O conversor passa as percentagens para a escala 0–255, por isso rgb(23.1%, 51%, 96.5%) dá o mesmo resultado que rgb(59, 130, 246), ou seja, hsl(217.2, 91.2%, 59.8%).
Porque é que getComputedStyle devolve rgb quando escrevi hsl no CSS?
O navegador converte uma cor HSL em sRGB ao calcular o estilo e escreve o valor calculado como rgb() ou rgba()[1]. Para voltar a ver HSL, converta aqui esse resultado.
Porque é que o colorsys do Python usa outra ordem que não a do CSS?
O módulo colorsys chama a este modelo HLS e devolve a luminosidade antes da saturação[3]. Os valores (0.6034, 0.598, 0.912) significam, portanto, um matiz de 217,2°, uma luminosidade de 59,8% e uma saturação de 91,2%, que em CSS se escrevem hsl(217.2, 91.2%, 59.8%).
Como volto de HSL para RGB?
Introduza o valor no conversor HSL para RGB. O botão Trocar ordem leva-o até lá com o resultado atual.
Um cinzento tem matiz em HSL?
Com saturação de 0%, o matiz não altera a cor[1], por isso o conversor dá zero na notação CSS. A caixa Cores do Office põe 170 nesse lugar, e a cor fica igual.
Como verifico se uma cor RGB se lê bem sobre um fundo?
Cole os valores RGB ou o resultado HSL no verificador de contraste de cores. Ele dá a relação de contraste com os limiares WCAG para texto.

Ajude-nos a melhorar as nossas ferramentas
Tem uma ideia, encontrou um erro ou quer sugerir uma nova ferramenta? Escreva-nos.