Back to projects

Canvas

A browser-based drawing tool with free-form sketching, SVG backgrounds, and a full color palette. Works on desktop and touch screens.

My role
Frontend development
Platform
Web
Project
Drawing tool
Canvas project preview

The project

The idea

A quick sketch can make an idea easier to explain. Canvas explores how to bring free-form drawing, shapes, arrows, and text into a browser workspace that works with both mouse and touch input. I built it as a personal project to learn Vue.js and canvas-based interaction.

The solution

Users can draw, select and arrange objects, adjust colours and backgrounds, and save or export their scenes. The tools support quick diagrams as well as free-form sketches, with editing controls kept alongside the workspace.

The build

The app uses Vue.js and TypeScript, with Fabric.js for drawing and object manipulation and Pinia for state management. I added a custom free-drawing mode to improve stroke behaviour. The app is hosted on GitHub Pages, and I continue to refine its tools and interactions.

Built with

  • Vue.js
  • TypeScript
  • Pinia
  • GitHub Pages
  • Fabric.js

Next project

Math Mews