fix(calls): affirmative recording state + control-bar tooltips (LC-416) #433

Merged
longjacksonle merged 1 commit from feat/lc-416-recording-state-tooltips into main 2026-06-21 22:21:04 +02:00

Follow-up polish on the voice-call control bar (the LC-416 redesign in #432 is merged). Two reviewer issues from the ref screenshots.

1. Recording state read as disabled, not "on"

The active Transcribe button used a pale --danger-surface fill, which looked like a hover-ghost / disabled control - the strongest emphasis was on the inactive (solid) buttons while the live one looked faded. It is now an affirmative, saturated solid red fill (the same --danger / --danger-content pairing as Leave, so the on/off contrast is unambiguous in light, dark, and high-contrast), with the record glyph's core pulsing. Idle stays the quiet neutral button.

2. Transcribe vs Transcript at icon-only width

They sit adjacent, share a stem, and collapse to bare icons. Every control-bar button now has a real hover/focus tooltip via the app tooltip layer (data-lc-tip) instead of the native title (which would double-render). Transcribe and Transcript get distinct descriptive tips - "Start or stop transcription" / "Toggle transcript panel" - so the collapsed state stays usable; their icons remain distinct (record ring+dot vs speech bubble). aria-label is kept as the accessible name. Voice-header tips open downward (data-lc-tip-pos="bottom") so they are not clamped against the top of the viewport; the bottom-anchored 1:1 call bar keeps the default upward tip.

New i18n: voice-transcribe-tip / voice-transcript-tip (en + es). Frontend only - no Rust/route/schema change. just check, just test, just test-saas all pass; Tailwind rebuilt.

🤖 Generated with Claude Code

Follow-up polish on the voice-call control bar (the LC-416 redesign in #432 is merged). Two reviewer issues from the ref screenshots. ## 1. Recording state read as disabled, not "on" The active Transcribe button used a pale `--danger-surface` fill, which looked like a hover-ghost / disabled control - the strongest emphasis was on the inactive (solid) buttons while the *live* one looked faded. It is now an affirmative, saturated solid red fill (the same `--danger` / `--danger-content` pairing as Leave, so the on/off contrast is unambiguous in light, dark, and high-contrast), with the record glyph's core pulsing. Idle stays the quiet neutral button. ## 2. Transcribe vs Transcript at icon-only width They sit adjacent, share a stem, and collapse to bare icons. Every control-bar button now has a real hover/focus tooltip via the app tooltip layer (`data-lc-tip`) instead of the native `title` (which would double-render). Transcribe and Transcript get distinct descriptive tips - "Start or stop transcription" / "Toggle transcript panel" - so the collapsed state stays usable; their icons remain distinct (record ring+dot vs speech bubble). `aria-label` is kept as the accessible name. Voice-header tips open downward (`data-lc-tip-pos="bottom"`) so they are not clamped against the top of the viewport; the bottom-anchored 1:1 call bar keeps the default upward tip. New i18n: `voice-transcribe-tip` / `voice-transcript-tip` (en + es). Frontend only - no Rust/route/schema change. `just check`, `just test`, `just test-saas` all pass; Tailwind rebuilt. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
fix(calls): make recording state affirmative + add control tooltips (LC-416)
All checks were successful
check-secrets / Kingfisher (push) Successful in 8s
check-secrets / Nosey parker (push) Successful in 8s
check-secrets / TruffleHog (push) Successful in 9s
check-secrets / Kingfisher (pull_request) Successful in 11s
check-secrets / Nosey parker (pull_request) Successful in 10s
check-secrets / TruffleHog (pull_request) Successful in 11s
Create release / Create release from merged PR (pull_request) Has been skipped
Check / clippy + fmt + tests (pull_request) Successful in 6m22s
3d5bf4016f
Follow-up polish on the voice-call control bar:

- Active Transcribe now reads as affirmatively ON. The recording state used a pale --danger-surface fill that looked like a hover-ghost / disabled control, putting the strongest emphasis on the inactive (solid) buttons instead of the live one. It is now a solid saturated red fill (the same --danger / --danger-content pairing as Leave, so the on/off contrast is unambiguous in light, dark, and high-contrast) with the record glyph's core pulsing. Idle stays the quiet neutral button.

- Every control-bar button now has a real hover/focus tooltip via the app tooltip layer (data-lc-tip), not the native title (which double-rendered next to it). Transcribe and Transcript - adjacent, similar-stemmed, and label-less at icon-only width - get distinct descriptive tips ("Start or stop transcription" / "Toggle transcript panel") so the collapsed state stays usable; their icons remain distinct (record ring+dot vs speech bubble). aria-label is kept as the accessible name. Voice-header tips open downward (data-lc-tip-pos="bottom") so they are not clamped against the top of the viewport; the bottom-anchored 1:1 call bar keeps the default upward tip.

New i18n: voice-transcribe-tip / voice-transcript-tip (en + es). Frontend only. just check, just test, just test-saas all pass; Tailwind rebuilt.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
longjacksonle deleted branch feat/lc-416-recording-state-tooltips 2026-06-21 22:21:05 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
psa-systems/lets-chat!433
No description provided.