fix(a11y): reduced-motion for spinner/call-avatar; tap-to-skip boot; AA accent contrast

- SendingSpinClass and CallAvatarAnimation respect prefers-reduced-motion
  (static opacity fallback), matching MsgAppearClass.
- Terminal boot overlay dismisses on click/tap and is aria-hidden.
- Primary.Main: Midnight #6b7ca8 -> #6f80aa (4.29 -> 4.51:1), Lotus
  Terminal Light #c44e00 -> #ba4a00 (4.14 -> 4.52:1), hue preserved.

Fixes #84
Fixes #86
Fixes #52

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPmy3tPq869XDW4njjVaKA
This commit is contained in:
2026-09-12 20:28:41 -04:00
co-authored by Claude Opus 5
parent 2e14980de6
commit 7aba71490a
3 changed files with 40 additions and 9 deletions
+6
View File
@@ -34,6 +34,8 @@ export function runLotusBootSequence(force = false): void {
const overlay = document.createElement('div');
overlay.id = 'lt-boot';
// Decorative boot animation, not content — hide it from assistive tech.
overlay.setAttribute('aria-hidden', 'true');
overlay.style.cssText = [
'position:fixed',
'inset:0',
@@ -79,6 +81,7 @@ export function runLotusBootSequence(force = false): void {
const dismiss = (): void => {
clearInterval(interval);
document.removeEventListener('keydown', onKey);
overlay.removeEventListener('click', dismiss);
overlay.style.transition = 'opacity 0.4s ease';
overlay.style.opacity = '0';
setTimeout(() => overlay.remove(), 400);
@@ -88,6 +91,9 @@ export function runLotusBootSequence(force = false): void {
if (e.key === 'Escape') dismiss();
};
document.addEventListener('keydown', onKey);
// No touch/click dismiss previously existed — mouse/touch users had no way
// to skip besides the keyboard-only Escape hint.
overlay.addEventListener('click', dismiss);
let i = 0;
let text = '';