2D vector & raster editor that melds traditional layers & tools with a modern node-based, non-destructive, procedural workflow. https://graphite.rs
Find a file
Dhruv 743803ce04 Add Snapping Options to the Snap Dropdown Menu (#1321)
* [wip]feat: add snapping options

* [wip]fix: use svelte component for optionsWidget

* fix: use apt PopoverButton types

* refactor: minor formatting improvements

* Fix popover layout

* [wip]feat: attempt implementing CheckboxInputData struct

* fix: use correct Checkbox struct 's default method

* fix: revert adding CheckboxInputData struct

- This reverts commit 2a481887fc.

* feat: use checkboxes for snapping options

* feat: add label to dropdown checkbox elements

* fix: separate Snap dropdown menu elements
- move each element into separate row

* [wip]feat: modularize snapping states
- maintain individual snapping states for document

* fix: snapping checkboxes' behavior
- checkboxes now update internal snapping state

* refactor: update snap states individually
- this prevents out-of-sync states
- enables reusing existing snap state object

* feat: snap to boxes and nodes conditionally

* [wip]feat: attempt to invert checkbox on update
- attempt implementing mutable WidgetCallback struct
- attempt using above struct to invert checkbox state on update

* Fix widget diffing

* refactor: remove unused code

* feat: align checkboxes consistently with labels

* feat: use separators to stylize snapping menu
- removes need for custom CSS and label property
- ensures consistency across the application

* refactor: remove unneeded css

---------

Co-authored-by: hypercube <0hypercube@gmail.com>, TrueDoctor <dennis@kobert.dev>
2023-07-15 15:07:18 +05:30
.github Lay groundwork for directly rendering to the canvas without a cpu roundrip (#1291) 2023-06-07 17:13:21 +02:00
.vscode Remove all references to Vue 2023-03-10 04:02:02 -08:00
docs Rename the legacy Graphene crate to document-legacy (#899) 2022-12-22 02:12:05 -08:00
document-legacy Fix Imaginate by porting its JS roundtrip code to graph-based async execution in Rust (#1250) 2023-06-09 09:03:15 +02:00
editor Add Snapping Options to the Snap Dropdown Menu (#1321) 2023-07-15 15:07:18 +05:30
frontend Add Snapping Options to the Snap Dropdown Menu (#1321) 2023-07-15 15:07:18 +05:30
libraries Graphene CLI + quantization research (#1320) 2023-07-04 17:04:09 +02:00
node-graph Move Imaginate cache into the node 2023-07-14 16:40:56 +02:00
proc-macros Update Imaginate to output bitmap data to the graph via Image Frame node (#1001) 2023-02-11 08:56:31 +00:00
website Remove warnings from build and satisfied clippy (#1288) 2023-06-07 14:46:47 +05:30
.editorconfig Remove all references to Vue 2023-03-10 04:02:02 -08:00
.gitattributes Add npm start script alias for npm run serve 2022-01-12 06:14:32 -08:00
.gitignore Restructure GPU compilation execution pipeline (#903) 2022-12-31 02:52:04 +01:00
.gitmodules Add dyn-any as a submodule 2022-08-02 11:52:08 +02:00
.nvmrc Switch to Node.js 16 LTS, upgrade TypeScript, ESLint, and other dependencies (#395) 2021-11-29 03:32:09 -08:00
about.hbs Do not silently install cargo-about. (#377) 2021-09-19 16:58:04 +02:00
about.toml Fix Imaginate by porting its JS roundtrip code to graph-based async execution in Rust (#1250) 2023-06-09 09:03:15 +02:00
Cargo.lock Graphene CLI + quantization research (#1320) 2023-07-04 17:04:09 +02:00
Cargo.toml Graphene CLI + quantization research (#1320) 2023-07-04 17:04:09 +02:00
deny.toml Restructure GPU execution to model GPU pipelines in the node graph (#1088) 2023-04-23 10:18:31 +02:00
LICENSE.txt Add Apache 2 license 2020-07-12 13:58:50 -07:00
package.json Readd alias package.json 2023-04-25 00:58:53 +02:00
README.md Update the website with some new content 2023-04-05 02:34:16 -07:00
rustfmt.toml Upgrade rustfmt to 2021 edition 2021-11-02 20:08:39 -07:00

Graphite logo

Redefining state-of-the-art graphics editing

Graphite is an in-development raster and vector 2D graphics editor that is free and open source. It is powered by a node graph compositing engine that supercharges your layer stack, providing a completely non-destructive editing experience.

Graphite is a lightweight vector graphics editor that runs in your browser. Its nascent node-based compositor lets you apply raster effects and co-create amazing art with AI in a non-destructive workflow. Fully-featured raster image editing and a native desktop application are the current focus of development and will be made available in the coming months.

Launch the latest alpha release of the Graphite editor and learn more on the project website.

Please remember to star this project here on GitHub!

Vector artwork: "Valley of Spires"

Discord community

Join our Discord community to chat with the community and development team. Feel free to lurk, ask questions, give suggestions, or get involved in the project. We are always seeking new collaborators to help test, design, and develop the software and this is where we communicate.

Building/contributing

We need Rust and web developers! See instructions here for setting up the project and getting started.

We are also in search of artists to create beautiful sample work in Graphite and illustrations for the website and social media. Please get in touch if you are able to help out.

Feature and roadmap

See the web page for this information.

Support the project

Please consider pledging a monthly donation using the "♥ Sponsor" button to the right part of this project repository page. Your contribution helps sustain this volunteer-run open source project and brings powerful, free creative tools to the masses.