The previous chrome was a single flex strip with `grid-template-columns:
1fr auto 1fr`, which sorted items by horizontal position rather than
by meaning. Four unlabeled time displays (elapsed, countdown, target,
clock) read as an undifferentiated row of MM:SS digits. The slide
counter wrapped to two lines. The exit button clipped at the right
edge. Icons were a mix of Unicode glyphs and Tabler SVGs.
This rebuild lands the chrome in its final shape:
Structure. Three free-floating overlay panels (Time, Navigate,
Status) on the presenter's base canvas, sharing the visual
language of the drawing toolbar (overlay background, hairline
border, radius.md). The Overlay tonal tier reads as "interactive
control surface"; the Surface tier is reserved for informative
content (notes, stage, sidebar). The chrome strip wraps the
panels with horizontal padding to redistribute the inter-panel
space.
Cell grid within each panel. Adjacent children get a
`border-left: 1px solid highlight.med` (the audience toolbar's
`.toolset > * + *` pattern). The slide counter is exempt; its
text-only natural height makes its border shorter than the
bordered buttons around it.
Labeled time cells. ELAPSED in the Time panel and CLOCK in the
Status panel render as two-line dashboard cells (small mono
uppercase label + tabular-numeral value). Cell width is locked to
`calc(5ch + 0.2em)` so the panel never reflows as digits tick.
Square icon buttons. `align-self: stretch` ties button height to
the panel content; `aspect-ratio: 1 / 1` locks width to height.
Icons sit centered at 1.2em.
Tabler icons everywhere. The remaining Unicode glyph buttons
(prev/next arrows, play/pause, refresh) are now proper Tabler
SVGs in the same outline-or-filled language as the existing
overview/exit/draw-tools icons.
Floating jumpback callout. Pulled out of the navigation cluster
entirely and anchored to the bottom-left of the stage when a
return slide is stored. Renders at stage scale in the link tier
for prominence, so the affordance actually captures attention
instead of getting lost as a tiny icon in a row of controls.
Layout in the chrome stays stable regardless of whether a
jumpback is set.
Countdown timer removed. The elapsed timer covers what most
presenters need; the countdown added permanent chrome noise
without enough function to justify it. The actor state machine's
countdown fields stay in place so it can be reintroduced later
without re-plumbing the runtime, but the UI and click-to-edit
target machinery are gone.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>