Konversi HSL ke HEX: Cara Kerja dan Keunikan Halaman Ini
Halaman ini dirancang untuk satu tugas spesifik: mengubah nilai warna HSL (Hue, Saturation, Lightness) menjadi kode heksadesimal (HEX) yang digunakan di CSS dan alat desain. Pengguna memasukkan hue dalam derajat (0–360), saturation dalam persen, dan lightness dalam persen, lalu secara instan mendapatkan kode HEX enam digit (atau tiga digit jika memungkinkan). Misalnya, memasukkan 243, 75%, 59% akan menampilkan #4f46e5. Perubahan pada salah satu input langsung memperbarui semua field warna lainnya, termasuk RGB, HSV, CMYK, dan LAB.
Yang membedakan halaman ini dari konverter warna generik adalah fokus penuh pada pasangan HSL–HEX. HSL adalah model warna yang dirancang untuk penalaran manusia tentang warna—mengubah lightness saja akan mempertahankan hue, sehingga ideal untuk pembuatan palet dan tema. HEX, di sisi lain, adalah notasi RGB heksadesimal enam digit (atau tiga digit singkatan) tanpa saluran alpha kecuali dalam bentuk delapan digit. Konversi ini bersifat langsung dan lossless dalam gamut sRGB, tidak seperti konversi yang melibatkan LAB atau CMYK yang mungkin menyesuaikan warna di luar gamut. Dengan kata lain, hasil HEX yang diberikan oleh alat ini persis sama dengan representasi RGB dari HSL asli, tanpa kompromi.
Input dan Output: Format yang Valid dan Contoh
Input yang diterima adalah tiga nilai numerik:
- Hue: bilangan bulat antara 0 dan 360, tanpa satuan derajat (misalnya
243). - Saturation: persentase antara 0% dan 100%, wajib menyertakan simbol
%(misalnya75%). - Lightness: persentase antara 0% dan 100%, juga dengan
%(misalnya59%).
Format input yang benar adalah tiga nilai yang dipisahkan koma atau spasi, misalnya 243, 75%, 59% atau 243 75% 59%. Jika pengguna memasukkan nilai di luar rentang atau tanpa simbol persen, alat akan menampilkan pesan kesalahan.
Output utama adalah kode HEX. Alat ini selalu menampilkan bentuk enam digit (misalnya #4f46e5). Jika setiap saluran RGB (merah, hijau, biru) dapat diwakili oleh satu digit heksadesimal, alat juga menampilkan bentuk singkatan tiga digit, seperti #abc untuk #aabbcc. Ini berguna untuk ukuran file CSS yang lebih kecil.
Selain HEX, semua model warna lain diperbarui secara bersamaan:
- RGB: nilai desimal (0–255) untuk merah, hijau, biru.
- HSV: hue (0–360°), saturation (0–100%), value (0–100%).
- CMYK: persentase cyan, magenta, yellow, black (estimasi layar, bukan nilai cetak profesional).
- LAB: L* (0–100), a*, b* (nilai yang dapat melebihi ±128).
Tabel berikut merangkum rentang dan contoh valid:
| Komponen | Rentang | Contoh Valid |
|---|---|---|
| Hue | 0 – 360 | 243 |
| Saturation | 0% – 100% | 75% |
| Lightness | 0% – 100% | 59% |
| Output HEX | #rrggbb | #4f46e5 |
Aturan, Batasan, dan Pesan Error
Alat ini memiliki sejumlah aturan yang harus dipatuhi untuk memastikan konversi yang benar:
- Semua nilai harus berada dalam rentang yang disebutkan. Hue di luar 0–360 akan memicu pesan error.
- Persentase harus disertai simbol
%.75tanpa%tidak dikenali. - Format input harus jelas: dua persentase dan satu angka hue. Urutan boleh hue, sat, light atau sebaliknya, tetapi alat mengharapkan tiga nilai yang dapat diurai.
- Jika input tidak valid, pesan error muncul:
"Masukkan HSL sebagai hue 0–360 dengan dua persentase, misalnya 243, 75%, 59%."
Pesan ini muncul dalam bahasa Indonesia (diterjemahkan dari sumber asli).
Batasan penting:
- Konversi HSL ke HEX selalu berada dalam rentang RGB yang terlihat. Tidak ada penyesuaian gamut, tidak seperti konversi ke CMYK atau LAB yang mungkin menghasilkan warna di luar gamut target. Ini karena HSL, RGB, dan HEX semuanya menggunakan ruang warna sRGB yang sama.
- Output CMYK hanyalah estimasi on-screen. Untuk nilai cetak profesional, diperlukan profil ICC dan perangkat lunak manajemen warna terpisah.
- Semua pemrosesan terjadi di peramban Anda. Tidak ada data yang dikirim ke server—privasi pengguna terjaga sepenuhnya.
Kasus tepi:
- Hue = 0 dan Hue = 360 keduanya menghasilkan warna merah. Alat menerima keduanya.
- Saturation = 0% menghasilkan skala abu-abu, berapa pun hue-nya. Lightness = 0% menghasilkan hitam, Lightness = 100% menghasilkan putih. Konversi HEX tetap akurat.
- Jika lightness di luar 0–100%, misalnya 110%, alat menampilkan error.
Siapa yang Membutuhkan Alat Ini?
Alat HSL-ke-HEX sangat berguna bagi tiga kelompok utama:
-
Desainer yang membangun palet warna menggunakan HSL karena kemudahan menyesuaikan lightness dan saturation sambil mempertahankan hue. Setelah palet jadi, mereka membutuhkan kode HEX untuk diimplementasikan di kode atau alat desain seperti Figma, Sketch, atau Adobe XD.
-
Pengembang front‑end yang menerima nilai HSL dari file desain dan harus menerjemahkannya ke properti CSS
color,background-color, atauborder-color. CSS modern mendukung HSL langsung, tetapi banyak proyek masih menggunakan HEX untuk kompatibilitas atau karena panduan gaya internal. -
Siapa pun yang menyesuaikan tema atau menerapkan rasio kontras aksesibilitas dengan mengubah lightness dalam HSL, lalu mengonversi hasilnya ke HEX untuk produksi. Misalnya, untuk memenuhi WCAG AA (rasio kontras 4.5:1), desainer dapat menurunkan lightness teks dari 50% menjadi 30% tanpa mengubah hue, lalu mendapatkan HEX yang sesuai.
Kasus penggunaan nyata: seorang pengembang yang menerima komponen button dengan spesifikasi HSL 210, 80%, 60% dari desainer. Alat ini langsung memberikan #4fa3e5 untuk ditulis di CSS, menghemat waktu dan menghindari kesalahan perhitungan manual.
Memahami Model Warna HSL dan Hubungannya dengan RGB/HEX
HSL adalah singkatan dari Hue, Saturation, Lightness. Model ini dirancang untuk lebih intuitif daripada RGB:
- Hue mewakili warna murni pada roda warna, diukur dalam derajat: 0° merah, 120° hijau, 240° biru, 360° kembali ke merah.
- Saturation mengontrol intensitas warna: 0% abu-abu, 100% warna penuh.
- Lightness mengontrol kecerahan: 0% hitam, 50% warna normal, 100% putih.
HEX adalah representasi heksadesimal dari RGB. Setiap pasangan digit heksadesimal (00 hingga FF) menunjukkan intensitas merah, hijau, dan biru. Misalnya, #4f46e5 berarti merah = 4F (79), hijau = 46 (70), biru = E5 (229).
Konversi HSL ke HEX melalui langkah-langkah berikut:
- Ubah HSL ke RGB menggunakan rumus standar (dengan komponen chroma, X, dan m).
- Ubah setiap nilai RGB (0–1) ke skala 0–255 dan bulatkan.
- Konversi setiap nilai desimal ke dua digit heksadesimal (misalnya 79 → 4F).
Alat ini melakukan semua langkah tersebut secara otomatis.
Mengapa konversi ini sederhana? Karena HSL dan RGB (dasar HEX) berada dalam ruang warna sRGB yang sama. Tidak ada gamut clipping seperti saat mengonversi dari LAB ke sRGB, di mana beberapa warna mungkin di luar jangkauan. Dengan HSL ke HEX, setiap kemungkinan HSL yang valid menghasilkan HEX yang valid dalam sRGB.
Keterbatasan HEX dibandingkan HSL:
- HEX tidak memiliki dimensi "lightness" langsung. Anda tidak bisa mencerahkan atau menggelapkan warna HEX tanpa menghitung ulang RGB.
- Bentuk enam digit tidak mendukung alpha. Untuk transparansi, diperlukan format delapan digit (#rrggbbaa), yang jarang didukung di alat ini.
- HEX kurang intuitif untuk penyesuaian warna: mengubah digit pertama merah secara acak dapat menghasilkan warna yang tidak terduga, sedangkan mengubah lightness di HSL lebih terkontrol.
FAQ (Pertanyaan yang Sering Diajukan)
1. Apakah alat ini mendukung format HSL dengan derajat (misalnya 243°)?
Tidak. Alat hanya menerima nilai numerik untuk hue tanpa simbol derajat. Masukkan 243 saja, bukan 243°.
2. Mengapa output CMYK berbeda dengan yang saya lihat di software desain?
CMYK yang ditampilkan adalah estimasi cepat berdasarkan konversi sRGB ke CMYK standar. Nilai cetak profesional memerlukan profil ICC dan koreksi gamut. Gunakan hasil ini sebagai referensi saja.
3. Bisakah saya memasukkan hue sebagai angka desimal (misalnya 243.5)?
Ya, hue dapat berupa bilangan bulat atau desimal. Misalnya 243.5 akan menghasilkan warna di antara dua hue bulat. Saturation dan lightness harus bilangan bulat atau desimal dengan simbol %.
4. Apa yang terjadi jika saya memasukkan nilai saturation lebih dari 100%?
Alat akan menampilkan pesan error karena saturation harus antara 0% dan 100%. Tidak ada kompensasi otomatis.
5. Apakah data yang saya masukkan dikirim ke server?
Tidak. Semua konversi terjadi di peramban Anda menggunakan JavaScript. Tidak ada data yang dikirim, sehingga privasi Anda terjamin.
6. Kapan bentuk tiga digit HEX muncul?
Bentuk tiga digit (misalnya #abc) muncul hanya jika setiap saluran RGB dapat diwakili oleh satu digit heksadesimal, yaitu ketika nilai merah, hijau, dan biru masing-masing merupakan kelipatan 17 (misalnya 0, 17, 34,..., 255). Contoh: RGB(17, 34, 51) menjadi #112233 dan ditampilkan sebagai #123.