refactor(style): update chat layout and scrolling

This commit is contained in:
2026-05-17 17:57:30 -04:00
parent 6307a64c9c
commit eddf5bf12d
9 changed files with 646 additions and 529 deletions

View File

@@ -4,21 +4,55 @@
<meta charset="UTF-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1, viewport-fit=cover"
content="width=device-width, initial-scale=0.9, maximum-scale=0.9, viewport-fit=cover"
/>
<meta name="theme-color" content="#f8f7ff" />
<title>Aethera - AI Conversation & Image Generator</title>
<script type="module" src="./dist/main.js"></script>
<link rel="stylesheet" href="./dist/styles.css" />
</head>
<body class="bg-primary-50" x-data x-init="$store.navigation.init()">
<!-- Nav -->
<div
class="isolate fixed z-50 w-full flex justify-between mt-4 px-4 md:px-6"
<!-- Nav - Fixed and fully transparent so page content always sits behind
it (including under the iOS dynamic island, even at scroll=0). The
pill inside provides its own background. Pages clear the nav with
padding-top: var(--nav-h). -->
<header
class="fixed top-0 left-0 right-0 z-50 flex justify-between px-4 md:px-6 pb-3 pointer-events-none"
style="padding-top: max(1rem, env(safe-area-inset-top));"
>
<div class="size-9"></div>
<div class="size-9 flex items-center justify-start pointer-events-auto">
<button
x-show="$store.navigation.activeTab === 'chats'"
@click="$store.chatSidebar.toggleMobile()"
:aria-expanded="$store.chatSidebar.mobileOpen ? 'true' : 'false'"
aria-label="Toggle conversation list"
class="md:hidden p-2 rounded-md text-primary-700 hover:bg-primary-300 transition-colors cursor-pointer"
>
<svg
x-show="!$store.chatSidebar.mobileOpen"
xmlns="http://www.w3.org/2000/svg"
class="h-5 w-5"
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
>
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16" />
</svg>
<svg
x-show="$store.chatSidebar.mobileOpen"
xmlns="http://www.w3.org/2000/svg"
class="h-5 w-5"
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
>
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" />
</svg>
</button>
</div>
<!-- Main Nav -->
<nav class="inline-flex bg-primary-100 rounded-full shadow-sm">
<nav class="inline-flex bg-primary-100 rounded-full pointer-events-auto">
<a
href="#/chats"
:class="[
@@ -58,7 +92,7 @@
<button
@click="$store.theme.cycleTheme()"
x-init="$store.theme.init()"
class="p-2 cursor-pointer rounded-md text-primary-700 hover:bg-primary-300 transition-colors"
class="p-2 cursor-pointer rounded-md text-primary-700 hover:bg-primary-300 transition-colors pointer-events-auto"
aria-label="Toggle theme"
>
<svg
@@ -107,9 +141,9 @@
/>
</svg>
</button>
</div>
</header>
<!-- Main Content Area -->
<main id="page-content" class="h-dvh"></main>
<!-- Main Content Area - No fixed height; the document scrolls. -->
<main id="page-content"></main>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,6 @@
<div
class="flex flex-col gap-4 pt-16 mx-auto px-4 md:px-6 max-w-6xl"
class="flex flex-col gap-4 pb-4 mx-auto px-4 md:px-6 max-w-6xl"
style="padding-top: var(--nav-h);"
x-data="imageGenerator()"
>
<div>

View File

@@ -1,7 +1,8 @@
<form
x-data="settingsManager()"
@submit.prevent="saveSettings"
class="p-0.5 w-full flex flex-col gap-4 pt-16 mx-auto px-4 md:px-6 max-w-6xl"
class="p-0.5 w-full flex flex-col gap-4 pb-4 mx-auto px-4 md:px-6 max-w-6xl"
style="padding-top: var(--nav-h);"
>
<div>
<span class="text-sm font-medium font-semibold text-primary-700"