Install Web App

Belajar Tailwind CSS #16 Dark Mode di Tailwind

profil-penulis

Ahmad Dika Zulfahmi

07 April 2025

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

69. Belajar Tailwind CSS #69 Tailwind CSS place-items

70. Belajar Tailwind CSS #70 Tailwind CSS place-self

Masuk Terlebih dahulu untuk berkomentar

Paling baru
Lihat Lainnya