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:
Hermes
2026-04-09 21:12:14 -05:00
parent 65f71fe995
commit 4f5fde34a3
17 changed files with 428 additions and 415 deletions
+60 -25
View File
@@ -2,49 +2,84 @@
:root {
--safe-bottom: env(safe-area-inset-bottom, 0px);
--accent: #7c6ef0;
--accent-dim: rgba(124, 110, 240, 0.12);
--bg: #111113;
--bg-raised: #1a1a1f;
--bg-hover: #222228;
--border: rgba(255, 255, 255, 0.06);
--text-1: #ececef;
--text-2: #8e8e93;
--text-3: #48484a;
}
body {
background: #0a0a0f;
color: #f0f0f0;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
background: var(--bg);
color: var(--text-1);
font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", system-ui, sans-serif;
-webkit-font-smoothing: antialiased;
overscroll-behavior: none;
}
/* Glass card */
.glass {
background: rgba(255, 255, 255, 0.04);
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 16px;
/* Card - solid, not glass */
.card {
background: var(--bg-raised);
border-radius: 14px;
border: 1px solid var(--border);
}
.glass-hover:active {
background: rgba(255, 255, 255, 0.07);
.card-hover:active {
background: var(--bg-hover);
}
/* Scrollbar */
::-webkit-scrollbar { width: 4px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.1); border-radius: 2px; }
::-webkit-scrollbar { width: 0; }
/* Safe area padding for bottom nav */
/* Safe area */
.pb-safe {
padding-bottom: calc(4.5rem + var(--safe-bottom));
}
/* Platform badges */
.badge-cli { background: rgba(245,158,11,0.15); color: #f59e0b; }
.badge-telegram { background: rgba(56,189,248,0.15); color: #38bdf8; }
.badge-discord { background: rgba(139,92,246,0.15); color: #8b5cf6; }
.badge-whatsapp { background: rgba(34,197,94,0.15); color: #22c55e; }
.badge-web { background: rgba(168,85,247,0.15); color: #a78bfa; }
.badge {
font-size: 10px;
font-weight: 600;
padding: 2px 8px;
border-radius: 100px;
letter-spacing: 0.02em;
}
.badge-cli { background: rgba(255,255,255,0.06); color: #8e8e93; }
.badge-telegram { background: rgba(0,136,204,0.12); color: #29b6f6; }
.badge-discord { background: rgba(88,101,242,0.12); color: #7289da; }
.badge-whatsapp { background: rgba(37,211,102,0.12); color: #25d366; }
.badge-web { background: rgba(124,110,240,0.12); color: #7c6ef0; }
/* Pulse dot animation */
@keyframes pulse-dot {
0%, 100% { opacity: 1; }
50% { opacity: 0.4; }
/* Accent button */
.btn-accent {
background: var(--accent);
color: white;
border: none;
border-radius: 10px;
font-weight: 600;
font-size: 14px;
padding: 10px 16px;
transition: opacity 0.15s;
}
.animate-pulse-dot {
animation: pulse-dot 2s ease-in-out infinite;
.btn-accent:active { opacity: 0.7; }
.btn-accent:disabled { opacity: 0.3; }
/* Divider */
.divider {
height: 1px;
background: var(--border);
margin: 0 -16px;
}
/* Section label */
.section-label {
font-size: 13px;
font-weight: 600;
color: var(--text-2);
text-transform: uppercase;
letter-spacing: 0.04em;
}