All Projects → christianliebel → paint

christianliebel / paint

Licence: Apache-2.0 license
Open source, Web Components-based remake of MS Paint using modern web capabilities. 🎨🖌

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to paint

Jspaint
🎨 Classic MS Paint, REVIVED + ✨Extras
Stars: ✭ 5,972 (+6253.19%)
Mutual labels:  paint, mspaint
Drawingboard.js
A canvas based drawing app that you can integrate easily on your website.
Stars: ✭ 2,072 (+2104.26%)
Mutual labels:  paint
Literallycanvas
A canvas in your browser. Literally.
Stars: ✭ 1,043 (+1009.57%)
Mutual labels:  paint
Sillynium
Automate the creation of Python Selenium Scripts by drawing coloured boxes on webpage elements
Stars: ✭ 100 (+6.38%)
Mutual labels:  paint
Drawingview
android上的一个涂鸦控件。可以设置画笔的粗细,颜色,撤销上一笔涂鸦,提供保存图片的接口。
Stars: ✭ 68 (-27.66%)
Mutual labels:  paint
Pretty Painter
Graphics editor for Android.
Stars: ✭ 105 (+11.7%)
Mutual labels:  paint
Milton
An infinite-canvas paint program
Stars: ✭ 960 (+921.28%)
Mutual labels:  paint
Lazpaint
🎨 Cross-platform image editor with raster and vector layers similar to Paint.Net written in Lazarus (Free Pascal)
Stars: ✭ 236 (+151.06%)
Mutual labels:  paint
Textwriter
Animate your texts like never before
Stars: ✭ 140 (+48.94%)
Mutual labels:  paint
Sketchpad
Sketchpad is fully customisable collaborative whiteboard plugin written in pure JavaScript.
Stars: ✭ 85 (-9.57%)
Mutual labels:  paint
Paintbynumbersgenerator
Paint by numbers generator
Stars: ✭ 85 (-9.57%)
Mutual labels:  paint
Imgursniper
📷 A quick and easy Image, Screenshot and Screen recording sharing tool
Stars: ✭ 69 (-26.6%)
Mutual labels:  paint
Paintview
An Android View with Gesture Supported for Painting
Stars: ✭ 136 (+44.68%)
Mutual labels:  paint
Mopaint
🎨💪 Modern, modular paint and more! (pre-alpha, not much done yet)
Stars: ✭ 50 (-46.81%)
Mutual labels:  paint
Kiddopaint
Kiddo Paint
Stars: ✭ 189 (+101.06%)
Mutual labels:  paint
Minipaint
online image editor
Stars: ✭ 1,014 (+978.72%)
Mutual labels:  paint
Touchable
Flutter library to add gestures and animations to each Shape you draw on your canvas in your CustomPainter
Stars: ✭ 82 (-12.77%)
Mutual labels:  paint
Vue Memo
完全原创的基于 Vue.js 的记事本应用
Stars: ✭ 104 (+10.64%)
Mutual labels:  paint
powerpaint
Kreative PowerPaint - Library and Application for Bitmap and Vector Image Editing
Stars: ✭ 27 (-71.28%)
Mutual labels:  paint
Sketch
Sketch have a lot of basic functions to develop a drawing app for iPhone. Anyone can easily create drawing iOS Application.
Stars: ✭ 229 (+143.62%)
Mutual labels:  paint

Paint: An open-source, Web Components-based remake of MS Paint using modern web capabilities

Node.js CI Known Vulnerabilities GitHub

Paint is back—right in your browser! Try it on paint.js.org.

Paint

This project aims to demonstrate modern web capabilities and Web Component-based application architectures on the example of a productivity app dinosaur: Paint. All offline-capable and installable, just as Progressive Web Apps should be.

PLEASE NOTE

This project is in an early state. Not all tools and actions are implemented right now. Your help and feedback are wanted!

Modern Web Technology

This project demonstrates the use of:

Goals

  • This implementation tries to stick as closely as possible to the original Paint for Windows 95—not more, but also not less. You might want to check out Felix Rieseberg’s windows95 to run the original Paint.
  • This implementation should stay smaller (= transferred bytes) than Paint’s executable size of 340K.
  • Everything must be achieved with native web technology only, so no Cordova or Electron builds. Features that are not exposed to the web must be disabled in the menu.
  • Where modern web APIs are used, they should be progressively enhanced.

Setup

  1. Clone this repository
  2. Run npm i
  3. Run npm start
  4. Done!

Using the Web Component

Paint is available as a web component, so you can easily embed it into other applications or websites.

  1. Install the library
    • Download the npm package @christianliebel/paint and register the elements by importing the library: import '@christianliebel/paint';
    • Alternatively, use a service like unpkg.com: <script src="https://unpkg.com/@christianliebel/paint/dist/elements/index.js" type="module"></script>
  2. Use the <paint-app> component in your application.
  3. Optional: If you want to react to changes of the document title, listen to the titlechange event. You can find the updated title in the event.details.title property.
  4. Done!

Wait, I’ve seen this before

You’re right! The awesome JSPaint (GitHub) has been around for a long time and is, by far, more complete. In contrast to JSPaint, this project is licensed under an OSS license, so you can fork this repository, use it in your demos, and contribute. Please do not copy over code from JSPaint to this repository.

License

This project is provided for educational purposes only. It is not affiliated with and has not been approved by Microsoft.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].