@@ -21,19 +21,26 @@ const products = (await getCollection('produk', ({ data }) => {
2121 <head >
2222 <BaseHead title ={ SITE_TITLE } description ={ SITE_DESCRIPTION } />
2323 </head >
24- <body class =" bg-white" >
24+ <body class =" bg-white dark:bg-gray-900 transition-colors " >
2525 <main class =" max-w-4xl mx-auto min-h-screen px-4 py-8 md:py-16" >
2626 <!-- Hero Section -->
2727 <section class =" text-center mb-12" >
28- <img
29- src =" /img/logo-kotak-label.png"
30- alt ={ SITE_TITLE }
31- class =" w-32 md:w-40 mx-auto mb-6"
32- />
33- <h1 class =" text-2xl md:text-3xl font-bold text-gray-900 mb-3" >
28+ <div class =" w-32 md:w-40 mx-auto mb-6 relative" >
29+ <img
30+ src =" /img/logo-kotak-label.png"
31+ alt ={ SITE_TITLE }
32+ class =" w-full dark:hidden"
33+ />
34+ <img
35+ src =" /img/logo-semutdev-white.png"
36+ alt ={ SITE_TITLE }
37+ class =" w-full hidden dark:block"
38+ />
39+ </div >
40+ <h1 class =" text-2xl md:text-3xl font-bold text-gray-900 dark:text-white mb-3" >
3441 Tutorial, Teknologi, Koding 🔥
3542 </h1 >
36- <p class =" text-gray-600 text-base md:text-lg mb-6 max-w-2xl mx-auto" >
43+ <p class =" text-gray-600 dark:text-gray-400 text-base md:text-lg mb-6 max-w-2xl mx-auto" >
3744 Berbagi rayapan programmer mulai dari pengalaman, tutorial, produk dan lain sebagainya.
3845 </p >
3946
@@ -106,12 +113,12 @@ const products = (await getCollection('produk', ({ data }) => {
106113 </p >
107114 <div class =" flex items-center justify-center gap-6 text-sm md:text-base" >
108115 <div >
109- <div class =" text-3xl md:text-4xl font-bold" >25 </div >
116+ <div class =" text-3xl md:text-4xl font-bold" >4 </div >
110117 <div class =" text-white/80" >Apps Created</div >
111118 </div >
112119 <div class =" h-12 w-px bg-white/30" ></div >
113120 <div >
114- <div class =" text-3xl md:text-4xl font-bold" >75 </div >
121+ <div class =" text-3xl md:text-4xl font-bold" >96 </div >
115122 <div class =" text-white/80" >To Go</div >
116123 </div >
117124 </div >
@@ -121,18 +128,18 @@ const products = (await getCollection('produk', ({ data }) => {
121128 <!-- Product section -->
122129 <section class =" mb-12" >
123130 <div class =" flex items-center justify-between mb-6" >
124- <h2 class =" text-xl md:text-2xl font-bold text-gray-900" >Produk Digital</h2 >
125- <a href =" /produk" class =" text-blue-600 hover:text-blue-700 text-sm font-medium" >
131+ <h2 class =" text-xl md:text-2xl font-bold text-gray-900 dark:text-white " >Produk Digital</h2 >
132+ <a href =" /produk" class =" text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300 text-sm font-medium" >
126133 Lihat Semua →
127134 </a >
128135 </div >
129136 <div class =" grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-4" >
130137 { products .slice (0 , 6 ).map ((product ) => (
131138 <a
132139 href = { product .data .showDetail == true ? ` /produk/${product .id }/ ` : ` ${product .data .checkoutUrl }/ ` }
133- class = " group block border border-gray-200 rounded-xl overflow-hidden hover:shadow-md hover:border-blue-500 transition-all"
140+ class = " group block border border-gray-200 dark:border-gray-700 rounded-xl overflow-hidden hover:shadow-md hover:border-blue-500 dark:hover:border-blue-400 transition-all bg-white dark:bg-gray-800 "
134141 >
135- <div class = " aspect-video bg-gradient-to-br from-blue-50 to-purple-50 relative overflow-hidden" >
142+ <div class = " aspect-video bg-gradient-to-br from-blue-50 to-purple-50 dark:from-blue-900/20 dark:to-purple-900/20 relative overflow-hidden" >
136143 <img
137144 src = { product .data .image }
138145 alt = { product .data .title }
@@ -141,15 +148,15 @@ const products = (await getCollection('produk', ({ data }) => {
141148 />
142149 </div >
143150 <div class = " p-4" >
144- <h3 class = " text-gray-900 font-medium text-sm mb-2 line-clamp-2 group-hover:text-blue-600 transition-colors" >
151+ <h3 class = " text-gray-900 dark:text-white font-medium text-sm mb-2 line-clamp-2 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors" >
145152 { product .data .title }
146153 </h3 >
147154 <div class = " flex items-baseline gap-2" >
148- <span class = " text-blue-600 text-lg font-bold" >
155+ <span class = " text-blue-600 dark:text-blue-400 text-lg font-bold" >
149156 Rp{ product .data .price .toLocaleString (' id-ID' )}
150157 </span >
151158 { product .data .discount != 0 && (
152- <span class = " text-gray-400 text-sm line-through" >
159+ <span class = " text-gray-400 dark:text-gray-500 text-sm line-through" >
153160 Rp{ product .data .discount .toLocaleString (' id-ID' )}
154161 </span >
155162 )}
@@ -162,19 +169,19 @@ const products = (await getCollection('produk', ({ data }) => {
162169 <!-- Blog section -->
163170 <section class =" mb-12" >
164171 <div class =" flex items-center justify-between mb-6" >
165- <h2 class =" text-xl md:text-2xl font-bold text-gray-900" >Artikel Terbaru</h2 >
166- <a href =" /blog" class =" text-blue-600 hover:text-blue-700 text-sm font-medium" >
172+ <h2 class =" text-xl md:text-2xl font-bold text-gray-900 dark:text-white " >Artikel Terbaru</h2 >
173+ <a href =" /blog" class =" text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300 text-sm font-medium" >
167174 Lihat Semua →
168175 </a >
169176 </div >
170177 <div class =" space-y-3" >
171178 { posts .slice (0 , 5 ).map ((post ) => (
172179 <a
173180 href = { ` /blog/${post .id }/ ` }
174- class = " group block p-4 border border-gray-200 rounded-lg hover:border-blue-500 hover:shadow-sm transition-all"
181+ class = " group block p-4 border border-gray-200 dark:border-gray-700 rounded-lg hover:border-blue-500 dark: hover:border-blue-400 hover: shadow-sm transition-all bg-white dark:bg-gray-800 "
175182 >
176183 <div class = " flex items-start gap-4" >
177- <div class = " flex-shrink-0 w-16 h-16 rounded-lg overflow-hidden bg-gradient-to-br from-blue-50 to-purple-50" >
184+ <div class = " flex-shrink-0 w-16 h-16 rounded-lg overflow-hidden bg-gradient-to-br from-blue-50 to-purple-50 dark:from-blue-900/20 dark:to-purple-900/20 " >
178185 <img
179186 src = { post .data .heroImage }
180187 alt = { post .data .title }
@@ -183,14 +190,14 @@ const products = (await getCollection('produk', ({ data }) => {
183190 />
184191 </div >
185192 <div class = " flex-1 min-w-0" >
186- <h3 class = " text-gray-900 font-medium text-sm md:text-base mb-1 line-clamp-2 group-hover:text-blue-600 transition-colors" >
193+ <h3 class = " text-gray-900 dark:text-white font-medium text-sm md:text-base mb-1 line-clamp-2 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors" >
187194 { post .data .title }
188195 </h3 >
189- <p class = " text-gray-500 text-xs md:text-sm" >
196+ <p class = " text-gray-500 dark:text-gray-400 text-xs md:text-sm" >
190197 <FormattedDate date = { post .data .pubDate } />
191198 </p >
192199 </div >
193- <svg class = " w-5 h-5 text-gray-400 group-hover:text-blue-600 group-hover:translate-x-1 transition-all flex-shrink-0" fill = " none" stroke = " currentColor" viewBox = " 0 0 24 24" >
200+ <svg class = " w-5 h-5 text-gray-400 dark:text-gray-500 group-hover:text-blue-600 dark:group-hover:text-blue-400 group-hover:translate-x-1 transition-all flex-shrink-0" fill = " none" stroke = " currentColor" viewBox = " 0 0 24 24" >
194201 <path stroke-linecap = " round" stroke-linejoin = " round" stroke-width = " 2" d = " M9 5l7 7-7 7" />
195202 </svg >
196203 </div >
@@ -200,7 +207,7 @@ const products = (await getCollection('produk', ({ data }) => {
200207 </section >
201208
202209 <!-- Footer Note -->
203- <div class =" text-center py-8 text-gray-500 text-sm" >
210+ <div class =" text-center py-8 text-gray-500 dark:text-gray-400 text-sm" >
204211 <p >© 2025 semutdev. Made with ❤️</p >
205212 </div >
206213 </main >
0 commit comments