Ilustrasi dibuat menggunakan Nano Banana Gemini
Tutorial Kalkulator Umur - Menerapkan Mode Gelap & Terang
- Tutorial |
- Oleh Malik |
- 27 Desember 2024
Secara bawaan, Pico CSS sudah memiliki mode gelap-terang. Terbukti dari tampilan awal yang sudah bermode gelap.

Untuk dapat mengubahnya menjadi mode terang, kita cukup menambahkan atribut dan nilai data-theme=”light” pada tag HTML. Berikut adalah contohnya
<!DOCTYPE html>
<html lang="en" data-theme="light">
<head>
. . .
Dengan atribut dan nilai tersebut, tampilan pada halaman website akan menjadi terang.

Membuat Function untuk Berpindah ke Gelap atau Terang
Dalam CSS terdapat media query yaitu prefers-color-scheme yang dapat mendeteksi jika sistem atau device kita sedang menggunakan skema warna apa. Ini kita butuhkan untuk mengecek kondisi awal pada saat halaman website diakses.
Untuk itu kita akan mengecek skema warna pada saat ini apa dan menambahkan beberapa function untuk merubah tampilan antara gelap dan terang.
. . .
</main>
<script type="text/javascript">
const root = document.querySelector("html");
const currentDark = window.matchMedia("(prefers-color-scheme: dark)");
function setToDarkMode(){
root.setAttribute("data-theme", "dark");
}
function setToLightMode(){
root.setAttribute("data-theme", "light");
}
if (currentDark.matches){
setToDarkMode();
} else {
setToLightMode();
}
</script>
</body>
Mengaktifkan Dark-Light Toggle
Terdapat logika sederhana yang akan kita terapkan untuk merubah antara mode gelap dan terang.
- Jika switch diaktifkan, maka ubah halaman ke mode gelap (merubah atribut
data-thememenjadidark) - Jika switch dinonaktifkan, maka ubah halaman ke mode terang (merubah atribut
data-thememenjadilight)
Berikut adalah penerapan sederhananya pada JavaScript
<script type="text/javascript">
const root = document.querySelector("html");
const currentDark = window.matchMedia("(prefers-color-scheme: dark)");
const darkModeToggle = document.getElementById("darkmode-toggle");
function setToDarkMode(){
root.setAttribute("data-theme", "dark");
darkModeToggle.checked = true;
}
function setToLightMode(){
root.setAttribute("data-theme", "light");
darkModeToggle.checked = false;
}
if (currentDark.matches){
setToDarkMode();
} else {
setToLightMode();
}
darkModeToggle.addEventListener("change", function(){
if (this.checked) {
root.setAttribute("data-theme", "dark");
} else {
root.setAttribute("data-theme", "light");
}
});
</script>
Sampai dengan tahap ini, kita sudah bisa merubah mode gelap-terang menggunakan toggle yang sudah kita buat.

Kode lengkap tahap ini dapat dilihat di sini