23 lines
733 B
Vue
23 lines
733 B
Vue
<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>
|