Why We Built Prefers-Reduced-Motion Into Every Animation

Motion-heavy UIs are everywhere. Starfields, physics simulations, pulsing glows—they look great, but they can make some users dizzy, nauseous, or worse. Here's how we built a comprehensive reduced-motion mode into Neorgon's hub, why it matters, and what we learned about accessibility-first engineering.

The Problem with Fancy Animations

Neorgon's hub has a lot of motion. Animated starfield background. Physics-simulated category pills that orbit and bounce. Matrix rain. Pulsing glows on hover. It looks cool.

But here's the thing: motion can cause real harm. People with vestibular disorders, migraines, autism, or sensory sensitivities can experience:

  • Dizziness and vertigo
  • Nausea and motion sickness
  • Headaches and migraines
  • Anxiety and cognitive overload
  • Disorientation and confusion

For some users, motion isn't just annoying—it's a barrier to entry. A tool they can't use because it makes them physically uncomfortable.

💡 The Statistic That Changed Our Mind

About 30-50% of the population is sensitive to motion on screens, ranging from mild discomfort to severe symptoms. That's not an edge case. That's half your potential users.

What the Web Standards Say

The prefers-reduced-motion CSS media query has been around since 2017. When a user enables "Reduce motion" in their system settings (macOS, iOS, Windows, Android), the browser exposes this preference.

As of 2026, all modern browsers support it. Yet most websites don't implement it. Why?

The Excuses (And Why They're Wrong)

  • "It's too much work." → Takes 20 minutes if you plan for it upfront.
  • "No one uses that setting." → They do, but you don't see them because they leave your site.
  • "It'll look boring." → Static doesn't mean lifeless. Thoughtful stillness beats chaotic motion.
  • "We're not targetting sensitive users." → You don't know who they are. Many people don't disclose disabilities.

How We Implemented It (The Technical Details)

1. Identify All Motion Sources

First, we audited the entire hub for anything that moves:

Motion Audit Checklist

2. Write the CSS Media Query

css/style.css
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }

  /* Disable canvas animations entirely */
  #starfield, #matrixCanvas,
  #interventionCanvas {
    display: none !important;
  }

  /* Make physics pills static */
  .tag-pill {
    animation: none !important;
    transform: none !important;
    transition: none !important;
  }

  /* Remove orb animations */
  .orb {
    animation: none !important;
  }

  /* Disable hover effects */
  .card-content:hover {
    transform: none !important;
  }

  /* Hide constellation connections */
  #constellationCanvas {
    display: none !important;
  }
}

3. Test It

macOS/iOS: Settings → Accessibility → Motion → Reduce Motion

Windows: Settings → Ease of Access → Display → Show animations

Android: Settings → Accessibility → Remove animations

🧪 Testing Tip: Browser DevTools

In Chrome/Edge DevTools → Rendering tab → Emulate CSS media feature → prefers-reduced-motion: reduce

What Works (And What Doesn't)

✅ What We Got Right

  • Complete removal - No subtle motion left behind
  • High specificity - !important ensures override
  • Canvas disabling - display: none stops CPU usage
  • Static alternatives - No content is lost, just motion

⚠️ What We Learned the Hard Way

  • Don't rely on animationend events - They won't fire with reduced motion
  • Test with real devices - DevTools emulation doesn't catch everything
  • Consider reduced transparency too - Some users need high contrast
  • Avoid pointer-events: none - Makes static fallbacks unusable

Why This Matters for Tool Builders

Neorgon is infrastructure. If a user can't access the hub, they can't access the tools. A timezone converter that requires login is broken. A hub that makes users dizzy is broken.

Accessibility isn't a feature. It's infrastructure.

Every tool we build—every animation, every hover effect, every physics simulation—should ask: "What happens when motion is removed?" If the answer is "it breaks," we need to redesign.

The Rule We Now Live By

"Motion is an enhancement, not a requirement."

If your UI breaks without motion, you haven't built an animation—you've built a dependency.

This principle guides everything: tool interactions, hover states, loading indicators. Motion should make things better, not possible.

What You Can Do Right Now

  1. Audit your site - Find every animation, transition, and canvas
  2. Add the media query - Start with the blanket animation-duration rule
  3. Test it - Enable it on your device, see what breaks
  4. Fix the breaks - Make sure static fallbacks work
  5. Document it - Show users you care about accessibility

It takes an afternoon. It helps half your users. It's one of the highest ROI accessibility improvements you can make.

Further Reading