Recording HUD
Recording HUD: two variants, one shared live meter & controls
With logo: the canonical default, Nockerl is listening
No logo: explicit opt-out for tightly embedded chrome
State: Recording · 0:08. The HUD is live & token-colored.
On Voice (macOS) this floating command pill is the top-of-window surface. Voice is a
menu-bar utility with no title bar, so the pill (not a TopBar) is
its brand-anchored header: the mark, a divider, and the morphing status content in a capsule
with the 1.5pt cyan outline. Android and web carry a real top bar; Voice uses this pill.
Parameters
Section titled “Parameters”The recording HUD is canonical on both Voice (RecordingHUD.swift) and Android
(VoiceRecordingUI.kt); web is derived. The meter geometry + the
ln(raw+1)/ln(32768) level math are identical across all three. Honest divergences:
- Controls: neither native HUD ships an explicit stop / pause / cancel trio.
Voice’s panel is non-interactive (
ignoresMouseEvents, since it must never steal the ⌘V paste); Android surfaces only an inline Cancel (itsonStopis wired but not drawn). The demo’s icon-button controls (incl. pause/resume) are an original web affordance built from the icon-button vocabulary, not yet a native API. - Result phase. The three platforms converged here: a success row now ships on web too,
a checkmark (pasted) / clipboard (copied) mark in the earned brand cyan + “Pasted” /
“Copied to clipboard”, then a shoot-down dismiss after the ~1.8s beat (constant height,
width-only morph). Web
phasegainsresult; the mark is cyan (not green) to keep the HUD monochromatic-cyan. Voice’sresult(pasted:)is the value-exact source; Compose mirrors it. - Hint pill: Voice also has a transient
hint(message)phase (a ⌘ glyph + message: the launch “ready” / hotkey prompt, auto-hides 4.5s). It’s app-level guidance, not a recording-lifecycle state, so it stays Voice-side and is not part of the shared phase set. - Container radius: both apps use the full stadium (pill) for the floating HUD, a deliberate exception to the 12px control radius (it reads as chrome, like the input bar). The error border swaps to the warm warning token on both.
- Timer color: the elapsed clock is the warm record color while recording (error token), a status signal, not a decorative accent.