Skip to content

Commit c54f4db

Browse files
committed
ui: add button to toggle dark vs light theme
1 parent 7bbf6b4 commit c54f4db

File tree

6 files changed

+1529
-15
lines changed

6 files changed

+1529
-15
lines changed

ui/app/app.vue

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
<template>
22
<div>
3-
<Kani />
3+
<NuxtLayout>
4+
<Kani />
5+
</NuxtLayout>
46
</div>
57
</template>

ui/app/assets/css/tailwind.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
@import "tailwindcss";
2+
@import "tailwindcss-primeui";
3+
4+
@custom-variant dark (&:where(.my-app-dark, .my-app-dark *)); //dark mode configuration

ui/app/layouts/default.vue

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<script setup lang="ts">
2+
3+
const CLASS_DARK = "my-app-dark";
4+
function toggleTheme() {
5+
const isDark = document.documentElement.classList.toggle(CLASS_DARK);
6+
console.log("dark", isDark);
7+
localStorage.setItem("theme", isDark ? "dark" : "light");
8+
}
9+
10+
if (localStorage.getItem("theme") === "dark") {
11+
document.documentElement.classList.add(CLASS_DARK);
12+
}
13+
14+
</script>
15+
16+
<template>
17+
<div>
18+
<Button icon="pi pi-refresh" @click="toggleTheme" rounded raised />
19+
20+
<slot />
21+
</div>
22+
</template>

ui/nuxt.config.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,12 @@ export default defineNuxtConfig({
77
ssr: false, // Client-side Only Rendering (SPA)
88
css: ["primeicons/primeicons.css"],
99
typescript: { typeCheck: true },
10-
modules: ['@primevue/nuxt-module'],
10+
modules: ['@primevue/nuxt-module', '@nuxtjs/tailwindcss'],
1111
primevue: {
1212
options: {
1313
theme: {
14-
preset: Aura
14+
preset: Aura,
15+
options: { darkModeSelector: '.my-app-dark' }
1516
}
1617
}
1718
}

0 commit comments

Comments
 (0)