The problem is that your computer thinks it has touch capabilities, and because of this Discourse adds the touch and touch-discourse classe to <body>.
Replace them withno-touch and no-touch-discourse with your browser’s dev tools to test it: the rainbow effect should play on hover.
Most Discourse hover effects are probably absent from your computer because of this.
I have the same problem, and I don’t understand why my computer thinks it has touch capabilities. Perhaps because it’s connected (or was connected at some point?) to some device which “confers” a wrongly detected touch capability.
Edit: Now if your device has a real touch support (like a touch-compatible laptop, or tablet…), thent it’s purely a feature, not really an issue
Pretty sure you can re-enable the rainbow effect on touch-compatible devices with CSS on your instance.
I don’t know the details. I think browsers rely on the OS to know if the device is touch-compatible, then Discourse apply classes depending on the result… I’ll let more knowledgeable users answer.
In my case I suppose the touch capability comes from my oculus quest software, but I haven’t tried uninstalling/disabling it and try. Perhaps it comes from my mouse or keyboard, who knows
Yes, the animation is only applied under .discourse-no-touch, so if your laptop has a touch capability it won’t work.
Why it suddenly disappeared for you, I can’t be sure. Basically if any pointer gets evaluated as not coarse[1], it gets the above class.
Meaning, if any pointer is considered coarse, it does not get that class and the animation will appear.
So it could be you’ve connected…
Graphics tablets / drawing pads (pens)
Game controllers
Some presenter remotes, touchpads-on-keyboards,…
External touchscreen monitor plugged into a desktop
a low-precision pointer. The user can’t easily target small things. The classic example is a finger on a touchscreen — your fingertip covers a big area, so it’s “coarse.” Also things like a Wii remote or Kinect. ↩︎