diff options
Diffstat (limited to 'docs/superpowers/specs')
| -rw-r--r-- | docs/superpowers/specs/2026-10-17-obs-pill-design.md | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/docs/superpowers/specs/2026-10-17-obs-pill-design.md b/docs/superpowers/specs/2026-10-17-obs-pill-design.md index 3331bba..9a3e3f3 100644 --- a/docs/superpowers/specs/2026-10-17-obs-pill-design.md +++ b/docs/superpowers/specs/2026-10-17-obs-pill-design.md @@ -88,19 +88,22 @@ password change in OBS fixes it without a restart. Right of the status pill, slides with the others, exists only while `Obs.connected`. -Left to right: +**At rest**: a record dot, grey when idle, red while recording, dimmed while +paused, followed by `mm:ss` (`h:mm:ss` past an hour) while recording. A +click opens the panel. -- **Record**: idle icon, or a red dot and `mm:ss` (`h:mm:ss` past an hour) - while recording. Click toggles recording. -- **Pause**: only while recording. Click toggles pause; the dot dims while - paused. -- **Scene**: current scene name. Click steps to the next, wheel steps - previous (up) and next (down), wrapping. Hidden with fewer than two scenes. -- **Webcam**: camera icon, struck while hidden. Click toggles. Absent when - `camId` is -1. +**Panel** (`win.panel === "obs"`), morphing the capsule as the status pill +does for sound; Escape and an outside click close it like the others: -The pill names its own panels (AGENTS.md): it opens none, so it never -expands. +- A status line: `Not recording`, `Recording 03:21` or `Paused 03:21`. +- Buttons (`desktop/Button.qml`): Record/Stop, Pause/Resume (while + recording), Show/Hide webcam (absent when `camId` is -1). +- The scene list in OBS's order, current one highlighted, click to switch. + A plain column; about ten scenes fit the island's 480px window. + +The pill names its own panel, `obs` (AGENTS.md). OBS quitting with the panel +open clears `win.panel`, or the island would stay held open by a pill that +no longer exists. ## Sliver @@ -115,7 +118,6 @@ colour, is what says "recording". Not recording: the sliver is unchanged. In `Logic.js`, covered by `test_logic.js`: - `obsElapsed(ms)`: `0` -> `00:00`, `61000` -> `01:01`, `3661000` -> `1:01:01` -- `obsStep(list, cur, d)`: next/previous scene with wrap, `cur` missing -> first ## Errors |
