Canvas cursor demo (hand-rolled)

Compare this to the Underreact 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.