Giter Club home page Giter Club logo

paintz's Introduction

PaintZ

PaintZ logo.

Screenshot of PaintZ.

Overview

PaintZ is a simple drawing program for the web. Its goal is to make creating and editing drawings and other images as easy to do on Chrome OS and the web as similar native applications on other platforms, such as Microsoft Paint and KolourPaint. PaintZ is designed to to be fast and easy to use, with a touch- and mouse-friendly Material Design interface, full offline support, and no Flash Player or other plug-ins required.

Principles

  • Fast and lightweight - New features should not make PaintZ significantly slower to start or use.
  • Focused and simple - PaintZ exists to make simple drawings and image edits like MS Paint; advanced features such as layers, filters, and vector paths are beyond its scope (and in the scope of other web apps, such as Photopea).
  • Ephemiral - Anything related to file management, file syncing, user accounts, etc. is the responsibility of the system/file manager/other apps; PaintZ is not concerned with what happens to the file after it closes.
  • Familiar - PaintZ should keep UI patterns and keyboard shortcuts familiar to users of other drawing apps and Chrome OS wherever possible.
  • Privacy-conscious - No user-identifying data should be retained, minimal data should be retained at all, and nothing but basic anonymous analytics should leave the user's device.
  • Dependency-conscious - PaintZ will never require plug-in installation; new CSS/JS libraries should only be added if necessary, and after serious consideration.

Live instance

The official live instance of PaintZ can be found at https://paintz.app.

Chrome Web Store

PaintZ is available to install on Chrome OS through the Chrome Web Store.

There is also a separate Chrome Web Store page for PaintZ beta so you can have it in your launcher without removing stable PaintZ.

These are the only legitimate Chrome Web Store listings for PaintZ.

Social media

Updates are posted to the @PaintZApp profiles on Facebook, Instagram, and Twitter.

Bug reports and feature requests

You can submit bug reports and feature requests in the Issues tab. Please search before submitting to avoid submitting duplicates. If you find it was already submitted, please just add a 👍 reaction to the existing one.

For feature requests, please also ensure features are in line with the principles above—certain features will always be outside the intended scope of PaintZ.

Code styling

  • Commits will follow standard Git commit guidelines.
    • Commits should fit in the sentence, “If applied, this commit will ____.”
  • Code will be intended with tabs, not spaces.
  • Opening curly braces will be on the same line as control structures (if, switch, for, function, etc.), separated with a space, and never on the next line.
  • Function and variable names will be in camelCase.
  • Function and variable names meant to be treated as private will be prefixed with an underscore (e.g., _privateVar).
  • Constants will be in ALL_CAPS_SNAKE_CASE.
  • Object types will be in UpperCamelCase (a.k.a. PascalCase).
  • Operators will have spaces on both sides.
  • Functions should have JSDoc-style documentation strings. For example:
/**
  * Add two numbers.
  * @param {Number} a - The first number to be added
  * @param {Number} b - The second number to be added
  * @returns {Number} The sum of a and b
  */
function sum(a, b) { ... }

Development environment

To run a local instance of PaintZ:

  1. Clone the repository.
  2. Serve the app directory in the repository from the HTTP server of your choice (e.g., Node's http-server, Python 2's SimpleHTTPServer, or Python 3's http.server).

Credits

PaintZ is developed and maintained by Zachary Yaro.

Code libraries used:

Icon libraries used:

Testing/feedback:

  • David Martin
  • Joe Porsella
  • Marjorie Yaro
  • Taylor Braun
  • Wendy Enoch

paintz's People

Contributors

zmyaro avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

paintz's Issues

Add the ability to duplicate a selection

A toolbar button is not necessary for this release, but there should be a function to finalize your current selection, duplicate it, and place the duplicate in a selection at (0,0).

Rich text retains its original formatting when pasted

When formatted rich text is pasted into a text box created with the text tool, it retains its original formatting instead of adopting the formatting of the text tool. It only gains the text tool's formatting when the text is drawn to the canvas.

Add Material clear animation

Clear the canvas with a ripple animation from the clear button instead of instantaneously erasing everything.

Allow resize dialog to crop or scale

The resize dialog should have the options to crop (change the canvas size with no effect on the existing image) or resize (stretch the existing image to the new canvas size).

Add H & W next to pixel entry fields in Resize window

It'd be nice to have H & W or "Height" and "Width" next to the respective entry fields in the resize window, Also perhaps edit the description of the Resize option in the Help popup to indicate both cropping and resize actions can be taken.

Resized canvases have transparent sections

When the canvas gets increased in size with the resize function, the parts that are made available are left transparent instead of being filled with the background color.

Create a build script

Such a script would minify the HTML, CSS, and JavaScript and prepare it for deployment.

Add font options

The text tool is currently limited to 16px sans-serif. Additional font family and font size options should be made available.

Add the ability to select all

A toolbar button is not necessary for this release, but there should be a function to switch to the selection tool and select the entire image.

Dialogs should expand from their triggering buttons

Rather than expanding from the center of the screen, dialogs' transform origins should be centered on the buttons that launch them. Doing so better connects the clicking of the button to the opening of the dialog and also has the initial help dialog collapse into the help button as a hint for finding it later.

Add basic help dialog

Add a basic help dialog that explains the tools. The dialog should open at first launch and be accessible from a toolbar button.

Add hotkeys for tools

Look at hotkeys from MS Paint, Photoshop, GIMP, and the like, and try to maximize compatibilty.

Allow naming files before saving

Some browsers (especially mobile browsers) automatically download files without an option to rename. A save dialog could be added to allow renaming of the file before it is downloaded.

(Suggested by Mike S.)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.