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:
- ✓ #starfield - Animated background canvas
- ✓ #matrixCanvas - Matrix rain effect
- ✓ #interventionCanvas - CRT broadcast effect
- ✓ .tag-pill - Physics simulation
- ✓ .orb - Ambient glow orbs
- ✓ .ghost-card - Pulsing glow animation
- ✓ .card-content:hover - Hover transitions
- ✓ #constellationCanvas - Search connections
2. Write the CSS Media Query
@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 -
!importantensures override - Canvas disabling -
display: nonestops 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
- Audit your site - Find every animation, transition, and canvas
- Add the media query - Start with the blanket
animation-durationrule - Test it - Enable it on your device, see what breaks
- Fix the breaks - Make sure static fallbacks work
- 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.