Skip to content

Convertisseur RGB vers HEX

Convertissez RGB en hex dans votre navigateur — entiers, pourcentages et alpha rgba pris en charge. Gratuit, instantané, sans inscription, vos couleurs ne quittent jamais la page.

Sans pistage Fonctionne dans le navigateur Gratuit
Toute la conversion de couleurs se fait localement dans votre navigateur. Aucune donnée n'est envoyée à un serveur.
Gamut chromatique: sRGB Display P3 Rec2020
Contraste contre:
AA AA-Lg AAA AAA-Lg · APCA Lc
Simulation de daltonisme (8 types)
Protanopie (aveugle au rouge)
Deutéranopie (aveugle au vert)
Tritanopie (aveugle au bleu)
Achromatopsie (totale)
Protanomalie (faible au rouge)
Deutéranomalie (faible au vert)
Tritanomalie (faible au bleu)
Achromatomalie (partielle)
Teintes claires / Teintes foncées / Tons / Harmonies

Teintes claires

Teintes foncées

Tons

Harmonies

Copier comme code
Référence des couleurs courantes
Revu pour la conformité CSS Color 4, la prise en charge des entrées RGB en entiers + pourcentages + alpha, la correction d'émission alpha en hex à 8 chiffres et l'exactitude au bit près des allers-retours entre RGB et HEX sur la plage 0-255. — Équipe d'ingénierie Go Tools · 27 mai 2026

Qu'est-ce qu'un convertisseur RGB vers HEX ?

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.

// Serialize {r, g, b, alpha} → canonical hex string
// Emits 6-digit #RRGGBB when alpha === 1, 8-digit #RRGGBBAA otherwise.
function formatHex({ r, g, b, alpha = 1 }) {
  const pair = (v) => Math.round(v).toString(16).padStart(2, '0').toUpperCase();
  const rgb = pair(r) + pair(g) + pair(b);
  if (alpha >= 1) return `#${rgb}`;
  const a = pair(alpha * 255);
  return `#${rgb}${a}`;
}

console.log(formatHex({ r: 255, g: 87, b: 51 }));              // '#FF5733'
console.log(formatHex({ r: 59, g: 130, b: 246 }));             // '#3B82F6'
console.log(formatHex({ r: 255, g: 87, b: 51, alpha: 0.5 })); // '#FF573380'
console.log(formatHex({ r: 5, g: 0, b: 0 }));                  // '#050000' — padStart matters

Fonctionnalités clés

Toutes les formes d'entrée RGB analysées à l'identique

Moderne séparée par espaces `rgb(255 87 51)`, héritée à virgules `rgb(255, 87, 51)`, canaux en pourcentage `rgb(100% 34% 20%)`, alpha moderne via barre oblique `rgb(255 87 51 / 0.5)` et héritée `rgba(255, 87, 51, 0.5)` s'analysent toutes à l'identique. Le parseur normalise chaque forme d'entrée vers le même tuple RGB interne avant la sérialisation hex, donc vous pouvez coller la forme que votre source produit — triplet entier Photoshop, `rgba()` de feuille de style, tuple d'API Canvas — sans reformatage manuel.

Sortie hex en majuscules à 6 ou 8 chiffres

Le champ HEX expose la valeur sous forme `#FF5733` pour les couleurs opaques et `#FF573380` pour celles portant de l'alpha (forme à 8 chiffres). Majuscules par défaut pour cohérence avec la plupart des chartes de marque ; un remplacement mécanique bascule en minuscules si votre guide de style l'exige. Les deux formes sont du CSS valide et arrivent dans tous les navigateurs evergreen. La forme alpha à 8 chiffres est arrivée dans tous les navigateurs majeurs en 2018 ; pour le repli IE 11, la forme héritée `rgba()` reste juste là dans le champ RGB.

Exact au bit près, pas de dérive en virgule flottante

RGB → HEX est des mathématiques entier-vers-chaîne : `value.toString(16).padStart(2, '0')` produit la paire hex canonique à 2 chiffres sans implication de flottant. La direction inverse (`parseInt(pair, 16)`) est tout aussi exacte. Un aller-retour RGB → HEX → RGB → HEX produit l'entrée originale verbatim, indéfiniment. La source de vérité interne OKLCH signifie que même la chaîne plus longue RGB → HSL → OKLAB → HEX reste stable au bit près, ce que les convertisseurs hérités routant via HSL ne garantissent pas.

Canal alpha encodé proprement

Un RGB portant de l'alpha (`rgb(255 87 51 / 0.5)` ou `rgba(255, 87, 51, 0.5)`) émet automatiquement la forme hex à 8 chiffres (`#FF573380`). Le flottant alpha se multiplie par 255 et s'arrondit à l'entier le plus proche avant l'encodage hex : `0.5 × 255 = 128 = 0x80`. La sortie retombe à hex à 6 chiffres quand alpha vaut 1 pour éviter de laisser fuiter des paires `FF` finales dans les feuilles de style. Utile pour la migration de jetons de design où les valeurs alpha dans `rgba()` doivent faire un aller-retour vers la forme hex moderne à 8 chiffres.

Huit autres formats visibles simultanément

Le même RGB que vous collez pilote aussi HSL, HSV, HWB, OKLCH, OKLAB, CMYK et la couleur CSS nommée la plus proche — tous visibles d'un coup d'œil sur la même page. Vous n'êtes jamais enfermé dans RGB → hex seulement. Si un coéquipier a besoin du triplet OKLCH pour un jeton Tailwind v4, du nom de couleur le plus proche pour la prose de documentation ou de l'approximation CMYK pour un devis d'impression, les valeurs sont déjà là avec leurs propres boutons Copier.

Contraste WCAG + APCA intégré

Passez un tuple RGB et la ligne de contraste le note immédiatement contre le blanc et le noir en utilisant WCAG 2.1 (plancher réglementaire : 4,5:1 pour le texte courant, 7:1 pour AAA) et APCA Lc (successeur proposé pour WCAG 3 : cible `|Lc| ≥ 75` pour le texte courant). Utile quand vous venez de convertir un tuple RGB en hex et voulez vérifier que la couleur de marque résultante est effectivement lisible comme couleur de texte courant avant de la livrer.

Copier en CSS / Tailwind v4 / SwiftUI / Compose / Flutter

Sous le sélecteur, la section Copier comme code transforme la couleur actuelle en extraits prêts à coller pour cinq plateformes : propriété personnalisée CSS (`--color-brand: #FF5733`), jeton `@theme` Tailwind v4, littéral SwiftUI `Color(red:green:blue:)`, constante Jetpack Compose `Color(0xFFFF5733)`, Flutter `Color(0xFFFF5733)`. La syntaxe exacte qu'attend chaque plateforme, prête à déposer dans un catalogue d'asset iOS, un fichier de thème Android ou un `ThemeData` Flutter.

100 % dans le navigateur — pas de téléversement, pas de pistage

Tout le parsing RGB, la sérialisation hex, le scoring de contraste et la génération de palette s'exécutent localement dans votre navigateur. Vos valeurs RGB ne sont jamais transmises, jamais journalisées sur un serveur, jamais analysées. Zéro requête réseau pendant que vous saisissez — vérifiez dans DevTools. Sûr pour les palettes de marque non annoncées, les jetons de design internes, les maquettes en brouillon sous NDA et tout autre travail de couleur confidentiel.

Hash d'URL partageable pour la couleur exacte

La couleur actuelle s'encode automatiquement dans le hash d'URL sous la forme `#hex=ff5733` à chaque changement. Copiez l'URL, collez-la dans un fil Slack ou un ticket GitHub, et quiconque l'ouvre atterrit sur le même tuple RGB avec le même résultat hex. Le hash ne vit que dans votre barre d'adresse et n'est jamais transmis au serveur (les navigateurs n'incluent pas les fragments d'URL dans les requêtes HTTP), donc même partager le lien ne fuite pas la couleur vers un tiers.

Alternatives au convertisseur RGB vers HEX

RapidTables RGB to Hex

outil navigateur

Le résultat Google par défaut pour « rgb to hex » — un formulaire à sens unique avec trois cases de nombres RGB en entrée, hex en sortie, aucun autre format visible. Utile pour des recherches ponctuelles quand vous arrivez depuis la recherche. Manque OKLCH, vérification de contraste, détection de gamut chromatique, gestion de l'alpha et la vue multi-format simultanée. Cet outil l'emporte sur chaque axe sauf le cas de conversion unique minimaliste.

ColorHexa

outil navigateur

Pages SEO par couleur de longue date avec métadonnées approfondies : conversions, palettes, harmonies, dégradés pour n'importe quel RGB que vous interrogez. L'UI est datée (début des années 2010), pas de prise en charge OKLCH, pas de contraste APCA, pas de gestion gamut chromatique large. Forte pour la découverte SEO d'une couleur spécifique via Google ; plus faible pour les flux de conversion actifs où saisir dans une UX à champs unifiés est plus rapide.

Calculateur RGB W3Schools

outil navigateur

Bascule HEX/RGB/HSL accessible aux débutants sur une page axée enseignement, omniprésente dans les résultats de recherche. Pas d'OKLCH, pas de gestion de l'alpha au-delà de rgba, pas de fonctionnalités avancées. Utile comme référence à côté du contenu explicatif de W3Schools. Cet outil l'emporte sur chaque autre axe : plus de formats, mathématiques perceptuelles, fonctionnalités gamut chromatique + contraste + CVD, export de code moderne pour Tailwind v4 / SwiftUI / Compose / Flutter.

Sélecteur de couleur DevTools du navigateur

fonctionnalité navigateur intégrée

Les DevTools de Chrome, Firefox et Safari livrent tous un sélecteur de couleur qui convertit RGB en hex en ligne quand vous cliquez sur un échantillon de couleur dans le panneau CSS. Gratuit, sans installation, toujours disponible. Manque OKLCH, manque les URL partageables, manque l'export de code pour les plateformes non web (SwiftUI, Compose). Tournez-vous vers les DevTools quand vous déboguez déjà du CSS ; tournez-vous vers cet outil quand vous avez besoin d'une sortie inter-plateforme.

Digital Color Meter macOS

application macOS native

Livré avec chaque Mac depuis OS X — survolez n'importe quel pixel et lisez les valeurs RGB / hex / linéaires. Excellent pour échantillonner des couleurs de pixel depuis n'importe quelle application à l'écran. N'accepte pas les triplets RGB collés pour conversion ; c'est un échantillonneur d'écran, pas un convertisseur. Utilisez le bouton EyeDropper du sélecteur de cet outil (navigateurs Chromium uniquement) pour la même capacité d'échantillonnage d'écran à l'intérieur du navigateur.

ConvertingColors

outil navigateur

Pages SEO par couleur couvrant de nombreux espaces (HEX, RGB, HSL, HSV, CMYK, XYZ, CIELAB). Manque la prise en charge OKLCH moderne et l'UX d'édition à champs unifiés. Les pages de contenu auto-générées ressemblent à des fermes de contenu mais les données de conversion sont correctes. Bon pour fouiller les métadonnées de couleurs individuelles via Google ; cet outil est plus rapide pour les flux actifs.

Exemples RGB vers HEX

Entrée depuis rgb() CSS → hex pour SwiftUI

rgb(255 87 51)

Sortie HEX : `#FF5733`. Le flux classique inter-plateformes — une feuille de style CSS déclare une couleur de marque en syntaxe `rgb()` moderne, l'équipe iOS a besoin du hex pour le déposer dans une extension SwiftUI `Color(hex:)` ou dans un catalogue d'assets. Chaque canal se convertit indépendamment : `255 → FF`, `87 → 57`, `51 → 33`, concaténés avec un `#` initial. Le même hex se colle aussi proprement dans Android Compose, Flutter et Figma — le hex reste la lingua franca de la transmission de couleurs inter-plateformes en 2026.

Entiers RGB Photoshop d'un designer → variable CSS

rgb(59 130 246)

Sortie HEX : `#3B82F6`. Le sélecteur Color d'Adobe expose RGB sous forme de trois entiers 0-255 (dans Photoshop, Illustrator et InDesign) ; l'équipe front-end a besoin du hex pour le déposer dans une propriété personnalisée CSS comme `--color-brand: #3B82F6`. Ce triplet précis est le `blue-500` de Tailwind — `59 = 0x3B`, `130 = 0x82`, `246 = 0xF6`. Le coller ici une fois produit le hex correspondant plus le triplet OKLCH pour la migration de jetons Tailwind v4, le tout en une étape.

RGB avec alpha → hex à 8 chiffres

rgb(255 87 51 / 0.5)

Sortie HEX : `#FF573380`. Le flottant alpha se multiplie par 255 (`0.5 × 255 = 127,5`, arrondi à 128), puis se convertit en paire hex à 2 chiffres (`128 = 0x80`) ajoutée après le hex RGB. Le hex CSS à 8 chiffres avec alpha est arrivé nativement dans tous les navigateurs evergreen en 2018 (Chrome 62, Firefox 49, Safari 9.1, Edge 79). Pour la prise en charge des navigateurs pré-2018, la forme héritée `rgba(255, 87, 51, 0.5)` reste disponible ; la conversion est mécanique et préserve exactement la même couleur.

Canaux RGB en pourcentage → hex

rgb(100% 50% 0%)

Sortie HEX : `#FF8000`. CSS Color 4 autorise des canaux en pourcentage — chaque pourcentage correspond à la plage 0-255 via `valeur × 255 / 100`, puis s'arrondit à l'entier le plus proche (`50% × 255 = 127,5 → 128 = 0x80`). Les formes pourcentage et entier sont interchangeables et produisent une sortie hex identique. La syntaxe en pourcentage est parfois préférée dans les feuilles de style écrites à la main pour la lisibilité quand les ratios entre canaux importent plus que les valeurs entières brutes ; la sortie hex normalise les deux entrées vers la même chaîne canonique à 6 chiffres.

Conversions RGB → HEX courantes

Table de référence des 10 tuples RGB les plus convertis et leurs équivalents hex — primaires pures, secondaires pures et deux couleurs de marque réelles de la palette Tailwind.

Noir

rgb(0 0 0) #000000

Noir pur. Les trois canaux à zéro — l'absence de lumière émise. Code hex (#000000).

rgb(0 0 0) #000000

Le noir pur à l'écran est rarement le bon choix de design — essayez `#111` ou une clarté perceptuelle OKLCH de 0,1-0,15 pour un texte courant plus doux.

Besoin d'OKLCH à la place ? Essayez le convertisseur hex vers OKLCH dédié pour une sortie perceptuellement uniforme.

Blanc

rgb(255 255 255) #FFFFFF

Blanc pur. Les trois canaux à leur valeur maximale (255). La couleur la plus lumineuse en sRGB.

rgb(255 255 255) #FFFFFF

Les fonds blancs purs peuvent produire de la fatigue oculaire dans des environnements sombres — considérez `#fafafa` ou OKLCH 0,98 pour des alternatives plus chaudes.

Besoin d'OKLCH à la place ? Essayez le convertisseur hex vers OKLCH dédié pour une sortie perceptuellement uniforme.

Rouge

rgb(255 0 0) #FF0000

Rouge pur. Canal R au maximum, G et B à zéro. La première des trois primaires sRGB.

rgb(255 0 0) #FF0000

Le rouge pur est extrêmement saturé et tient rarement dans une palette de marque — la plupart des couleurs de marque « rouge » sont plus proches de #DC2626 ou #E53935.

Besoin d'OKLCH à la place ? Essayez le convertisseur hex vers OKLCH dédié pour une sortie perceptuellement uniforme.

Vert

rgb(0 255 0) #00FF00

Vert pur. Canal G au maximum, R et B à zéro. Couleur CSS nommée `lime` (pas `green`, qui est #008000).

rgb(0 255 0) #00FF00

Le mot-clé CSS `green` se résout à #008000 (à demi-luminosité), pas à #00FF00 — source de confusion fréquente. Utilisez `lime` pour le vert RGB pur.

Besoin d'OKLCH à la place ? Essayez le convertisseur hex vers OKLCH dédié pour une sortie perceptuellement uniforme.

Bleu

rgb(0 0 255) #0000FF

Bleu pur. Canal B au maximum, R et G à zéro. La troisième primaire sRGB.

rgb(0 0 255) #0000FF

Le bleu pur sur un fond blanc échoue au contraste WCAG AA (3,7:1) — considérez des bleus de marque plus foncés comme #1D4ED8 (Tailwind blue-700) pour le texte courant.

Besoin d'OKLCH à la place ? Essayez le convertisseur hex vers OKLCH dédié pour une sortie perceptuellement uniforme.

Cyan

rgb(0 255 255) #00FFFF

Cyan — vert et bleu au maximum, rouge à zéro. L'une des trois secondaires sRGB. Couleur CSS nommée `cyan` (ou équivalemment `aqua`).

rgb(0 255 255) #00FFFF

Cyan et aqua sont des synonymes exacts en CSS — les deux se résolvent à #00FFFF. Choisissez-en un et restez cohérent dans toute votre feuille de style.

Besoin d'OKLCH à la place ? Essayez le convertisseur hex vers OKLCH dédié pour une sortie perceptuellement uniforme.

Magenta

rgb(255 0 255) #FF00FF

Magenta — rouge et bleu au maximum, vert à zéro. Couleur CSS nommée `magenta` (ou équivalemment `fuchsia`).

rgb(255 0 255) #FF00FF

Magenta et fuchsia sont des synonymes exacts en CSS — les deux se résolvent à #FF00FF. Courant dans les motifs de test et les superpositions d'outils de développement.

Besoin d'OKLCH à la place ? Essayez le convertisseur hex vers OKLCH dédié pour une sortie perceptuellement uniforme.

Jaune

rgb(255 255 0) #FFFF00

Jaune — rouge et vert au maximum, bleu à zéro. La plus lumineuse des trois secondaires sRGB par luminance perçue.

rgb(255 255 0) #FFFF00

Le jaune est la couleur non blanche de plus haute luminance à l'écran — le texte jaune sur fond blanc est presque invisible, même si le hex paraît correct sur papier.

Besoin d'OKLCH à la place ? Essayez le convertisseur hex vers OKLCH dédié pour une sortie perceptuellement uniforme.

Tailwind blue-500

rgb(59 130 246) #3B82F6

La couleur de marque blue-500 par défaut de Tailwind CSS — le « bleu web » canonique du milieu des années 2020. Utilisée dans d'innombrables tableaux de bord, sites marketing et outils d'administration.

rgb(59 130 246) #3B82F6

Tailwind v4 redéfinit blue-500 en OKLCH (`oklch(0.629 0.193 263.4)`) pour des rampes perceptuellement uniformes — le hex reste le même comme repli.

Besoin d'OKLCH à la place ? Essayez le convertisseur hex vers OKLCH dédié pour une sortie perceptuellement uniforme.

Tailwind rose-500

rgb(244 63 94) #F43F5E

La couleur rose-500 par défaut de Tailwind CSS — un rose-rouge à haute saturation couramment utilisé pour les boutons d'accent, les états d'alerte et les contrastes de marque.

rgb(244 63 94) #F43F5E

Rose-500 passe WCAG AA (4,6:1) contre le blanc pour le grand texte mais échoue pour le texte courant — associez avec rose-600 (#e11d48) ou plus foncé pour le corps de texte sur fond blanc.

Besoin d'OKLCH à la place ? Essayez le convertisseur hex vers OKLCH dédié pour une sortie perceptuellement uniforme.

Comment utiliser le convertisseur RGB vers HEX

  1. 1

    Saisissez ou collez un tuple RGB dans le champ RGB

    Déposez n'importe quelle valeur `rgb()` dans l'entrée RGB — moderne séparée par espaces `rgb(255 87 51)`, héritée à virgules `rgb(255, 87, 51)`, avec alpha via barre oblique `rgb(255 87 51 / 0.5)` ou via la forme `rgba(255, 87, 51, 0.5)`, ou canaux en pourcentage `rgb(100% 34% 20%)`. L'outil normalise toutes les formes d'entrée vers le même tuple RGB interne avant de calculer le hex. Les caractères invalides, les entiers hors plage ou une syntaxe malformée produisent une discrète erreur en ligne ; un RGB valide met à jour chaque autre champ de format en temps réel.

  2. 2

    Lisez le code hex dans le champ HEX

    Le champ HEX au-dessus du champ RGB affiche la valeur hex correspondante : `#FF5733` pour une couleur opaque, `#FF573380` pour une couleur portant de l'alpha (forme à 8 chiffres). La sortie utilise par défaut des chiffres hex en majuscules pour cohérence avec la plupart des chartes de marque ; les minuscules (`#ff5733`) sont à un remplacement mécanique près et tout aussi valides en CSS. La conversion est exacte au bit près — un aller-retour RGB → HEX → RGB récupère le tuple original verbatim sans dérive en virgule flottante.

  3. 3

    Cliquez sur Copier pour saisir la chaîne hex

    Chaque carte de format possède un bouton Copier à droite. Un clic et la valeur arrive dans votre presse-papiers — le label du bouton bascule brièvement sur « Copié ! » pour vous le signaler. La chaîne copiée inclut le `#` initial pour qu'elle se colle directement dans une règle CSS, un champ de couleur Figma, une extension hex SwiftUI ou un `colors.xml` Android. Pour une syntaxe spécifique à une plateforme (SwiftUI `Color(red:green:blue:)`, Compose `Color(0xFF...)`, jetons `@theme` Tailwind v4), utilisez la section Copier comme code sous le sélecteur.

  4. 4

    Aussi visibles : HSL, OKLCH, OKLAB, CMYK, couleur nommée

    Le même RGB que vous collez illumine aussi les autres champs de format — HSL pour le CSS hérité, OKLCH et OKLAB pour les systèmes de design perceptuellement uniformes, HSV et HWB pour les flux de sélecteur de couleur designer, CMYK pour les estimations d'impression, et la couleur CSS nommée la plus proche pour la documentation et la prose. Vous n'êtes jamais enfermé dans RGB → hex seulement ; si vous avez aussi besoin du triplet OKLCH pour un bloc `@theme` Tailwind v4, il est juste là dans le champ OKLCH avec son propre bouton Copier.

  5. 5

    Utilisez le sélecteur pour les ajustements visuels

    Sous la grille de formats se trouvent un carré SL + curseur de teinte + curseur alpha pour l'exploration visuelle. Faites glisser n'importe quel contrôle et chaque champ texte se met à jour en temps réel, y compris le RGB et le HEX par lesquels vous avez commencé. Sur les navigateurs basés sur Chromium (Chrome, Edge, Brave), le bouton EyeDropper active l'API native `EyeDropper` pour échantillonner n'importe quel pixel à l'écran, y compris hors de la fenêtre du navigateur — utile quand vous voulez capturer un tuple RGB depuis l'UI d'une autre application sans capture d'écran préalable, puis lire immédiatement le hex.

Erreurs courantes RGB / HEX

Oublier padStart en sérialisant RGB en hex

Convertir RGB en hex exige que le `toString(16)` de chaque canal soit rempli à gauche à 2 chiffres. Sans `padStart(2, '0')`, les valeurs de canal à un seul chiffre produisent du hex invalide : `rgb(5, 87, 51)` se sérialiserait en `#55733` (5 caractères) au lieu de `#055733` (6 caractères). Beaucoup de convertisseurs ad hoc sautent le pad et produisent une sortie cassée pour tout canal sous 16. L'idiome standard est `value.toString(16).padStart(2, '0')` pour chacun de R, G, B, puis concaténez et préfixez `#`.

✗ Incorrect
Sauter padStart :
[5, 87, 51].map(v => v.toString(16)).join('') → '55733'
Produit un hex invalide à 5 caractères.
✓ Correct
Utiliser padStart(2, '0') :
[5, 87, 51].map(v => v.toString(16).padStart(2, '0')).join('') → '055733'
Hex valide à 6 caractères ; fonctionne correctement pour toutes les valeurs de canal 0-255.

Oublier d'arrondir le RGB en flottant avant l'encodage hex

Quand le tuple RGB provient d'un flottant normalisé 0-1 multiplié par 255 (courant en OpenGL, SwiftUI, données d'image normalisées), le résultat est souvent un flottant comme `127,5` ou `204,7`. Appeler `toString(16)` sur un flottant produit du hex décimal comme `'7f.8'` ou `'cc.b333...'`, qui n'est pas du hex CSS valide. Toujours `Math.round` (ou `Math.floor`/`Math.ceil` selon votre politique d'arrondi) le flottant vers un entier avant l'étape `toString(16)`.

✗ Incorrect
Sauter l'arrondi :
(0.5 * 255).toString(16) → '7f.8'
Produit un hex invalide avec une virgule décimale.
✓ Correct
Arrondir d'abord à l'entier :
Math.round(0.5 * 255).toString(16).padStart(2, '0') → '80'
Paire hex à 2 chiffres valide ; correspond à la normalisation CSS Color 4.

Confondre l'ordre alpha du hex à 8 chiffres

Le hex CSS à 8 chiffres est `#RRGGBBAA` — l'alpha est la paire *de fin*. Certaines bibliothèques de couleurs (notamment l'ancien `Color.parseColor()` d'Android) utilisent l'ordre opposé `#AARRGGBB` avec l'alpha comme paire *de tête*, ce qui est incompatible avec le hex CSS. Une valeur RGB avec 50 % d'alpha sérialisée en hex CSS émet `#FF573380` ; émise dans le format alpha-en-tête d'Android, elle serait `#80FF5733`. Vérifiez toujours l'ordre alpha de la plateforme cible avant de produire du hex à 8 chiffres.

✗ Incorrect
Émettre du hex alpha-en-tête Android en CSS :
rgb(255 87 51 / 0.5) → #80FF5733 (format Android)
CSS analyse comme alpha=128, R=255, G=87, B=51 — mauvaise couleur entièrement.
✓ Correct
Utiliser le format documenté de la plateforme cible :
pour CSS : #FF573380 (alpha comme dernier octet)
pour Android Compose : Color(0x80FF5733) (alpha comme premier octet)
Ne pas coller en travers entre les deux sans réorganiser.

Moyenner directement les canaux RGB pour le mélange

Les canaux RGB sont gamma-encodés, pas linéaires. Moyenner deux valeurs RGB donne un point médian perceptuellement faux. `(255, 0, 0)` moyenné avec `(0, 255, 0)` produit `(127, 127, 0)`, un olive foncé boueux, pas le point médian jaune lumineux attendu d'un mélange de lumière rouge et verte. Pour un mélange correct, décodez d'abord vers linear-RGB via la fonction de transfert sRGB (CSS Color 4 §11.2), moyennez en espace linéaire, puis ré-encodez. Ou travaillez en OKLAB / OKLCH où la distance perceptuelle est uniforme.

✗ Incorrect
Moyenner du RGB gamma-encodé directement :
(rgb(255,0,0) + rgb(0,255,0)) / 2 = rgb(128, 128, 0)
Ressemble à un olive foncé, pas à un jaune lumineux.
✓ Correct
Moyenner en linear-RGB :
décoder → linear-RGB → moyenne → ré-encoder → rgb(188, 188, 0)
Visiblement jaune lumineux, correspondant à ce que produit un mélange de lumière physique.

Qui utilise RGB vers HEX

Développeurs front-end convertissant le RGB canvas en hex CSS
Les fonctions de dessin de l'API Canvas signalent et acceptent les couleurs sous forme de tuples RGB (`ctx.fillStyle = 'rgb(255 87 51)'`), mais la feuille de style CSS environnante veut des variables hex (`--color-fill: #FF5733`). Coller le RGB une fois produit le hex correspondant, prêt à déposer dans une propriété personnalisée CSS. Utile quand on extrait des couleurs de marque d'un graphique ou d'une visualisation de données rendu en canvas pour les réutiliser dans une UI statique.
Designers convertissant le RGB Photoshop en hex Figma
Le sélecteur Color d'Adobe (dans Photoshop, Illustrator et InDesign) signale RGB sous forme de trois entiers 0-255 sur trois cases de canal. Figma, à l'inverse, affiche les valeurs de couleur en hex par défaut dans ses panneaux de design. Collez les trois entiers Photoshop comme `rgb(...)` ici, copiez la sortie hex, déposez dans le champ de couleur de Figma. Correspond exactement à la couleur Photoshop originale sans détour par capture d'écran et pipette.
Développeurs matériels convertissant le RGB de capteur LED en hex web
Les bandes LED adressables, les capteurs de couleur et les caméras RGB matérielles signalent toutes les valeurs de canal comme entiers 0-255. Quand les relevés doivent piloter un tableau de bord web (« la lampe brille actuellement de cette couleur »), le code hex correspondant est ce qu'attend l'attribut CSS `style="background: ..."`. Collez le triplet RGB du capteur, copiez le hex, branchez dans le balisage du tableau de bord.
Développeurs de jeux exportant la Color Unity vers une maquette web
Les constructeurs `Color` d'Unity et `FLinearColor` d'Unreal prennent des flottants normalisés 0-1 ; multiplier chacun par 255 donne les entiers RGB correspondants. Collez le `rgb(...)` résultant ici, copiez le hex, déposez dans la maquette web ou le site marketing qui doit correspondre exactement à la couleur d'accent en jeu. La vue OKLCH simultanée expose aussi la clarté perceptuelle pour que la palette de la maquette puisse être réglée à la main pour correspondre aux niveaux de luminosité du jeu.
Ingénieurs d'accessibilité auditant les couleurs de marque Photoshop
Quand le guide de style de marque signale les couleurs comme triplets d'entiers RGB (« l'orange de marque est RGB 255 / 87 / 51 ») mais que l'outil d'audit WCAG veut des codes hex, ce convertisseur est le pont. Collez le triplet RGB, copiez le hex, faites passer l'audit. Les badges de contraste WCAG et APCA de cet outil exposent aussi le verdict en une seule étape, donc vous n'avez pas besoin de rebondir entre trois outils séparés.
Développeurs e-mail migrant rgba() vers hex à 8 chiffres
Le HTML moderne des clients e-mail prend en charge le hex à 8 chiffres (`#FF573380`) pour les couleurs portant de l'alpha, mais les templates hérités stockent souvent la même valeur sous `rgba(255, 87, 51, 0.5)`. Coller le `rgba()` ici et lire la sortie hex à 8 chiffres rend la migration mécanique. Le champ HEX affiche `#FF573380` pour le cas alpha 50 % ; la forme `rgba()` héritée reste dans le champ RGB pour les contextes de repli qui en ont encore besoin.
Développeurs documentant les jetons de marque avec les deux formats
La documentation des jetons de design affiche souvent la même couleur dans les deux formats RGB et hex : hex pour le bloc de code CSS, RGB pour l'annotation en prose (« l'orange de marque est `#FF5733`, équivalent à RGB 255 / 87 / 51 »). Avoir les deux visibles côte à côte permet à un rédacteur de doc de copier chacun en un passage au lieu de lancer deux outils séparés. Le hash d'URL partageable permet aussi aux lecteurs de cliquer pour atterrir sur la couleur exacte en discussion.
Ingénieurs QA assertant les couleurs de pixel contre des specs hex
Les tests de régression visuelle capturent parfois les couleurs de pixel comme entiers RGB (`expect(pixel).toMatchRgb([255, 87, 51])`), tandis que la spec sous-jacente est donnée en hex (« les boutons doivent rendre en `#FF5733` »). Coller le RGB capturé ici produit le hex correspondant, que l'ingénieur QA peut comparer directement à la spec. L'exactitude au bit près de la conversion signifie que la comparaison ne sera pas flaky sur des différences de dérive en virgule flottante.

Mathématiques et sérialisation RGB vers HEX

toString(16).padStart(2, '0') est l'implémentation en une ligne
Toute la conversion RGB-vers-hex tient en une expression par canal : `value.toString(16).padStart(2, '0')`. Le `toString(16)` de JavaScript convertit un entier décimal en sa représentation en chaîne base 16. Le `padStart(2, '0')` est le détail facile à oublier — sans lui, une valeur de canal 5 se sérialiserait en `'5'` au lieu de `'05'`, produisant un hex invalide à 5 caractères comme `#55733` quand on le joint avec les autres canaux. L'idiome standard est `[r, g, b].map(v => v.toString(16).padStart(2, '0')).join('')` suivi d'un préfixe `'#'`.
Normalisation des pourcentages : × 255 / 100, puis arrondir
CSS Color 4 autorise les canaux en pourcentage dans `rgb()` : `rgb(100% 34% 20%)` est équivalent à `rgb(255 87 51)`. La règle de normalisation est `Math.round(percent × 255 / 100)`. `50% × 255 / 100 = 127,5` s'arrondit à 128 (arrondi du banquier en s'éloignant de ,5). La même règle s'applique à l'alpha quand il est exprimé en pourcentage (`rgb(255 87 51 / 50%)` ↔ `rgb(255 87 51 / 0.5)`). Les formes entière et pourcentage produisent une sortie hex identique après normalisation ; l'outil expose la forme entière canonique dans le champ RGB après re-normalisation.
Alpha vers hex : multiplier par 255, arrondir, encoder comme paire finale
Un RGB portant de l'alpha (`rgb(255 87 51 / 0.5)`) émet du hex à 8 chiffres en multipliant l'alpha par 255, en arrondissant à l'entier le plus proche et en encodant comme 4e paire hex ajoutée après RGB. `0.5 × 255 = 127,5`, arrondi à 128 = `0x80`, sortie `#FF573380`. La spec CSS Color 4 utilise l'arrondi du banquier (round-half-to-even) pour cette conversion, que l'outil suit. La forme à 8 chiffres retombe à 6 chiffres quand alpha vaut exactement 1 pour éviter de laisser fuiter des paires `FF` finales dans les feuilles de style.
Entrée RGB : CSS Color 4 séparé par espaces et virgules héritées tous deux acceptés
Le parseur accepte à la fois la forme moderne CSS Color 4 `rgb(255 87 51)` et la forme CSS 1 héritée `rgb(255, 87, 51)`. La forme moderne s'aligne avec les autres notations fonctionnelles CSS Color 4 (`hsl()`, `lab()`, `oklch()`, `color()`) qui utilisent toutes la séparation par espaces et la barre oblique pour l'alpha. La forme à virgules héritée est toujours prise en charge dans tous les navigateurs evergreen et reste courante dans les bases de code plus anciennes. Les deux produisent une sortie hex identique ; le sérialiseur hex de l'outil ne se soucie pas de la forme d'entrée arrivée.
Source de vérité interne OKLCH pour la stabilité des allers-retours
Bien que cette branche cible spécifiquement RGB → HEX, le convertisseur sous-jacent partagé conserve la couleur canonique en triplet OKLCH en interne. Cela signifie que les allers-retours RGB → HEX → HSL → OKLAB → CMYK → RGB se font sans dérive en virgule flottante par étape ; les convertisseurs hérités qui routent via HSL ou sRGB comme pivot accumulent une erreur d'arrondi à chaque conversion. Le choix d'OKLCH (plutôt qu'OKLAB) préserve la Teinte comme axe stable, donc faire glisser le curseur de teinte ne traverse pas accidentellement le gris. Selon l'article OKLAB de Björn Ottosson de 2020.
Encodage de canal : non signé 8 bits, sRGB gamma-encodé
Chaque canal RGB est un entier non signé 8 bits (0-255), encodé dans l'espace colorimétrique sRGB défini par IEC 61966-2-1 (1996). Les valeurs sont *gamma-encodées* — c'est-à-dire que la relation entre la valeur de canal et la luminosité perçue est non linéaire, suivant la fonction de transfert sRGB par morceaux (à peu près un exposant 2,4 avec un petit segment linéaire près de zéro). Cela importe quand vous faites des mathématiques de couleur : moyenner deux valeurs RGB sous leur forme gamma-encodée donne le mauvais point médian perceptuel. Pour un mélange de couleurs correct, décodez d'abord vers linear-RGB (CSS Color 4 §11.2), puis moyennez, puis ré-encodez. Le modèle interne OKLCH de l'outil rend cela transparent.

Bonnes pratiques pour les flux RGB / HEX

Préférez le hex en majuscules dans les chartes de marque, en minuscules dans le code
Les chartes de marque, les PDF marketing et la documentation orientée designer utilisent typiquement le hex en majuscules (`#FF5733`) pour cohérence visuelle — l'aspect tout en capitales se lit comme un identifiant de marque. Le code (CSS, JSON, source JavaScript) utilise typiquement les minuscules (`#ff5733`) par convention parce que les minuscules sont plus rapides à taper et plus courantes dans la sortie autogénérée des linters. Les deux sont du CSS valide et s'analysent à l'identique ; choisissez-en un pour chaque contexte et restez cohérent. L'outil émet en majuscules par défaut ; un remplacement mécanique bascule en minuscules.
Émettez du hex à 8 chiffres seulement quand alpha < 1
Quand alpha vaut 1 (totalement opaque), retombez à la forme à 6 chiffres. Une paire `FF` finale (`#FF5733FF`) est du CSS légal mais encombre visuellement les feuilles de style et trompe certains parseurs hérités vers un mauvais rendu. La forme à 8 chiffres ne devrait apparaître que quand l'alpha est significativement transparent. Cet outil suit cette règle automatiquement — les couleurs opaques émettent du hex à 6 chiffres, les couleurs portant de l'alpha émettent du hex à 8 chiffres, et la coupure est exacte (alpha = 1,0 émet 6 chiffres ; alpha = 0,9999 émet 8 chiffres pour préserver la donnée).
Ne moyennez pas directement les canaux RGB pour les mathématiques de couleur
Les canaux RGB sont gamma-encodés — moyenner deux valeurs RGB donne le mauvais point médian perceptuel. `(255, 0, 0)` moyenné avec `(0, 255, 0)` produit `(127, 127, 0)`, un olive foncé boueux, pas le point médian jaune visuellement lumineux attendu. Pour un mélange de couleurs correct, décodez d'abord vers linear-RGB (CSS Color 4 §11.2), moyennez, puis ré-encodez. Ou, mieux, travaillez en OKLAB ou OKLCH où la distance perceptuelle est uniforme — c'est exactement ce que font les générateurs de palette de systèmes de design.
Préférez hex pour les variables CSS, RGB pour le matériel
Quand vous rédigez une propriété personnalisée CSS ou un jeton de configuration Tailwind, préférez hex — c'est plus concis et tient proprement dans du JSON ou YAML. Quand le code consommateur fait de l'arithmétique par canal (appels canvas, manipulation d'image, drivers LED matériels, attributs de couleur OpenGL), la forme entière RGB est plus rapide à consommer. Les deux formats décrivent la même couleur ; le choix est purement sur qui lit et écrit, pas sur la correction. La vue à champs simultanés de cet outil rend les deux également bon marché.
Validez la plage alpha avant de multiplier par 255
En implémentant votre propre convertisseur RGB → hex à 8 chiffres, validez que le flottant alpha tombe dans `[0, 1]` avant l'étape `× 255`. Un alpha hors plage (négatif, ou > 1) produit silencieusement des paires hex invalides que certains parseurs acceptent et d'autres rejettent — un mode de défaillance fragile. Bornez d'abord (`Math.max(0, Math.min(1, alpha))`), puis multipliez, puis arrondissez, puis encodez en hex. L'outil expose une discrète erreur en ligne pour un alpha hors plage plutôt que d'émettre une chaîne hex cassée.
Utilisez le hash d'URL pour partager des décisions de couleur en direct
Chaque changement de couleur met à jour le hash d'URL sous la forme `#hex=ff5733` automatiquement. Copiez l'URL dans un fil Slack ou un ticket GitHub et quiconque l'ouvre atterrit sur la même couleur avec le même hex. C'est plus fiable que de coller un tuple RGB dans le chat — les destinataires font parfois des fautes de virgule ou perdent un canal en saisissant manuellement la valeur — et permet à un fil de revue de design de référencer une couleur exacte plutôt que « l'orange dont on a parlé mardi ». Le hash n'est jamais transmis au serveur.

Questions fréquemment posées

Comment convertir RGB en hex ?
Convertissez chaque entier de canal 0-255 en chaîne base 16 à 2 chiffres, puis concaténez avec un `#` initial. En JavaScript : `[255, 87, 51].map(v => v.toString(16).padStart(2, '0')).join('')` renvoie `'ff5733'`. Le `padStart(2, '0')` importe — sans lui, les valeurs à un seul chiffre comme `5` se sérialisent en `'5'` au lieu de `'05'`, produisant un hex invalide. Cet outil effectue la conversion en direct au fil de la saisie — collez n'importe quelle valeur `rgb()` (avec ou sans espaces, à virgules ou en syntaxe moderne séparée par espaces, avec ou sans alpha) et le champ HEX se met à jour instantanément avec la valeur `#RRGGBB` ou `#RRGGBBAA` à 8 chiffres correspondante.
Qu'est-ce que RGB en hex ?
RGB en hex est la même couleur encodée comme une chaîne base 16 de 6 caractères. Les deux formes décrivent une couleur par trois canaux (rouge, vert, bleu) sur l'échelle 0-255, ancrés à l'espace colorimétrique sRGB. `rgb(255 87 51)` et `#FF5733` sont interchangeables partout où un `` est accepté en CSS — ils font un aller-retour sans perte. Hex empaquette la même information dans une forme plus laconique qui tient proprement dans les variables CSS et se copie proprement entre Figma, Sketch, Photoshop et le code ; `rgb()` garde les canaux adressables comme entiers séparés pour les appels canvas et les API matérielles.
Comment obtenir le code hex depuis RGB ?
Prenez chaque valeur de canal (0-255), appelez `toString(16)` pour obtenir sa représentation base 16, remplissez à gauche avec un zéro jusqu'à 2 chiffres, puis concaténez avec un `#` initial. `rgb(255 87 51)` devient : `255 → 'ff'`, `87 → '57'`, `51 → '33'`, résultat `#ff5733`. Mettez en majuscules si votre guide de style l'exige (`#FF5733`) ; les deux formes sont du CSS valide. Pour un RGB portant de l'alpha comme `rgb(255 87 51 / 0.5)`, multipliez l'alpha par 255, arrondissez et ajoutez la paire hex à 2 chiffres résultante : `0.5 × 255 = 128 = 0x80`, résultat `#ff573380`. Cet outil fait les deux transformations automatiquement.
Quelle est la formule pour passer de RGB à hex ?
Pour chaque canal : `value.toString(16).padStart(2, '0')`. Le `toString(16)` convertit l'entier en sa représentation base 16 ; le `padStart(2, '0')` garantit que le résultat fait exactement 2 caractères (nécessaire pour les valeurs sous 16, qui se sérialiseraient sinon en 1 caractère). Concaténez les trois résultats, préfixez `#`, et vous avez le hex canonique. Mathématiquement : pour un canal `n` dans `[0, 255]`, les chiffres hex sont `Math.floor(n / 16)` et `n % 16` mappés via `'0123456789abcdef'`. Il n'y a pas de perte d'arrondi — 16² = 256, ce qui correspond exactement à la plage d'octets 0-255 qu'occupe chaque canal.
rgb(0,0,0) est-il égal à #000000 ?
Oui — exactement. `rgb(0, 0, 0)` et `rgb(0 0 0)` (syntaxe moderne séparée par espaces de CSS Color 4) se sérialisent tous deux en `#000000`, noir pur avec les trois canaux à zéro. Chaque paire de canaux s'encode en `00`, concaténée en un hex à 6 caractères `000000`. La même équivalence tient à l'autre extrême : `rgb(255, 255, 255)` ↔ `#FFFFFF` (blanc pur). Tout triplet RGB possède exactement une représentation hex canonique à 6 chiffres, et tout hex à 6 chiffres possède exactement un triplet RGB — la correspondance est bijective sur tout l'espace sRGB de 16 777 216 couleurs.
RGB peut-il porter un canal alpha ?
Oui — utilisez la forme héritée `rgba()` `rgba(255, 87, 51, 0.5)` ou la syntaxe moderne à barre oblique de CSS Color 4 `rgb(255 87 51 / 0.5)`. Les deux encodent un flottant alpha de 0 (totalement transparent) à 1 (totalement opaque). En convertissant vers hex, l'alpha devient une 4e paire à 2 chiffres ajoutée après RGB : multipliez par 255, arrondissez, encodez en hex. `0.5 × 255 = 128 = 0x80`, donc `rgb(255 87 51 / 0.5)` devient `#FF573380`. Le hex à 8 chiffres avec alpha est arrivé dans tous les navigateurs evergreen en 2018 ; avant cela, la forme `rgba()` était la seule façon d'exprimer l'alpha en CSS.
En quoi hex et RGB diffèrent-ils ?
Ils encodent la même couleur dans une notation différente. Hex empaquette trois canaux 0-255 dans une chaîne base 16 de 6 caractères (`#FF5733`) ; `rgb()` énonce les canaux en décimal (`rgb(255 87 51)`). Hex est plus court et natif des outils de design — Figma, Sketch, Photoshop et chaque PDF de chartes de marque exportent hex par défaut, et la plupart des développeurs front-end peuvent identifier `#3b82f6` comme le Tailwind blue-500 à vue. RGB est à adressage de canal explicite, plus facile à calculer dessus en JavaScript, et la seule forme qui accepte les canaux en pourcentage et l'alpha en syntaxe native. Les deux sont du CSS également valide et font un aller-retour sans perte.
Quelle est la précision de RGB vers hex ?
Exact au bit près. RGB → hex est des mathématiques entier-vers-chaîne sans implication de flottant : `toString(16).padStart(2, '0')` produit la paire hex canonique à 2 chiffres pour chaque valeur dans 0-255, et l'inverse (`parseInt(pair, 16)`) récupère l'entier original exactement. Un aller-retour RGB → HEX → RGB → HEX produit le tuple original verbatim, indéfiniment. 16² = 256, ce qui correspond exactement à la plage d'octets, donc il n'y a pas de perte d'arrondi dans aucune direction. Les entrées RGB en pourcentage s'arrondissent d'abord à l'entier le plus proche (`50% × 255 / 100 = 127,5 → 128`), ce qui est la règle de normalisation standard de CSS Color 4.