Canvas2D is awesome, but generally speaking, when I built interactive stuff(in 2D), I either used SVG, or some library that used WebGL as a backed (even for 2D stuff), like PixiJS. That was the most reliable way to get the best performance across the largest amount of devices.