feat(frontend): add core UI components and pages

- Add global CSS with mobile-first styling and CSS custom properties
- Create base UI components: Button, Input, Checkbox, Select
- Add BottomNav component with icons for Tasks, Projects, Tags, Settings
- Update app layout to include BottomNav and auth handling
- Create Settings page with API key input and sync controls
- Create auth pages: /auth/login (OAuth) and /auth/callback
- Add placeholder pages for Projects and Tags
- Implement manual API key authentication for MVP testing
- Add logout functionality and user info display
- Support for safe-area-inset (mobile notches)
This commit is contained in:
2026-01-06 16:14:24 +01:00
parent d99e158a8c
commit 6b146c16a8
12 changed files with 1032 additions and 7 deletions
+28 -7
View File
@@ -1,11 +1,32 @@
<script>
import favicon from '$lib/assets/favicon.svg';
let { children } = $props();
import '../app.css';
import BottomNav from '$lib/components/BottomNav.svelte';
import { authStore } from '$lib/stores/auth.js';
import { page } from '$app/stores';
// Check if on auth pages (don't show nav)
$: isAuthPage = $page.url.pathname.startsWith('/auth');
</script>
<svelte:head>
<link rel="icon" href={favicon} />
</svelte:head>
<div class="app">
<main class="main">
<slot />
</main>
{#if $authStore.isAuthenticated && !isAuthPage}
<BottomNav />
{/if}
</div>
{@render children()}
<style>
.app {
min-height: 100vh;
display: flex;
flex-direction: column;
}
.main {
flex: 1;
width: 100%;
}
</style>