Motion and Feedback
Reduced Motion Pulse
Keep Status Visible Without Movement
A recording dot can pulse by default, then become steady when the user asks for reduced motion.
Program
Motion can draw attention, but it should not be required. A reduced-motion media query keeps the status visible while removing the loop.
reduced_motion_pulse.html
<style>
@keyframes pulse {
50% { opacity: 1; transform: scale(1.2); }
}
.status { display: inline-block; width: 1rem; height: 1rem; border-radius: 999px; background: #dc2626; opacity: 0.55; animation: pulse 1.2s infinite; }
@media (prefers-reduced-motion: reduce) {
.status { animation: none; opacity: 1; }
}
</style>
<span class="status" aria-label="Recording"></span>
prefers-reduced-motion
prefers-reduced-motion lets CSS respond to a user's motion preference.
animation
animation applies keyframes over time; setting it to none removes the motion.