A simple web design application that lets you draw rectangles and ovals on an html canvas, then select, reposition, and resize them. You can also edit their fill color and delete elements.
- A data structure to describe the file
- A renderer that builds a visual document from said file
- application state (tool choice, input lifecycle events)
- element picking (what's under the mouse)
- element selection, modification, resize handle hotspots