Un convertitore RGB in hex è una piccola utility che trasforma tre valori interi di canale 0-255 (rgb(255 87 51)) nel codice hex di 6 caratteri che codifica lo stesso colore (#FF5733). RGB e hex 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 — assieme alla sua direzione inversa, questa esatta trasformazione gira milioni di volte al giorno in ogni plugin Figma, preprocessore CSS, build di design token e UI di color picker sul web. 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 riportano nativamente — tre interi 0-255 separati che mappano direttamente sui subpixel rosso, verde e blu di un LCD o sui fosfori di un CRT. hex è il formato terso da copia-incolla che Figma, Sketch, Photoshop e ogni PDF di brand guidelines si aspettano in output — 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. Convertire tra di loro è meccanico: si converte ogni intero in una coppia base-16 a 2 cifre e si concatena con un # iniziale. Questo strumento esegue quella conversione in tempo reale mentre digita, senza alcun pulsante "Converti" da premere, e affianca all'output HEX ogni altro formato colore comune (HSL, OKLCH, OKLAB, HSV, HWB, CMYK, oltre ai 148 colori CSS named) gratis.
Il formato hex stesso merita uno sguardo più ravvicinato. L'hex CSS standard arriva in quattro forme legali. La forma canonica a 6 cifre #RRGGBB impacchetta tre canali a 8 bit in 6 cifre base-16 — 16.777.216 colori in totale (256³). L'abbreviazione a 3 cifre #RGB è una forma compressa in cui ogni cifra viene duplicata per formare l'equivalente a 6 cifre: #F73 si espande in #FF7733, *non* #000F73 (questa è una delle regole più sbagliate della sintassi colore CSS). La forma alpha a 8 cifre #RRGGBBAA accoda una coppia alpha a 2 cifre sulla scala 0-FF, con 00 completamente trasparente e FF completamente opaco. L'abbreviazione alpha a 4 cifre #RGBA rispecchia l'abbreviazione a 3 cifre duplicando ogni cifra, inclusa la cifra alpha. hex è case-insensitive — #ff5733 e #FF5733 si analizzano in modo identico, anche se la maggior parte delle brand guidelines sceglie una convenzione di case e la mantiene. La scelta della base 16 è comoda perché una cifra hex = nibble = 4 bit, due cifre = byte = 0-255, quindi una singola coppia a 2 cifre mappa pulita su un canale a 8 bit senza spreco di padding.
La matematica della conversione va in entrambe le direzioni in modo pulito. RGB a HEX: 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 hex non valido), poi si concatena. Per RGB con alpha (rgb(R G B / A) o rgba(R, G, B, A)), si moltiplica il float alpha 0-1 per 255, si arrotonda all'intero più vicino, si codifica in hex come 4ª coppia e si emette la forma a 8 cifre. HEX a RGB è l'inverso: si analizza l'hex a 6 cifre #RRGGBB come tre numeri base-16 a 2 cifre tramite parseInt(hex.slice(1, 3), 16), ecc. Entrambe le direzioni sono bit-exact: 16² = 256, corrisponde esattamente all'intervallo di byte 0-255 occupato da ogni canale, quindi un round-trip RGB → HEX → RGB produce verbatim gli interi originali senza drift float.
Perché HEX rispetto a RGB in CSS? Tre ragioni. hex è più breve — #FF5733 è 7 caratteri rispetto a rgb(255, 87, 51) a 16 caratteri, una differenza significativa quando viene impacchettato in una custom property CSS o in un oggetto di config Tailwind. hex non ha bug di whitespace — i minificatori CSS, i serializzatori JSON e gli strumenti da riga di comando gestiscono tutti una stringa di 7 caratteri puliti senza preoccuparsi del matching delle parentesi o dell'escape delle virgole. E hex è il formato che l'intero ecosistema di strumenti di design parla nativamente — il pannello colori di Figma, i campioni di Sketch, il color picker di Photoshop, ogni PDF di brand guidelines, ogni callout colore di Dribbble — tutti esportano hex di default. Il percorso copia-incolla dal designer allo sviluppatore ha forma di hex, motivo per cui la conversione RGB-HEX è così frequente: gli sviluppatori ricevono RGB da uno strumento non di design (una chiamata canvas, un eyedropper di screenshot, un sensore hardware) e devono trasformarlo nella forma hex che il resto del loro stack si aspetta.
Il flusso di lavoro RGB → HEX 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 suo flusso di lavoro necessita di più che solo RGB e hex. Gli spoke monodirezionali mirano a specifiche intenzioni di ricerca Google: il convertitore HEX-RGB inverso per la direzione opposta (prendere un hex da Figma ed estrarre gli interi 0-255), 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 valori RGB non vengono mai caricati online, mai loggati, e zero richieste di rete partono mentre digita. Lo verifichi in DevTools.