Visual redesign, message input, reversed messages, systemd service
- New visual identity: solid dark cards, purple accent, iOS-like feel - Session replay: newest messages first, message input with send button - Chat proxy route for sending messages to sessions - systemd user service with deploy script - All pages restyled: Pulse, Memory, History, Skills, Cron, Soul, Config
This commit is contained in:
+21
-14
@@ -5,9 +5,9 @@ import Link from "next/link";
|
||||
import { Activity, Brain, Clock } from "lucide-react";
|
||||
|
||||
const TABS = [
|
||||
{ href: "/", label: "Pulse", icon: Activity, color: "#f59e0b" },
|
||||
{ href: "/memory", label: "Memory", icon: Brain, color: "#38bdf8" },
|
||||
{ href: "/history", label: "History", icon: Clock, color: "#22c55e" },
|
||||
{ href: "/", label: "Pulse", icon: Activity },
|
||||
{ href: "/memory", label: "Memory", icon: Brain },
|
||||
{ href: "/history", label: "History", icon: Clock },
|
||||
] as const;
|
||||
|
||||
export function BottomNav() {
|
||||
@@ -15,29 +15,36 @@ export function BottomNav() {
|
||||
|
||||
return (
|
||||
<nav
|
||||
className="fixed bottom-0 left-0 right-0 z-50 border-t border-white/[0.06]"
|
||||
className="fixed bottom-0 left-0 right-0 z-50"
|
||||
style={{
|
||||
background: "rgba(10,10,15,0.92)",
|
||||
backdropFilter: "blur(20px)",
|
||||
WebkitBackdropFilter: "blur(20px)",
|
||||
background: "rgba(17,17,19,0.95)",
|
||||
backdropFilter: "saturate(180%) blur(20px)",
|
||||
WebkitBackdropFilter: "saturate(180%) blur(20px)",
|
||||
borderTop: "1px solid var(--border)",
|
||||
paddingBottom: "var(--safe-bottom)",
|
||||
}}
|
||||
>
|
||||
<div className="flex justify-around items-center h-16 max-w-lg mx-auto">
|
||||
{TABS.map(({ href, label, icon: Icon, color }) => {
|
||||
<div className="flex justify-around items-center h-14 max-w-lg mx-auto">
|
||||
{TABS.map(({ href, label, icon: Icon }) => {
|
||||
const active =
|
||||
href === "/" ? pathname === "/" : pathname.startsWith(href);
|
||||
return (
|
||||
<Link
|
||||
key={href}
|
||||
href={href}
|
||||
className="flex flex-col items-center gap-1 px-6 py-2 transition-opacity"
|
||||
style={{ opacity: active ? 1 : 0.4 }}
|
||||
className="flex flex-col items-center gap-0.5 px-6 py-1.5"
|
||||
>
|
||||
<Icon size={22} style={{ color: active ? color : "#a1a1aa" }} />
|
||||
<Icon
|
||||
size={20}
|
||||
strokeWidth={active ? 2.2 : 1.5}
|
||||
style={{ color: active ? "var(--accent)" : "var(--text-3)" }}
|
||||
/>
|
||||
<span
|
||||
className="text-[10px] font-medium"
|
||||
style={{ color: active ? color : "#a1a1aa" }}
|
||||
className="text-[10px]"
|
||||
style={{
|
||||
color: active ? "var(--accent)" : "var(--text-3)",
|
||||
fontWeight: active ? 600 : 400,
|
||||
}}
|
||||
>
|
||||
{label}
|
||||
</span>
|
||||
|
||||
Reference in New Issue
Block a user