Skip to content

Convertitore HEX in RGB

Converte qualsiasi codice colore hex in RGB direttamente nel browser — supporta hex a 3, 6 e 8 cifre con alpha. Gratuito, istantaneo, online, senza registrazione, i colori non lasciano mai la pagina.

Niente tracciamento Funziona nel browser Gratuito
Tutta la conversione dei colori avviene localmente nel browser. Nessun dato viene inviato a un server.
Gamma cromatica: sRGB Display P3 Rec2020
Contrasto vs:
AA AA-Lg AAA AAA-Lg · APCA Lc
Simulazione daltonismo (8 tipi)
Protanopia (cieco al rosso)
Deuteranopia (cieco al verde)
Tritanopia (cieco al blu)
Acromatopsia (totale)
Protanomalia (debole al rosso)
Deuteranomalia (debole al verde)
Tritanomalia (debole al blu)
Acromatomalia (parziale)
Tints / Shades / Tones / Harmonies

Tints

Shades

Tones

Harmonies

Copia come codice
Riferimento ai colori comuni
Rivisto per conformità a CSS Color 4, supporto delle forme hex a 3/4/6/8 cifre, correttezza della decodifica della coppia alpha e bit-exactness del round-trip tra HEX e RGB sull'intervallo 0-255. — Team di ingegneria Go Tools · May 27, 2026

Cos'è un convertitore HEX in RGB?

Un convertitore HEX in RGB è una piccola utility che trasforma un codice colore hex (`#FF5733`) nei tre valori interi di canale che rappresenta (`rgb(255 87 51)`). hex e RGB sono i due formati attorno a cui ogni foglio di stile web, strumento di design e pipeline di pixel di immagine è stato costruito fin dalla fine degli anni '90, e la conversione tra di loro è la singola operazione più comune nel tooling di colore. hex è il formato terso da copia-incolla che Figma, Sketch, Photoshop e ogni PDF di brand guidelines esportano di default — una stringa base-16 di 6 caratteri che entra comodamente in una custom property CSS e si legge a colpo d'occhio una volta che l'occhio impara i pattern. RGB è il formato indirizzato per canale che le API hardware, le chiamate di disegno canvas, la manipolazione di buffer immagine, gli attributi colore OpenGL e la maggior parte degli SDK grafici si aspettano — tre interi 0-255 separati (o float normalizzati 0-1) che mappano direttamente sui subpixel rosso, verde e blu di un LCD o sui fosfori di un CRT. La conversione tra di loro è meccanica: si divide l'hex in tre coppie da 2 cifre e si legge ogni coppia come un numero in base 16. Questo strumento esegue quella conversione in tempo reale mentre digita, senza alcun pulsante "Converti" da premere, e affianca all'output RGB ogni altro formato colore comune (HSL, OKLCH, OKLAB, HSV, HWB, CMYK, oltre ai 148 colori CSS named) gratis.

**Il formato RGB stesso merita uno sguardo più ravvicinato.** Il sRGB standard a 24 bit codifica ogni canale come intero unsigned a 8 bit da 0 a 255 — 256 valori per canale, 16.777.216 colori in totale (256³). Lo standard di riferimento è IEC 61966-2-1, la specifica sRGB del 1996 ancorata ai primari fosforici dei monitor CRT che dominavano i display dell'epoca. CSS espone RGB attraverso la funzione `rgb()` in tre varianti sintattiche. La forma originale CSS 1 usa separatori a virgola: `rgb(255, 87, 51)`. CSS Color 4 (W3C Candidate Recommendation dal 2022) ha aggiunto una moderna forma con spazi: `rgb(255 87 51)`, con un canale alpha opzionale dopo una slash: `rgb(255 87 51 / 0.5)`. Entrambe le forme sono interscambiabili e arrivano in ogni evergreen browser. RGB accetta anche canali in percentuale: `rgb(100% 33% 20%)` è equivalente a `rgb(255 87 51)`, talvolta preferito nei fogli di stile scritti a mano per leggibilità. Specificamente l'alpha ha una funzione `rgba()` separata per il supporto legacy — `rgba(255, 87, 51, 0.5)` è la forma canonica che funziona ovunque fino a IE 9. CSS Color 4 ha aggiunto anche una sintassi `color(srgb 1 0.341 0.2)` per l'indirizzamento sRGB esplicito, e funzioni parallele `color(display-p3 ...)` e `color(rec2020 ...)` per valori wide-gamut che hex non può codificare.

La matematica della conversione va in entrambe le direzioni in modo pulito. **HEX a RGB**: si analizza l'hex a 6 cifre `#RRGGBB` come tre numeri base-16 a 2 cifre tramite `parseInt(hex.slice(1, 3), 16)`, `parseInt(hex.slice(3, 5), 16)`, `parseInt(hex.slice(5, 7), 16)`. Per l'abbreviazione a 3 cifre `#RGB`, si espande ogni cifra duplicandola (`#F73` → `#FF7733`) prima del parsing — questo *non* è un left-pad. Per l'alpha a 8 cifre `#RRGGBBAA`, si analizza la coppia finale allo stesso modo e si divide per 255 per ottenere il float alpha 0-1. Per l'abbreviazione alpha a 4 cifre `#RGBA`, si espande prima ogni cifra (`#F738` → `#FF773388`). **RGB a HEX** è l'inverso: per ogni canale si chiama `value.toString(16).padStart(2, '0')` per ottenere la coppia hex a 2 cifre (il `padStart` conta — senza, il valore di canale 5 verrebbe serializzato come `'5'` invece di `'05'`, producendo un hex non valido), poi si concatena. Entrambe le direzioni sono bit-exact in qualunque direzione: 16² = 256, che corrisponde esattamente all'intervallo di byte 0-255 occupato da ogni canale, quindi un round-trip HEX → RGB → HEX produce verbatim l'input originale senza drift float.

**Perché hex rispetto a RGB?** hex è più breve, design-tool-native ed è il formato che l'occhio impara nel tempo — la maggior parte degli sviluppatori front-end riconosce `#3b82f6` come blue-500 di Tailwind a colpo d'occhio. RGB è l'indirizzamento esplicito per canale, più facile da elaborare in JavaScript, ed è l'unico dei due ad accettare alpha e percentuali in modo pulito. I due formati coesistono perché risolvono problemi diversi. I fogli di stile web e le brand guidelines tendono a hex perché il costo del copia-incolla domina. Le chiamate di disegno canvas, l'elaborazione delle immagini, le API LED hardware e qualunque codice che fa aritmetica per canale tendono a RGB perché indicizzare in una tupla batte fare slicing di una stringa. Lo switch tra di loro avviene decine di volte in un tipico progetto web — si incolla un hex da Figma, si converte in interi RGB per una chiamata `ctx.fillStyle = ...`, si riconverte in hex per la definizione di una variabile CSS.

Il flusso di lavoro HEX → RGB di questo strumento è una direzione di una famiglia a 5 spoke che condividono tutti lo stesso convertitore di colori unificato sottostante. Il dedicato convertitore di colori unificato è l'hub — mostra tutti i 9 formati simultaneamente modificabili ed è lo strumento giusto quando il flusso di lavoro necessita di più che solo hex e RGB. Gli spoke monodirezionali mirano a specifiche intenzioni di ricerca Google: il convertitore RGB-hex inverso per la direzione opposta, il convertitore HEX-HSL per lo spazio legacy designer-cognitive, il convertitore HEX-OKLCH per i design system percettivamente uniformi moderni (Tailwind v4 e shadcn ora usano entrambi OKLCH di default), e il convertitore HEX-CMYK per le approssimazioni di preparazione alla stampa. Tutti e cinque gli spoke e l'hub condividono lo stesso motore di parsing e la stessa matematica di conversione, quindi i risultati sono garantiti identici lungo la famiglia. Ogni conversione gira localmente nel browser — i suoi codici hex non vengono mai caricati online, mai loggati, e zero richieste di rete partono mentre digita. Lo verifichi in DevTools.

// Parse any hex shape (3/4/6/8-digit) into an RGB tuple [r, g, b, a]
// All channels in 0-255 range; alpha in 0-1.
function parseHex(input) {
  let h = input.trim().replace(/^#/, '');
  // Expand 3-digit and 4-digit shorthand by duplicating each digit
  if (h.length === 3 || h.length === 4) {
    h = h.split('').map(c => c + c).join('');
  }
  if (!/^[0-9a-fA-F]+$/.test(h) || (h.length !== 6 && h.length !== 8)) {
    throw new Error(`Invalid hex: ${input}`);
  }
  const r = parseInt(h.slice(0, 2), 16);
  const g = parseInt(h.slice(2, 4), 16);
  const b = parseInt(h.slice(4, 6), 16);
  const a = h.length === 8 ? parseInt(h.slice(6, 8), 16) / 255 : 1;
  return [r, g, b, a];
}

console.log(parseHex('#FF5733'));   // [255, 87, 51, 1]
console.log(parseHex('#F73'));       // [255, 119, 51, 1]
console.log(parseHex('#FF573380'));  // [255, 87, 51, 0.5019607843137255]

Caratteristiche principali

Tutte e cinque le forme hex analizzate in modo identico

3 cifre `#F73`, alpha a 4 cifre `#F738`, 6 cifre `#FF5733`, alpha a 8 cifre `#FF5733CC`, oltre alla variante senza `#` per ognuna (`F73`, `FF5733`, ecc.). Il parser le normalizza tutte nella stessa tupla RGB interna prima della visualizzazione, quindi può incollare qualsiasi forma usi la sua sorgente senza espandere manualmente l'abbreviazione prima. Anche le maiuscole/minuscole vengono normalizzate — `#ff5733` e `#FF5733` producono output identico.

Output RGB nella moderna sintassi con spazi

Il campo RGB espone il valore nella forma moderna di CSS Color 4: `rgb(255 87 51)` per colori opachi, `rgb(255 87 51 / 0.5)` per quelli con alpha. Entrambe le forme funzionano in ogni evergreen browser (Chrome 65+, Safari 13+, Firefox 52+). La forma legacy con virgole `rgb(255, 87, 51)` dista solo una sostituzione meccanica se il target la richiede; la sintassi moderna è preferita nel nuovo codice perché si allinea con le altre sintassi funzionali di CSS Color 4.

Bit-exact, nessun drift float

HEX → RGB è matematica intero-su-intero: `parseInt(hex, 16)` restituisce un valore esatto 0-255 con zero coinvolgimento di float. La direzione inversa (`.toString(16).padStart(2, '0')`) è altrettanto esatta. Un round-trip HEX → RGB → HEX → RGB → HEX produce verbatim l'input originale, indefinitamente. La fonte di verità interna OKLCH fa sì che anche la catena più lunga HEX → RGB → HSL → OKLAB → HEX resti bit-stable, cosa che i convertitori legacy che instradano attraverso HSL non garantiscono.

Canale alpha decodificato in modo pulito

L'hex a 8 e 4 cifre con alpha (`#RRGGBBAA` e `#RGBA`) viene analizzato correttamente. La coppia finale mappa su un float alpha 0-1: `00` → 0, `80` → 0,502, `FF` → 1. L'output usa di default la sintassi con slash di CSS Color 4 (`rgb(255 87 51 / 0.5)`); la forma legacy `rgba(255, 87, 51, 0.5)` dista una sostituzione. Utile per la migrazione di design token in cui i valori alpha potrebbero essere sepolti in codici hex a 8 cifre.

Otto altri formati visibili simultaneamente

Lo stesso hex che incolla guida anche HSL, HSV, HWB, OKLCH, OKLAB, CMYK e il colore CSS named più vicino — tutti visibili a colpo d'occhio sulla stessa pagina. Non resta mai vincolato a hex → RGB soltanto. Se un collega ha bisogno della tripletta OKLCH per un token Tailwind v4, del colore named più vicino per la prosa di documentazione o dell'approssimazione CMYK per un preventivo di stampa, i valori sono già lì con i loro pulsanti Copia.

Contrasto WCAG + APCA integrati

Faccia passare un hex e la riga di contrasto lo valuta immediatamente sia contro il bianco sia contro il nero usando WCAG 2.1 (minimo normativo: 4,5:1 per il body text, 7:1 per AAA) e APCA Lc (successore proposto WCAG 3: target `|Lc| ≥ 75` per il body text). Utile quando ha appena convertito un hex brand in RGB e vuole verificare che sia davvero leggibile come colore body text prima di spedirlo.

Copia come CSS / Tailwind v4 / SwiftUI / Compose / Flutter

Sotto il picker, la sezione Copia come codice trasforma il colore corrente in snippet pronti per il copia-incolla per cinque piattaforme: custom property CSS (`--color-brand: rgb(255 87 51)`), token `@theme` di Tailwind v4, literal SwiftUI `Color(red:green:blue:)`, costante Jetpack Compose `Color(0xFFFF5733)`, Flutter `Color(0xFFFF5733)`. La sintassi esatta che ogni piattaforma si aspetta, pronta per essere inserita in un asset catalog iOS, un file di tema Android o un `ThemeData` Flutter.

100% nel browser — nessun upload, nessun tracciamento

Tutto il parsing hex, la conversione RGB, il calcolo del contrasto e la generazione di palette girano localmente nel browser. I suoi codici hex non vengono mai trasmessi, mai loggati su alcun server, mai analizzati. Zero richieste di rete mentre digita — lo verifichi in DevTools. Sicuro per palette brand non ancora annunciate, design token interni, mockup in bozza sotto NDA e qualunque altro lavoro di colore riservato.

URL hash condivisibile per il colore esatto

Il colore corrente viene codificato nell'hash URL come `#hex=ff5733` automaticamente a ogni cambio. Copi l'URL, lo incolli in un thread Slack o in una issue GitHub, e chiunque lo apra atterra sullo stesso hex con lo stesso risultato RGB. L'hash vive solo nella sua barra degli indirizzi e non viene mai trasmesso al server (i browser non includono i frammenti URL nelle richieste HTTP), quindi anche condividere il link non rivela il colore ad alcuna terza parte.

Alternative al convertitore HEX in RGB

RapidTables Hex to RGB

strumento browser

Il risultato Google di default per "hex to rgb" — un form monodirezionale con hex in ingresso e RGB in uscita, senza altri formati visibili. Utile per lookup occasionali quando si arriva da ricerca. Manca di OKLCH, controllo del contrasto, rilevamento della gamma cromatica, gestione dell'alpha e della vista simultanea multi-formato. Questo strumento vince su ogni asse tranne il caso bare-bones di singola conversione.

ColorHexa

strumento browser

Pagine SEO per-colore di lunga data con metadata profondi: conversioni, palette, armonie, gradienti per qualunque hex si interroghi. UI datata (primi anni 2010), nessun supporto OKLCH, nessun contrasto APCA, nessuna gestione wide-gamut. Forte per la discovery SEO di un hex specifico via Google; più debole per flussi di conversione attivi dove digitare in una UX a campi unificati è più veloce.

W3Schools Hex Calculator

strumento browser

Toggle HEX/RGB/HSL beginner-friendly su una pagina focalizzata sull'insegnamento, ubiquo nei risultati di ricerca. Nessun OKLCH, nessuna gestione dell'alpha oltre rgba, nessuna feature avanzata. Utile come riferimento accanto al contenuto esplicativo di W3Schools. Questo strumento vince su ogni altro asse: più formati, matematica percettiva, feature di gamma cromatica + contrasto + CVD, export di codice moderno per Tailwind v4 / SwiftUI / Compose / Flutter.

Color picker DevTools del browser

feature browser integrata

I DevTools di Chrome, Firefox e Safari includono tutti un color picker che converte hex in RGB inline quando si clicca su un campione (di colore) nel pannello CSS. Gratuito, nessuna installazione, sempre disponibile. Manca di OKLCH, di URL condivisibili, di export di codice per piattaforme non-web (SwiftUI, Compose). Apra i DevTools quando sta già debuggando CSS; apra questo strumento quando le serve output cross-piattaforma.

Digital Color Meter macOS

app macOS nativa

Inclusa in ogni Mac fin da OS X — passa il cursore su qualunque pixel e legga i valori RGB / hex / lineari. Eccellente per campionare colori pixel da qualunque app sullo schermo. Non converte valori hex incollati; è uno screen-sampler, non un convertitore. Usi il pulsante EyeDropper nel picker di questo strumento (solo browser Chromium) per la stessa capacità di screen-sampling dentro il browser.

ConvertingColors

strumento browser

Pagine SEO per-colore che coprono molti spazi (HEX, RGB, HSL, HSV, CMYK, XYZ, CIELAB). Manca del supporto OKLCH moderno e della UX di modifica a campi unificati. Le pagine di contenuto auto-generato sembrano in stile content farm ma i dati di conversione sono corretti. Buono per esplorare i metadata di singoli colori via Google; questo strumento è più veloce per flussi di lavoro attivi.

Esempi di conversione HEX in RGB

Incolla un hex da uno screenshot → tupla RGB

#FF5733

Output RGB: `rgb(255 87 51)`. Il caso d'uso classico — un designer ha rilasciato un colore brand in Figma, lei ha fatto uno screenshot, un eyedropper le ha dato l'hex e ora le servono gli interi di canale per una chiamata di disegno canvas, una striscia LED hardware o aritmetica sui pixel contro un buffer immagine. La sintassi con spazi di CSS Color 4 mostrata è la forma moderna; la forma legacy con virgole `rgb(255, 87, 51)` ha significato identico ed è supportata in ogni browser fin da IE 3.

Converti hex brand Tailwind in RGB per Photoshop

#3b82f6

Output RGB: `rgb(59 130 246)`. Il selettore Color di Adobe (in Photoshop, Illustrator e InDesign) accetta interi RGB nell'intervallo 0-255 come input nativo — incolli 59 / 130 / 246 nelle tre caselle di canale e avrà replicato esattamente il `blue-500` di Tailwind. Utile quando un designer deve mostrare un colore web in un'app di layout pensata per la stampa, oppure quando sta campionando colori brand in una libreria di campioni per modifiche su immagine.

Hex a 8 cifre con alpha → rgba

#FF573380

Output RGB: `rgb(255 87 51 / 0.5)`. L'ultima coppia (`80`) si decodifica come `128/255 ≈ 0,502`, esposta come canale alpha tramite la sintassi con slash di CSS Color 4. La forma legacy equivalente è `rgba(255, 87, 51, 0.5)`, ancora supportata ovunque e quella che i vecchi preprocessori si aspettano. L'hex a 8 cifre è arrivato nativamente in tutti gli evergreen browser nel 2018; prima di allora, l'alpha andava espresso tramite la funzione `rgba()`.

Espansione di hex corto a 3 cifre

#F73

Output RGB: `rgb(255 119 51)`. La specifica CSS definisce l'hex a 3 cifre come abbreviazione in cui ogni cifra viene duplicata per formare l'equivalente a 6 cifre: `#F73` si espande in `#FF7733`, quindi R = `FF` = 255, G = `77` = 119, B = `33` = 51. Questo *non* è un left-pad — `#F73` **non** è `#000F73`. Molti principianti sbagliano; il comportamento di espansione dello strumento rende la regola visibile a colpo d'occhio.

Conversioni HEX → RGB comuni

Tabella di riferimento dei 10 codici hex più convertiti e i loro equivalenti RGB — primari puri, secondari puri e due colori brand del mondo reale dalla palette Tailwind.

Nero

#000000 rgb(0 0 0)

Nero puro. Tutti e tre i canali a zero — l'assenza di luce emessa. Tripletta RGB (0, 0, 0).

#000000 rgb(0 0 0)

Il nero puro su schermo raramente è la scelta di design giusta — provi `#111` o luminosità percettiva OKLCH 0,1-0,15 per un body text più morbido.

Le serve OKLCH invece? Provi il convertitore HEX-OKLCH dedicato per output percettivamente uniforme.

Bianco

#FFFFFF rgb(255 255 255)

Bianco puro. Tutti e tre i canali al valore massimo (255). Il colore più luminoso in sRGB.

#FFFFFF rgb(255 255 255)

Gli sfondi bianchi puri possono produrre affaticamento visivo in ambienti scuri — consideri `#fafafa` o OKLCH 0,98 per alternative più calde.

Le serve OKLCH invece? Provi il convertitore HEX-OKLCH dedicato per output percettivamente uniforme.

Rosso

#FF0000 rgb(255 0 0)

Rosso puro. Canale R al massimo, G e B a zero. Il primo dei tre primari sRGB.

#FF0000 rgb(255 0 0)

Il rosso puro è altamente saturo e raramente si adatta a una palette brand — la maggior parte dei colori brand "rossi" è più vicina a #DC2626 o #E53935.

Le serve OKLCH invece? Provi il convertitore HEX-OKLCH dedicato per output percettivamente uniforme.

Verde

#00FF00 rgb(0 255 0)

Verde puro. Canale G al massimo, R e B a zero. Colore CSS named `lime` (non `green`, che è #008000).

#00FF00 rgb(0 255 0)

La parola chiave CSS `green` corrisponde a #008000 (mezza luminosità), non a #00FF00 — fonte frequente di confusione. Usi `lime` per il verde RGB puro.

Le serve OKLCH invece? Provi il convertitore HEX-OKLCH dedicato per output percettivamente uniforme.

Blu

#0000FF rgb(0 0 255)

Blu puro. Canale B al massimo, R e G a zero. Il terzo primario sRGB.

#0000FF rgb(0 0 255)

Il blu puro su sfondo bianco non passa il contrasto WCAG AA (3,7:1) — consideri blu brand più scuri come #1D4ED8 (Tailwind blue-700) per il body text.

Le serve OKLCH invece? Provi il convertitore HEX-OKLCH dedicato per output percettivamente uniforme.

Ciano

#00FFFF rgb(0 255 255)

Ciano — verde e blu al massimo, rosso a zero. Uno dei tre secondari sRGB. Colore CSS named `cyan` (o equivalentemente `aqua`).

#00FFFF rgb(0 255 255)

`cyan` e `aqua` sono sinonimi esatti in CSS — entrambi corrispondono a #00FFFF. Ne scelga uno e resti coerente lungo il foglio di stile.

Le serve OKLCH invece? Provi il convertitore HEX-OKLCH dedicato per output percettivamente uniforme.

Magenta

#FF00FF rgb(255 0 255)

Magenta — rosso e blu al massimo, verde a zero. Colore CSS named `magenta` (o equivalentemente `fuchsia`).

#FF00FF rgb(255 0 255)

`magenta` e `fuchsia` sono sinonimi esatti in CSS — entrambi corrispondono a #FF00FF. Comune nei test pattern e negli overlay degli strumenti di sviluppo.

Le serve OKLCH invece? Provi il convertitore HEX-OKLCH dedicato per output percettivamente uniforme.

Giallo

#FFFF00 rgb(255 255 0)

Giallo — rosso e verde al massimo, blu a zero. Il più luminoso dei tre secondari sRGB per luminanza percepita.

#FFFF00 rgb(255 255 0)

Il giallo è il colore non-bianco a più alta luminanza su schermo — il testo giallo su sfondi bianchi è quasi invisibile, anche se l'hex sembra a posto sulla carta.

Le serve OKLCH invece? Provi il convertitore HEX-OKLCH dedicato per output percettivamente uniforme.

Tailwind blue-500

#3b82f6 rgb(59 130 246)

Il colore brand blue-500 di default di Tailwind CSS — il "web blue" canonico della metà anni 2020. Usato in innumerevoli dashboard, siti marketing e strumenti admin.

#3b82f6 rgb(59 130 246)

Tailwind v4 ridefinisce blue-500 in OKLCH (`oklch(0.629 0.193 263.4)`) per scale percettivamente uniformi — l'hex resta lo stesso come fallback.

Le serve OKLCH invece? Provi il convertitore HEX-OKLCH dedicato per output percettivamente uniforme.

Tailwind rose-500

#f43f5e rgb(244 63 94)

Il rose-500 di default di Tailwind CSS — un rosa-rosso ad alta saturazione usato comunemente per pulsanti accent, stati di alert e contrasto brand.

#f43f5e rgb(244 63 94)

Rose-500 passa WCAG AA (4,6:1) contro il bianco per il testo grande ma non passa per il body text — abbini con rose-600 (#e11d48) o più scuro per body copy su bianco.

Le serve OKLCH invece? Provi il convertitore HEX-OKLCH dedicato per output percettivamente uniforme.

Come usare il convertitore HEX in RGB

  1. 1

    Incolli un codice hex nel campo HEX

    Rilasci qualsiasi valore hex nell'input HEX — con o senza il `#` iniziale, in abbreviazione a 3 cifre (`#F73`), forma completa a 6 cifre (`#FF5733`), abbreviazione alpha a 4 cifre (`#F738`) o forma completa alpha a 8 cifre (`#FF5733CC`). Lo strumento normalizza internamente tutte e cinque le forme di input nello stesso colore canonico. Le maiuscole/minuscole non contano (`#ff5733` e `#FF5733` vengono analizzati in modo identico). Caratteri non validi o conteggi cifre errati producono un errore inline silenzioso; l'hex valido aggiorna in tempo reale ogni altro campo di formato.

  2. 2

    Legga la tupla RGB dal campo RGB

    Il campo RGB sotto il campo HEX mostra il valore `rgb()` corrispondente nella moderna sintassi con spazi di CSS Color 4: `rgb(255 87 51)` per un colore opaco, `rgb(255 87 51 / 0.5)` per uno con alpha. Ogni canale è un intero 0-255; l'alpha è normalizzato in 0-1. I valori sono bit-exact — `parseInt('FF', 16)` restituisce 255, senza aritmetica float coinvolta, quindi un round-trip a hex produce verbatim l'input originale.

  3. 3

    Faccia clic su Copia per ottenere la stringa RGB

    Ogni scheda di formato ha un pulsante Copia sulla destra. Un clic e il valore finisce negli appunti — l'etichetta del pulsante passa brevemente a "Copiato!" per conferma. La stringa copiata è la sintassi canonica di CSS Color 4 (`rgb(255 87 51)`); se il target richiede la forma legacy con virgole, la conversione è meccanica (si sostituiscono gli spazi con `, `). Per output specifico per piattaforma (SwiftUI, Compose, Flutter, Tailwind v4), usi la sezione Copia come codice sotto il picker.

  4. 4

    Visibili anche: HSL, OKLCH, OKLAB, CMYK, colore named

    Lo stesso hex che incolla accende anche gli altri campi di formato — HSL per il CSS legacy, OKLCH e OKLAB per i design system percettivamente uniformi, HSV e HWB per i flussi di lavoro con color picker per designer, CMYK per le stime di stampa, e il colore CSS named più vicino per documentazione e prosa. Non resta mai vincolato a hex → RGB soltanto; se le serve anche la tripletta OKLCH da inserire in un blocco `@theme` di Tailwind v4, è lì nel campo OKLCH con il suo pulsante Copia.

  5. 5

    Usi il picker per modifiche visive

    Sotto la griglia dei formati ci sono un quadrato SL + cursore di tonalità + cursore alpha per l'esplorazione visiva. Trascini un controllo qualsiasi e ogni campo di testo si aggiorna in tempo reale, inclusi l'HEX e l'RGB da cui è partito. Sui browser Chromium-based (Chrome, Edge, Brave) il pulsante EyeDropper attiva l'API nativa `EyeDropper` per campionare qualunque pixel sullo schermo, anche fuori dalla finestra del browser — utile quando vuole catturare un hex dall'UI di un'altra app senza fare prima uno screenshot.

Errori comuni HEX / RGB

Trattare l'hex a 3 cifre come left-padded

L'abbreviazione a 3 cifre `#RGB` si espande *duplicando ogni cifra*, non facendo left-pad con zeri. `#F73` diventa `#FF7733` (arancione brillante), non `#000F73` (blu scuro). Questo è l'angolo più sbagliato della sintassi colore CSS; i principianti spesso assumono che l'abbreviazione sia una sorta di zero-pad e finiscono con colori radicalmente sbagliati. La stessa regola si applica all'abbreviazione alpha a 4 cifre `#RGBA` — ogni cifra si duplica per formare l'equivalente a 8 cifre.

✗ Errato
Assumere che #F73 faccia left-pad in #000F73:
atteso: blu scuro rgb(0, 15, 115)
effettivo: arancione brillante rgb(255, 119, 51)
✓ Corretto
L'abbreviazione a 3 cifre duplica ogni cifra:
#F73 → #FF7733 → rgb(255, 119, 51)
Verificato dall'espansione live dello strumento mentre digita.

Dimenticare padStart quando si serializza RGB in hex

Convertire RGB di nuovo in hex richiede che il `toString(16)` di ogni canale sia left-padded a 2 cifre. Senza `padStart(2, '0')`, valori di canale a singola cifra producono hex non valido: `rgb(5, 87, 51)` verrebbe serializzato come `#55733` (5 caratteri) invece di `#055733` (6 caratteri). Molti convertitori ad-hoc saltano il pad e producono output rotto per qualunque canale sotto 16. L'idioma standard è `value.toString(16).padStart(2, '0')` per ciascuno di R, G, B.

✗ Errato
Saltare padStart:
[5, 87, 51].map(v => v.toString(16)).join('') → '55733'
Produce hex non valido a 5 caratteri.
✓ Corretto
Usare padStart(2, '0'):
[5, 87, 51].map(v => v.toString(16).padStart(2, '0')).join('') → '055733'
Hex valido a 6 caratteri; funziona correttamente per tutti i valori di canale 0-255.

Confondere l'ordinamento alpha dell'hex a 8 cifre

L'hex CSS a 8 cifre è `#RRGGBBAA` — l'alpha è la coppia *finale*. Alcune librerie colore (specialmente il vecchio `Color.parseColor()` di Android) usano l'ordinamento opposto `#AARRGGBB` con alpha come coppia *iniziale*, incompatibile con l'hex CSS. Un hex web `#FF573380` (arancione al 50% di alpha) interpretato come `#AARRGGBB` diventa alpha=255, R=87, G=51, B=128 — un ciano scuro a piena opacità. Verifichi sempre l'ordinamento alpha della piattaforma target prima del round-trip dell'hex a 8 cifre.

✗ Errato
Incollare hex CSS a 8 cifre nel legacy Android Color.parseColor():
#FF573380 interpretato come #AARRGGBB
→ colore sbagliato e alpha completamente sbagliato.
✓ Corretto
Usi il formato documentato della piattaforma target:
per Android Compose: Color(0xFFFF5733) con alpha come primo byte
per CSS: #FF573380 con alpha come ultimo byte
Non copi-incolli tra i due senza ri-ordinare.

Mediare direttamente i canali RGB per il blending

I canali RGB sono gamma-encoded, non lineari. Mediare due valori RGB dà un punto medio percettivamente sbagliato. `(255, 0, 0)` mediato con `(0, 255, 0)` produce `(127, 127, 0)`, un oliva scuro fangoso, non il punto medio brillante giallo che ci si aspetterebbe mescolando luce rossa e verde. Per blending corretto, prima si decodifica in linear-RGB tramite la funzione di trasferimento sRGB (CSS Color 4 §11.2), si media in spazio lineare, poi si ricodifica. Oppure si lavora in OKLAB / OKLCH dove la distanza percettiva è uniforme.

✗ Errato
Mediare RGB gamma-encoded direttamente:
(rgb(255,0,0) + rgb(0,255,0)) / 2 = rgb(128, 128, 0)
Sembra oliva scuro, non giallo brillante.
✓ Corretto
Mediare in linear-RGB:
decodifica → linear-RGB → media → ricodifica → rgb(188, 188, 0)
Giallo visibilmente brillante, corrispondente a ciò che produce la mescola fisica di luce.

Chi usa HEX in RGB

Sviluppatori frontend che convertono hex Figma in chiamate RGB canvas
Figma esporta hex, ma `CanvasRenderingContext2D.fillStyle` accetta sia hex sia `rgb()` — e quando si fa aritmetica per canale (gradienti, blending, manipolazione di immagini), avere direttamente gli interi di canale è più veloce che riparseggiare l'hex ogni volta. Incolli l'hex una volta, copi la tupla `rgb(255 87 51)`, la inserisca nella chiamata canvas. Zero codice di parsing hex necessario dalla sua parte.
Designer che traducono hex web in RGB Photoshop / Illustrator
Il selettore Color di Adobe prende interi 0-255 attraverso tre caselle di canale come input nativo. Incolli l'hex web in questo strumento, legga gli interi R / G / B, li digiti in Photoshop. Replica esattamente il colore web originale senza una deviazione screenshot-eyedropper. Utile quando un designer deve mostrare un colore web in un'app di layout Adobe pensata per la stampa.
Game dev che caricano hex brand in API RGB Unity / Unreal
`Color` di Unity e `FLinearColor` di Unreal prendono entrambi float normalizzati 0-1. Incolli l'hex brand, legga gli interi 0-255, divida per 255 (oppure usi l'output float normalizzato dello strumento tramite Copia come codice). La conversione è meccanica ma soggetta a errori se fatta a mano — digitare `(255, 87, 51)` in un costruttore che si aspettava `(1.0, 0.341, 0.2)` produce un colore bianco saturato e un tweet confuso. Lo strumento espone entrambe le forme.
Hardware dev che programmano strisce LED indirizzabili
WS2812, APA102 e altre strisce LED RGB indirizzabili prendono canali interi 0-255 per LED. Incolli l'hex brand per il display prodotto a parete, legga la tripletta RGB, la inserisca nell'array colori del controller. Utile quando il team marketing specifica un hex e l'ingegnere firmware ha bisogno dei valori di canale per una chiamata `pixels.setPixelColor(i, r, g, b)`.
Ingegneri dell'accessibilità che auditano la leggibilità del colore brand
Il controllo di contrasto WCAG 2.1 prende input RGB internamente. Incolli l'hex brand, ottenga l'RGB corrispondente più il rapporto WCAG contro bianco e nero più il punteggio APCA Lc in una sola schermata. Se il colore brand non supera il minimo 4,5:1 per body text, il campo OKLCH percettivamente uniforme di fianco rende facile aumentare L finché il contrasto non passa senza perdere l'identità brand.
Designer che integrano template email con RGB inline
Alcuni client email (Outlook su Windows, vecchio Gmail mobile) analizzano hex in modo inconsistente negli attributi HTML — `` può apparire come nero su certe piattaforme. Il fallback affidabile è la forma RGB equivalente `rgb(255, 87, 51)` inline. Incolli l'hex brand, copi la stringa RGB nella sintassi legacy con virgole (sostituzione manuale dalla forma moderna con spazi), la inserisca nell'attributo `style` del template email.
Sviluppatori che documentano token brand con entrambi i formati
La documentazione dei design token mostra spesso lo stesso colore in entrambi i formati: hex per il blocco di codice CSS, RGB per l'annotazione in prosa ("il rosso brand è `#FF5733`, equivalente a RGB 255 / 87 / 51"). Avere entrambi visibili affiancati consente a chi scrive la documentazione di copiare ciascuno in un solo passaggio invece di eseguire due strumenti. L'URL hash condivisibile permette anche ai lettori di cliccare verso il colore esatto in discussione.
Ingegneri QA che verificano snapshot di colore pixel
I test di regressione visiva spesso assertano valori RGB specifici contro pixel renderizzati (`expect(pixel.r).toBe(255)`). Quando la specifica viene fornita come hex ("i pulsanti devono apparire come `#FF5733`"), l'ingegnere QA ha bisogno degli interi RGB corrispondenti per scrivere l'asserzione. Incolli l'hex, legga R / G / B, lo inserisca nel test. La bit-exactness della conversione fa sì che il test non vada in flake per differenze di drift float.

Matematica e parsing HEX in RGB

parseInt(hex, 16) è l'implementazione in una riga
L'intera conversione hex-RGB entra in un'espressione per canale: `parseInt(hex.slice(1, 3), 16)` per R, `parseInt(hex.slice(3, 5), 16)` per G, `parseInt(hex.slice(5, 7), 16)` per B. `parseInt` di JavaScript con radix 16 legge una stringa hex in un intero decimale nell'intervallo 0-255 senza coinvolgimento di float. La direzione inversa (`value.toString(16).padStart(2, '0')`) è altrettanto in una riga — il `padStart(2, '0')` è il dettaglio facile da dimenticare che cattura valori di canale a singola cifra come 5 → `'05'` invece di `'5'`.
Espansione dell'abbreviazione: duplicazione cifre, non left-pad
La specifica CSS definisce l'abbreviazione a 3 cifre come `#RGB` che si espande in `#RRGGBB` duplicando ogni cifra. `#F73` → `#FF7733`, *non* `#000F73`. La stessa regola si applica all'abbreviazione alpha a 4 cifre `#RGBA` → `#RRGGBBAA`. Questo è uno degli angoli più sbagliati della sintassi colore CSS — i principianti spesso assumono che `#F73` faccia left-pad in `#000F73`, che produrrebbe un colore completamente diverso (un blu scuro desaturato anziché l'arancione brillante previsto). Il comportamento di espansione dello strumento rende la regola visibile a colpo d'occhio.
Alpha a 8 cifre: coppia finale, divisa per 255
L'hex a 8 cifre `#RRGGBBAA` codifica l'alpha come coppia hex a 2 cifre dopo la tripletta RGB, analizzata in modo identico e poi divisa per 255 per produrre un float 0-1. `#FF573380` viene analizzato in alpha = `0x80 / 255 = 128 / 255 = 0,5019607843137255`. La specifica CSS Color 4 usa 4 cifre decimali di precisione per l'output (`/ 0.502`); lo strumento segue la stessa convenzione. L'hex a 8 cifre è arrivato in tutti gli evergreen browser nel 2018 (Chrome 62, Firefox 49, Safari 9.1, Edge 79). Pre-2018 il fallback è `rgba()`.
Output RGB: CSS Color 4 con spazi di default
Lo strumento emette `rgb(255 87 51)` (moderna con spazi) di default anziché la legacy `rgb(255, 87, 51)` (CSS 1 con virgole). Entrambe le forme sono valide e interscambiabili in ogni evergreen browser dal 2018. La sintassi moderna si allinea con le altre notazioni funzionali di CSS Color 4 (`hsl()`, `lab()`, `oklch()`, `color()`) che usano tutte separazione con spazi e slash per l'alpha. La forma legacy con virgole dista una sostituzione meccanica se la sua toolchain la richiede; rgba() è ancora il fallback giusto per contesti IE 9-11.
Fonte di verità interna OKLCH per stabilità del round-trip
Anche se questo spoke mira specificamente a HEX → RGB, il convertitore sottostante condiviso mantiene internamente il colore canonico come tripletta OKLCH. Significa che HEX → RGB → HSL → OKLAB → CMYK → HEX fa il round-trip senza drift float a ogni passo; i convertitori legacy che instradano attraverso HSL o sRGB come pivot accumulano errore di arrotondamento a ogni conversione. La scelta di OKLCH (rispetto a OKLAB) preserva la tonalità come asse stabile, quindi trascinare il cursore di tonalità non attraversa accidentalmente il grigio. Secondo il paper OKLAB di Björn Ottosson del 2020.
Codifica del canale: unsigned a 8 bit, gamma-encoded sRGB
Ogni canale RGB è un intero unsigned a 8 bit (0-255), codificato nello spazio colore sRGB definito da IEC 61966-2-1 (1996). I valori sono *gamma-encoded* — significa che la relazione tra valore di canale e luminosità percepita è non-lineare, seguendo la funzione di trasferimento sRGB piecewise (all'incirca un esponente 2,4 con un piccolo segmento lineare vicino allo zero). Questo conta quando si fa matematica colore: mediare due valori RGB nella loro forma gamma-encoded dà il punto medio percettivo sbagliato. Per blending colore corretto, prima si decodifica in linear-RGB (CSS Color 4 §11.2), poi si media, poi si ricodifica. Il modello OKLCH interno dello strumento rende tutto questo trasparente.

Best practice per i flussi di lavoro HEX / RGB

Usi la moderna sintassi RGB con spazi nel nuovo codice
`rgb(255 87 51)` (con spazi) e `rgb(255 87 51 / 0.5)` (slash per l'alpha) di CSS Color 4 sono le sintassi canoniche per il codice che spedisce nel 2025 e oltre. Le forme legacy con virgole `rgb(255, 87, 51)` e `rgba(255, 87, 51, 0.5)` sono ancora supportate ovunque ma stilisticamente deprecate in CSS Color 4. Usi la sintassi moderna nei nuovi fogli di stile; mantenga `rgba()` solo per contesti di fallback IE 9-11 dove serve davvero supporto legacy.
Verifichi il supporto dell'hex a 8 cifre prima di spedire codici con alpha
L'hex a 8 cifre con alpha (`#FF573380`) è arrivato in tutti gli evergreen browser nel 2018, ma i preprocessori CSS legacy e alcuni vecchi strumenti di design troncano silenziosamente la coppia alpha in hex a 6 cifre. Il risultato: un colore che ci si aspettava trasparente al 50% appare completamente opaco. Prima di spedire hex a 8 cifre in produzione, verifichi che il parser target lo gestisca; per target legacy, ripieghi sulla sintassi `rgba(255, 87, 51, 0.5)` esplicita, supportata fin da IE 9.
Non medi direttamente i canali RGB per la matematica colore
I canali RGB sono gamma-encoded — mediare due valori RGB dà il punto medio percettivo sbagliato. `(255, 0, 0)` mediato con `(0, 255, 0)` produce `(127, 127, 0)`, un oliva scuro fangoso, non il punto medio visivamente brillante giallo che ci si aspetterebbe. Per blending colore corretto, prima si decodifica in linear-RGB (CSS Color 4 §11.2), poi si media, poi si ricodifica. Oppure, meglio, si lavora in OKLAB o OKLCH dove la distanza percettiva è uniforme — è esattamente ciò che fanno i generatori di palette dei design system.
Preferisca hex per la sorgente dei design token, RGB per l'hardware
Quando scrive una specifica di design token, preferisca hex (o OKLCH) come forma canonica — sono più tersi e si inseriscono puliti in JSON o YAML. Quando il codice consumer fa aritmetica per canale (chiamate canvas, manipolazione di immagini, driver LED hardware, attributi colore OpenGL), la forma intera RGB è più veloce da consumare. I due formati descrivono lo stesso colore; la scelta riguarda puramente chi legge e scrive, non la correttezza. La vista a campi simultanei di questo strumento rende entrambi ugualmente economici.
Documenti l'alpha esplicitamente nei nomi dei token
Quando un design token include alpha (es. un overlay al 50% di opacità), non seppellisca l'alpha in un hex a 8 cifre come `#000000CC` — divida il token in `--color-overlay-base: #000000` e `--color-overlay-alpha: 0.8`, oppure usi la forma RGBA esplicita. Seppellire l'alpha in hex rende il token illeggibile a chiunque scorra il file e rende impossibili modifiche all'alpha per singolo token senza riparseggiare prima l'hex. La chiarezza del token system batte la brevità quando il costo è una variabile in più.
Usi l'URL hash per condividere decisioni di colore live
Ogni cambio di colore aggiorna l'hash URL come `#hex=ff5733` automaticamente. Copi l'URL in un thread Slack o in una issue GitHub e chiunque lo apra atterra sullo stesso colore con la stessa tupla RGB. Questo è più affidabile che incollare una stringa hex in chat — i destinatari a volte fanno typo nei caratteri quando inseriscono manualmente il valore — e consente a un thread di design-review di riferirsi a un colore esatto invece di "l'arancione di cui abbiamo parlato martedì". L'hash non viene mai trasmesso al server.

Domande frequenti

Come si converte un codice hex in RGB?
Si divide l'hex a 6 cifre in tre coppie da 2 cifre e si legge ogni coppia come un numero in base 16 da 0 a 255. `#FF5733` diventa R=`FF`=255, G=`57`=87, B=`33`=51, ovvero `rgb(255 87 51)`. L'abbreviazione a 3 cifre `#F73` si espande raddoppiando ogni cifra in `#FF7733` prima della divisione. Questo strumento esegue la conversione in tempo reale mentre digita — incolli un hex qualsiasi (con o senza `#`, a 3, 6, 4 o 8 cifre con alpha) e il campo RGB si aggiorna all'istante con il valore `rgb()` corrispondente.
hex è la stessa cosa di RGB?
Codificano la stessa informazione con notazioni diverse. Entrambi descrivono un colore come tre canali (rosso, verde, blu) sulla scala 0-255, ancorati allo spazio colore sRGB. hex impacchetta i tre canali in una stringa base-16 di 6 caratteri (`#FF5733`); la funzione `rgb()` li esprime in decimale (`rgb(255 87 51)`). Il round-trip è senza perdita — lo stesso colore passa hex → RGB → hex senza drift. hex è più breve per le variabili CSS; `rgb()` supporta un canale alpha tramite `rgba()` e la sintassi a percentuale di CSS Color 4.
Come si legge un codice colore hex?
Un hex colore ha 6 cifre esadecimali dopo `#`, raggruppate come **RR GG BB**. Ogni coppia codifica un canale da `00` (nessuno, 0 in decimale) a `FF` (pieno, 255 in decimale). `#FF0000` è rosso puro, `#00FF00` è verde puro, `#0000FF` è blu puro. Un hex a 8 cifre (`#FF5733CC`) aggiunge una coppia alpha alla fine — `CC` = 204/255 ≈ 80% di opacità. L'abbreviazione a 3 cifre `#F73` espande ogni cifra duplicandola: `#F73` è identico a `#FF7733`.
Qual è la formula per convertire da hex a RGB?
Per ogni coppia hex di 2 cifre, si moltiplica la prima cifra per 16 e si somma la seconda: `FF` = 15×16 + 15 = 255, `57` = 5×16 + 7 = 87, `33` = 3×16 + 3 = 51. In JavaScript: `parseInt('FF', 16)` restituisce 255 direttamente. In CSS la direzione inversa è integrata nel parser — `rgb(255 87 51)` e `#FF5733` sono interscambiabili ovunque venga accettato un ``. Non c'è perdita di arrotondamento in nessuna delle due direzioni: 16² = 256, che corrisponde esattamente all'intervallo di byte 0-255 occupato da ogni canale.
Perché usare hex al posto di RGB?
Tre ragioni: è più breve (`#FF5733` rispetto a `rgb(255, 87, 51)`), è il formato che ogni strumento di design (Figma, Sketch, Photoshop) esporta di default, ed è il formato che gli sviluppatori front-end imparano a riconoscere a vista — la maggior parte riconosce `#3b82f6` come blue-500 di Tailwind senza doverlo verificare. Si usa `rgb()` (o la moderna sintassi con spazi `rgb(R G B / A)` di CSS Color 4) quando serve la trasparenza alpha, quando si calcola un colore da valori di canale JavaScript, oppure quando la sintassi a percentuale esplicita migliora la leggibilità in un foglio di stile.
I codici hex possono includere alpha?
Sì — si usa hex a 8 cifre (`#RRGGBBAA`) o l'abbreviazione a 4 cifre (`#RGBA`). La coppia alpha segue la stessa scala 0-`FF`: `#FF573300` è completamente trasparente, `#FF5733FF` è completamente opaco, `#FF573380` è circa al 50%. L'hex CSS a 4 e 8 cifre con alpha è arrivato nativamente in tutti gli evergreen browser nel 2018 (Chrome 62, Firefox 49, Safari 9.1, Edge 79). Per parser più vecchi e preprocessori CSS legacy che troncano silenziosamente la coppia alpha, ripieghi su `rgba(255, 87, 51, 0.5)`, supportato fin da IE 9.
Quanti colori può rappresentare hex?
L'hex a 6 cifre rappresenta esattamente **16.777.216** colori — 256 valori per canale al cubo (256³). Con l'hex a 8 cifre che include alpha, lo spazio indirizzabile è 256⁴ ≈ 4,3 miliardi, ma il contenuto colore resta 16,7 milioni; la dimensione extra è l'opacità. L'occhio umano distingue circa 10 milioni di colori, quindi il sRGB a 24 bit è stato chiamato "truecolor" fin dagli anni '90. I moderni display wide-gamut (Display P3, Rec2020) coprono una porzione maggiore dello spettro visibile, ma hex stesso è legato a sRGB — si usano OKLCH o `color(display-p3 ...)` per i valori wide-gamut.
Come si converte RGB in hex?
Si inverte la formula: non si divide nulla, si converte semplicemente ogni intero di canale nella sua rappresentazione base-16 a 2 cifre e si concatena. In JavaScript: `[255, 87, 51].map(v => v.toString(16).padStart(2, '0')).join('')` restituisce `'ff5733'`, poi si antepone `#`. Il `padStart(2, '0')` conta — senza, valori a singola cifra come `5` verrebbero serializzati semplicemente come `'5'` invece di `'05'`, producendo un hex non valido. Per la direzione inversa nella famiglia di questo strumento, usi il dedicato convertitore RGB-hex.

Strumenti correlati

Vedi tutti gli strumenti →