Christianliebel Paint Versions Save

Open source, Web Components-based remake of MS Paint using modern web capabilities. 🎨🖌

v1.3.0

2 weeks ago

1.3.0 (2024-05-16)

Features

  • add file handler icon (a817e21), closes #568
  • e2e: migrate to Cypress 10 (6d3e99a)
  • elements: add throttledPointerMove method to Canvas class (0a5cdbd)
  • helpers: bring back Local Font Access API (63c8f8f)
  • index.html: reference files in public folder (698e96c)
  • tools: implement ellipse tool (468166c), closes #27

Bug Fixes

  • custom-elements: update manifest to match spec (bf03dd5)
  • do not process manifest (ed04e36)
  • edit: fix copy command for Safari (13c4d52)
  • elements: update app.ts - fix bug with z-index (e58e653)
  • expose Vite port locally (9ad8b31)
  • menus: cast to unknown as FileSystemHandle types don’t overlap (3e96547)
  • tools: fix TypeScript errors after migration to TS 5 (f2341e0)
  • update default ports to Vite’s 5173 (d942ccd)
  • use built-in FileSystemHandle types (179e6a0)

v1.2.0

8 months ago

1.2.0 (2023-09-11)

Features

  • add file handler icon (a817e21), closes #568
  • e2e: migrate to Cypress 10 (6d3e99a)
  • helpers: bring back Local Font Access API (63c8f8f)
  • tools: implement ellipse tool (468166c), closes #27

Bug Fixes

  • custom-elements: update manifest to match spec (bf03dd5)
  • edit: fix copy command for Safari (13c4d52)
  • elements: update app.ts - fix bug with z-index (e58e653)
  • menus: cast to unknown as FileSystemHandle types don’t overlap (3e96547)
  • use built-in FileSystemHandle types (179e6a0)

v1.1.1

2 years ago

1.1.1 (2022-02-28)

Bug Fixes

  • custom-elements: update manifest to match spec (bf03dd5)

v1.1.0

2 years ago

1.1.0 (2021-09-03)

Features

v1.0.1

2 years ago

1.0.1 (2021-09-03)

v1.0.0

2 years ago

1.0.0 (2021-09-03)

Features

  • action: add draw opaque action (47efb87), closes #61
  • action: preliminary version of View Bitmap (97a652f)
  • actions: add preliminary file actions (801916c)
  • actions: add save action (0d94ef4)
  • actions: clear image with secondary color (3870b44)
  • actions: fix extensions (2377fb0)
  • actions: implement clear image action (369ca7e)
  • actions: implement get/save colors (51ac6d1), closes #59 #60
  • actions: implement invert image (bdbe90b)
  • actions: implement open action (559b8ca)
  • actions: implement preliminary flip/rotate dialog (e1e3aaa)
  • actions: implement print action (481934e)
  • actions: implement tool box, color box, status bar actions (7fcdebc), closes #47 #48 #49
  • actions: new action interface (136119e)
  • actions: preliminary implementation for clear selection (8a4abe5)
  • actions: remove TODO comment, format (9404fbb)
  • add browser-nativefs (a58a0dc)
  • add canvas (63703e4)
  • add CNAME file (3d731cd)
  • add DevContainer (43c8296)
  • add handles (09e148f)
  • add index.html (3420d7b)
  • add inset container (1b5b5fd)
  • add license (bd96296)
  • add lit-element (2b6d446)
  • add menu bar (2a51a3b)
  • add npm start command (34ae78b)
  • add package.json (2429832)
  • add README (9c2ae79)
  • add ruler (b65c56f)
  • add service worker (3e6e23e), closes #11
  • add Snowpack (4d0944a)
  • add status bar (f3373d0)
  • add toolbar (ce426db)
  • app: add basic document context (955cd7b)
  • app: add selected background style (97803c4)
  • app: disallow selections and hide text cursor (7dc190c)
  • app: drop unused selection from app (29f5d19)
  • app: hide webkit tap highlights (133e074)
  • app: hotkey support (b52d324)
  • app: implement dark mode (8a11e08), closes #13
  • app: prepare tool communication (bf275b3)
  • app: update document title only in app context (3b29530)
  • browser-nativefs: update web_modules (1922f72)
  • build: automate license file generation (1ec0f22)
  • build: fix output path (a868b5a)
  • button: activate buttons via keyboard (2e6f042)
  • button: add new paint-button (fa0cee9)
  • button: support mnemonics (ed95a5d)
  • canvas: prepare preview canvas (2432b51)
  • canvas: respond to magnifierSize (41641ce)
  • capabilties: add drag & drop support (87144f0)
  • color-box: swap colors for pen and touch inputs (6ed3442), closes #264
  • content if JS is disabled (16700d9)
  • copy: add selection, copy & cut actions (1f7cf9c)
  • data: add list of tools (c23d637)
  • define meta theme-color (80b22ef)
  • deps: migrate to lit (2cebe7b)
  • dialogs: add About (7593153), closes #52
  • dialogs: implement custom zoom dialog (33147e3)
  • dialogs: introduce message box (d4ef733)
  • drawing-context: always define previous editing tool (c8b2c93)
  • drawing-context: define previous magnifier size (b954aac)
  • e2e: add cypress (3cf052a)
  • elements: add color box (7cfe469)
  • elements: add color picker (90a941c)
  • elements: add color switcher (1998f64)
  • elements: add customElement decorator to tool box (fe60317)
  • elements: add first draft of toolbox (0e8581d)
  • elements: add status bar graphics (66d9e9d)
  • elements: add tool fill style element (4568eca)
  • elements: basic drawing support for canvas (7693ef4)
  • elements: consume colors from outside (35935a5)
  • elements: desync canvas (aad283f)
  • elements: disable menus for now (80cefd9)
  • elements: disable other tools for now (cdbd49b)
  • elements: don’t overflow status bar panels (61a9d18)
  • elements: initialize canvas with screen resolution (7d351de)
  • elements: introduce line width config (e22ba13)
  • elements: prepare menu bar for selections (ec5b735)
  • elements: render tools (0a515c6)
  • elements: show coordinate text in statusbar (073d6a1)
  • elements: slot for toolbar (5f9ff9e)
  • elements: tweaking app (a31e23f)
  • elements: use currentColor instead of setting fill color directly (74b52c8)
  • elements: use paint-ruler (d1fe8a6)
  • exit: suppress beforeunload handler when exiting (63602a8)
  • favicon: add favicon (2dd17df)
  • file-handling: add support for file handling API (03e534e), closes #131
  • first color definitions (d60ad23)
  • fs-access: improve file handling (e42192e)
  • helpers: add helper method for opening messageb boxes (7c8ee50)
  • helpers: don’t register service worker on localhost (d30e6c7)
  • helpers: use createImageBitmap() if present (43389c4)
  • history: add undo/redo stack (191401c)
  • ignore folders (734f76d)
  • image: fix showDialog for flip-rotate (92dbf81)
  • image: introduce attributes window (585180a)
  • index.html: add apple-touch-icon (493fce6)
  • index.html: add social images (f442b06)
  • index: add meta description (6adc427)
  • introduce paint app component (cf312f1)
  • license: add license text (2f4e2d4)
  • manifest: add basic manifest (c56e58a)
  • manifest: explicitly specify start_url and scope (aa26bb9)
  • menu: add exit action (fb33aef)
  • menu: add mnemonic for third-party menu entry (eac1c19)
  • menu: add opener graphic (c3e766c)
  • menu: add selection graphic (18efc3b)
  • menu: basic menu and help text implementation (cd6b63c)
  • menu: display mnemonics (22e2c84)
  • menu: don’t assign Ctrl+R hotkey (598e099)
  • menu: link to GItHub repo (23ad103)
  • menus: add preliminary copy/paste actions (85c849b)
  • menus: add Send action using Web Share API Level 2 (913f5ab), closes #74
  • menus: finalize get colors action (0cda6fc), closes #59
  • menu: show mnemonics in menu bar as well (da87ee6)
  • menu: show submenu (5603639)
  • menus: implement flip and rotate (4ea0e1e)
  • menus: implement New action (28dff21)
  • menus: prepare view menu (674d90c)
  • menus: show recent file entry (d015602)
  • mobile: disable overscrolling, respect safe area (e250acd)
  • native-fs origin trial token (fde0a1e)
  • paint: removed obsolete stuff (ca3ba39)
  • status-bar: implement support for area text (393b112)
  • styles: disable overscroll (ea1bab8)
  • sw: update (c7c1844)
  • text-area: check if advanced text metrics are available (613f407)
  • text-toolbar: delay loading local fonts (6549cff)
  • text: deselect text tool when zoomed in (ba01797)
  • tool: add draw opaque selection (0146110)
  • tool: fix flood fill construction (da7da32)
  • tool: implement brush tool (a334923), closes #20
  • tool: implement eraser (5937a48), closes #16
  • tool: implement line tool (06b6f55), closes #23
  • tool: implement rectangle tool (44ddbfe), closes #25
  • tool: press style for tools (bd4fd20)
  • tools: add basic ellipse tool (aa055d9)
  • tools: add description texts (c1a7b9b)
  • tools: add pick tool including preview box (07aba36), closes #18
  • tools: add text tool backed by Local Foint Access API (06e2e89)
  • tools: draw eraser on pointer down (dddf722)
  • tools: implement airbrush (4ef550e)
  • tools: implement fill tool (78cecbe), closes #17
  • tools: implement new tool abstraction (63b3c01)
  • tools: preliminary select tool (7cd2d35)
  • tools: preliminary version of brush tool (3b76b82)
  • tools: preliminary version of Line tool (fabdad7)
  • tools: preliminary version of rectangle tool (232081e)
  • tools: preliminary version of select tool (3eae15c)
  • tools: prepare airbrush (e3bff4e)
  • tools: reset to previous editing tool after picker has been used (9e940c2)
  • tools: use bresenham line algorithm (ca1a223), closes #70
  • view: implement custom zoom action (0fd43e3)
  • view: implement normal and large size actions (45ac43f)
  • window: allow centering window (efdfaee)
  • window: clamp dialog to screen bounds (896b9b0)
  • window: implement floating window (00fad5f), closes #30
  • window: implement title bar button (b9451bf)

Bug Fixes

  • action: fix paste (c8cf1a3)
  • actions: fix palette file extension (14c490b)
  • actions: fix write method detection for TS (3c29a50)
  • app: drop unused checked property (a68d1db)
  • canvas: allow drawing outside of canvas (58cace9)
  • canvas: normalize coordinates (52df5e3), closes #9
  • canvas: only invoke mouseUp if it was down before (36f9347)
  • canvas: support drawing on mobile (55cef2d), closes #10
  • canvas: upper right handle is disabled (968f9e3)
  • css: fix width of paint-app (4efc3ec)
  • data: fix font toolbar defaults (afa823e)
  • data: text toolbar should be visible by default (92f13a9)
  • dialog: hyphen in about dialog (99d8f40)
  • docs: update browser-fs-access link (be5d450)
  • elements: fix imports (eb42020)
  • elements: use border-box sizing in inset container (d0f5bfc)
  • linter and import issues (cfbb3cd)
  • menu-bar: make menus pixel perfect (d41f51d)
  • menus: fix imports (7dba959)
  • options: add missing js extension (72f46eb)
  • package.json: fix production build (9dd4729)
  • styles: flex body (3b380a4)
  • tool-box: fix import (166080f)
  • tool-box: fix tool box behavior (799b471)
  • tool: make tool buttons pixel-perfect again (a82ed47)
  • tools: fix ellipse anti-aliasing (dd69426)
  • tools: fix filename (f4d593d)
  • tools: fix flood-fill (48f72ea)
  • ts: fix TS issues (77c4efd)