Merge branch 'feat/ui-polish'

This commit is contained in:
amosblomqvist
2026-09-19 22:39:38 +03:00
13 changed files with 982 additions and 426 deletions
+24
View File
@@ -389,6 +389,30 @@ body {
}
}
/* Settings dialog pop (settings-app wave, 2026-09-20): a short fade +
2% settle-scale — understated by design, the app's motion taste
(200ms sidebar, 150ms here); honors reduced-motion by appearing. */
@keyframes settings-pop {
from {
opacity: 0;
scale: 0.98;
}
to {
opacity: 1;
scale: 1;
}
}
.settings-dialog-pop {
animation: settings-pop 150ms ease-out;
}
@media (prefers-reduced-motion: reduce) {
.settings-dialog-pop {
animation: none;
}
}
/* ─────────────────────────────────────────────────────────────────────────
Electron merged chrome (owner, 2026-09-17). The system title bar is
hidden (titleBarStyle: "hiddenInset" in electron/main.cjs); the app's
+10 -7
View File
@@ -1,8 +1,11 @@
/** The settings route (thin settings wave): server shell over the client
* page — same shape as the chat routes (AppShell wraps via the root
* layout, so the sidebar + its Settings entry come along). */
import { SettingsPage } from "@/components/settings/settings-page.tsx";
import { redirect } from "next/navigation";
export default function Page() {
return <SettingsPage />;
}
/**
* The settings surface graduated into a centered dialog over the app
* (settings-app wave, 2026-09-20 — owner decision: modal-only, no page).
* The URL stays routed but redirects: nothing should land on a dead
* page; the dialog opens via the sidebar row or mod+,.
*/
export default function SettingsPage() {
redirect("/chat/new");
}