Я сделал на KineticJS кнопку. Причем не простую! Хаки рисуют картинку как Path (куча rect), чтобы Кинетик мог их определить.
Есть два слоя: Events и Картинки.
Протестировать:
http://html5tester.h19.ru/alpha/
http://html5tester.h19.ru/alpha/maskimage.js - сборник JS хаков для HTML5 Canvas.
http://html5tester.h19.ru/alpha/events.js - сама кнопка.
Однако если внимательно прочитать код, то понятие "слои" будут сильно размыты.
Скорее покажется 2 системы.
Здесь не так, как в HTML: водишь по квадрату. Здесь форма необычная, и определяется только самой картинкой.
В данном примере форма близка к круглой!