01
Semantic
Keep nominal shapes editable after their hand-drawn strokes are compiled.
A shared geometry, rendering, routing, animation, and annotation stack for expressive web interfaces.
Use the layer you need or compose the complete pipeline.
| Package | Use it for |
|---|---|
@rougher-stuff/roughjs | Canvas/SVG drawing, semantic drawables, retained updates, and animation |
@rougher-stuff/perfect-arrows | Renderer-independent arrow routes and decorations |
@rougher-stuff/rough-notation | DOM and Range annotations, layers, connectors, and callouts |
@rougher-stuff/markdown | Annotation directives, semantic themes, and progressive HTML |
@rougher-stuff/geometry | Paths, transforms, metrics, intersections, and rounded contours |
@rougher-stuff/animation | Framework-neutral progress controllers and timelines |
The packages remain useful on their own. Together, they preserve geometry from the first shape to the final interaction.