# chat.saiden.dev — UI plan (Her, 2013)
**Brief:** simple chat. Operator prompt at bottom. Thinking indication. BT's reply
streams in as a typewriter animation. Get as close to Spike Jonze's *Her* /
Geoff McFetridge's OS1 as the medium allows.
---
## Layout philosophy
**One centered column. Nothing else.** No header bar. No sidebar. No footer.
The conversation IS the page.
```
┌──────────────────────────────────────────────────────────────┐
│ │
│ · │ ← tiny Saiden
│ │ sigil (12px)
│ │ top-right
│ │
│ │
│ Pilot │
│ how was your day? │
│ │
│ │
│ BT │
│ Quiet, Pilot. The mesh held. Three packets │
│ drifted from sazabi but they came back. Nothing │
│ I'd call attention to. │
│ │
│ │
│ │
│ Pilot │
│ what are you reading │
│ │
│ ● │ ← thinking
│ │ dot
│ │
│ │
│ │
│ ────────────────────────────────── │ ← input
│ speak to BT │ underline
│ │
└──────────────────────────────────────────────────────────────┘
↑ max-width ~640px, centered, generous breathing
```
**Key rules**
- Column width: `max-width: 38rem` (~608px) — letter-sized, like reading prose
- Vertical padding: `4rem` top + bottom
- Horizontal padding on small screens: `1.5rem`
- Auto-scroll to bottom on new message, but **slowly** (smooth easing, ~600ms)
---
## Color tokens
Mapped from the Her research notes. All warm, no cool.
```css
:root {
/* surfaces */
--bg: #f5ebe0; /* cream — page background */
--bg-soft: #f8e8db; /* dusty peach — hover surfaces, if any */
--surface-card: #f0d9c7; /* dusty rose — rarely used, only for emphasis */
/* text */
--ink: #3d2820; /* warm dark brown — BT's voice, primary */
--ink-muted: #8b6f60; /* dusty taupe — pilot's messages, system text */
--ink-faint: #b89a87; /* faded rose-brown — placeholders, timestamps */
/* accents — sparingly */
--coral: #e07856; /* coral salmon — primary accent (thinking dot,
the Saiden sigil tone) */
--red: #c54f3d; /* playful red — links, focus state */
--gold: #d4a574; /* muted gold — special states, never as text */
/* lines */
--line: #e8d4c0; /* dusty rose hairline — input underline */
}
```
**Saiden sigil reconciliation**
The existing red sigil at `saiden.dev/logo.png` is already warm + brushy + playful.
Keep it. Use at **tiny** size (16px) in the top-right corner. It's identity, not chrome.
---
## Typography
**No monospace.** This is the deliberate break from Phase 2's TUI plan.
| Role | Family | Weight | Size | Style |
|------|--------|--------|------|-------|
| BT messages | `Cormorant Garamond` (Google Fonts) | 500 | 1.25rem | regular |
| Pilot messages | same | 400 | 1.125rem | regular |
| Speaker labels (`Pilot`, `BT`) | `Caveat` (Google Fonts) | 400 | 1rem | italic, --ink-muted |
| Operator prompt input | `Cormorant Garamond` | 400 | 1.125rem | regular |
| Tiny chrome (timestamps, errors) | `Inter` 300 | 0.8rem | uppercase letter-spaced |
**Why Cormorant Garamond:** elegant 18thC-derived serif. Reads like a letter,
not an app. Matches "Beautiful Hand-Written Letters" mood.
**Why Caveat for labels:** Samantha's cursive callouts. Gives speaker labels a
handwritten, intimate feel — like a note left for someone, not a system tag.
**Loading optimization:** preload `cormorant-garamond-500.woff2` +
`caveat-400.woff2`, swap others.
---
## Components
### 1. Message — speaker label + body
```html