@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.