v3.36.0: a deliberate "insert the next card" cue for batch runs
The waiting phase is the only moment the operator must act, so it now: - shows a card-into-reader SVG animation in the status modal (inline SVG, CSS keyframes in src/style.css; reduced-motion users get the static card-above-the-slot picture); - plays a short Web Audio chime once per card, edge-triggered in the 2 s poll so it never repeats (the AudioContext is unlocked by the Start click); - sets the tab title to "Insert next card" while the window is hidden; - offers a speaker toggle next to the status (persisted as simple_ram_batch_sound, on by default). The prebuilt style.css was rebuilt: it had gone stale and lacked utilities the UI already used (bg-blue-50 on the batch notice, inline-flex, mx-2, max-h-48, w-44, min-w-24). 1022 Python + 1062 frontend green; simple-v470.
This commit is contained in:
1 parent
194b88e7d1
commit
fb65644328
10 files changed
+365
-21
No files matched your search
+24
-1
@@ -4,4 +4,27 @@
|
||||
|
||||
.dark .text-heading {
|
||||
color: #f1f5f9;
|
||||
}
|
||||
}
|
||||
/* RAM batch: the "insert the next card" cue (v3.36.0).
|
||||
The card slides into the reader slot and back; the slot glows while the
|
||||
run waits. The static transform is the reduced-motion fallback: the card
|
||||
rests above the slot. */
|
||||
.ram-insert-card {
|
||||
transform: translateY(-14px);
|
||||
animation: ram-insert 2.8s ease-in-out infinite;
|
||||
}
|
||||
@keyframes ram-insert {
|
||||
0%, 12% { transform: translateY(-14px); }
|
||||
45%, 55% { transform: translateY(10px); }
|
||||
88%, 100% { transform: translateY(-14px); }
|
||||
}
|
||||
.ram-insert-glow {
|
||||
animation: ram-insert-glow 1.4s ease-in-out infinite;
|
||||
}
|
||||
@keyframes ram-insert-glow {
|
||||
0%, 100% { opacity: 0.35; }
|
||||
50% { opacity: 0.95; }
|
||||
}
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.ram-insert-card, .ram-insert-glow { animation: none; }
|
||||
}
|
||||
Reference in new issue
Block a user