⚠ The Lospec Pixel Editor is no longer in development and is no longer accepting contributions.
It remains available at https://lospec.com/pixel-editor in it's current state, but may contain bugs.
This is a browser based software for creating pixel art
Before starting to work, please open an issue for discussion so that we can organize the work without creating too many conflicts. If your contribution is going to fix a bug, please make a fork and use the bug-fixes branch. If you want to work on a new feature, please use the new-feature branch instead.
Any changes that fix bugs or add features are welcome. Check out the issues if you don't know where to start: if you're new to the editor, we suggest you check out the Wiki first.
The next version is mostly focused on adding missing essential features and porting to mobile.
Suggestions / Planned features:
Documentation
Possibility to hide and resize menus (layers, palette)
Tiled mode
Load palette from LPE file
Symmetry options (currently being worked on)
Make a palette grid instead of having a huge stack on the right when colours are too many
Possibly add collaborate function
Mobile
Polish:
No requirements if you want to use Github's Codespaces. If you prefer to setup your environment on desktop, you'll need to have node.js and git installed.
You also need npm
in version 7 (because of 2nd version of lockfile which was introduced there) which comes with Node.js 15 or newer. To simplify installation of proper versions you can make use of nvm and run nvm install
– it will activate proper Node.js version in your current command prompt session.
npm install
. Then run npm run hot
: it will open a popup containing the editor, so make sure to disable your adblock if you're using one.npm install
npm run hot
which will compile app to the /build
folder, serve under http://localhost:3000, then open in your browser. Moreover, it restarts server every time you save your changes in a codebase. You can go even further by running npm run hot:reload
, which will also trigger webpage reloads.If you have any trouble, see this page: https://help.github.com/en/articles/creating-a-pull-request-from-a-fork
Some feature might be hidden by default. Functions to enable/disable them are available inside global featureToggles
and operate on a window.localStorage
.
For example use featureToggles.enableEllipseTool()
to make ellipse tool button visible. Then featureToggles.disableEllipseTool()
to hide it.