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.