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.