Hai kawan Maya! Bayangkan website tanpa warna – pasti membosankan banget kan? Warna adalah salah satu elemen paling penting dalam web design. Untungnya, CSS punya banyak cara untuk mendefinisikan warna!
Di artikel ini, kita akan belajar semua metode untuk menggunakan warna di CSS. Dari yang paling simple sampai yang advance!
5 Cara Mendefinisikan Warna di CSS
CSS menyediakan 5 metode utama untuk mendefinisikan warna:
- Color Names – Nama warna (contoh: red, blue)
- Hexadecimal (HEX) – Kode hex (contoh: #FF0000)
- RGB – Red, Green, Blue (contoh: rgb(255, 0, 0))
- HSL – Hue, Saturation, Lightness (contoh: hsl(0, 100%, 50%))
- RGBA/HSLA – Dengan transparency
Mari kita bahas satu per satu!
1. Color Names – Paling Mudah!
Cara paling simple adalah menggunakan nama warna. CSS punya 140 predefined color names.
.text {
color: red;
background-color: lightblue;
border-color: green;
}
.button {
background-color: tomato;
color: white;
}
.header {
background-color: navy;
color: gold;
}
Beberapa Color Names Populer:
/* Basic colors */ color: red; color: blue; color: green; color: yellow; color: black; color: white; /* Extended colors */ color: tomato; /* Merah tomat */ color: coral; /* Coral/oranye kemerahan */ color: dodgerblue; /* Biru terang */ color: mediumseagreen; /* Hijau laut */ color: gold; /* Emas */ color: violet; /* Ungu muda */ color: crimson; /* Merah tua */ color: skyblue; /* Biru langit */
Kelebihan:
- ✅ Sangat mudah diingat dan digunakan
- ✅ Tidak perlu kalkulator atau color picker
- ✅ Code lebih readable
Kekurangan:
- ❌ Pilihan warna terbatas (hanya 140)
- ❌ Tidak bisa kontrol presisi warna
- ❌ Tidak profesional untuk production
Kapan Dipakai: Testing, prototype, atau demo cepat.
Baca: Kode Warna CSS dan Nama Warna
2. Hexadecimal (HEX) – Paling Populer!
Hex color adalah format paling banyak digunakan. Dimulai dengan # diikuti 6 digit (atau 3 digit untuk shorthand).
Format 6-Digit
.element {
color: #FF0000; /* Merah */
color: #00FF00; /* Hijau */
color: #0000FF; /* Biru */
color: #FFFFFF; /* Putih */
color: #000000; /* Hitam */
color: #3498db; /* Biru terang */
color: #e74c3c; /* Merah terang */
}
Cara Kerja HEX
Format: #RRGGBB
- RR = Red (00 – FF)
- GG = Green (00 – FF)
- BB = Blue (00 – FF)
#FF0000 /* FF=255 red, 00=0 green, 00=0 blue = MERAH MURNI */ #00FF00 /* 00=0 red, FF=255 green, 00=0 blue = HIJAU MURNI */ #0000FF /* 00=0 red, 00=0 green, FF=255 blue = BIRU MURNI */
Shorthand 3-Digit
Jika digit berpasangan sama, bisa disingkat:
#FF0000 = #F00 /* Merah */ #00FF00 = #0F0 /* Hijau */ #0000FF = #00F /* Biru */ #FFFFFF = #FFF /* Putih */ #000000 = #000 /* Hitam */ #AABBCC = #ABC /* Bisa disingkat */
HEX dengan Transparency (8-Digit)
.element {
background-color: #FF000080; /* Merah 50% opacity */
background-color: #3498dbFF; /* Biru 100% opacity */
background-color: #00000000; /* Hitam 0% opacity (transparan) */
}
Format: #RRGGBBAA
- AA = Alpha channel (00 = transparan, FF = opaque)
Kelebihan:
- ✅ Compact dan mudah copy-paste
- ✅ Standar industri yang dikenal semua developer
- ✅ Banyak color picker support HEX
Kekurangan:
- ❌ Tidak human-readable (susah tebak warna dari code)
- ❌ Susah adjust brightness/saturation manual
3. RGB – Red, Green, Blue
RGB mendefinisikan warna dengan nilai 0-255 untuk setiap channel warna.
.element {
color: rgb(255, 0, 0); /* Merah */
color: rgb(0, 255, 0); /* Hijau */
color: rgb(0, 0, 255); /* Biru */
color: rgb(255, 255, 255); /* Putih */
color: rgb(0, 0, 0); /* Hitam */
color: rgb(52, 152, 219); /* Biru terang */
}
Format RGB
rgb(red, green, blue)
- red: 0-255
- green: 0-255
- blue: 0-255
Contoh Mixing Colors
rgb(255, 0, 0) /* Merah 100%, hijau 0%, biru 0% */ rgb(255, 255, 0) /* Merah + Hijau = Kuning */ rgb(255, 0, 255) /* Merah + Biru = Magenta */ rgb(0, 255, 255) /* Hijau + Biru = Cyan */ rgb(128, 128, 128) /* Abu-abu sedang */
Modern Syntax (CSS Color Level 4)
/* Modern - tanpa koma */ rgb(255 0 0) rgb(52 152 219)
Kelebihan:
- ✅ Lebih readable daripada HEX
- ✅ Mudah dipahami konsepnya (mixing colors)
- ✅ Bisa manipulasi dengan JavaScript
Kekurangan:
- ❌ Lebih panjang daripada HEX
- ❌ Masih susah untuk adjust brightness
4. RGBA – RGB dengan Transparency
RGBA adalah RGB + Alpha channel untuk opacity.
.element {
background-color: rgba(255, 0, 0, 0.5); /* Merah 50% opacity */
background-color: rgba(0, 0, 255, 0.3); /* Biru 30% opacity */
background-color: rgba(0, 0, 0, 0.8); /* Hitam 80% opacity */
}
Format RGBA
rgba(red, green, blue, alpha)
- alpha: 0 (transparan) – 1 (opaque)
- Atau dalam persen: 0% – 100%
Modern Syntax dengan Slash
/* Modern CSS Color Level 4 */ rgb(255 0 0 / 0.5) /* Merah 50% */ rgb(52 152 219 / 80%) /* Biru 80% */
Contoh Praktis
.overlay {
/* Black overlay 50% opacity */
background-color: rgba(0, 0, 0, 0.5);
}
.glass-effect {
/* White glass effect */
background-color: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(10px);
}
.shadow {
/* Shadow dengan transparency */
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
}
5. HSL – Hue, Saturation, Lightness
HSL adalah format paling human-friendly! Lebih intuitif untuk adjust warna.
.element {
background-color: hsl(0, 100%, 50%); /* Merah */
background-color: hsl(120, 100%, 50%); /* Hijau */
background-color: hsl(240, 100%, 50%); /* Biru */
background-color: hsl(60, 100%, 50%); /* Kuning */
}
Cara Kerja HSL
hsl(hue, saturation, lightness)
1. Hue (Warna) – 0° sampai 360°
- 0° / 360° = Merah
- 60° = Kuning
- 120° = Hijau
- 180° = Cyan
- 240° = Biru
- 300° = Magenta
2. Saturation (Kejernihan) – 0% sampai 100%
- 0% = Abu-abu (no color)
- 50% = Moderate
- 100% = Full color
3. Lightness (Kecerahan) – 0% sampai 100%
- 0% = Hitam
- 50% = Normal color
- 100% = Putih
Contoh Variasi dari Satu Warna
/* Warna dasar: Biru (240deg) */ hsl(240, 100%, 50%) /* Biru murni */ /* Variasi Lightness */ hsl(240, 100%, 20%) /* Biru sangat gelap */ hsl(240, 100%, 50%) /* Biru normal */ hsl(240, 100%, 80%) /* Biru sangat terang */ /* Variasi Saturation */ hsl(240, 10%, 50%) /* Biru keabu-abuan */ hsl(240, 50%, 50%) /* Biru moderate */ hsl(240, 100%, 50%) /* Biru sangat jenuh */
HSLA – HSL dengan Transparency
.element {
background-color: hsla(240, 100%, 50%, 0.5); /* Biru 50% */
/* Modern syntax */
background-color: hsl(240 100% 50% / 0.5);
}
Kenapa HSL Powerful?
/* Membuat color palette dengan mudah! */
:root {
--primary-hue: 240; /* Biru */
--color-primary: hsl(var(--primary-hue), 100%, 50%);
--color-primary-dark: hsl(var(--primary-hue), 100%, 30%);
--color-primary-light: hsl(var(--primary-hue), 100%, 70%);
}
Kelebihan:
- ✅ Sangat intuitif dan human-readable
- ✅ Mudah create color variations (lighter/darker)
- ✅ Perfect untuk theming dan design systems
Kekurangan:
- ❌ Lebih panjang daripada HEX
- ❌ Kurang familiar untuk developer pemula
Perbandingan: HEX vs RGB vs HSL
Warna yang sama dalam 3 format:
/* Semua ini warna SAMA (Biru terang) */ color: #3498db; /* HEX */ color: rgb(52, 152, 219); /* RGB */ color: hsl(204, 70%, 53%); /* HSL */ /* Dengan transparency 50% */ color: #3498db80; /* HEX */ color: rgba(52, 152, 219, 0.5); /* RGBA */ color: hsla(204, 70%, 53%, 0.5); /* HSLA */
Properti CSS untuk Warna
Text Color
.text {
color: #333; /* Warna teks */
}
Background Color
.box {
background-color: #f0f0f0; /* Warna background */
}
Border Color
.card {
border: 2px solid #3498db; /* Warna border */
}
Outline, Shadow, dan Lainnya
.element {
outline-color: red;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
text-shadow: 2px 2px 4px #666;
}
Tips Memilih Format Warna
Gunakan HEX jika:
- ✅ Bekerja dengan designer (biasanya pakai HEX)
- ✅ Butuh format compact
- ✅ Copy-paste dari color picker
Gunakan RGB/RGBA jika:
- ✅ Manipulasi warna dengan JavaScript
- ✅ Butuh transparency
- ✅ Lebih familiar dengan RGB model
Gunakan HSL/HSLA jika:
- ✅ Membuat color variations (light/dark)
- ✅ Building design system atau theme
- ✅ Butuh human-readable colors
Special Values
Transparent
.element {
background-color: transparent; /* Fully transparent */
}
CurrentColor
.element {
color: blue;
border-color: currentColor; /* Akan jadi blue */
}
Inherit
.child {
color: inherit; /* Inherit dari parent */
}
CSS Variables untuk Colors
:root {
/* Define color palette */
--primary: #3498db;
--secondary: #2ecc71;
--danger: #e74c3c;
--light: #ecf0f1;
--dark: #2c3e50;
/* Semantic colors */
--text-color: var(--dark);
--bg-color: white;
--border-color: var(--light);
}
.button {
background-color: var(--primary);
color: white;
}
.alert-error {
background-color: var(--danger);
}
Gradients – Bonus!
CSS juga bisa bikin gradient dengan multiple colors:
.gradient-box {
/* Linear gradient */
background: linear-gradient(to right, #3498db, #2ecc71);
/* Radial gradient */
background: radial-gradient(circle, #e74c3c, #c0392b);
/* Multiple color stops */
background: linear-gradient(
to bottom,
#3498db 0%,
#2ecc71 50%,
#e74c3c 100%
);
}
Tools untuk Memilih Warna
- Browser DevTools – Color picker built-in
- coolors.co – Generate color palette
- htmlcolorcodes.com – HEX color picker
- hslpicker.com – HSL color picker
- paletton.com – Color scheme designer
Best Practices
- ✅ Konsisten: Pilih satu format dalam satu project
- ✅ Use Variables: Gunakan CSS custom properties
- ✅ Accessibility: Pastikan kontras warna cukup (WCAG standards)
- ✅ Design System: Buat color palette di awal
- ✅ Document Colors: Comment warna yang dipakai untuk apa
/* Color Palette */
:root {
--primary: #3498db; /* Main brand color */
--success: #2ecc71; /* Success messages */
--danger: #e74c3c; /* Error states */
}
Kesimpulan
CSS menyediakan banyak cara untuk define warna:
- Color Names: Mudah tapi terbatas
- HEX: Compact dan populer
- RGB/RGBA: Readable dengan transparency support
- HSL/HSLA: Human-friendly, perfect untuk variations
Pilih format yang sesuai dengan kebutuhan project dan team kawan Maya. Yang penting: konsisten dan maintainable! 🎨



