Frequency decides motion
The more often people see it, the less it should move.
Emil KowalskiYou Don't Need AnimationsThe premise of this skill is Emil Kowalski's "You Don't Need Animations": sometimes the best animation is no animation.
Emil KowalskiYou Don't Need AnimationsI use Raycast hundreds of times a day. If it animated every time I opened it, it would be very annoying.
Emil KowalskiYou Don't Need AnimationsThink about what the user wants to achieve and how often they will see an animation.
From find-animation-opportunities and improve-animations.
One panel, four frequencies
Pick a frequency, then open both panels.
Same motion everywhereBad
Closed
400ms ease-out6.0s/dayMotion by frequencyGood
Closed
200ms ease-out, scale 0.97 + fade3.0s/day| Frequency | Opens a day | Verdict | Wait a day |
|---|
const MOTION_BY_FREQUENCY = {
"100+/day": null, // no animation. Ever.
"tens/day": { ms: 120, from: { opacity: 0 } },
"occasional": { ms: 200, from: { opacity: 0, transform: "scale(0.97)" } },
"rare": { ms: 300, from: { opacity: 0, transform: "translateY(8px) scale(0.95)" } },
};
function open(el, frequency) {
el.hidden = false;
const m = MOTION_BY_FREQUENCY[frequency];
if (!m) return;
el.animate([m.from, { opacity: 1, transform: "none" }], {
duration: m.ms,
easing: "cubic-bezier(0.23, 1, 0.32, 1)",
});
}
The command palette test
Open each, type immediately, press Esc. Repeat ten times.
300ms fade and slideBad
InstantGood
Sort the surfaces
Rate how often each surface is seen, then check.
Why it matters, pros and cons
Why it matters
Motion that delights once feels slow by the hundredth time.
Pros
- Core tools feel instant.
- No keystrokes lost to entrance animations.
- What does move gets noticed.
Cons
- Frequency is an estimate; measure real usage first.
- Some frequent changes still need a short fade.
- New users see everything for the first time.