Color Converter

Konversi warna antara format HEX, RGB, HSL dan HSV dengan pemilih warna visual

Coba contoh

Klik kotak warna untuk membuka pemilih warna

Atau edit nilai apa pun di bawah ini

HEX
RGB
HSL
HSV

Apa Itu Konversi Warna?

Color converter menerjemahkan nilai warna dari satu notasi ke notasi lain โ€” misalnya, dari triplet HEX (#6366F1) ke tuple RGB (99, 102, 241) atau triple HSL (239, 84%, 67%). Warna yang sama juga dapat dinyatakan sebagai triple HSV (239, 59%, 95%). Setiap format mengkodekan warna visual yang sama menggunakan model matematika yang berbeda; berbagai alat, bahasa pemrograman, dan API mengharapkan format yang berbeda tergantung pada konteksnya.

HEX dan RGB keduanya mendeskripsikan warna sebagai campuran cahaya merah, hijau, dan biru. HEX adalah representasi heksadesimal yang ringkas dari tiga nilai kanal 0-255 yang sama yang ditulis RGB dalam desimal. HSL (Hue, Saturation, Lightness) dan HSV (Hue, Saturation, Value) mengatur ulang informasi yang sama ke dalam sistem koordinat silindris di mana hue adalah sudut pada roda warna (0-360 derajat), dan saturation serta lightness atau brightness dinyatakan dalam persentase. Hal ini membuat HSL dan HSV lebih intuitif untuk tugas seperti membuat warna yang lebih terang atau lebih gelap dari hue yang sama.

Konversi antara format-format ini memerlukan matematika yang terdefinisi dengan baik. Spesifikasi W3C CSS Color Module Level 4 mendokumentasikan algoritma yang digunakan browser untuk mengurai warna CSS apa pun menjadi triplet sRGB. Rumusnya bersifat deterministik: input yang sama selalu menghasilkan output yang sama, sehingga konversi tidak merusak data selama nilai tidak dibulatkan atau dipotong. Sebagian besar pemilih warna dan alat desain mengandalkan rumus yang sama di baliknya.

Mengapa Menggunakan Color Converter Ini?

Alat desain mengekspor warna dalam satu format, CSS Anda membutuhkan format lain, dan API yang Anda panggil mengharapkan format ketiga. Alih-alih menulis kode konversi atau mencari rumus yang tepat, tempel nilai dan dapatkan semua format sekaligus.

โšก
Konversi Langsung secara Instan
Ketik atau pilih warna dan lihat HEX, RGB, HSL, dan HSV diperbarui secara real time. Tidak ada tombol submit, tidak ada permintaan ke server.
๐Ÿ”’
Pemrosesan Mengutamakan Privasi
Semua perhitungan konversi berjalan di browser Anda. Tidak ada nilai warna, data penggunaan, maupun cookie yang dikirimkan ke mana pun.
๐Ÿ”€
Keempat Format Sekaligus
Satu input menghasilkan HEX, RGB, HSL, dan HSV secara bersamaan. Salin format yang Anda butuhkan dengan satu klik.
๐Ÿ“‹
Tanpa Akun
Buka halaman dan mulai mengonversi. Tidak perlu mendaftar, tidak perlu email, tidak ada batasan penggunaan. Bekerja secara offline setelah dimuat.

Kasus Penggunaan Color Converter

Pengembangan CSS
Desainer memberi Anda nilai HEX dari Figma, tetapi component library Anda menggunakan HSL untuk tema. Konversi nilai tersebut dan masukkan ke dalam CSS custom properties atau konfigurasi Tailwind Anda.
Integrasi Backend API
Endpoint Anda menerima warna sebagai array RGB untuk pembuatan grafik. Konversi kode HEX merek dari panduan gaya menjadi triplet bilangan bulat yang diharapkan API.
Pemeliharaan Design System
Saat mendokumentasikan design system, Anda membutuhkan setiap token warna tercantum dalam HEX untuk referensi cepat, RGB untuk rendering Canvas, dan HSL untuk pembuatan shade secara terprogram.
QA dan Pengujian Visual
Membandingkan warna piksel tangkapan layar (biasanya dilaporkan dalam RGB oleh DevTools browser) dengan nilai HEX yang diharapkan dari spesifikasi Figma. Konversi cepat mengonfirmasi atau menandai ketidaksesuaian.
Visualisasi Data
Library grafik seperti D3.js dan Chart.js menerima warna dalam format berbeda tergantung pada metode yang digunakan. Konversi sekali dan pertahankan notasi yang konsisten di seluruh konfigurasi dataset Anda.
Mempelajari Teori Warna
Mahasiswa yang mempelajari grafika komputer atau desain web dapat melihat bagaimana warna yang sama dipetakan ke HEX, RGB, HSL, dan HSV. Menyesuaikan satu kanal dan mengamati kanal lain yang berubah membangun intuisi tentang bagaimana model warna saling berhubungan.

Referensi Format Warna

Tabel di bawah ini mencantumkan lima format warna yang paling umum, dengan warna indigo yang sama (#6366F1) ditampilkan dalam setiap notasi. HEX dan RGB paling banyak didukung dalam CSS dan JavaScript. HSL lebih disukai untuk tema karena penyesuaian lightness dan saturation sangat mudah. HSV adalah model yang digunakan oleh sebagian besar pemilih warna di perangkat lunak desain grafis.

FormatContoh (indigo)KanalPenggunaan umum
HEX#6366F16 (or 3/8)CSS, design tools, brand guides
RGBrgb(99, 102, 241)3 (0โ€“255 each)CSS, Canvas API, image processing
HSLhsl(239, 84%, 67%)3 (deg, %, %)CSS, color theming, accessibility tuning
HSVhsv(239, 59%, 95%)3 (deg, %, %)Color pickers, Photoshop, Figma
CMYKcmyk(59%, 58%, 0%, 5%)4 (0โ€“100% each)Print design, prepress workflows

HEX vs RGB vs HSL

Ketiga format mendeskripsikan ruang warna sRGB yang sama. Perbedaannya terletak pada cara mereka mengekspos data, yang memengaruhi keterbacaan dan kemudahan manipulasi dalam konteks yang berbeda.

HEX
String heksadesimal 6 digit (atau singkatan 3 digit). Ringkas dan universal dalam CSS, alat desain, dan panduan merek. Sulit dibaca sekilas: #6366F1 tidak memberi tahu Anda hue-nya. Mendukung bentuk opsional 8 digit (#6366F180) untuk transparansi alpha.
RGB
Tiga bilangan bulat dari 0 hingga 255 untuk kanal merah, hijau, dan biru. Format asli untuk Canvas 2D, WebGL, dan sebagian besar library pemrosesan gambar. Mudah dimanipulasi kanal per kanal, tetapi menyesuaikan kecerahan yang dirasakan memerlukan perubahan ketiga nilai sekaligus.
HSL
Hue (0-360 derajat), saturation (0-100%), dan lightness (0-100%). Dirancang untuk keterbacaan manusia. Untuk membuat warna lebih terang, tingkatkan L. Untuk mengurangi saturasi, kurangi S. CSS mendukung notasi hsl() secara bawaan, dan sintaks CSS color-mix() serta relative color yang modern dibangun di atasnya.

Contoh Kode

Konversi warna antara HEX, RGB, dan HSL dalam bahasa dan lingkungan yang umum digunakan. Setiap contoh menggunakan warna indigo yang sama (#6366F1) untuk memudahkan perbandingan.

JavaScript
// HEX โ†’ RGB
function hexToRgb(hex) {
  const n = parseInt(hex.replace('#', ''), 16)
  return [(n >> 16) & 255, (n >> 8) & 255, n & 255]
}
hexToRgb('#6366f1') // โ†’ [99, 102, 241]

// RGB โ†’ HSL
function rgbToHsl(r, g, b) {
  r /= 255; g /= 255; b /= 255
  const max = Math.max(r, g, b), min = Math.min(r, g, b)
  const l = (max + min) / 2
  if (max === min) return [0, 0, Math.round(l * 100)]
  const d = max - min
  const s = l > 0.5 ? d / (2 - max - min) : d / (max + min)
  let h = 0
  if (max === r) h = ((g - b) / d + (g < b ? 6 : 0)) / 6
  else if (max === g) h = ((b - r) / d + 2) / 6
  else h = ((r - g) / d + 4) / 6
  return [Math.round(h * 360), Math.round(s * 100), Math.round(l * 100)]
}
rgbToHsl(99, 102, 241) // โ†’ [239, 84, 67]
Python
import colorsys

# HEX โ†’ RGB
def hex_to_rgb(hex_str: str) -> tuple[int, int, int]:
    h = hex_str.lstrip('#')
    return tuple(int(h[i:i+2], 16) for i in (0, 2, 4))

hex_to_rgb('#6366f1')  # โ†’ (99, 102, 241)

# RGB โ†’ HSL (colorsys uses HLS order)
r, g, b = 99 / 255, 102 / 255, 241 / 255
h, l, s = colorsys.rgb_to_hls(r, g, b)
print(f"hsl({h * 360:.0f}, {s * 100:.0f}%, {l * 100:.0f}%)")
# โ†’ hsl(239, 84%, 67%)

# RGB โ†’ HSV
h, s, v = colorsys.rgb_to_hsv(r, g, b)
print(f"hsv({h * 360:.0f}, {s * 100:.0f}%, {v * 100:.0f}%)")
# โ†’ hsv(239, 59%, 95%)
Go
package main

import (
	"fmt"
	"math"
)

func hexToRGB(hex string) (int, int, int) {
	var r, g, b int
	fmt.Sscanf(hex, "#%02x%02x%02x", &r, &g, &b)
	return r, g, b
}

func rgbToHSL(r, g, b int) (int, int, int) {
	rf, gf, bf := float64(r)/255, float64(g)/255, float64(b)/255
	max := math.Max(rf, math.Max(gf, bf))
	min := math.Min(rf, math.Min(gf, bf))
	l := (max + min) / 2
	if max == min {
		return 0, 0, int(math.Round(l * 100))
	}
	d := max - min
	s := d / (2 - max - min)
	if l <= 0.5 {
		s = d / (max + min)
	}
	var h float64
	switch max {
	case rf: h = (gf - bf) / d; if gf < bf { h += 6 }
	case gf: h = (bf - rf) / d + 2
	case bf: h = (rf - gf) / d + 4
	}
	return int(math.Round(h / 6 * 360)), int(math.Round(s * 100)), int(math.Round(l * 100))
}

func main() {
	r, g, b := hexToRGB("#6366f1")
	fmt.Println(r, g, b)         // โ†’ 99 102 241
	fmt.Println(rgbToHSL(r, g, b)) // โ†’ 239 84 67
}
CSS
/* Modern CSS supports multiple color formats natively */

/* HEX notation */
.button { color: #6366f1; }

/* RGB functional notation */
.button { color: rgb(99 102 241); }

/* HSL โ€” easier to adjust lightness and saturation */
.button { color: hsl(239 84% 67%); }

/* CSS Color Level 4: relative color syntax (Chrome 119+) */
.button-light { color: hsl(from #6366f1 h s calc(l + 20%)); }

/* color-mix() for tinting without manual conversion */
.button-muted { color: color-mix(in srgb, #6366f1 70%, white); }

Pertanyaan yang Sering Diajukan

Apa perbedaan antara HSL dan HSV?
Keduanya menggunakan hue dan saturation, tetapi mendefinisikan kecerahan secara berbeda. HSL menggunakan lightness, di mana 50% adalah warna murni, 0% adalah hitam, dan 100% adalah putih. HSV menggunakan value (atau brightness), di mana 100% adalah warna murni dan 0% adalah hitam. HSV tidak memiliki titik akhir putih secara langsung. Dalam praktiknya, HSL digunakan dalam CSS dan pengembangan web, sementara HSV adalah model di balik sebagian besar pemilih warna di perangkat lunak desain seperti Photoshop dan Figma.
Bagaimana cara mengonversi HEX ke RGB di JavaScript?
Uraikan string hex menjadi bilangan bulat dengan parseInt(hex, 16), lalu ekstrak setiap kanal dengan bit shifting: (n >> 16) & 255 untuk merah, (n >> 8) & 255 untuk hijau, dan n & 255 untuk biru. Ini menangani string hex 6 digit dengan atau tanpa tanda # di awal. Untuk singkatan 3 digit seperti #F0F, perluas setiap digit terlebih dahulu (FF00FF) sebelum menguraikannya.
Apakah HSL dapat digunakan langsung di CSS?
Ya. Semua browser modern mendukung hsl() dan hsla() di CSS. Sejak CSS Color Level 4, sintaksnya adalah hsl(239 84% 67%) dengan nilai yang dipisahkan spasi (koma masih diterima). Anda juga dapat menambahkan alpha sebagai parameter keempat: hsl(239 84% 67% / 0.5). Safari, Chrome, Firefox, dan Edge semuanya mendukung sintaks ini.
Apakah konversi warna merusak data?
Secara matematis, tidak. HEX, RGB, HSL, dan HSV semuanya mendeskripsikan ruang warna sRGB yang sama dan konversinya dapat dibalik. Dalam praktiknya, perbedaan pembulatan kecil dapat muncul karena HEX terbatas pada 256 langkah per kanal dan persentase HSL biasanya dibulatkan ke bilangan bulat. Mengonversi bolak-balik beberapa kali dapat menumpuk kesalahan pembulatan sebesar 1-2 satuan.
Apa itu format HEX 8 digit?
Format HEX 8 digit menambahkan dua digit alpha (transparansi) ke warna HEX 6 digit standar. Misalnya, #6366F180 berarti warna indigo yang sama dengan opasitas 50% (0x80 = 128, sekitar 50% dari 255). CSS mendukung notasi ini di semua browser modern. Bentuk pendeknya adalah 4 digit, seperti #63F8.
Mengapa warna saya terlihat berbeda di monitor lain?
Tampilan warna bergantung pada profil warna, kecerahan, dan kalibrasi gamma monitor. Dua layar dapat menampilkan nilai sRGB yang sama (#6366F1) secara berbeda jika profil warna mereka berbeda. Alat konversi warna bekerja dalam ruang warna yang terdefinisi (biasanya sRGB) dan menghasilkan output yang secara matematis benar. Perbedaan yang dirasakan adalah masalah kalibrasi tampilan, bukan kesalahan konversi.
Bagaimana cara mendapatkan warna yang lebih terang atau lebih gelap dari suatu warna?
Konversi warna ke HSL dan sesuaikan kanal L (lightness). Meningkatkan L menuju 100% menghasilkan warna yang lebih terang; menurunkannya menuju 0% menghasilkan warna yang lebih gelap. Hue dan saturation tetap sama. Dalam CSS, Anda dapat melakukan ini secara langsung: hsl(239 84% 80%) adalah versi yang lebih terang dari hsl(239 84% 67%). CSS modern juga menawarkan color-mix(in srgb, #6366F1, white 30%) untuk efek yang sama tanpa konversi manual.