@@ -3,6 +3,7 @@ import { onKeyStroke, onClickOutside } from '@vueuse/core'
33
44const { settings } = useSettings ()
55const { locale, locales, setLocale } = useI18n ()
6+ const colorMode = useColorMode ()
67
78const availableLocales = computed (() =>
89 locales .value .map (l => (typeof l === ' string' ? { code: l , name: l } : l )),
@@ -138,6 +139,32 @@ onKeyStroke(',', e => {
138139 </span >
139140 </button >
140141
142+ <!-- Theme selector -->
143+ <div class =" pt-2 mt-2 border-t border-border" >
144+ <div class =" px-2 py-1" >
145+ <label for =" theme-select" class =" text-xs text-fg-subtle uppercase tracking-wider" >
146+ {{ $t('settings.theme') }}
147+ </label >
148+ </div >
149+ <div class =" px-2 py-1" >
150+ <select
151+ id =" theme-select"
152+ :value =" colorMode.preference"
153+ class =" w-full bg-bg-muted border border-border rounded-md px-2 py-1.5 text-sm text-fg focus:outline-none focus:ring-2 focus:ring-fg/50 cursor-pointer"
154+ @change ="
155+ colorMode.preference = ($event.target as HTMLSelectElement).value as
156+ | 'light'
157+ | 'dark'
158+ | 'system'
159+ "
160+ >
161+ <option value =" system" >{{ $t('settings.theme_system') }}</option >
162+ <option value =" light" >{{ $t('settings.theme_light') }}</option >
163+ <option value =" dark" >{{ $t('settings.theme_dark') }}</option >
164+ </select >
165+ </div >
166+ </div >
167+
141168 <!-- Language selector -->
142169 <div class =" pt-2 mt-2 border-t border-border" >
143170 <div class =" px-2 py-1" >
0 commit comments