Un convertisseur RGB vers hex est un petit utilitaire qui transforme trois valeurs entières de canal 0-255 (`rgb(255 87 51)`) en le code hex à 6 caractères qui encode la même couleur (`#FF5733`). RGB et hex sont les deux formats autour desquels chaque feuille de style web, chaque outil de design et chaque pipeline de pixels d'image ont été bâtis depuis la fin des années 1990, et la conversion entre eux est l'opération unique la plus courante de l'outillage de couleur — appariée à sa direction inverse, cette transformation exacte s'exécute des millions de fois par jour à travers chaque plugin Figma, chaque préprocesseur CSS, chaque build de jetons de design et chaque UI de sélecteur de couleur du web. RGB est le format à adressage de canal que les API matérielles, les appels de dessin sur canvas, la manipulation de buffers d'image, les attributs de couleur OpenGL et la plupart des SDK graphiques signalent nativement — trois entiers 0-255 séparés qui correspondent directement aux sous-pixels rouge, vert et bleu d'un LCD ou aux phosphores d'un CRT. Hex est le format laconique de copier-coller que Figma, Sketch, Photoshop et chaque PDF de chartes de marque attendent en sortie — une chaîne base 16 de 6 caractères qui tient confortablement dans une propriété personnalisée CSS et se lit d'un coup d'œil une fois que votre œil a appris les motifs. La conversion entre les deux est mécanique : convertissez chaque entier en paire base 16 à 2 chiffres et concaténez avec un `#` initial. Cet outil exécute cette conversion en direct au fil de la saisie, sans bouton « Convertir » à cliquer, et expose tous les autres formats de couleur courants (HSL, OKLCH, OKLAB, HSV, HWB, CMYK, plus les 148 couleurs CSS nommées) aux côtés de la sortie HEX gratuitement.
**Le format hex lui-même mérite un examen plus attentif.** Le hex CSS standard se décline en quatre formes légales. La forme canonique à 6 chiffres `#RRGGBB` empaquette trois canaux 8 bits dans 6 chiffres base 16 — 16 777 216 couleurs au total (256³). Le raccourci à 3 chiffres `#RGB` est une forme compressée où chaque chiffre est dupliqué pour former l'équivalent à 6 chiffres : `#F73` se développe en `#FF7733`, *pas* `#000F73` (c'est l'une des règles les plus erronées de la syntaxe de couleur CSS). La forme alpha à 8 chiffres `#RRGGBBAA` ajoute une paire alpha à 2 chiffres sur une échelle 0-`FF`, avec `00` totalement transparent et `FF` totalement opaque. Le raccourci alpha à 4 chiffres `#RGBA` reflète le raccourci à 3 chiffres en dupliquant chaque chiffre, y compris le chiffre alpha. Hex est insensible à la casse — `#ff5733` et `#FF5733` s'analysent à l'identique, bien que la plupart des chartes de marque choisissent une convention de casse et s'y tiennent. Le choix de la base 16 est commode parce qu'un chiffre hex = un quartet = 4 bits, deux chiffres = un octet = 0-255, donc une seule paire à 2 chiffres correspond proprement à un canal 8 bits sans gaspillage de remplissage.
Les mathématiques de conversion vont dans les deux sens proprement. **RGB vers HEX** : pour chaque canal, appelez `value.toString(16).padStart(2, '0')` pour obtenir la paire hex à 2 chiffres (le `padStart` importe — sans lui, une valeur de canal 5 se sérialiserait en `'5'` au lieu de `'05'`, produisant un hex invalide), puis concaténez. Pour un RGB portant de l'alpha (`rgb(R G B / A)` ou `rgba(R, G, B, A)`), multipliez le flottant alpha 0-1 par 255, arrondissez à l'entier le plus proche, encodez en hex comme 4e paire et émettez la forme à 8 chiffres. **HEX vers RGB** est l'inverse : analysez le hex à 6 chiffres `#RRGGBB` comme trois nombres base 16 à 2 chiffres via `parseInt(hex.slice(1, 3), 16)`, etc. Les deux directions sont exactes au bit près : 16² = 256, ce qui correspond exactement à la plage d'octets 0-255 qu'occupe chaque canal, donc un aller-retour RGB → HEX → RGB produit les entiers originaux verbatim sans dérive en virgule flottante.
**Pourquoi HEX plutôt que RGB en CSS ?** Trois raisons. Hex est plus court — `#FF5733` fait 7 caractères contre `rgb(255, 87, 51)` à 16 caractères, une différence significative quand on l'empaquette dans une propriété personnalisée CSS ou un objet de configuration Tailwind. Hex n'a pas de bogues d'espacement — les minificateurs CSS, les sérialiseurs JSON et les outils en ligne de commande gèrent tous une chaîne de 7 caractères proprement sans se soucier d'apparier les parenthèses ou d'échapper les virgules. Et hex est le format que tout l'écosystème des outils de design parle nativement — le panneau de couleur de Figma, les échantillons de Sketch, le sélecteur de couleur de Photoshop, chaque PDF de chartes de marque, chaque appel de couleur d'un shot Dribbble — ils exportent tous hex par défaut. Le chemin de copier-coller du designer au développeur est en forme de hex, c'est pourquoi la conversion RGB-vers-HEX est si fréquente : les développeurs reçoivent du RGB depuis un outil non orienté design (un appel canvas, une pipette de capture d'écran, un capteur matériel) et ont besoin de le transformer en la forme hex qu'attend le reste de leur pile.
Le flux RGB → HEX de cet outil est une direction d'une famille de 5 branches qui partagent toutes le même convertisseur de couleurs unifié sous-jacent. Le convertisseur de couleurs unifié dédié est le hub — il affiche les 9 formats simultanément modifiables et c'est le bon outil quand votre flux a besoin de plus que RGB et hex. Les branches à sens unique ciblent des intentions de recherche Google spécifiques : le convertisseur hex vers RGB inverse pour la direction opposée (prendre un hex depuis Figma et en extraire les entiers 0-255), le convertisseur hex vers HSL pour l'espace designer-cognitif hérité, le convertisseur hex vers OKLCH pour les systèmes de design modernes perceptuellement uniformes (Tailwind v4 et shadcn utilisent désormais OKLCH par défaut), et le convertisseur hex vers CMYK pour les approximations de préparation à l'impression. Les cinq branches et le hub partagent le même moteur de parsing et les mêmes mathématiques de conversion, donc les résultats sont garantis identiques sur toute la famille. Chaque conversion s'exécute localement dans votre navigateur — vos valeurs RGB ne sont jamais téléversées, jamais journalisées, et zéro requête réseau ne se déclenche pendant que vous saisissez. Vérifiez dans DevTools.