@davidrevoy
I had something like this in mind for a while.

Using CSS and SVG, though.

Might be worth to study the code.
Bookmarked for now.