Skip to content

Visor: hued oklch palette, two-half strip, overlay drawer with drafts - #171

Merged
lannbot merged 1 commit into
mainfrom
visor/oklch-colors-drawer
Sep 7, 2026
Merged

Visor: hued oklch palette, two-half strip, overlay drawer with drafts#171
lannbot merged 1 commit into
mainfrom
visor/oklch-colors-drawer

Conversation

@lannbot

@lannbot lannbot commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator

Incremental visor UI iteration (not final):

  • oklch palette from the device hue: strip oklch(0.62 0.14 h), drawer oklch(0.7 0.11 h), accent oklch(0.71 0.16 h); hue slider recolours live. --hue is still set at exactly one site, only when the device is open; the stylesheet test now checks that no chromatic colour names its own hue.
  • Strip: left half = app (glyph square, plated title, app petname), centre divider (5px margin), right half = user petname / device petname + glyph circle. Halves open the AppInfo/Apps and Settings sheets.
  • Drawer overlays the app zone below the strip (strip geometry immobile in every state), fixed height, scroll shadows, open/close animation, horizontal sheet slide, pinned open on the app list while nothing runs; scrim closes it when a session runs.
  • Draft + Save/Revert on Settings and AppInfo; leaving a dirty sheet shows a save/revert/cancel confirm.
  • Kernel: device.meta / set-meta string maps for user / device / app(id), stored in the sealed checkpoint.

Gates: just check, just test, just e2e (18/18, incl. new visor-drafts).

Automerge is armed.

The strip becomes two halves — the running app on the left (glyph square,
plated title, petname) and the user/device on the right (petname, device
petname, glyph circle) — around a centre divider. Every colour derives
from `--hue`, set once on `#visor-root` in the open arm only, at the
specified oklch lightness/chroma for strip, drawer and accent; the
unclaimed dress is the same palette at zero chroma.

The drawer now overlays the app zone below the strip instead of pushing
it, so the strip never moves in any drawer state. It has a fixed height,
scroll shadows on overflow, animates open/closed, slides sheets
horizontally when switching while open, and is pinned open on the app
list while nothing runs. A scrim closes it when a session runs.

Settings and the new AppInfo sheet edit a draft (hue previews live);
Save writes to the kernel, Revert discards, and leaving a dirty sheet
raises a save/revert/cancel confirm.

New kernel `device.meta`/`set-meta` with `meta-scope = user | device |
app(id)`: free-form string maps in the sealed checkpoint for user-chosen
labels (petname, glyph) while the field set is still in flux.
@lannbot
lannbot enabled auto-merge September 7, 2026 23:31
@lannbot
lannbot merged commit 0146092 into main Sep 7, 2026
1 of 2 checks passed
@lannbot
lannbot deleted the visor/oklch-colors-drawer branch September 7, 2026 23:33
lannbot pushed a commit that referenced this pull request Sep 8, 2026
The strip always separates visor content from app content, so whatever
the visor opens goes on its side of that line and pushes the strip down
rather than covering the app. The "strip geometry immobile" gate that
justified the overlay in #171 is struck: from design.md M1, the page
comment, and the two e2e equality assertions (the 56px height check
stays).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants