Convertitore Colori

Converti colori tra formati HEX, RGB, HSL e HSV con selettore visivo

Prova un esempio

Clicca il campione per aprire il selettore colori

Oppure modifica qualsiasi valore qui sotto

HEX
RGB
HSL
HSV

Cos'è la Conversione dei Colori?

Un convertitore di colori traduce un valore cromatico da una notazione a un'altra — ad esempio, da un tripletto HEX (#6366F1) a una tupla RGB (99, 102, 241) o a una tripletta HSL (239, 84%, 67%). Lo stesso colore può essere espresso anche come tripletta HSV (239, 59%, 95%). Ogni formato codifica lo stesso colore visivo utilizzando un modello matematico diverso; strumenti, linguaggi e API si aspettano formati differenti a seconda del contesto.

HEX e RGB descrivono entrambi il colore come una combinazione di luce rossa, verde e blu. HEX è una rappresentazione esadecimale compatta degli stessi tre valori di canale 0-255 che RGB esprime in decimale. HSL (Tonalità, Saturazione, Luminosità) e HSV (Tonalità, Saturazione, Valore) riorganizzano le stesse informazioni in un sistema di coordinate cilindriche, dove la tonalità è un angolo sulla ruota dei colori (0-360 gradi) e saturazione e luminosità o luminanza sono percentuali. Questo rende HSL e HSV più intuitivi per operazioni come la creazione di tonalità più chiare o più scure della stessa tinta.

La conversione tra questi formati richiede calcoli matematici ben definiti. La specifica W3C CSS Color Module Level 4 documenta gli algoritmi che i browser usano per risolvere qualsiasi colore CSS in un tripletto sRGB. Le formule sono deterministiche: un dato input produce sempre lo stesso output, quindi le conversioni sono prive di perdita finché i valori non vengono arrotondati o limitati. La maggior parte dei selettori di colori e degli strumenti di design utilizza queste stesse formule internamente.

Perché Usare Questo Convertitore Colori?

Gli strumenti di design esportano colori in un formato, il tuo CSS ne richiede un altro e l'API che stai chiamando ne vuole un terzo. Invece di scrivere codice di conversione o cercare la formula giusta, incolla un valore e ottieni tutti i formati in una volta sola.

Conversione Istantanea
Digita o seleziona un colore e vedi HEX, RGB, HSL e HSV aggiornarsi in tempo reale. Nessun pulsante di invio, nessuna richiesta al server.
🔒
Elaborazione Privacy-first
Tutti i calcoli di conversione vengono eseguiti nel tuo browser. Nessun valore di colore, nessun dato di utilizzo e nessun cookie vengono inviati da nessuna parte.
🔀
Tutti e Quattro i Formati Insieme
Un solo input produce HEX, RGB, HSL e HSV simultaneamente. Copia il formato di cui hai bisogno con un solo clic.
📋
Nessun Account Richiesto
Apri la pagina e inizia subito a convertire. Nessuna registrazione, nessuna email, nessun limite di utilizzo. Funziona offline una volta caricato.

Casi d'Uso del Convertitore Colori

Sviluppo CSS
Un designer ti passa un valore HEX da Figma, ma la tua libreria di componenti usa HSL per il theming. Converti il valore e inseriscilo nelle custom properties CSS o nella configurazione Tailwind.
Integrazione con API Backend
Il tuo endpoint accetta i colori come array RGB per la generazione di grafici. Converti i codici HEX del brand dalla guida di stile nei tripletti interi che l'API si aspetta.
Manutenzione del Design System
Quando si documenta un design system, è necessario avere ogni token di colore in HEX per una consultazione rapida, in RGB per il rendering su Canvas e in HSL per la generazione programmatica delle sfumature.
QA e Test Visivo
Confrontare il colore di un pixel in uno screenshot (solitamente riportato in RGB dai DevTools del browser) con il valore HEX atteso da una specifica Figma. Una conversione rapida conferma o segnala eventuali discrepanze.
Visualizzazione dei Dati
Librerie di grafici come D3.js e Chart.js accettano colori in formati diversi a seconda del metodo. Converti una volta sola e mantieni una notazione coerente in tutta la configurazione del dataset.
Studio della Teoria del Colore
Gli studenti di computer grafica o web design possono vedere come lo stesso colore si mappa tra HEX, RGB, HSL e HSV. Modificare un canale e osservare come cambiano gli altri sviluppa l'intuizione sui rapporti tra i modelli di colore.

Riferimento ai Formati Colore

La tabella seguente elenca i quattro formati di colore più comuni, con lo stesso colore indaco (#6366F1) mostrato in ciascuna notazione. HEX e RGB sono i più ampiamente supportati in CSS e JavaScript. HSL è preferito per il theming perché la regolazione di luminosità e saturazione è immediata. HSV è il modello usato dai selettori di colore della maggior parte dei software di grafica.

FormatoEsempio (indaco)CanaliUtilizzo comune
HEX#6366F16 (or 3/8)CSS, design tools, brand guides
RGBrgb(99, 102, 241)3 (0–255 each)CSS, Canvas API, image processing
HSLhsl(239, 84%, 67%)3 (deg, %, %)CSS, color theming, accessibility tuning
HSVhsv(239, 59%, 95%)3 (deg, %, %)Color pickers, Photoshop, Figma
CMYKcmyk(59%, 58%, 0%, 5%)4 (0–100% each)Print design, prepress workflows

HEX vs RGB vs HSL

Tutti e tre i formati descrivono lo stesso spazio colore sRGB. La differenza sta nel modo in cui espongono i dati, il che influisce sulla leggibilità e sulla facilità di manipolazione in contesti diversi.

HEX
Una stringa esadecimale a 6 cifre (o abbreviazione a 3 cifre). Compatta e universale in CSS, strumenti di design e linee guida del brand. Difficile da leggere a colpo d'occhio: #6366F1 non rivela la tonalità. Supporta una forma opzionale a 8 cifre (#6366F180) per la trasparenza alpha.
RGB
Tre interi da 0 a 255 per i canali rosso, verde e blu. Il formato nativo per Canvas 2D, WebGL e la maggior parte delle librerie di elaborazione delle immagini. Facile da manipolare canale per canale, ma la regolazione della luminosità percepita richiede la modifica di tutti e tre i valori insieme.
HSL
Tonalità (0-360 gradi), saturazione (0-100%) e luminosità (0-100%). Progettato per la leggibilità umana. Per rendere un colore più chiaro, aumenta L. Per desaturarlo, diminuisci S. CSS supporta nativamente la notazione hsl(), e le moderne funzioni color-mix() e la sintassi dei colori relativi si basano su di essa.

Esempi di Codice

Conversione dei colori tra HEX, RGB e HSL nei linguaggi e ambienti più comuni. Ogni esempio usa lo stesso colore indaco (#6366F1) per un facile confronto.

JavaScript
// HEX → RGB
function hexToRgb(hex) {
  const n = parseInt(hex.replace('#', ''), 16)
  return [(n >> 16) & 255, (n >> 8) & 255, n & 255]
}
hexToRgb('#6366f1') // → [99, 102, 241]

// RGB → HSL
function rgbToHsl(r, g, b) {
  r /= 255; g /= 255; b /= 255
  const max = Math.max(r, g, b), min = Math.min(r, g, b)
  const l = (max + min) / 2
  if (max === min) return [0, 0, Math.round(l * 100)]
  const d = max - min
  const s = l > 0.5 ? d / (2 - max - min) : d / (max + min)
  let h = 0
  if (max === r) h = ((g - b) / d + (g < b ? 6 : 0)) / 6
  else if (max === g) h = ((b - r) / d + 2) / 6
  else h = ((r - g) / d + 4) / 6
  return [Math.round(h * 360), Math.round(s * 100), Math.round(l * 100)]
}
rgbToHsl(99, 102, 241) // → [239, 84, 67]
Python
import colorsys

# HEX → RGB
def hex_to_rgb(hex_str: str) -> tuple[int, int, int]:
    h = hex_str.lstrip('#')
    return tuple(int(h[i:i+2], 16) for i in (0, 2, 4))

hex_to_rgb('#6366f1')  # → (99, 102, 241)

# RGB → HSL (colorsys uses HLS order)
r, g, b = 99 / 255, 102 / 255, 241 / 255
h, l, s = colorsys.rgb_to_hls(r, g, b)
print(f"hsl({h * 360:.0f}, {s * 100:.0f}%, {l * 100:.0f}%)")
# → hsl(239, 84%, 67%)

# RGB → HSV
h, s, v = colorsys.rgb_to_hsv(r, g, b)
print(f"hsv({h * 360:.0f}, {s * 100:.0f}%, {v * 100:.0f}%)")
# → hsv(239, 59%, 95%)
Go
package main

import (
	"fmt"
	"math"
)

func hexToRGB(hex string) (int, int, int) {
	var r, g, b int
	fmt.Sscanf(hex, "#%02x%02x%02x", &r, &g, &b)
	return r, g, b
}

func rgbToHSL(r, g, b int) (int, int, int) {
	rf, gf, bf := float64(r)/255, float64(g)/255, float64(b)/255
	max := math.Max(rf, math.Max(gf, bf))
	min := math.Min(rf, math.Min(gf, bf))
	l := (max + min) / 2
	if max == min {
		return 0, 0, int(math.Round(l * 100))
	}
	d := max - min
	s := d / (2 - max - min)
	if l <= 0.5 {
		s = d / (max + min)
	}
	var h float64
	switch max {
	case rf: h = (gf - bf) / d; if gf < bf { h += 6 }
	case gf: h = (bf - rf) / d + 2
	case bf: h = (rf - gf) / d + 4
	}
	return int(math.Round(h / 6 * 360)), int(math.Round(s * 100)), int(math.Round(l * 100))
}

func main() {
	r, g, b := hexToRGB("#6366f1")
	fmt.Println(r, g, b)         // → 99 102 241
	fmt.Println(rgbToHSL(r, g, b)) // → 239 84 67
}
CSS
/* Modern CSS supports multiple color formats natively */

/* HEX notation */
.button { color: #6366f1; }

/* RGB functional notation */
.button { color: rgb(99 102 241); }

/* HSL — easier to adjust lightness and saturation */
.button { color: hsl(239 84% 67%); }

/* CSS Color Level 4: relative color syntax (Chrome 119+) */
.button-light { color: hsl(from #6366f1 h s calc(l + 20%)); }

/* color-mix() for tinting without manual conversion */
.button-muted { color: color-mix(in srgb, #6366f1 70%, white); }

Domande Frequenti

Qual è la differenza tra HSL e HSV?
Entrambi usano tonalità e saturazione, ma definiscono la luminosità in modo diverso. HSL usa la luminosità (lightness), dove il 50% rappresenta il colore puro, 0% è nero e 100% è bianco. HSV usa il valore (o luminanza), dove il 100% è il colore puro e 0% è nero. HSV non ha un punto finale bianco diretto. In pratica, HSL è usato in CSS e nello sviluppo web, mentre HSV è il modello alla base della maggior parte dei selettori di colore nei software di design come Photoshop e Figma.
Come si converte HEX in RGB in JavaScript?
Analizza la stringa hex come intero con parseInt(hex, 16), poi estrai ogni canale con lo shift di bit: (n >> 16) & 255 per il rosso, (n >> 8) & 255 per il verde e n & 255 per il blu. Questo funziona con qualsiasi stringa hex a 6 cifre con o senza il simbolo # iniziale. Per l'abbreviazione a 3 cifre come #F0F, espandi prima ogni cifra (FF00FF) prima di analizzarla.
Posso usare HSL direttamente in CSS?
Sì. Tutti i browser moderni supportano hsl() e hsla() in CSS. Con CSS Color Level 4, la sintassi è hsl(239 84% 67%) con valori separati da spazi (le virgole sono ancora accettate). Puoi anche aggiungere il canale alpha come quarto parametro: hsl(239 84% 67% / 0.5). Safari, Chrome, Firefox e Edge supportano tutti questa sintassi.
La conversione dei colori è con perdita?
Matematicamente no. HEX, RGB, HSL e HSV descrivono tutti lo stesso spazio colore sRGB e le conversioni sono reversibili. In pratica, possono apparire piccole differenze di arrotondamento perché HEX è limitato a 256 passi per canale e le percentuali HSL vengono solitamente arrotondate a interi. Convertire avanti e indietro più volte può accumulare errori di arrotondamento di 1-2 unità.
Cos'è il formato HEX a 8 cifre?
Il formato HEX a 8 cifre aggiunge due cifre alpha (trasparenza) al colore HEX standard a 6 cifre. Ad esempio, #6366F180 rappresenta lo stesso colore indaco con il 50% di opacità (0x80 = 128, circa il 50% di 255). CSS supporta questa notazione in tutti i browser moderni. La forma abbreviata è a 4 cifre, come #63F8.
Perché il mio colore appare diverso su un altro monitor?
L'aspetto del colore dipende dal profilo colore del monitor, dalla luminosità e dalla calibrazione gamma. Due schermi possono visualizzare lo stesso valore sRGB (#6366F1) in modo diverso se i loro profili colore divergono. Gli strumenti di conversione colori lavorano in uno spazio colore definito (solitamente sRGB) e producono un output matematicamente corretto. Le differenze percepite sono un problema di calibrazione del display, non un errore di conversione.
Come si sceglie una tonalità più chiara o più scura di un colore?
Converti il colore in HSL e regola il canale L (luminosità). Aumentando L verso il 100% si ottengono tinte più chiare; diminuendolo verso 0% si ottengono tonalità più scure. La tinta e la saturazione rimangono invariate. In CSS puoi farlo direttamente: hsl(239 84% 80%) è una versione più chiara di hsl(239 84% 67%). Il CSS moderno offre anche color-mix(in srgb, #6366F1, white 30%) per lo stesso effetto senza conversione manuale.