Canvas cursor demo (using Underreact)

Compare this to the hand-rolled version.

Ideally, both versions will keep the white box precisely under the mouse cursor at all times. Unfortunately, JavaScript events take some time to make it through the event queue, so both versions have some noticeable lag.