From a9c029164f660f0d97a88703be9b0b5ccdbf0335 Mon Sep 17 00:00:00 2001
From: Kentai Radiquum <kentai.waah@gmail.com>
Date: Sun, 19 May 2024 19:12:48 +0500
Subject: [PATCH] feat: page dark mode

---
 index.html         | 21 ++++++++--------
 public/js/cards.js |  2 +-
 public/js/theme.js |  1 -
 public/output.css  | 60 ++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 72 insertions(+), 12 deletions(-)

diff --git a/index.html b/index.html
index f71584d..353936f 100644
--- a/index.html
+++ b/index.html
@@ -8,18 +8,19 @@
     <link href="/public/output.css" rel="stylesheet" />
 </head>
 
-<body class="light" id="body">
+<body class="light dark:bg-slate-900" id="body">
     <header class="shadow-lg pt-4 pb-6 sticky top-0 left-0 bg-slate-50 dark:bg-slate-800">
         <div class="flex flex-row gap-2 items-center container max-w-[1440px] justify-between px-4">
             <div><img src="/public/images/logo-light.svg" alt="wah.su" id="logo" /></div>
             <div>
                 <a href="https://status.wah.su" class="flex flex-row items-center gap-2" target="_blank">
-                    <div class="bg-green-500 w-4 h-4 rounded-full hidden" id="status-up-icon"></div>
-                    <div class="bg-yellow-400  w-4 h-4 rounded-full hidden" id="status-degraded-icon"></div>
-                    <div class="bg-red-600 w-4 h-4 rounded-full hidden" id="status-down-icon"></div>
-                    <p class="hidden" id="status-up-text">All Systems Operational.</p>
-                    <p class="hidden" id="status-degraded-text">Degraded Services.</p>
-                    <p class="hidden" id="status-down-text">All Systems Down.</p>
+                    <div class="bg-green-500 dark:bg-green-400 w-4 h-4 rounded-full hidden" id="status-up-icon"></div>
+                    <div class="bg-yellow-400 dark:bg-yellow-200 w-4 h-4 rounded-full hidden" id="status-degraded-icon">
+                    </div>
+                    <div class="bg-red-600 dark:bg-red-500 w-4 h-4 rounded-full hidden" id="status-down-icon"></div>
+                    <p class="hidden dark:text-slate-50" id="status-up-text">All Systems Operational.</p>
+                    <p class="hidden dark:text-slate-50" id="status-degraded-text">Degraded Services.</p>
+                    <p class="hidden dark:text-slate-50" id="status-down-text">All Systems Down.</p>
                 </a>
             </div>
             <div class="flex flex-row items-center justify-center gap-6">
@@ -45,9 +46,9 @@
     </header>
 
     <div class="container max-w-[1440px] mt-14 text-center px-4">
-        <h1 class="font-bold text-8xl text-gray-800">Welcome to wah.su!</h1>
+        <h1 class="font-bold text-8xl text-gray-800 dark:text-slate-200">Welcome to wah.su!</h1>
         <!--noformat-->
-        <p class="max-w-[840px] mx-auto mt-6 text-gray-700 text-left whitespace-pre">
+        <p class="max-w-[840px] mx-auto mt-6 text-gray-700 dark:text-slate-300 text-left whitespace-pre">
             Looking for a cozy, reliable den away from tech companies? You've come to the right place!
             wah.su is all about providing a safe and stable environment for your projects.
 
@@ -58,7 +59,7 @@
     </div>
 
     <div class="container max-w-[1440px] mt-14 px-4 py-4">
-        <h1 class="font-bold text-4xl mb-4 text-gray-800">Currently hosting</h1>
+        <h1 class="font-bold text-4xl mb-4 text-gray-800 dark:text-slate-200">Currently hosting</h1>
         <div class="flex flex-row gap-2 flex-wrap" id="services">
         </div>
     </div>
diff --git a/public/js/cards.js b/public/js/cards.js
index 00a6776..6e4489a 100644
--- a/public/js/cards.js
+++ b/public/js/cards.js
@@ -32,7 +32,7 @@ const cards = [
 const services = document.getElementById("services");
 
 function renderCards() {
-  const theme = document.getElementById("body").classList[0];
+  const theme = localStorage.getItem("theme");
   services.innerHTML = "";
   for (let index = 0; index < cards.length; index++) {
     const image_name = cards[index].image.split(".")[0];
diff --git a/public/js/theme.js b/public/js/theme.js
index d5d705f..9480cad 100644
--- a/public/js/theme.js
+++ b/public/js/theme.js
@@ -14,7 +14,6 @@ const setTheme = (theme) => {
 
 function updateTheme() {
   let theme = localStorage.getItem("theme");
-  console.log("updatingTheme", theme);
   if (theme) {
     setTheme(theme);
   } else {
diff --git a/public/output.css b/public/output.css
index 30d9a4d..7c82306 100644
--- a/public/output.css
+++ b/public/output.css
@@ -2014,6 +2014,36 @@ input:checked + .toggle-bg {
   background-color: rgb(30 41 59 / var(--tw-bg-opacity));
 }
 
+.dark\:bg-green-300:where(.dark, .dark *) {
+  --tw-bg-opacity: 1;
+  background-color: rgb(132 225 188 / var(--tw-bg-opacity));
+}
+
+.dark\:bg-green-400:where(.dark, .dark *) {
+  --tw-bg-opacity: 1;
+  background-color: rgb(49 196 141 / var(--tw-bg-opacity));
+}
+
+.dark\:bg-red-500:where(.dark, .dark *) {
+  --tw-bg-opacity: 1;
+  background-color: rgb(240 82 82 / var(--tw-bg-opacity));
+}
+
+.dark\:bg-yellow-200:where(.dark, .dark *) {
+  --tw-bg-opacity: 1;
+  background-color: rgb(252 233 106 / var(--tw-bg-opacity));
+}
+
+.dark\:bg-red-400:where(.dark, .dark *) {
+  --tw-bg-opacity: 1;
+  background-color: rgb(249 128 128 / var(--tw-bg-opacity));
+}
+
+.dark\:bg-slate-900:where(.dark, .dark *) {
+  --tw-bg-opacity: 1;
+  background-color: rgb(15 23 42 / var(--tw-bg-opacity));
+}
+
 .dark\:text-blue-500:where(.dark, .dark *) {
   --tw-text-opacity: 1;
   color: rgb(63 131 248 / var(--tw-text-opacity));
@@ -2034,6 +2064,36 @@ input:checked + .toggle-bg {
   color: rgb(209 213 219 / var(--tw-text-opacity));
 }
 
+.dark\:text-slate-50:where(.dark, .dark *) {
+  --tw-text-opacity: 1;
+  color: rgb(248 250 252 / var(--tw-text-opacity));
+}
+
+.dark\:text-slate-100:where(.dark, .dark *) {
+  --tw-text-opacity: 1;
+  color: rgb(241 245 249 / var(--tw-text-opacity));
+}
+
+.dark\:text-slate-300:where(.dark, .dark *) {
+  --tw-text-opacity: 1;
+  color: rgb(203 213 225 / var(--tw-text-opacity));
+}
+
+.dark\:text-slate-200:where(.dark, .dark *) {
+  --tw-text-opacity: 1;
+  color: rgb(226 232 240 / var(--tw-text-opacity));
+}
+
+.dark\:text-slate-500:where(.dark, .dark *) {
+  --tw-text-opacity: 1;
+  color: rgb(100 116 139 / var(--tw-text-opacity));
+}
+
+.dark\:text-slate-400:where(.dark, .dark *) {
+  --tw-text-opacity: 1;
+  color: rgb(148 163 184 / var(--tw-text-opacity));
+}
+
 .dark\:hover\:bg-blue-700:hover:where(.dark, .dark *) {
   --tw-bg-opacity: 1;
   background-color: rgb(26 86 219 / var(--tw-bg-opacity));