Lesson 8 of 30
Motion is a communication channel, not a decoration budget. The question for every animation isn't 'does this look nice' — it's 'what is this movement telling the user that stillness wouldn't.'
12 min read
Every option explains itself — why the right one is right, and why each wrong one is wrong. Miss one and it comes back later on a spaced-repetition schedule.
Question 1 of 3
A global CSS rule sets every animation's duration to 0.01ms under `prefers-reduced-motion: reduce`, rather than deleting the animations entirely. Why zero the duration instead of removing the effect?
Hints without spoilers, and a plain explanation of why a wrong answer was wrong — answered only from this lesson. Free account, no card.
Sign up freeWhat interviewers actually ask about this, and what a strong answer has to cover.
A strong answer covers
Likely follow-ups
Every animation should answer a specific question: what does this movement communicate that a static state change wouldn't? Good motion clarifies cause and effect (this appeared because of that), spatial relationships (this panel came from that direction, and will return there), or state (this is loading, this is now active). Motion added because a page "felt flat" without asking what it's communicating is decoration, and decoration is the first thing that should get cut when a product needs to feel calmer, faster, or more serious.
Two practical conventions carry most of the weight:
ease-out), because that's closer to how physical objects actually decelerate.prefers-reduced-motion isn't an edge case — treat it as a requirement. Vestibular disorders can make large-scale motion (parallax, zooming, spinning) genuinely nauseating, not just "not to someone's taste." WCAG's success criterion for interaction-triggered animation (2.3.3, Animation from Interactions) is technically AAA-level, not AA — but respecting the OS-level prefers-reduced-motion setting is cheap, has no downside for users who don't need it, and is standard practice regardless of which conformance level a product targets.This platform's own motion system deliberately reuses a small vocabulary instead of inventing a new animation per component:
@keyframes praxis-rise {
from { opacity: 0; transform: translateY(8px); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes praxis-dot-pulse {
0%, 80%, 100% { opacity: 0.35; transform: translateY(0); }
40% { opacity: 1; transform: translateY(-3px); }
}
praxis-rise communicates one specific thing — new content has arrived — and gets reused for dashboard cards, quiz feedback, and lesson content alike, rather than each surface inventing its own entrance. dot-pulse communicates "something is actively happening" (an AI tutor thinking, a logo's spark) — and this platform's own animated logo deliberately reuses that exact same pulse instead of authoring new "thinking" motion just for the mark. That reuse is itself a design decision: a product with five different loading animations is communicating five different things by accident, when it means to communicate one.
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
}
}
ease-out (fast start, gentle stop) reads as something arriving and settling; linear reads as mechanical, appropriate for a progress bar tracking real elapsed time but wrong for almost everything else, because nothing in the physical world actually moves at a constant velocity and then just stops."When would you not add an animation?" is a more revealing question than "how would you animate this," because it tests whether a candidate treats motion as a deliberate, bounded design language or as a feature that gets sprinkled on for polish. The strongest answer names what the motion needs to communicate before naming how to build it — and can point to prefers-reduced-motion as a requirement they'd build in from the start, not bolt on after a complaint.