提交 fcff9f63 编写于 作者: View Design's avatar View Design

主题

上级 23336d1e
...@@ -20,19 +20,25 @@ ...@@ -20,19 +20,25 @@
</ClientOnly> </ClientOnly>
<div class="flex justify-between gap-2 p-4"> <div class="flex justify-between gap-2 p-4">
<UButton <UButton
class="flex-grow"
color="gray" color="gray"
variant="ghost" variant="ghost"
label="问题反馈" label="问题反馈"
/> />
<UButton
:icon="isDark ? 'i-heroicons-moon-20-solid' : 'i-heroicons-sun-20-solid'"
color="gray"
variant="ghost"
aria-label="Theme"
@click="isDark = !isDark"
/>
<USelectMenu <USelectMenu
v-model="colorMode.preference"
:ui-menu="{ width: 'w-32' }"
:options="themeItems"
value-attribute="value"
>
<UButton
:icon="colorMode.value === 'dark' ? 'i-heroicons-moon-20-solid' : 'i-heroicons-sun-20-solid'"
color="gray"
variant="ghost"
aria-label="Theme"
/>
</USelectMenu>
<USelectMenu
v-if="false"
:ui-menu="{ width: 'w-32' }" :ui-menu="{ width: 'w-32' }"
:model-value="$lang" :model-value="$lang"
:options="$langOptions" :options="$langOptions"
...@@ -52,15 +58,6 @@ const { $signOut } = useUserStore() ...@@ -52,15 +58,6 @@ const { $signOut } = useUserStore()
const { $isSignIn, $info } = storeToRefs(useUserStore()) const { $isSignIn, $info } = storeToRefs(useUserStore())
const { $lang, $langOptions } = useI18nStore() const { $lang, $langOptions } = useI18nStore()
const colorMode = useColorMode() const colorMode = useColorMode()
const isDark = computed({
get () {
return colorMode.value === 'dark'
},
set () {
colorMode.preference = colorMode.value === 'dark' ? 'light' : 'dark'
}
})
const items = [ const items = [
[ [
{ {
...@@ -82,4 +79,21 @@ const items = [ ...@@ -82,4 +79,21 @@ const items = [
} }
] ]
] ]
const themeItems = [
{
label: '亮色模式',
value: 'light',
icon: 'i-heroicons-sun'
},
{
label: '深色模式',
value: 'dark',
icon: 'i-heroicons-moon'
},
{
label: '跟随系统',
value: 'system',
icon: 'i-heroicons-computer-desktop'
}
]
</script> </script>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册