From da3e655ffd5f6d6bd9deb27883a543bf4c0e0530 Mon Sep 17 00:00:00 2001 From: MiTHRAL Date: Wed, 22 Apr 2026 02:25:21 -0400 Subject: [PATCH] docs: add sanctum-web layout redesign spec --- .../2026-04-22-sanctum-web-layout-redesign.md | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 docs/superpowers/specs/2026-04-22-sanctum-web-layout-redesign.md diff --git a/docs/superpowers/specs/2026-04-22-sanctum-web-layout-redesign.md b/docs/superpowers/specs/2026-04-22-sanctum-web-layout-redesign.md new file mode 100644 index 0000000..6ee50b7 --- /dev/null +++ b/docs/superpowers/specs/2026-04-22-sanctum-web-layout-redesign.md @@ -0,0 +1,62 @@ +# sanctum-web Layout Redesign + +**Date:** 2026-04-22 +**Repo:** git.mithraic.cloud/ad3laid3/sanctum-web +**Base:** stoatchat/for-web (Solid.js + Vite + TypeScript) + +--- + +## Goal + +Fork the Stoat web frontend and fix its layout proportions so the app feels native on desktop and works properly as a PWA. The message area should dominate the screen. Nothing in the API, auth, or business logic layer is changed. + +--- + +## Layout + +The root shell is rebuilt as a four-column CSS Grid: + +``` +[server icons 65px] [channels 240px] [messages 1fr] [members 240px] +``` + +| Panel | Width | Behaviour | +|---|---|---| +| Server icon sidebar | 65px fixed | Icon-only, scrollable, always visible | +| Channel list | 240px default | User-resizable, collapsible | +| Message area | fills remaining space (1fr) | Message list + pinned input at bottom | +| Member list | 240px | Collapsible, hidden by default on narrow viewports | + +--- + +## Scope + +**Changed:** +- Root layout shell component — CSS replaced with proper grid +- Global CSS spacing/sizing tokens that cause proportion issues + +**Not changed:** +- API client +- WebSocket layer +- Auth flow +- Message rendering components +- Channel/server/member components +- Any business logic + +--- + +## Build & Deployment + +- Repo: `git.mithraic.cloud/ad3laid3/sanctum-web` +- CI: Forgejo Actions — `pnpm build` on push to `main`, rsync `dist/` to VPS +- Serves at: `mithraic.space/app` (replaces current for-web output, no Caddy changes) +- Sanctum desktop app picks up the new frontend automatically on next launch + +--- + +## Out of Scope + +- Tauri desktop wrapper (separate project, builds on this frontend) +- Feature additions beyond layout fixes +- Mobile/responsive breakpoints beyond basic collapse behaviour +- Rebranding (keep existing Stoat/Revolt dark aesthetic)