0Pricing
React Academy · Pelajaran

Variabel CSS untuk Pergantian Tema

Definisikan palet warna lengkap dengan properti kustom CSS dan ganti tema dengan mengubah atribut data.

Variabel CSS untuk Pergantian Tema adalah pelajaran React Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar React Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus React Academy mencakup 4 pelajaran total.

Mendefinisikan Token Warna pada :root

Properti kustom CSS (variabel) yang didefinisikan pada :root tersedia secara global di seluruh lembar gaya. Anda mendefinisikan palet warna lengkap sekali — latar belakang, warna teks, permukaan, garis tepi — lalu merujuknya di mana saja. Satu sumber kebenaran ini membuat pergantian tema menjadi mudah.

Penggantian Tema Gelap dengan data-theme

Saat atribut data-theme="dark" ditetapkan pada document.documentElement, pemilih CSS seperti [data-theme='dark'] mengganti variabel akar dengan nilai gelap. Komponen merujuk var(--color-bg) dan otomatis menggunakan nilai baru tanpa perubahan kode apa pun.

Variabel Utama yang Perlu Didefinisikan

Setidaknya, definisikan: --color-bg (latar belakang halaman), --color-text (teks utama), --color-primary (warna merek), --color-surface (latar belakang kartu/panel), dan --color-border (pemisah). Kumpulan token yang konsisten mencegah nilai warna sembarangan muncul dalam komponen.

Menerapkan Variabel dalam Gaya Komponen

Dalam CSS komponen Anda, rujuk variabel seperti background: var(--color-bg) dan color: var(--color-text). Anda juga dapat memberikan nilai cadangan: var(--color-bg, #ffffff). Peramban menyelesaikan variabel saat merender, sehingga satu kelas dapat digunakan untuk tema terang dan gelap.

Transisi Halus saat Beralih

Tambahkan transition: background-color 200ms, color 200ms ke pemilih :root. Saat atribut data-theme berubah, semua elemen yang menggunakan variabel CSS akan beranimasi menuju nilai barunya secara bersamaan. Hal ini menghasilkan tampilan yang lebih halus tanpa kode animasi JS.

Variabel CSS vs Gaya Sebaris yang Dikendalikan JS

Mengelola tema melalui variabel CSS lebih baik daripada menetapkan gaya sebaris dari JavaScript. Peramban menangani semua perhitungan ulang gaya secara bawaan, tidak ada render ulang React tambahan untuk setiap komponen anak bertema, dan kaskade CSS menangani pewarisan secara otomatis. JS hanya perlu mengubah satu atribut pada elemen akar.

Nilai Cadangan Tingkat OS dengan prefers-color-scheme

Anda dapat menggabungkan variabel CSS dengan kueri @media (prefers-color-scheme: dark) sebagai nilai cadangan yang hanya menggunakan CSS. Tentukan penggantian gelap di dalam kueri media selain (atau sebagai pengganti) pemilih data-theme. Hal ini memastikan mode gelap tetap berfungsi meskipun JavaScript belum dijalankan.

Menggabungkan data-theme dengan Nilai Cadangan Kueri Media

Pendekatan yang paling andal menggunakan kedua mekanisme: kueri @media menyediakan bawaan OS, sedangkan atribut data-theme memungkinkan penggantian oleh pengguna melalui JavaScript. Saat atribut tersebut ada, atribut akan diprioritaskan karena spesifisitasnya; saat tidak ada, kueri media berlaku.

Gambar Mode Gelap

Untuk gambar yang tampak buruk pada latar belakang gelap, gunakan elemen HTML picture dengan anak source media="(prefers-color-scheme: dark)". Peramban akan memilih varian gelap secara otomatis. Untuk ikon SVG dalam CSS, Anda dapat menggunakan filter: invert(1) sebagai pendekatan cepat.

Variabel Tema dengan Lingkup Terbatas

Variabel CSS juga dapat dibatasi pada komponen tertentu dengan mendefinisikannya pada elemen akar komponen, bukan pada :root. Hal ini memungkinkan pemberian tema per komponen, seperti bilah sisi dengan token latar belakangnya sendiri yang berbeda dari latar belakang halaman, dan semuanya tetap berganti dengan benar melalui pengalih tema global.

Mendiagnosis Variabel CSS di DevTools

Chrome DevTools menampilkan nilai variabel CSS yang telah dihitung dalam panel Gaya. Klik referensi variabel untuk menuju definisinya. Dengan demikian, Anda dapat memverifikasi dengan mudah bahwa token gelap atau terang yang benar diterapkan pada elemen mana pun. Anda juga dapat mengubah nilai variabel secara langsung di panel tersebut.

Properti Kustom CSS untuk Pemberian Tema

Pemilih CSS mana yang digunakan untuk mendefinisikan properti kustom CSS global yang berlaku untuk seluruh dokumen?

Ringkasan Pelajaran: Variabel CSS untuk Pergantian Tema

Properti kustom CSS pada :root menyediakan sistem token terpusat untuk tema. Alihkan atribut data-theme pada elemen html untuk mengganti tema secara instan. Tambahkan transisi CSS untuk animasi yang halus, gunakan kueri media prefers-color-scheme sebagai nilai cadangan yang hanya menggunakan CSS, dan hindari penggantian gaya JS per komponen.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Variabel CSS untuk Pergantian Tema” gratis?

Ya — teks lengkap “Variabel CSS untuk Pergantian Tema” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus React Academy, upgrade ke CoddyKit PRO. Kursus React Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Variabel CSS untuk Pergantian Tema”?

Definisikan palet warna lengkap dengan properti kustom CSS dan ganti tema dengan mengubah atribut data. Kamu berlatih React Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai React Academy?

Tidak diperlukan pengalaman sebelumnya. React Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Variabel CSS untuk Pergantian Tema” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran React Academy ini?

Ya. Setiap pelajaran React Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Mendeteksi Skema Warna Sistem
  2. Variabel CSS untuk Pergantian Tema
  3. React Context untuk State Tema
  4. Menyimpan Tema dan Mencegah Kilatan
← Kembali ke React Academy