Apa itu Dark Mode di Tailwind?
Sekarang banyak orang pakai dark mode di sistem operasi atau browser mereka. Jadi, kamu juga bisa bikin tampilan website-mu otomatis berubah ke mode gelap kalau pengguna pakai dark mode.
Tailwind bikin ini mudah banget dengan bantuan dark:
variant. Kamu tinggal tambahkan dark:
sebelum utility-nya.
Contoh Dasar
Misalnya kamu punya komponen seperti ini:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Tailwind Dark Mode</title>
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body>
<div class="bg-white dark:bg-gray-800 rounded-lg px-6 py-8 ring shadow-xl ring-gray-900/5">
<h3 class="text-gray-900 dark:text-white mt-5 text-base font-medium">Writes upside-down</h3>
<p class="text-gray-500 dark:text-gray-400 mt-2 text-sm">
The Zero Gravity Pen can be used to write in any orientation, including upside-down. It even works in outer
space.
</p>
</div>
</body>
</html>
Artinya:
Di light mode, background-nya putih (bg-white
), teksnya abu tua (text-gray-900
)
Di dark mode, background-nya gelap (dark:bg-gray-800
), teksnya jadi putih (dark:text-white
)
berikut hasilnya:
Default: Mengikuti OS
Secara default, Tailwind akan mengecek apakah user pakai dark mode dari sistem operasinya dengan prefers-color-scheme
.
Kamu gak perlu ngapa-ngapain, tinggal pakai aja dark:
seperti contoh di atas.
Dark Mode Manual (Custom Toggle)
Kalau kamu pengen ngontrol sendiri kapan dark mode nyala, kamu bisa ubah caranya kerja. Misalnya dengan nambahin class dark
di elemen <html>
:
1. Ubah konfigurasi:
/* app.css */
@import "tailwindcss";
@custom-variant dark (&:where(.dark, .dark *));
2. Pakai class dark
di HTML:
<html class="dark">
<body>
<div class="bg-white dark:bg-black text-gray-900 dark:text-white">
Ini akan gelap kalau ada class "dark"
</div>
</body>
</html>
berikut hasilnya:
Pakai Data Attribute
Kalau kamu lebih suka pakai atribut (bukan class), bisa juga. Misalnya pakai data-theme="dark"
:
1. Ubah konfigurasi:
/* app.css */
@import "tailwindcss";
@custom-variant dark (&:where([data-theme=dark], [data-theme=dark] *));
2. HTML-nya:
<html data-theme="dark">
<body>
<div class="bg-white dark:bg-black text-gray-900 dark:text-white">
Ini akan gelap kalau ada data-theme="dark"
</div>
</body>
</html>
berikut hasilnya:
Ikuti System + Bisa Diubah Manual
Contoh Lengkap Toggle Dark Mode
<!DOCTYPE html>
<html lang="en" class="">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Tailwind Dark Mode Toggle</title>
<!-- Set theme sebelum Tailwind -->
<script>
const userTheme = localStorage.getItem("theme");
const systemPrefersDark = window.matchMedia("(prefers-color-scheme: dark)").matches;
if (userTheme === "dark" || (!userTheme && systemPrefersDark)) {
document.documentElement.classList.add("dark");
} else {
document.documentElement.classList.remove("dark");
}
</script>
<!-- Tailwind CDN -->
<script src="https://cdn.tailwindcss.com"></script>
<!-- Aktifkan mode dark berbasis class -->
<script>
tailwind.config = {
darkMode: 'class'
}
</script>
</head>
<body
class="bg-white dark:bg-gray-900 text-gray-900 dark:text-white min-h-screen flex flex-col items-center justify-center gap-6">
<div class="text-center max-w-md p-6 bg-gray-100 dark:bg-gray-800 rounded shadow">
<h1 class="text-2xl font-bold mb-2">Tailwind Dark Mode Toggle</h1>
<p class="text-gray-700 dark:text-gray-300">
The Zero Gravity Pen can be used to write in any orientation, including upside-down.
</p>
</div>
<div class="flex gap-3">
<button onclick="setTheme('light')"
class="px-4 py-2 bg-gray-200 dark:bg-gray-700 rounded text-sm hover:bg-gray-300 dark:hover:bg-gray-600 transition">
Light
</button>
<button onclick="setTheme('dark')"
class="px-4 py-2 bg-gray-200 dark:bg-gray-700 rounded text-sm hover:bg-gray-300 dark:hover:bg-gray-600 transition">
Dark
</button>
<button onclick="setTheme('system')"
class="px-4 py-2 bg-gray-200 dark:bg-gray-700 rounded text-sm hover:bg-gray-300 dark:hover:bg-gray-600 transition">
System
</button>
</div>
<script>
function setTheme(mode) {
if (mode === "light") {
localStorage.setItem("theme", "light");
document.documentElement.classList.remove("dark");
} else if (mode === "dark") {
localStorage.setItem("theme", "dark");
document.documentElement.classList.add("dark");
} else {
localStorage.removeItem("theme");
const systemPrefersDark = window.matchMedia("(prefers-color-scheme: dark)").matches;
document.documentElement.classList.toggle("dark", systemPrefersDark);
}
}
</script>
</body>
</html>
berikut hasilnya:
Artikel Lainnya Dengan Kategori Terkait :
1. Belajar Tailwind CSS #01 Instalasi Tailwind CSS
2. Belajar Tailwind CSS #02 Editor Setup di Tailwind CSS
3. Belajar Tailwind CSS #03 Compatibility di Tailwind CSS
4. Belajar Tailwind CSS #04 Upgrade dari Tailwind CSS v3 ke v4
5. Belajar Tailwind CSS #05 Perubahan di Tailwind CSS v4 dengan v3
6. Belajar Tailwind CSS #06 Styling dengan Utility Classes part 1
7. Belajar Tailwind CSS #07 Styling dengan Utility Classes part 2
8. Belajar Tailwind CSS #08 Hover, fokus dan status lainnya part 1
9. Belajar Tailwind CSS #09 Hover, fokus, dan status lainnya part 2
10. Belajar Tailwind CSS #10 Hover, fokus, dan status lainnya part 3
11. Belajar Tailwind CSS #11 Hover, fokus, dan status lainnya part 4
12. Belajar Tailwind CSS #12 Hover, fokus, dan status lainnya part 5
13. Belajar Tailwind CSS #13 Responsive design part 1
14. Belajar Tailwind CSS #14 Responsive design part 2
15. Belajar tailwind CSS #15 Responsive design part 3
16. Belajar Tailwind CSS #16 Dark Mode di Tailwind
17. Belajar Tailwind CSS #17 Theme Variables part 1
18. Belajar Tailwind CSS #18 Theme Variables part 2
19. Belajar Tailwind CSS #19 Theme Variables part 3
20. Belajar Tailwind CSS #20 Tailwind CSS - Colors part 1
21. Belajar Tailwind CSS #21 Tailwind - Colors part 2
22. Belajar Tailwind CSS #22 Adding custom styles part 1
23. Belajar Tailwind CSS #23 Adding custom styles part 2
24. Belajar Tailwind CSS #24 Adding custom styles part 3
25. Belajar Tailwind CSS #25 Detecting classes in soure files
26. Belajar Tailwind CSS #26 Functions and directives
27. Belajar Tailwind CSS #27 Preflight Tailwind CSS
28. Belajar Tailwind CSS #28 Aspect-Ratio Tailwind CSS
29. Belajar Tailwind CSS #29 Tailwind CSS columns
30. Belajar Tailwind CSS #30 Tailwind CSS Break-After
31. Belajar Tailwind CSS #31 Tailwind CSS Break-Before
32. Belajar Tailwind CSS #32 Break-Inside Tailwind CSS
33. Belajar Tailwind CSS #33 Box Decoration Break Tailwind CSS
34. Belajar Tailwind CSS #34 Box Sizing Tailwind CSS
35. Belajar Tailwind CSS #35 Tailwind CSS Display
36. Belajar Tailwind CSS #36 Tailwind CSS Float
37. Belajar tailwind CSS #37 Tailwind CSS Clear
38. Belajar Tailwind CSS #38 Tailwind CSS Isolation
39. Belajar Tailwind CSS #39 Tailwind CSS Object-fit
40. Belajar Tailwind CSS #40 Tailwind CSS Object-position
41. Belajar Tailwind CSS #41 Overflow Tailwind CSS
42. Belajar Tailwind CSS #42 Tailwind CSS overscroll-behavior
43. Belajar Tailwind CSS #43 Tailwind CSS Position
44. Belajar Tailwind CSS #44 Tailwind CSS top,right,bottom,left
45. Belajar Tailwind CSS #45 Visibility di Tailwind CSS
46. Belajar Tailwind CSS #46 Z-index di Tailwind CSS
47. Belajar Tailwind CSS #47 Tailwind CSS flex-basis
48. Belajar Tailwind CSS #48 Flex-direction Tailwind CSS
49. Belajar Tailwind CSS #49 Flex-wrap Tailwind CSS
50. Belajar Tailwind CSS #50 Flex Tailwind CSS
51. Belajar Tailwind CSS #51 Flex-grow Tailwind CSS
52. Belajar Tailwind CSS #52 Flex-shrink Tailwind CSS
53. Belajar Tailwind CSS #53 Tailwind CSS order
54. Belajar Tailwind CSS #54 Grid-template-columns Tailwind CSS
55. Belajar Tailwind CSS #55 Grid-column Tailwind CSS
56. Belajar Tailwind CSS #56 Grid-template-rows Tailwind CSS
57. Belajar Tailwind CSS #57 Grid-row Tailwind CSS
58. Belajar Tailwind CSS #58 Grid-auto-flow Tailwind CSS
59. Belajar Tailwind CSS #59 Grid-auto-columns Tailwind CSS
60. Belajar Tailwind CSS #60 Grid-auto-rows Tailwind CSS
61. Belajar Tailwind CSS #61 Gap di Tailwind CSS
62. Belajar Tailwind CSS #62 Justify-content di Tailwind CSS
63. Belajar Tailwind CSS #63 Justify-items di Tailwind CSS
64. Belajar Tailwind CSS #64 Justify-self di Tailwind CSS
65. Belajar Tailwind CSS #65 Align-content di Tailwind CSS
66. Belajar Tailwind CSS #66 Align-items di Tailwind CSS
67. Belajar Tailwind CSS #67 Align-self di Tailwind CSS
68. Belajar Tailwind CSS #68 Place-content di Tailwind CSS