diff --git a/frontend/app.vue b/frontend/app.vue index f8eacfa..2234b12 100644 --- a/frontend/app.vue +++ b/frontend/app.vue @@ -1,3 +1,10 @@ + + diff --git a/frontend/layouts/default.vue b/frontend/layouts/default.vue index 22778b8..25b7b5d 100644 --- a/frontend/layouts/default.vue +++ b/frontend/layouts/default.vue @@ -5,6 +5,27 @@ const auth = useAuthStore() if (!auth.isAuthenticated) { navigateTo('/login') } + +// Apply persisted theme on layout mount +onMounted(async () => { + if (!auth.isAuthenticated) return + try { + const settings = await $fetch('/api/settings', { + headers: { Authorization: `Bearer ${auth.token}` }, + }) as Record + const theme = settings.theme || 'dark' + if (theme === 'light') { + document.documentElement.classList.remove('dark') + document.documentElement.classList.add('light') + } else { + document.documentElement.classList.remove('light') + document.documentElement.classList.add('dark') + } + } catch { + // Default to dark theme if settings unavailable + document.documentElement.classList.add('dark') + } +}) diff --git a/frontend/pages/settings.vue b/frontend/pages/settings.vue new file mode 100644 index 0000000..ffa474c --- /dev/null +++ b/frontend/pages/settings.vue @@ -0,0 +1,92 @@ + + + + + Settings + + + + Theme + + Dark + Light + + + + + Terminal Font Size + + px + + + + Scrollback Lines + + + + + {{ saved ? 'Saved!' : loading ? 'Saving...' : 'Save Settings' }} + + + +