Add theme selection, dark/light mode selection
This commit is contained in:
22
app/components/ui/internal/ModeToggle.vue
Normal file
22
app/components/ui/internal/ModeToggle.vue
Normal file
@ -0,0 +1,22 @@
|
||||
<script setup lang="ts">
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { Moon, Sun } from 'lucide-vue-next';
|
||||
|
||||
const colorMode = useColorMode()
|
||||
|
||||
function toggleMode() {
|
||||
if (colorMode.preference === 'system' || colorMode.preference === 'light') {
|
||||
colorMode.preference = 'dark'
|
||||
} else {
|
||||
colorMode.preference = 'light'
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<Button variant="outline" @click="toggleMode">
|
||||
<Moon class="h-[1.2rem] w-[1.2rem] rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0" />
|
||||
<Sun class="absolute h-[1.2rem] w-[1.2rem] rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100" />
|
||||
<span class="sr-only">Toggle theme</span>
|
||||
</Button>
|
||||
</template>
|
||||
Reference in New Issue
Block a user