ReactJS #18: Menggunakan CSS di React
Biar Aplikasi Tidak Polos dan Lebih Cantik
Halo, desainer cilik! 🎨
Aplikasi React kita selama ini mungkin tampilannya masih polos dan sederhana. Padahal, aplikasi yang cantik dan menarik akan membuat pengguna betah. Nah, sekarang saatnya kita belajar memakaikan baju pada komponen React kita dengan CSS (Cascading Style Sheets).
📚 Cara Memberi CSS di React
Ada beberapa cara untuk menambahkan gaya ke komponen React. Masing-masing punya kelebihan dan cocok untuk situasi berbeda. Kita akan pelajari 5 cara paling populer:
- CSS Biasa (Global CSS) – file .css biasa yang diimpor.
- Inline Styles – menulis CSS langsung di atribut style.
- CSS Modules – CSS yang bersifat lokal per komponen.
- Styled Components – menulis CSS di dalam JavaScript (library).
- Tailwind CSS – framework utility-first yang sedang populer.
Kita akan bahas satu per satu dengan contoh.
📁 1. CSS Biasa (Global CSS)
Ini cara paling sederhana. Buat file .css, tulis aturan CSS seperti biasa, lalu impor ke komponen. File CSS ini bersifat global, artinya bisa memengaruhi semua komponen.
Contoh: buat file src/styles/global.css:
Lalu di komponen React, impor file CSS tersebut:
Kelebihan: Mudah, cocok untuk gaya yang benar-benar global (seperti reset CSS).
Kekurangan: Bisa terjadi bentrok nama class jika tidak hati-hati.
🖌️ 2. Inline Styles
Kita bisa menulis CSS langsung di atribut style menggunakan objek JavaScript. Properti CSS ditulis dalam camelCase (misal backgroundColor, bukan background-color).
Atau bisa langsung ditulis:
Kelebihan: Gaya bersifat lokal, mudah untuk gaya dinamis (berdasarkan state/props).
Kekurangan: Tidak bisa menggunakan pseudo-class (:hover, :active) dan media queries. Juga kurang rapi untuk gaya yang kompleks.
🧩 3. CSS Modules
CSS Modules adalah cara untuk membuat CSS yang bersifat lokal per komponen. Nama class akan diubah secara otomatis menjadi unik, sehingga tidak bentrok dengan class lain. Cocok untuk proyek besar.
Buat file CSS dengan nama [nama].module.css, misal Button.module.css:
Lalu di komponen, impor sebagai objek:
Hasilnya, class akan berubah menjadi seperti Button_button_abc123 sehingga aman dari bentrok.
Kelebihan: Lokal, aman untuk proyek besar, mendukung pseudo-class.
Kekurangan: Butuh konfigurasi (tapi Create React App sudah mendukung).
💅 4. Styled Components
Styled Components adalah library yang memungkinkan kita menulis CSS langsung di dalam JavaScript dengan sintaks yang mirip CSS biasa. Ini termasuk dalam kategori CSS-in-JS.
Instal dulu:
Contoh penggunaan:
Kelebihan: Gaya benar-benar terikat dengan komponen, bisa menggunakan props untuk gaya dinamis, mendukung semua fitur CSS.
Kekurangan: Perlu instalasi library tambahan, agak berat untuk proyek kecil.
🌊 5. Tailwind CSS
Tailwind CSS adalah framework CSS yang menyediakan kelas-kelas utilitas (seperti bg-blue-500, text-center, p-4). Kita tinggal menempelkan kelas-kelas itu di elemen. Sangat cepat untuk prototyping.
Instalasi Tailwind di proyek React agak panjang, tapi Create React App punya panduan khusus. Secara singkat:
Kemudian atur konfigurasi sesuai dokumentasi. Setelah selesai, kita bisa menulis:
Kelebihan: Cepat, konsisten, mudah responsif, ukuran file akhir kecil (karena hanya kelas yang dipakai).
Kekurangan: Perlu belajar kelas-kelas utilitas, HTML bisa terlihat penuh kelas.
🎯 Memilih Cara yang Tepat
Tidak ada cara yang paling benar. Pilihan tergantung kebutuhan:
- Untuk belajar dan proyek kecil: CSS biasa atau inline styles sudah cukup.
- Untuk proyek sedang/besar: CSS Modules atau Styled Components lebih aman.
- Untuk prototype cepat: Tailwind CSS sangat membantu.
- Untuk gaya dinamis berdasarkan props: Styled Components atau inline styles.
Kita bisa juga menggabungkan beberapa cara dalam satu proyek.
🧪 Latihan: Membuat Kartu Profil dengan 3 Cara
Sekarang coba buat komponen KartuProfil yang menampilkan foto (emoji), nama, dan bio. Buat tiga versi:
- Versi CSS Biasa – gunakan file CSS eksternal dengan class.
- Versi Inline Styles – gunakan objek style.
- Versi CSS Modules – buat file module.css.
Bandingkan hasilnya. Mana yang paling kamu suka?
Siti
Suka belajar React
Budi
Hobi main game
Doggy
Anjing lucu
💡 Tips Penting
- Nama class di React: gunakan
className, bukanclass(karenaclassadalah kata kunci JavaScript). - Inline styles: nilai properti harus string (kecuali angka untuk properti tertentu, bisa langsung angka).
- CSS Modules: jika ingin menggunakan beberapa class, gunakan template literal:
className={`${styles.class1} ${styles.class2}`}. - Styled Components: nama komponen harus diawali huruf besar (seperti
StyledButton).
🚀 Kesimpulan
- Ada banyak cara memberi gaya di React, dari yang sederhana hingga canggih.
- CSS biasa cocok untuk gaya global.
- Inline styles praktis untuk gaya sederhana dan dinamis.
- CSS Modules aman untuk proyek besar karena lokal per komponen.
- Styled Components dan Tailwind adalah pilihan modern yang banyak dipakai.
- Pilih cara yang paling nyaman untukmu dan sesuai kebutuhan proyek.
Di artikel selanjutnya kita akan belajar tentang Form dan Validasi serta cara mengirim data ke API. Sampai jumpa!