Skip to content

Konverter HEX ke RGB

Konversi kode warna HEX apa pun ke RGB di peramban Anda — HEX 3 digit, 6 digit, dan 8 digit dengan alpha semuanya didukung. Gratis, instan, tanpa daftar, warna Anda tidak pernah meninggalkan halaman.

Tanpa Pelacakan Berjalan di Browser Gratis
Semua konversi warna terjadi secara lokal di peramban Anda. Tidak ada data yang dikirim ke server mana pun.
Gamut: sRGB Display P3 Rec2020
Kontras vs:
AA AA-Lg AAA AAA-Lg · APCA Lc
Simulasi buta warna (8 tipe)
Protanopia (buta-merah)
Deuteranopia (buta-hijau)
Tritanopia (buta-biru)
Achromatopsia (total)
Protanomaly (lemah-merah)
Deuteranomaly (lemah-hijau)
Tritanomaly (lemah-biru)
Achromatomaly (parsial)
Tints / Shades / Tones / Harmonies

Tints

Shades

Tones

Harmonies

Salin sebagai kode
Referensi warna umum
Ditinjau untuk kesesuaian CSS Color 4, dukungan bentuk hex 3/4/6/8 digit, kebenaran dekoding pasangan alpha, dan bit-eksaktitas round-trip antara HEX dan RGB di seluruh rentang 0-255. — Tim Engineering Go Tools · May 27, 2026

Apa Itu Konverter HEX ke RGB?

Konverter HEX ke RGB adalah utilitas kecil yang mengubah kode warna hex (`#FF5733`) menjadi tiga nilai integer kanal yang direpresentasikannya (`rgb(255 87 51)`). HEX dan RGB adalah dua format yang menjadi fondasi setiap stylesheet web, alat desain, dan pipeline piksel-gambar sejak akhir 1990-an, dan konversi di antara keduanya adalah operasi paling umum di tooling warna. Hex adalah format copy-paste yang ringkas yang diekspor secara default oleh Figma, Sketch, Photoshop, dan setiap PDF panduan brand — string basis-16 6 karakter yang muat dengan nyaman di properti kustom CSS dan terbaca dalam sekilas begitu mata Anda mempelajari polanya. RGB adalah format yang dialamatkan-kanal yang diharapkan oleh API perangkat keras, panggilan gambar canvas, manipulasi buffer gambar, atribut warna OpenGL, dan sebagian besar SDK grafis — tiga integer terpisah 0-255 (atau float ternormalisasi 0-1) yang memetakan langsung ke subpiksel merah, hijau, dan biru LCD atau fosfor CRT. Mengonversi antara keduanya bersifat mekanis: pecah hex menjadi tiga pasangan 2 digit dan baca setiap pasangan sebagai angka basis-16. Alat ini menjalankan konversi itu secara langsung saat Anda mengetik, tanpa tombol "Konversi" untuk diklik, dan memunculkan setiap format warna umum lainnya (HSL, OKLCH, OKLAB, HSV, HWB, CMYK, ditambah 148 nama warna CSS) berdampingan dengan output RGB secara gratis.

**Format RGB sendiri layak dilihat lebih dekat.** sRGB 24-bit standar mengkodekan setiap kanal sebagai integer unsigned 8-bit dari 0 hingga 255 — 256 nilai per kanal, 16.777.216 warna total (256³). Standar referensi adalah IEC 61966-2-1, spesifikasi sRGB 1996 yang berlabuh pada primer fosfor CRT yang mendominasi layar pada masa itu. CSS mengekspos RGB melalui fungsi `rgb()` dalam tiga rasa sintaksis. Bentuk CSS 1 asli menggunakan pemisah koma: `rgb(255, 87, 51)`. CSS Color 4 (W3C Candidate Recommendation sejak 2022) menambahkan bentuk dipisah-spasi modern: `rgb(255 87 51)`, dengan kanal alpha opsional setelah slash: `rgb(255 87 51 / 0.5)`. Kedua bentuk dapat dipertukarkan dan dirilis di setiap peramban evergreen. RGB juga menerima kanal persentase: `rgb(100% 33% 20%)` setara dengan `rgb(255 87 51)`, kadang lebih disukai di stylesheet yang ditulis tangan untuk keterbacaan. Alpha secara khusus memiliki fungsi `rgba()` terpisah untuk dukungan warisan — `rgba(255, 87, 51, 0.5)` adalah bentuk kanonik yang bekerja di mana-mana hingga IE 9. CSS Color 4 juga menambahkan sintaks `color(srgb 1 0.341 0.2)` untuk pengalamatan sRGB eksplisit, dan fungsi paralel `color(display-p3 ...)` dan `color(rec2020 ...)` untuk nilai gamut luas yang tidak dapat dikodekan hex.

Matematika konversi berjalan kedua arah secara bersih. **HEX ke RGB**: urai hex 6 digit `#RRGGBB` sebagai tiga angka basis-16 2 digit melalui `parseInt(hex.slice(1, 3), 16)`, `parseInt(hex.slice(3, 5), 16)`, `parseInt(hex.slice(5, 7), 16)`. Untuk singkatan 3 digit `#RGB`, kembangkan setiap digit dengan menggandakannya (`#F73` → `#FF7733`) sebelum diurai — ini *bukan* left-pad. Untuk alpha 8 digit `#RRGGBBAA`, urai pasangan akhir dengan cara yang sama dan bagi dengan 255 untuk mendapatkan float alpha 0-1. Untuk singkatan alpha 4 digit `#RGBA`, kembangkan setiap digit terlebih dahulu (`#F738` → `#FF773388`). **RGB ke HEX** adalah inversnya: untuk setiap kanal, panggil `value.toString(16).padStart(2, '0')` untuk mendapatkan pasangan hex 2 digit (`padStart` itu penting — tanpanya, nilai kanal 5 akan diserialisasi sebagai `'5'` alih-alih `'05'`, menghasilkan hex tidak valid), lalu gabungkan. Kedua arah bersifat bit-eksak di kedua arah: 16² = 256, persis cocok dengan rentang byte 0-255 yang ditempati setiap kanal, sehingga round-trip HEX → RGB → HEX menghasilkan input asli secara harfiah tanpa pergeseran float.

**Mengapa hex versus RGB?** Hex lebih pendek, native-alat-desain, dan format yang dipelajari mata Anda seiring waktu — sebagian besar developer front-end dapat mengidentifikasi `#3b82f6` sebagai Tailwind blue-500 dalam sekilas. RGB adalah pengalamatan-kanal eksplisit, lebih mudah untuk dihitung di JavaScript, dan satu-satunya dari keduanya yang menerima alpha dan persentase dengan bersih. Kedua format hidup berdampingan karena mereka memecahkan masalah yang berbeda. Stylesheet web dan panduan brand condong ke hex karena biaya copy-paste mendominasi. Panggilan gambar canvas, pemrosesan gambar, API LED perangkat keras, dan kode apa pun yang melakukan aritmatika per-kanal condong ke RGB karena mengindeks ke dalam tuple mengalahkan memotong string. Pergeseran di antaranya terjadi puluhan kali dalam proyek web tipikal — tempel hex dari Figma, konversi ke integer RGB untuk panggilan `ctx.fillStyle = ...`, konversi kembali ke hex untuk definisi variabel CSS.

Alur kerja HEX → RGB alat ini adalah satu arah dari keluarga 5-spoke yang semuanya berbagi konverter warna terpadu yang mendasarinya. Konverter warna terpadu khusus adalah hub-nya — ia menunjukkan semua 9 format yang dapat diedit secara bersamaan dan merupakan alat yang tepat ketika alur kerja Anda membutuhkan lebih dari sekadar hex dan RGB. Spoke arah-tunggal menargetkan intent pencarian Google tertentu: konverter RGB ke hex kebalikan untuk arah invers, konverter HEX ke HSL untuk ruang kognitif-desainer warisan, konverter HEX ke OKLCH untuk sistem desain seragam-perseptual modern (Tailwind v4 dan shadcn keduanya defaultnya OKLCH sekarang), dan konverter HEX ke CMYK untuk aproksimasi persiapan cetak. Kelima spoke dan hub berbagi mesin parsing yang sama dan matematika konversi yang sama, sehingga hasilnya dijamin identik di seluruh keluarga. Setiap konversi berjalan secara lokal di peramban Anda — kode hex Anda tidak pernah diunggah, tidak pernah dicatat, dan nol permintaan jaringan berjalan saat Anda mengetik. Verifikasi di DevTools.

// Parse any hex shape (3/4/6/8-digit) into an RGB tuple [r, g, b, a]
// All channels in 0-255 range; alpha in 0-1.
function parseHex(input) {
  let h = input.trim().replace(/^#/, '');
  // Expand 3-digit and 4-digit shorthand by duplicating each digit
  if (h.length === 3 || h.length === 4) {
    h = h.split('').map(c => c + c).join('');
  }
  if (!/^[0-9a-fA-F]+$/.test(h) || (h.length !== 6 && h.length !== 8)) {
    throw new Error(`Invalid hex: ${input}`);
  }
  const r = parseInt(h.slice(0, 2), 16);
  const g = parseInt(h.slice(2, 4), 16);
  const b = parseInt(h.slice(4, 6), 16);
  const a = h.length === 8 ? parseInt(h.slice(6, 8), 16) / 255 : 1;
  return [r, g, b, a];
}

console.log(parseHex('#FF5733'));   // [255, 87, 51, 1]
console.log(parseHex('#F73'));       // [255, 119, 51, 1]
console.log(parseHex('#FF573380'));  // [255, 87, 51, 0.5019607843137255]

Fitur Utama

Kelima Bentuk Hex Diurai Secara Identik

3 digit `#F73`, alpha 4 digit `#F738`, 6 digit `#FF5733`, alpha 8 digit `#FF5733CC`, ditambah varian tanpa `#` untuk masing-masing (`F73`, `FF5733`, dst.). Parser menormalkan semuanya menjadi tuple RGB internal yang sama sebelum ditampilkan, sehingga Anda dapat menempelkan bentuk apa pun yang digunakan sumber tanpa memperluas singkatan secara manual terlebih dahulu. Kapitalisasi juga dinormalkan — `#ff5733` dan `#FF5733` menghasilkan output yang identik.

Output RGB dalam Sintaks Dipisah-Spasi Modern

Bidang RGB memunculkan nilai dalam bentuk modern CSS Color 4: `rgb(255 87 51)` untuk warna opak, `rgb(255 87 51 / 0.5)` untuk yang membawa alpha. Kedua bentuk bekerja di setiap peramban evergreen (Chrome 65+, Safari 13+, Firefox 52+). Bentuk koma warisan `rgb(255, 87, 51)` hanya satu replace mekanis jika target Anda membutuhkannya; sintaks modern lebih disukai di kode baru karena selaras dengan sintaks fungsional lainnya CSS Color 4.

Bit-Eksak, Tanpa Pergeseran Float

HEX → RGB adalah matematika integer-ke-integer: `parseInt(hex, 16)` mengembalikan nilai 0-255 yang eksak dengan nol keterlibatan float. Arah sebaliknya (`.toString(16).padStart(2, '0')`) sama eksaknya. Round-trip HEX → RGB → HEX → RGB → HEX menghasilkan input asli secara harfiah, tanpa batas. Source-of-truth internal OKLCH berarti bahkan rantai yang lebih panjang HEX → RGB → HSL → OKLAB → HEX tetap bit-stabil, yang tidak dijamin konverter warisan yang mengalir melalui HSL.

Kanal Alpha Didekodekan dengan Bersih

Hex 8 digit dan 4 digit dengan alpha (`#RRGGBBAA` dan `#RGBA`) diurai dengan benar. Pasangan akhir memetakan ke float alpha 0-1: `00` → 0, `80` → 0,502, `FF` → 1. Output menggunakan sintaks slash CSS Color 4 (`rgb(255 87 51 / 0.5)`) secara default; bentuk warisan `rgba(255, 87, 51, 0.5)` hanya satu replace. Berguna untuk migrasi token desain di mana nilai alpha mungkin telah terkubur di dalam kode hex 8 digit.

Delapan Format Lainnya Terlihat Secara Bersamaan

Hex yang sama yang Anda tempel juga menggerakkan HSL, HSV, HWB, OKLCH, OKLAB, CMYK, dan nama warna CSS terdekat — semuanya terlihat dalam sekilas di halaman yang sama. Anda tidak pernah terkunci hanya pada hex → RGB. Jika rekan tim membutuhkan triple OKLCH untuk token Tailwind v4, nama warna terdekat untuk prosa dokumentasi, atau aproksimasi CMYK untuk penawaran cetak, nilainya sudah ada di sana dengan tombol Salin masing-masing.

Kontras WCAG + APCA Dibangun di Dalam

Lewatkan sebuah hex dan baris kontras langsung menilainya terhadap putih dan hitam menggunakan WCAG 2.1 (lantai regulasi: 4,5:1 untuk teks badan, 7:1 untuk AAA) dan APCA Lc (penerus WCAG 3 yang diusulkan: target `|Lc| ≥ 75` untuk teks badan). Berguna ketika Anda baru saja mengonversi hex brand ke RGB dan ingin memverifikasi bahwa hex itu benar-benar terbaca sebagai warna teks badan sebelum mengirimnya.

Salin sebagai CSS / Tailwind v4 / SwiftUI / Compose / Flutter

Di bawah pemilih, bagian Salin sebagai kode mengubah warna saat ini menjadi snippet siap-tempel untuk lima platform: properti kustom CSS (`--color-brand: rgb(255 87 51)`), token `@theme` Tailwind v4, literal SwiftUI `Color(red:green:blue:)`, konstanta Jetpack Compose `Color(0xFFFF5733)`, Flutter `Color(0xFFFF5733)`. Sintaks yang persis diharapkan setiap platform, siap dijatuhkan ke katalog aset iOS, file tema Android, atau `ThemeData` Flutter.

100% Di-Peramban — Tanpa Unggah, Tanpa Pelacakan

Semua parsing hex, konversi RGB, penilaian kontras, dan generasi palet berjalan secara lokal di peramban Anda. Kode hex Anda tidak pernah ditransmisikan, tidak pernah dicatat di server mana pun, tidak pernah dianalisis. Nol permintaan jaringan saat Anda mengetik — verifikasi di DevTools. Aman untuk palet brand yang belum diumumkan, token desain internal, mockup draf di bawah NDA, dan pekerjaan warna rahasia lainnya.

Hash URL yang Dapat Dibagikan untuk Warna Persis

Warna saat ini dikodekan ke hash URL sebagai `#hex=ff5733` secara otomatis pada setiap perubahan. Salin URL, tempel ke thread Slack atau isu GitHub, dan siapa pun yang membukanya mendarat pada hex yang sama dengan hasil RGB yang sama. Hash hanya hidup di address bar Anda dan tidak pernah ditransmisikan ke server (peramban tidak menyertakan fragmen URL dalam permintaan HTTP), sehingga bahkan membagikan tautan tidak membocorkan warna ke pihak ketiga mana pun.

Alternatif Konverter HEX ke RGB

RapidTables Hex to RGB

alat peramban

Hasil Google default untuk "hex to rgb" — formulir arah-tunggal dengan hex masuk, RGB keluar, tidak ada format lain yang terlihat. Berguna untuk pencarian sekali pakai saat datang dari pencarian. Kekurangan OKLCH, pemeriksaan kontras, deteksi gamut, penanganan alpha, dan tampilan bersamaan multi-format. Alat ini menang di setiap sumbu kecuali kasus konversi-tunggal yang minimalis.

ColorHexa

alat peramban

Halaman SEO per-warna yang berjalan lama dengan metadata mendalam: konversi, palet, harmonies, gradien untuk hex apa pun yang Anda kueri. UI sudah ketinggalan zaman (awal 2010-an), tanpa dukungan OKLCH, tanpa kontras APCA, tanpa penanganan gamut luas. Kuat untuk penemuan SEO hex tertentu melalui Google; lebih lemah untuk alur kerja konversi aktif di mana mengetik ke dalam UX bidang-bersatu lebih cepat.

Kalkulator Hex W3Schools

alat peramban

Toggle HEX/RGB/HSL ramah-pemula di halaman fokus-pengajaran, ada di mana-mana di hasil pencarian. Tanpa OKLCH, tanpa penanganan alpha di luar rgba, tanpa fitur lanjutan. Berguna sebagai referensi di samping konten penjelas W3Schools. Alat ini menang di setiap sumbu lain: lebih banyak format, matematika perseptual, fitur gamut + kontras + CVD, ekspor kode modern untuk Tailwind v4 / SwiftUI / Compose / Flutter.

Pemilih Warna DevTools Peramban

fitur peramban bawaan

DevTools Chrome, Firefox, dan Safari semuanya mengirim pemilih warna yang mengonversi hex ke RGB secara inline ketika Anda mengklik sampel warna di panel CSS. Gratis, tanpa instal, selalu tersedia. Kekurangan OKLCH, kekurangan URL yang dapat dibagikan, kekurangan ekspor kode untuk platform non-web (SwiftUI, Compose). Gunakan DevTools ketika Anda sudah men-debug CSS; gunakan alat ini ketika Anda membutuhkan output lintas-platform.

Digital Color Meter macOS

aplikasi macOS native

Dibundel dengan setiap Mac sejak OS X — hover di atas piksel mana pun dan baca nilai RGB / hex / linear. Sangat baik untuk mengambil sampel warna piksel dari aplikasi mana pun di layar. Tidak mengonversi nilai hex yang ditempel; ini adalah pengambil-sampel-layar, bukan konverter. Gunakan tombol EyeDropper di pemilih alat ini (hanya peramban Chromium) untuk kemampuan pengambilan-sampel-layar yang sama di dalam peramban.

ConvertingColors

alat peramban

Halaman SEO per-warna yang mencakup banyak ruang (HEX, RGB, HSL, HSV, CMYK, XYZ, CIELAB). Kekurangan dukungan OKLCH modern dan UX pengeditan bidang-bersatu. Halaman konten yang dihasilkan otomatis terasa seperti content-farm tetapi data konversinya benar. Bagus untuk menggali metadata warna individu melalui Google; alat ini lebih cepat untuk alur kerja aktif.

Contoh HEX ke RGB

Tempel hex dari tangkapan layar → tuple RGB

#FF5733

Output RGB: `rgb(255 87 51)`. Kasus klasik — seorang desainer menjatuhkan warna brand ke Figma, Anda menangkap layarnya, eyedropper memberi Anda hex, dan sekarang Anda membutuhkan integer kanal untuk panggilan gambar canvas, strip LED perangkat keras, atau matematika piksel terhadap buffer gambar. Sintaks dipisah-spasi CSS Color 4 yang ditampilkan adalah bentuk modern; bentuk koma warisan `rgb(255, 87, 51)` identik dalam makna dan didukung di setiap peramban sejak IE 3.

Konversi hex brand Tailwind ke RGB untuk Photoshop

#3b82f6

Output RGB: `rgb(59 130 246)`. Pemilih Color Adobe (di Photoshop, Illustrator, dan InDesign) menerima integer RGB dalam rentang 0-255 sebagai input native-nya — tempel 59 / 130 / 246 ke tiga kotak kanal dan Anda telah mencocokkan `blue-500` Tailwind dengan persis. Berguna ketika seorang desainer perlu membuat mockup warna web di aplikasi tata letak yang sadar-cetak, atau ketika Anda mengambil sampel warna brand ke pustaka sampel warna untuk pengeditan gambar.

Hex 8 digit dengan alpha → rgba

#FF573380

Output RGB: `rgb(255 87 51 / 0.5)`. Pasangan terakhir (`80`) didekodekan sebagai `128/255 ≈ 0.502`, dimunculkan sebagai kanal alpha melalui sintaks slash CSS Color 4. Bentuk warisan yang setara adalah `rgba(255, 87, 51, 0.5)`, yang masih didukung di mana-mana dan yang diharapkan preprocessor lama. Hex 8 digit dirilis native di semua peramban evergreen pada 2018; sebelum itu, alpha harus diekspresikan melalui fungsi `rgba()`.

Ekspansi hex pendek 3 digit

#F73

Output RGB: `rgb(255 119 51)`. Spesifikasi CSS mendefinisikan hex 3 digit sebagai singkatan di mana setiap digit digandakan untuk membentuk ekuivalen 6 digit: `#F73` berkembang menjadi `#FF7733`, sehingga R = `FF` = 255, G = `77` = 119, B = `33` = 51. Ini *bukan* left-pad — `#F73` **bukan** `#000F73`. Banyak pemula salah memahami ini; perilaku ekspansi alat ini membuat aturan terlihat dalam sekilas.

Konversi HEX → RGB yang Umum

Tabel referensi dari 10 kode hex yang paling banyak dikonversi dan ekuivalen RGB-nya — primer murni, sekunder murni, dan dua warna brand dunia nyata dari palet Tailwind.

Hitam

#000000 rgb(0 0 0)

Hitam murni. Ketiga kanal pada nol — ketiadaan cahaya yang dipancarkan. Triple RGB (0, 0, 0).

#000000 rgb(0 0 0)

Hitam murni di layar jarang merupakan pilihan desain yang tepat — coba `#111` atau OKLCH lightness 0,1-0,15 untuk teks badan yang lebih lembut.

Butuh OKLCH sebagai gantinya? Coba konverter HEX ke OKLCH khusus untuk output yang seragam-perseptual.

Putih

#FFFFFF rgb(255 255 255)

Putih murni. Ketiga kanal pada nilai maksimumnya (255). Warna paling cerah di sRGB.

#FFFFFF rgb(255 255 255)

Latar belakang putih murni dapat menyebabkan ketegangan mata di lingkungan gelap — pertimbangkan `#fafafa` atau OKLCH 0,98 untuk alternatif yang lebih hangat.

Butuh OKLCH sebagai gantinya? Coba konverter HEX ke OKLCH khusus untuk output yang seragam-perseptual.

Merah

#FF0000 rgb(255 0 0)

Merah murni. Kanal R pada maksimum, G dan B pada nol. Yang pertama dari tiga primer sRGB.

#FF0000 rgb(255 0 0)

Merah murni sangat jenuh dan jarang cocok dengan palet brand — sebagian besar warna brand "merah" duduk lebih dekat ke #DC2626 atau #E53935.

Butuh OKLCH sebagai gantinya? Coba konverter HEX ke OKLCH khusus untuk output yang seragam-perseptual.

Hijau

#00FF00 rgb(0 255 0)

Hijau murni. Kanal G pada maksimum, R dan B pada nol. Nama warna CSS `lime` (bukan `green`, yang #008000).

#00FF00 rgb(0 255 0)

Kata kunci CSS `green` resolusi ke #008000 (setengah-terang), bukan #00FF00 — sumber kebingungan yang sering. Gunakan `lime` untuk hijau RGB murni.

Butuh OKLCH sebagai gantinya? Coba konverter HEX ke OKLCH khusus untuk output yang seragam-perseptual.

Biru

#0000FF rgb(0 0 255)

Biru murni. Kanal B pada maksimum, R dan G pada nol. Primer sRGB ketiga.

#0000FF rgb(0 0 255)

Biru murni di latar putih gagal kontras WCAG AA (3,7:1) — pertimbangkan biru brand yang lebih gelap seperti #1D4ED8 (Tailwind blue-700) untuk teks badan.

Butuh OKLCH sebagai gantinya? Coba konverter HEX ke OKLCH khusus untuk output yang seragam-perseptual.

Cyan

#00FFFF rgb(0 255 255)

Cyan — hijau dan biru pada maksimum, merah pada nol. Salah satu dari tiga sekunder sRGB. Nama warna CSS `cyan` (atau setara `aqua`).

#00FFFF rgb(0 255 255)

Cyan dan aqua adalah sinonim persis di CSS — keduanya resolusi ke #00FFFF. Pilih satu dan tetap konsisten di stylesheet Anda.

Butuh OKLCH sebagai gantinya? Coba konverter HEX ke OKLCH khusus untuk output yang seragam-perseptual.

Magenta

#FF00FF rgb(255 0 255)

Magenta — merah dan biru pada maksimum, hijau pada nol. Nama warna CSS `magenta` (atau setara `fuchsia`).

#FF00FF rgb(255 0 255)

Magenta dan fuchsia adalah sinonim persis di CSS — keduanya resolusi ke #FF00FF. Umum di pola tes dan overlay alat developer.

Butuh OKLCH sebagai gantinya? Coba konverter HEX ke OKLCH khusus untuk output yang seragam-perseptual.

Kuning

#FFFF00 rgb(255 255 0)

Kuning — merah dan hijau pada maksimum, biru pada nol. Yang paling cerah dari tiga sekunder sRGB berdasarkan luminansi yang dipersepsikan.

#FFFF00 rgb(255 255 0)

Kuning adalah warna non-putih dengan luminansi tertinggi di layar — teks kuning pada latar putih hampir tidak terlihat, meskipun hex terlihat baik-baik saja di atas kertas.

Butuh OKLCH sebagai gantinya? Coba konverter HEX ke OKLCH khusus untuk output yang seragam-perseptual.

Tailwind blue-500

#3b82f6 rgb(59 130 246)

Warna brand blue-500 default Tailwind CSS — "web blue" kanonik pertengahan-2020-an. Digunakan di dasbor, situs pemasaran, dan alat admin yang tak terhitung jumlahnya.

#3b82f6 rgb(59 130 246)

Tailwind v4 mendefinisikan ulang blue-500 di OKLCH (`oklch(0.629 0.193 263.4)`) untuk ramp yang seragam-perseptual — hex tetap sama sebagai fallback.

Butuh OKLCH sebagai gantinya? Coba konverter HEX ke OKLCH khusus untuk output yang seragam-perseptual.

Tailwind rose-500

#f43f5e rgb(244 63 94)

rose-500 default Tailwind CSS — merah-muda saturasi-tinggi yang umum digunakan untuk tombol aksen, status peringatan, dan kontras brand.

#f43f5e rgb(244 63 94)

Rose-500 lulus WCAG AA (4,6:1) terhadap putih untuk teks besar tetapi gagal untuk teks badan — pasangkan dengan rose-600 (#e11d48) atau lebih gelap untuk salinan badan di atas putih.

Butuh OKLCH sebagai gantinya? Coba konverter HEX ke OKLCH khusus untuk output yang seragam-perseptual.

Cara Menggunakan Konverter HEX ke RGB

  1. 1

    Tempel kode hex ke bidang HEX

    Jatuhkan nilai hex apa pun ke input HEX — dengan atau tanpa `#` di depan, dalam singkatan 3 digit (`#F73`), bentuk lengkap 6 digit (`#FF5733`), singkatan alpha 4 digit (`#F738`), atau bentuk lengkap alpha 8 digit (`#FF5733CC`). Alat menormalkan kelima bentuk input ke warna kanonik yang sama secara internal. Kapitalisasi tidak penting (`#ff5733` dan `#FF5733` diurai secara identik). Karakter tidak valid atau jumlah digit salah menghasilkan error inline yang tenang; hex yang valid memperbarui setiap bidang format lainnya secara waktu nyata.

  2. 2

    Baca tuple RGB dari bidang RGB

    Bidang RGB di bawah bidang HEX menunjukkan nilai `rgb()` yang cocok dalam sintaks dipisah-spasi modern CSS Color 4: `rgb(255 87 51)` untuk warna opak, `rgb(255 87 51 / 0.5)` untuk yang membawa alpha. Setiap kanal adalah integer 0-255; alpha dinormalkan ke 0-1. Nilai-nilai bersifat bit-eksak — `parseInt('FF', 16)` mengembalikan 255, tanpa aritmatika float yang terlibat, sehingga round-trip kembali ke hex menghasilkan input asli secara harfiah.

  3. 3

    Klik Salin untuk mengambil string RGB

    Setiap kartu format memiliki tombol Salin di sebelah kanan. Satu klik dan nilai mendarat di clipboard Anda — label tombol sebentar berkedip "Disalin!" sehingga Anda tahu. String yang disalin adalah sintaks kanonik CSS Color 4 (`rgb(255 87 51)`); jika target Anda membutuhkan bentuk koma warisan, konversinya bersifat mekanis (ganti spasi dengan `, `). Untuk output spesifik-platform (SwiftUI, Compose, Flutter, Tailwind v4), gunakan bagian Salin sebagai kode di bawah pemilih.

  4. 4

    Juga terlihat: HSL, OKLCH, OKLAB, CMYK, nama warna

    Hex yang sama yang Anda tempel juga menyalakan bidang format lainnya — HSL untuk CSS warisan, OKLCH dan OKLAB untuk sistem desain yang seragam-perseptual, HSV dan HWB untuk alur kerja pemilih warna desainer, CMYK untuk estimasi cetak, dan nama warna CSS terdekat untuk dokumentasi dan prosa. Anda tidak pernah terkunci hanya pada hex → RGB; jika Anda juga membutuhkan triple OKLCH untuk dijatuhkan ke blok `@theme` Tailwind v4, itu sudah ada di bidang OKLCH dengan tombol Salin-nya sendiri.

  5. 5

    Gunakan pemilih untuk tweak visual

    Di bawah grid format adalah kotak SL + slider rona + slider alpha untuk eksplorasi visual. Seret kontrol mana pun dan setiap bidang teks diperbarui secara waktu nyata, termasuk HEX dan RGB yang Anda mulai. Pada peramban berbasis Chromium (Chrome, Edge, Brave), tombol EyeDropper mengaktifkan `EyeDropper` API native untuk mengambil sampel piksel mana pun di layar, termasuk di luar jendela peramban — berguna ketika Anda ingin menangkap hex dari UI aplikasi lain tanpa tangkapan layar terlebih dahulu.

Kesalahan HEX / RGB yang Umum

Memperlakukan Hex 3 Digit sebagai Left-Padded

Singkatan 3 digit `#RGB` berkembang dengan *menggandakan setiap digit*, bukan dengan left-padding dengan nol. `#F73` menjadi `#FF7733` (oranye terang), bukan `#000F73` (biru gelap). Ini adalah pojok sintaks warna CSS tunggal yang paling sering disalahpahami; pemula sering berasumsi singkatannya adalah semacam zero-pad dan berakhir dengan warna yang sangat salah. Aturan yang sama berlaku untuk singkatan alpha 4 digit `#RGBA` — setiap digit digandakan untuk membentuk ekuivalen 8 digit.

✗ Salah
Asumsi #F73 left-pads menjadi #000F73:
diharapkan: biru gelap rgb(0, 15, 115)
sebenarnya:  oranye terang rgb(255, 119, 51)
✓ Benar
Singkatan 3 digit menggandakan setiap digit:
#F73 → #FF7733 → rgb(255, 119, 51)
Diverifikasi oleh ekspansi langsung alat saat Anda mengetik.

Lupa padStart Saat Menserialisasi RGB ke Hex

Mengonversi RGB kembali ke hex memerlukan `toString(16)` setiap kanal di-left-pad menjadi 2 digit. Tanpa `padStart(2, '0')`, nilai kanal satu-digit menghasilkan hex tidak valid: `rgb(5, 87, 51)` akan diserialisasi sebagai `#55733` (5 karakter) alih-alih `#055733` (6 karakter). Banyak konverter ad-hoc melewatkan pad dan menghasilkan output rusak untuk kanal apa pun di bawah 16. Idiom standar adalah `value.toString(16).padStart(2, '0')` untuk masing-masing R, G, B.

✗ Salah
Lewati padStart:
[5, 87, 51].map(v => v.toString(16)).join('') → '55733'
Menghasilkan hex 5-karakter yang tidak valid.
✓ Benar
Gunakan padStart(2, '0'):
[5, 87, 51].map(v => v.toString(16).padStart(2, '0')).join('') → '055733'
Hex 6-karakter yang valid; bekerja dengan benar untuk semua nilai kanal 0-255.

Membingungkan Urutan Alpha Hex 8 Digit

Hex CSS 8 digit adalah `#RRGGBBAA` — alpha adalah pasangan *terakhir*. Beberapa pustaka warna (terutama `Color.parseColor()` Android lama) menggunakan urutan terbalik `#AARRGGBB` dengan alpha sebagai pasangan *pertama*, yang tidak kompatibel dengan hex CSS. Hex web `#FF573380` (oranye pada alpha 50%) diinterpretasikan sebagai `#AARRGGBB` menjadi alpha=255, R=87, G=51, B=128 — cyan gelap pada opasitas penuh. Selalu verifikasi urutan alpha platform target sebelum melakukan round-trip hex 8 digit.

✗ Salah
Tempel hex CSS 8 digit ke Android Color.parseColor() warisan:
#FF573380 diinterpretasikan sebagai #AARRGGBB
→ warna salah dan alpha sepenuhnya salah.
✓ Benar
Gunakan format yang didokumentasikan platform target:
untuk Android Compose: Color(0xFFFF5733) dengan alpha sebagai byte pertama
untuk CSS: #FF573380 dengan alpha sebagai byte terakhir
Jangan cross-paste antara keduanya tanpa menyusun ulang.

Merata-Ratakan Kanal RGB Secara Langsung untuk Blending

Kanal RGB bersifat gamma-encoded, bukan linear. Merata-ratakan dua nilai RGB memberikan titik-tengah yang salah secara perseptual. `(255, 0, 0)` dirata-ratakan dengan `(0, 255, 0)` menghasilkan `(127, 127, 0)`, zaitun gelap yang berlumpur, bukan titik-tengah kuning terang yang Anda harapkan dari pencampuran cahaya merah dan hijau. Untuk blending yang benar, dekode ke linear-RGB terlebih dahulu melalui fungsi transfer sRGB (CSS Color 4 §11.2), rata-rata di ruang linear, lalu enkode-ulang. Atau bekerja di OKLAB / OKLCH di mana jarak perseptual seragam.

✗ Salah
Rata-ratakan RGB gamma-encoded secara langsung:
(rgb(255,0,0) + rgb(0,255,0)) / 2 = rgb(128, 128, 0)
Terlihat seperti zaitun gelap, bukan kuning terang.
✓ Benar
Rata-ratakan di linear-RGB:
dekode → linear-RGB → rata-rata → enkode-ulang → rgb(188, 188, 0)
Kuning terang yang terlihat, cocok dengan apa yang dihasilkan pencampuran cahaya fisik.

Siapa yang Menggunakan HEX ke RGB

Developer Frontend Mengonversi Hex Figma ke Panggilan RGB Canvas
Figma mengekspor hex, tetapi `CanvasRenderingContext2D.fillStyle` menerima baik hex maupun `rgb()` — dan ketika Anda melakukan aritmatika per-kanal (gradien, blending, manipulasi gambar), memiliki integer kanal secara langsung lebih cepat daripada mengurai ulang hex setiap kali. Tempel hex sekali, salin tuple `rgb(255 87 51)`, colokkan ke panggilan canvas. Tidak ada kode parsing-hex yang diperlukan di sisi Anda.
Desainer Menerjemahkan Hex Web ke RGB Photoshop / Illustrator
Pemilih Color Adobe mengambil integer 0-255 di tiga kotak kanal sebagai input native-nya. Tempel hex web ke alat ini, baca integer R / G / B, ketik ke Photoshop. Mencocokkan warna web asli dengan persis tanpa jalan memutar tangkapan-layar-dan-eyedropper. Berguna ketika seorang desainer perlu membuat mockup warna web di aplikasi tata letak Adobe yang sadar-cetak.
Game Dev Memuat Hex Brand ke API RGB Unity / Unreal
`Color` Unity dan `FLinearColor` Unreal keduanya mengambil float ternormalisasi 0-1. Tempel hex brand, baca integer 0-255, bagi dengan 255 (atau gunakan output float ternormalisasi alat melalui Salin sebagai kode). Konversinya bersifat mekanis tetapi rawan kesalahan ketika dilakukan secara manual — mengetik `(255, 87, 51)` ke konstruktor yang mengharapkan `(1.0, 0.341, 0.2)` menghasilkan warna putih-terpotong dan tweet yang bingung. Alat ini memunculkan kedua bentuk.
Hardware Dev Memprogram Strip LED yang Dapat Dialamatkan
WS2812, APA102, dan strip LED RGB yang dapat dialamatkan lainnya mengambil kanal integer 0-255 per LED. Tempel hex brand untuk tampilan produk yang dipasang di dinding, baca triple RGB, jatuhkan ke array warna pengontrol. Berguna ketika tim pemasaran menentukan hex dan insinyur firmware membutuhkan nilai kanal untuk panggilan `pixels.setPixelColor(i, r, g, b)`.
Insinyur Aksesibilitas Mengaudit Keterbacaan Warna Brand
Pemeriksaan kontras WCAG 2.1 mengambil input RGB secara internal. Tempel hex brand, dapatkan RGB yang cocok ditambah rasio WCAG terhadap putih dan hitam ditambah skor APCA Lc dalam satu layar. Jika warna brand gagal pada lantai teks-badan 4,5:1, bidang OKLCH seragam-perseptual di sebelahnya memudahkan untuk menaikkan L hingga kontras lulus tanpa kehilangan identitas brand.
Desainer Menyematkan Template Email dengan RGB Inline
Beberapa klien email (Outlook di Windows, Gmail mobile lama) mengurai hex secara tidak konsisten di atribut HTML — `` mungkin di-render sebagai hitam di platform tertentu. Fallback yang andal adalah bentuk RGB `rgb(255, 87, 51)` yang setara inline. Tempel hex brand, salin string RGB dalam sintaks koma warisan (replace manual dari bentuk spasi modern), jatuhkan ke atribut `style` template email.
Developer Mendokumentasikan Token Brand dengan Kedua Format
Dokumentasi token desain sering menunjukkan warna yang sama dalam kedua format: hex untuk blok kode CSS, RGB untuk anotasi prosa ("merah brand adalah `#FF5733`, setara dengan RGB 255 / 87 / 51"). Memiliki keduanya terlihat berdampingan memungkinkan penulis dokumen menyalin masing-masing dalam satu kali jalan alih-alih menjalankan dua alat. Hash URL yang dapat dibagikan juga memungkinkan pembaca mengklik melalui ke warna persis yang sedang dibahas.
Insinyur QA Memverifikasi Snapshot Warna Piksel
Tes regresi visual sering menegaskan nilai RGB spesifik terhadap piksel yang di-render (`expect(pixel.r).toBe(255)`). Ketika spesifikasi diberikan sebagai hex ("tombol harus di-render sebagai `#FF5733`"), insinyur QA membutuhkan integer RGB yang cocok untuk menulis pernyataan. Tempel hex, baca R / G / B, colokkan ke tes. Bit-eksaktitas konversi berarti tes tidak akan flake pada perbedaan pergeseran float.

Matematika & Parsing HEX ke RGB

parseInt(hex, 16) Adalah Implementasi Satu-Baris
Seluruh konversi hex-ke-RGB muat dalam satu ekspresi per kanal: `parseInt(hex.slice(1, 3), 16)` untuk R, `parseInt(hex.slice(3, 5), 16)` untuk G, `parseInt(hex.slice(5, 7), 16)` untuk B. `parseInt` JavaScript dengan radix 16 membaca string hex ke integer desimal dalam rentang 0-255 tanpa keterlibatan float. Arah sebaliknya (`value.toString(16).padStart(2, '0')`) sama-satu-barisnya — `padStart(2, '0')` adalah detail yang mudah dilupakan yang menangkap nilai kanal satu-digit seperti 5 → `'05'` alih-alih `'5'`.
Ekspansi Singkatan: Penggandaan-Digit, Bukan Left-Pad
Spesifikasi CSS mendefinisikan singkatan 3 digit sebagai `#RGB` berkembang menjadi `#RRGGBB` dengan menggandakan setiap digit. `#F73` → `#FF7733`, *bukan* `#000F73`. Aturan yang sama berlaku untuk singkatan alpha 4 digit `#RGBA` → `#RRGGBBAA`. Ini adalah salah satu pojok sintaks warna CSS yang paling sering salah dipahami — pemula sering berasumsi `#F73` left-pad menjadi `#000F73`, yang akan menghasilkan warna yang sama sekali berbeda (biru gelap yang tidak jenuh alih-alih oranye terang yang dimaksud). Perilaku ekspansi alat membuat aturan terlihat dalam sekilas.
Alpha 8 Digit: Pasangan Akhir, Dibagi dengan 255
Hex 8 digit `#RRGGBBAA` mengkodekan alpha sebagai pasangan hex 2 digit setelah triple RGB, diurai secara identik dan kemudian dibagi dengan 255 untuk menghasilkan float 0-1. `#FF573380` mengurai menjadi alpha = `0x80 / 255 = 128 / 255 = 0.5019607843137255`. Spesifikasi CSS Color 4 menggunakan presisi 4 tempat desimal untuk output (`/ 0.502`); alat mengikuti konvensi yang sama. Hex 8 digit dirilis di semua peramban evergreen pada 2018 (Chrome 62, Firefox 49, Safari 9.1, Edge 79). Fallback pra-2018 adalah `rgba()`.
Output RGB: Dipisah-Spasi CSS Color 4 secara Default
Alat memancarkan `rgb(255 87 51)` (dipisah-spasi modern) secara default alih-alih `rgb(255, 87, 51)` (dipisah-koma CSS 1) warisan. Kedua bentuk valid dan dapat dipertukarkan di setiap peramban evergreen sejak 2018. Sintaks modern selaras dengan notasi fungsional CSS Color 4 lainnya (`hsl()`, `lab()`, `oklch()`, `color()`) yang semuanya menggunakan pemisahan spasi dan slash-untuk-alpha. Bentuk koma warisan hanya satu replace mekanis jika toolchain Anda memerlukannya; rgba() masih merupakan fallback yang tepat untuk konteks IE 9-11.
Source-of-Truth Internal OKLCH untuk Stabilitas Round-Trip
Meskipun spoke ini menargetkan HEX → RGB secara spesifik, konverter yang mendasari yang dibagikan menahan warna kanonik sebagai triple OKLCH secara internal. Ini berarti round-trip HEX → RGB → HSL → OKLAB → CMYK → HEX tanpa pergeseran float per-langkah; konverter warisan yang mengalir melalui HSL atau sRGB sebagai pivotnya mengakumulasi error pembulatan di setiap konversi. Pilihan OKLCH (dibandingkan OKLAB) mempertahankan Hue sebagai sumbu yang stabil sehingga menyeret slider rona tidak secara tidak sengaja melintasi-fade melalui abu-abu. Per makalah OKLAB 2020 Björn Ottosson.
Pengkodean Kanal: Unsigned 8-Bit, Gamma-Encoded sRGB
Setiap kanal RGB adalah integer unsigned 8-bit (0-255), dikodekan di ruang warna sRGB yang didefinisikan oleh IEC 61966-2-1 (1996). Nilai-nilai bersifat *gamma-encoded* — artinya hubungan antara nilai kanal dan kecerahan yang dipersepsikan tidak linear, mengikuti fungsi transfer sRGB piecewise (kira-kira eksponen 2,4 dengan segmen linear kecil di dekat nol). Ini penting ketika Anda melakukan matematika warna: merata-ratakan dua nilai RGB dalam bentuk gamma-encoded memberikan titik-tengah perseptual yang salah. Untuk blending warna yang benar, dekode ke linear-RGB terlebih dahulu (CSS Color 4 §11.2), lalu rata-rata, lalu enkode-ulang. Model OKLCH internal alat membuatnya transparan.

Praktik Terbaik untuk Alur Kerja HEX / RGB

Gunakan Sintaks RGB Dipisah-Spasi Modern di Kode Baru
`rgb(255 87 51)` (dipisah-spasi) dan `rgb(255 87 51 / 0.5)` (slash untuk alpha) CSS Color 4 adalah sintaks kanonik untuk kode yang dikirim pada 2025 dan ke depan. Bentuk koma warisan `rgb(255, 87, 51)` dan `rgba(255, 87, 51, 0.5)` masih didukung di mana-mana tetapi sudah ditinggalkan secara stilistis di CSS Color 4. Gunakan sintaks modern di stylesheet baru; pertahankan `rgba()` hanya untuk konteks fallback IE 9-11 di mana Anda benar-benar membutuhkan dukungan warisan.
Verifikasi Dukungan Hex 8 Digit Sebelum Mengirim Kode yang Membawa Alpha
Hex 8 digit dengan alpha (`#FF573380`) dirilis di semua peramban evergreen pada 2018, tetapi preprocessor CSS warisan dan beberapa alat desain lama diam-diam memotong pasangan alpha menjadi hex 6 digit. Hasilnya: warna yang Anda harapkan 50% transparan di-render sepenuhnya opak. Sebelum mengirim hex 8 digit ke produksi, verifikasi parser target menanganinya; untuk target warisan, kembali ke sintaks eksplisit `rgba(255, 87, 51, 0.5)` yang telah didukung sejak IE 9.
Jangan Rata-Ratakan Kanal RGB Secara Langsung untuk Matematika Warna
Kanal RGB bersifat gamma-encoded — merata-ratakan dua nilai RGB memberikan titik-tengah perseptual yang salah. `(255, 0, 0)` dirata-ratakan dengan `(0, 255, 0)` menghasilkan `(127, 127, 0)`, zaitun gelap yang berlumpur, bukan titik-tengah kuning yang cerah secara visual yang Anda harapkan. Untuk blending warna yang benar, dekode ke linear-RGB terlebih dahulu (CSS Color 4 §11.2), rata-rata, enkode-ulang. Atau, lebih baik, bekerja di OKLAB atau OKLCH di mana jarak perseptual seragam — itulah yang dilakukan generator palet sistem desain.
Pilih Hex untuk Sumber Token Desain, RGB untuk Perangkat Keras
Ketika Anda menulis spesifikasi token desain, pilih hex (atau OKLCH) sebagai bentuk kanonik — keduanya lebih ringkas dan muat dengan bersih di JSON atau YAML. Ketika kode konsumsi melakukan aritmatika per-kanal (panggilan canvas, manipulasi gambar, driver LED perangkat keras, atribut warna OpenGL), bentuk integer RGB lebih cepat dikonsumsi. Kedua format menggambarkan warna yang sama; pilihannya murni tentang siapa yang membaca dan menulis, bukan tentang kebenaran. Tampilan bidang-bersamaan alat ini membuat keduanya sama-sama murah.
Dokumentasikan Alpha Secara Eksplisit di Nama Token
Ketika token desain menyertakan alpha (misalnya, overlay opasitas 50%), jangan kubur alpha di hex 8 digit seperti `#000000CC` — pecah token menjadi `--color-overlay-base: #000000` dan `--color-overlay-alpha: 0.8`, atau gunakan bentuk RGBA eksplisit. Mengubur alpha di hex membuat token tidak terbaca bagi siapa pun yang memindai file dan membuat tweak alpha per-token tidak mungkin tanpa mengurai ulang hex terlebih dahulu. Kejelasan sistem token mengalahkan keringkasan ketika biayanya hanya satu variabel ekstra.
Gunakan Hash URL untuk Berbagi Keputusan Warna Langsung
Setiap perubahan warna memperbarui hash URL sebagai `#hex=ff5733` secara otomatis. Salin URL ke thread Slack atau isu GitHub dan siapa pun yang membukanya mendarat pada warna yang sama dengan tuple RGB yang sama. Ini lebih andal daripada menempelkan string hex di chat — penerima kadang salah ketik karakter saat memasukkan nilai secara manual — dan memungkinkan thread review desain mereferensikan warna yang persis alih-alih "oranye yang kita bahas Selasa." Hash tidak pernah ditransmisikan ke server.

Pertanyaan yang Sering Diajukan

Bagaimana cara mengonversi kode hex ke RGB?
Pecah hex 6 digit menjadi tiga pasangan 2 digit dan baca setiap pasangan sebagai angka basis-16 dari 0-255. `#FF5733` menjadi R=`FF`=255, G=`57`=87, B=`33`=51, menghasilkan `rgb(255 87 51)`. Singkatan 3 digit `#F73` berkembang dengan menggandakan setiap digit menjadi `#FF7733` sebelum dipecah. Alat ini melakukan konversi secara langsung saat Anda mengetik — tempel hex apa pun (dengan atau tanpa `#`, 3 digit, 6 digit, 4 digit, atau 8 digit dengan alpha) dan bidang RGB diperbarui secara instan dengan nilai `rgb()` yang cocok.
Apakah hex sama dengan RGB?
Keduanya mengkodekan informasi yang sama dalam notasi yang berbeda. Keduanya menggambarkan warna sebagai tiga kanal (merah, hijau, biru) pada skala 0-255, berlabuh di ruang warna sRGB. Hex mengemas tiga kanal ke dalam string basis-16 6 karakter (`#FF5733`); fungsi `rgb()` mengejanya dalam desimal (`rgb(255 87 51)`). Keduanya round-trip tanpa kehilangan informasi — warna yang sama berjalan hex → RGB → hex tanpa pergeseran. Hex lebih pendek untuk variabel CSS; `rgb()` mendukung kanal alpha melalui `rgba()` dan sintaks persentase CSS Color 4.
Bagaimana cara membaca kode warna hex?
Warna hex memiliki 6 digit heksadesimal setelah `#`, dikelompokkan sebagai **RR GG BB**. Setiap pasangan mengkodekan satu kanal dari `00` (nihil, 0 dalam desimal) hingga `FF` (penuh, 255 dalam desimal). `#FF0000` adalah merah murni, `#00FF00` adalah hijau murni, `#0000FF` adalah biru murni. Hex 8 digit (`#FF5733CC`) menambahkan pasangan alpha di akhir — `CC` = 204/255 ≈ 80% opasitas. Singkatan 3 digit `#F73` memperluas setiap digit dengan menggandakannya: `#F73` identik dengan `#FF7733`.
Apa rumus hex ke RGB?
Untuk setiap pasangan hex 2 digit, kalikan digit pertama dengan 16 dan tambahkan digit kedua: `FF` = 15×16 + 15 = 255, `57` = 5×16 + 7 = 87, `33` = 3×16 + 3 = 51. Di JavaScript: `parseInt('FF', 16)` mengembalikan 255 secara langsung. Di CSS arah sebaliknya sudah dibangun ke dalam parser — `rgb(255 87 51)` dan `#FF5733` dapat dipertukarkan di mana pun `` diterima. Tidak ada kehilangan pembulatan di kedua arah: 16² = 256, persis cocok dengan rentang byte 0-255 yang ditempati setiap kanal.
Mengapa menggunakan hex alih-alih RGB?
Tiga alasan: lebih pendek (`#FF5733` vs `rgb(255, 87, 51)`), itu adalah format ekspor default dari setiap alat desain (Figma, Sketch, Photoshop), dan itu adalah format yang dipelajari developer front-end untuk dikenali dalam sekilas — sebagian besar dapat mengidentifikasi `#3b82f6` sebagai Tailwind blue-500 tanpa mencarinya. Gunakan `rgb()` (atau sintaks dipisah-spasi modern `rgb(R G B / A)` dari CSS Color 4) ketika Anda membutuhkan transparansi alpha, ketika Anda menghitung warna dari nilai kanal JavaScript, atau ketika sintaks persentase eksplisit meningkatkan keterbacaan di stylesheet.
Bisakah kode hex memiliki alpha?
Bisa — gunakan hex 8 digit (`#RRGGBBAA`) atau singkatan 4 digit (`#RGBA`). Pasangan alpha mengikuti skala 0-`FF` yang sama: `#FF573300` sepenuhnya transparan, `#FF5733FF` sepenuhnya opak, `#FF573380` sekitar 50%. Hex CSS 4 digit dan 8 digit dengan alpha dirilis native di semua peramban evergreen pada 2018 (Chrome 62, Firefox 49, Safari 9.1, Edge 79). Untuk parser lama dan preprocessor CSS warisan yang diam-diam memotong pasangan alpha, kembali ke `rgba(255, 87, 51, 0.5)`, yang telah didukung sejak IE 9.
Berapa banyak warna yang dapat direpresentasikan hex?
Hex 6 digit merepresentasikan tepat **16.777.216** warna — 256 nilai per kanal dipangkatkan tiga (256³). Dengan hex 8 digit termasuk alpha, ruang yang dapat dialamatkan adalah 256⁴ ≈ 4,3 miliar, tetapi konten warna tetap 16,7 juta; dimensi tambahan adalah opasitas. Mata manusia dapat membedakan sekitar 10 juta warna, sehingga sRGB 24-bit telah dipasarkan sebagai "truecolor" sejak 1990-an. Layar gamut luas modern (Display P3, Rec2020) mencakup lebih banyak dari spektrum yang terlihat, tetapi hex sendiri terikat sRGB — gunakan OKLCH atau `color(display-p3 ...)` untuk nilai gamut luas.
Bagaimana cara mengonversi RGB ke hex?
Balikkan rumusnya: tanpa pembagian, cukup konversi setiap integer kanal ke representasi basis-16 2 digit-nya dan gabungkan. Di JavaScript: `[255, 87, 51].map(v => v.toString(16).padStart(2, '0')).join('')` mengembalikan `'ff5733'`, lalu tambahkan `#` di depan. `padStart(2, '0')` itu penting — tanpanya, nilai satu-digit seperti `5` akan diserialisasi hanya sebagai `'5'` alih-alih `'05'`, menghasilkan hex yang tidak valid. Untuk arah sebaliknya di keluarga alat ini, gunakan konverter RGB ke hex khusus.