Frequency decides motion

The more often people see it, the less it should move.

Emil KowalskiYou Don't Need Animations
The premise of this skill is Emil Kowalski's "You Don't Need Animations": sometimes the best animation is no animation.
emilkowal.skiRead article ↗
Emil KowalskiYou Don't Need Animations
I use Raycast hundreds of times a day. If it animated every time I opened it, it would be very annoying.
emilkowal.skiRead article ↗
Emil KowalskiYou Don't Need Animations
Think about what the user wants to achieve and how often they will see an animation.
emilkowal.skiRead article ↗

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/day
Motion by frequencyGood

Closed

200ms ease-out, scale 0.97 + fade3.0s/day
FrequencyOpens a dayVerdictWait 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.