Commit graph

696 commits

Author SHA1 Message Date
Keavon Chambers
64ed21f694 Clean up code with better naming
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
2025-12-21 23:35:00 -08:00
Keavon Chambers
f1e8ebefc5
Improve tooltip docs with Markdown styling and refined math node explanations (#3488) 2025-12-20 01:05:15 -08:00
Keavon Chambers
e99f30e633 Stop hover transfer working between rows of Properties panel dropdown menus 2025-12-19 23:45:07 -08:00
Keavon Chambers
2d6d054359
Make font selection show a live preview on hover; move its code to the backend (#3487)
* Remove FontInput.svelte

* Move font picking to the backend

* Fix Text tool font choice style turning to "-" on font that doesn't support previous style
2025-12-19 22:17:28 -08:00
Timon
820865389c
Desktop: UI scale preference (#3475)
* ui scale preference

* cleanup

* add update ui scale message to SIDE_EFFECT_FREE_MESSAGES

* fix mac title bar height

* hide UI preference section on web

* set % as unit of ui scale
2025-12-15 14:11:43 +00:00
Timon
7532bd7260
Desktop: Hide menu bar in fullscreen mode on Mac (#3464)
Some checks failed
Editor: Dev & CI / build (push) Has been cancelled
Editor: Dev & CI / cargo-deny (push) Has been cancelled
hide menu bar in fullscreen mode on mac
2025-12-12 13:09:31 +00:00
Timon
6d852f11af
Desktop: Text clipboard support (#3461)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* gray background for viewport texture

* cust copy paste support

* connect clipboard read on web

* fix eyedropper bounds

* cleanup

* add missing char events for some named keys like enter
2025-12-12 00:16:35 +00:00
Keavon Chambers
90c91db550 Disable the Brush tool by default and add it to preferences under experimental 2025-12-08 04:02:50 -08:00
Keavon Chambers
fb0fab0622 Update links from graphite.rs to graphite.art
Some checks failed
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
Library: Rawkit / build (push) Has been cancelled
Website / build (push) Has been cancelled
2025-12-06 18:10:27 -08:00
Timon
a5cf62a90b
Desktop: Custom cursor support (#3452)
custom cursors with caching
2025-12-06 16:16:14 -08:00
Keavon Chambers
5b472a64b2 Remove the "coming soon" dialog and hide not-yet-ready features/tools
Some checks failed
Editor: Dev & CI / build (push) Has been cancelled
Editor: Dev & CI / cargo-deny (push) Has been cancelled
2025-12-05 04:17:44 -08:00
Keavon Chambers
74d9c911bd Fix ShortcutLabel drawing of consecutive key labels 2025-12-04 22:04:37 -08:00
Keavon Chambers
2ee8e56cef Fix sending platform-specific shortcut keys to frontend before editor is initialized with the platform set 2025-12-04 15:35:30 -08:00
Keavon Chambers
783ea0b437
Unwrap the Layout enum to replace it with the WidgetLayout struct now called Layout (#3448) 2025-12-04 15:24:40 -08:00
Keavon Chambers
3c4ad8b720 Refactor the WidgetLayout struct to remove SubLayout and avoid sending LayoutTarget to frontend
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
2025-12-04 02:44:54 -08:00
Keavon Chambers
4581689d9c Rename WidgetHolder to WidgetInstance
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
2025-12-04 01:10:22 -08:00
Keavon Chambers
810ce40e9b
Restyle and refactor shortcut labels to send hints bar and welcome screen layouts from Rust (#3447)
* Restyle UserInputLabel and refactor its usages to have all input its data sent from Rust

* Replace the welcome screen quick buttons with ones sent by backend

* Add the ShortcutLabel widget to the backend

* Replace hints bar with a backend-controlled layout; show mouse icons in place of mouse labels
2025-12-04 01:04:14 -08:00
Keavon Chambers
600fb5c28f
Refactor the old menu bar plumbing to use standard TextButtons (#3444)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* Refactor the old menu bar plumbing to use standard TextButtons

* WIP: Fix Mac native menu bar

* WIP: fix desktop menu bar mac

* Refactor menu bar definitions to use the builder pattern

* WIP: fixup desktop

* cleanup

* fix linux

* Remove dead code that was failing to lint

---------

Co-authored-by: Timon Schelling <me@timon.zip>
2025-12-03 12:41:54 +00:00
Keavon Chambers
e8ebcc2c21
Replace text-only tooltips with custom richly styled tooltips (#3436)
* Replace the title attribute with custom FloatingMenu tooltips

* Separate tooltip labels and descriptions into two styled blocks

* Move keyboard shortcut tooltips to a separate section at the bottom

* Update shortcut key styling in tooltips and hints bar

* Fix .to_string()
2025-11-30 13:32:58 -08:00
Timon
bb4516e377
Desktop: Add app menu for Mac (#3428)
* add mac app menu

* review fixup

* Remove "About Graphite" ellipsis, add "Show All", make it say "Quit Graphite"

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-11-28 23:42:14 +00:00
Keavon Chambers
8cebde76e2
Add support for RMB/Escape canceling layer drag reordering in the Layers panel (#3426)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* Add support for RMB/Escape canceling layer drag reordering in the Layers panel

* Disable hover effects on layers during drag; fix insertion line getting cut off at top of stack
2025-11-27 03:10:33 -08:00
Keavon Chambers
ab5c87f017
Hide cursor while dragging number inputs in Safari to approximate PointerLock, and disable it on desktop (#3425)
* Make pointerlock conditional and opt out on Safari and desktop

* Add Safari workaround
2025-11-27 00:12:58 -08:00
Keavon Chambers
9eb8835bd5
Add the 'Blend Shapes' and 'Origins to Polyline' nodes; generalize the 'Morph' node to >2 states (#3405)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* New nodes: 'Morph' and 'Multi-Morph'

* Blend Shapes node

* Add the 'Index Points' node

* Fix failing test
2025-11-25 22:17:55 -08:00
Timon
3f532e478c
Separate branded assets from monorepo (#3406)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* remove branded files

* use branding repo

* include favicons

* nixpkg fixup

* win fix ico path

* fix fmt

* skip licensenses for dev builds

* review fixup

* test

* test

* ci test

* ci test

* ci test

* fix ci
2025-11-25 02:42:27 +00:00
Dennis Kobert
a932eaedcf
Render artwork at correct resolution when using vello on wasm (#3416)
Some checks are pending
Editor: Dev & CI / cargo-deny (push) Waiting to run
Editor: Dev & CI / build (push) Waiting to run
* Work on fixing rendering for wasm+vello

* Render vello canvas in wasm at the correct resolution

* Cleanup unused surface rendering code

* Remove vector to raster conversion

* Remove desktop changes

* Revert window.rs changes

* Don't round logical coordinates

* Fix desktop compilation + don't round logical coordinates for svg rendering

* Further cleanup

* Compute logical size from acutal physical sizes
2025-11-24 14:23:27 +00:00
Adam Gerhant
7afbeaa1f9
Separate graph error diagnostics from frontend node metadata (#3385)
* Separate error popup from node

* Improve context menu data

* Code review

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-11-24 08:55:30 +00:00
Adam Gerhant
06484ef4e0
Show red connectors on a type-erroring node and accurate connector colors upstream of it (#3110)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* Refactor TypeSource

* Add complete valid types

* Add invalid type

* Improve valid/complete types and disconnecting

* Code review

* Return types on error

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-11-19 03:00:32 +00:00
Timon
7d739c4542
Post refactor fixup (#3395)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* fixup

* fix feature deps for native
2025-11-18 15:48:45 +00:00
Dennis Kobert
57b0b9c7ed
Restructure node crates (#3384)
* Restructure node-graph folder

* Fix wasm compilation

* Move node definitions out of *-types crates

* Cleanup

* Fix warnings

* Fix warnings

* Start adding migrations

* Add migrations and move memo nodes to gcore

* Move nodes/gsvg-render -> rendering

* Replace some hard coded identifiers and fix automatic conversion

* Fix Vec2Value node migration

* Fix formatting

* Add more migrations

* Cleanup features

* Fix core_types::raster import

* Update demo artwork (to make profile ci work)

* Move *-types to node-graph/libraries folder

* Add missing node migrations

* Migrate more nodes

* Remove impure memo node

* More fixes and remove warning

* Migrate context and add a few missing migrations

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-11-18 10:21:54 +00:00
Keavon Chambers
12453d2e61 Make the welcome screen not include Alt in Ctrl+Alt+N on desktop
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
2025-11-17 15:26:23 -08:00
Adam Gerhant
85965c8b6a
Fix export edge distance (#3386)
Some checks are pending
Editor: Dev & CI / cargo-deny (push) Waiting to run
Editor: Dev & CI / build (push) Waiting to run
2025-11-17 17:22:05 +00:00
Timon
e751979e5c
Desktop: Mac fix keyboard input (#3371)
* add browser debug port env

* mac use option as alt

* fix cef texture double sRGB conversion by using cef-rs fork with fix

* fix keyboard input on mac

* add missing frontend messages

* fixup

* fix keyboard input mac

* dbg

* re implement keyboard mapping

Co-authored-by: csmoe <csmoe@msn.com>

* Fix double arrow keys

* try fix for non mac

* test

* Revert "test"

This reverts commit c7cde9c597.

* fix mac

* some cleanup

* fix zoom in shortcut on mac introduced in #3377

* disable menu shortcut display

* fixup
2025-11-17 11:51:59 +00:00
Keavon Chambers
e42950b4be Add support for middle-clicking (and double-clicking) the document tab bar to create a new document (#3363)
Some checks failed
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
Website / build (push) Has been cancelled
2025-11-10 00:54:30 -08:00
Dennis Kobert
72a291d808
Improve web frontend performance during zooming and panning (#3337)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* WIP debounce frontend ui updates

* Reduce the number of frontend updates performed

* Improve menu bar diffing

* Cleanup in dispatcher

* Fix comment
2025-11-08 14:01:11 +01:00
Timon
f02f834097
Desktop: Add support for UI scaling (#3310)
* desktop support ui scaling

* fix some warnings

* use browser zoom if needed

* fix infinite footprint size

* fix web canvas scale

* always set zoom

* use only zoom for scaling

* prevent user zoom

* remove mouse position scaling
2025-11-08 12:32:04 +01:00
Timon
881ec0b193
Split out viewport handling into its own message handler (#3331)
* extract viewport handeling

* fix web overlays

* some cleanup

* remove some physical conversions

* fix resize snapping

* fixup

* apply some review feedback

* make viewport api more ergonomic

* fix

* fix web overlay canvas clear size

* clear workaround for canvas

* rename trigger message

---------

Co-authored-by: Dennis Kobert <dennis@kobert.dev>
2025-11-08 08:59:38 +00:00
Keavon Chambers
96d73a8570 Remove the application title from the header bar
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
2025-11-06 09:20:51 -08:00
Keavon Chambers
0998abdaf3 Add support for visualizing Vec<String> in the Data panel 2025-11-03 13:13:54 -08:00
Timon
5be9b1fabc
Desktop: Mac native menu bar (#3301)
* macos native menu bar

* fix nix build

* Add shortcut symbols to menu

* fix fmt

* fix vendoring

* cleanup intercept frontend message

* accept into editor message in queue function
2025-10-27 14:11:24 +00:00
Timon
8d3a8c2c11
Desktop: Add nix package to flake (#3258)
Some checks failed
Editor: Dev & CI / build (push) Has been cancelled
Editor: Dev & CI / cargo-deny (push) Has been cancelled
* update cargo-gpu, remove legacy-target-specs to fix nix builds

* add nix package to flake

* update cargo hash

* fix merge

---------

Co-authored-by: firestar99 <firestar99@sydow.cloud>
2025-10-15 11:01:20 +00:00
Timon
d15f63f4fd
Ensure the LoadPreferences message is dispatched with None when no preferences exist (#3198)
Some checks failed
Editor: Dev & CI / build (push) Has been cancelled
Editor: Dev & CI / cargo-deny (push) Has been cancelled
* preference load message on default load

* review fixup
2025-09-23 20:19:16 +00:00
Timon
46d5928724
Desktop: Fix window maximize and minimize (#3200)
Some checks are pending
Editor: Dev & CI / cargo-deny (push) Waiting to run
Editor: Dev & CI / build (push) Waiting to run
Fix window maximize and minimize state
2025-09-20 23:48:47 +00:00
Keavon Chambers
f4a0f272dd Add note about the September 2025 release to the editor welcome screen
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
2025-09-20 05:20:20 -07:00
Timon
944a6eeea2
Desktop: Hook up native window controls (#3161)
* Implement window controls

* Fix drag target size

* Maximize with drag area double click
2025-09-13 20:15:52 +00:00
Timon
50be13522b
Desktop: Move preferences persistence to native (#3138)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* Move preference persistence to native

* Pass preferences as struct instead of serialized to string
2025-09-09 16:22:25 +00:00
Keavon Chambers
22aa8c1264 Update UI widget designs to improve color consistency and add a narrow height mode
Some checks failed
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
Website / build (push) Has been cancelled
2025-09-08 21:48:22 -07:00
Flo
cf2e525ea9
Fix the ellipses of a long document name causing the tab's unsaved asterisk to be hidden (#3146)
* Fix unsaved indicator

* Change isSaved to isUnsaved to prevent showing star on tabs like Properties

* Fix CSS

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-09-08 03:40:49 +00:00
Keavon Chambers
a2c0693038
Fix most known issues with migrations failing to open documents from the past year (#3148) 2025-09-07 11:10:03 -07:00
Firestar99
a10103311e
Shaders: rust-gpu integration to compile shader nodes to WGSL (#3097)
Some checks failed
Editor: Dev & CI / build (push) Has been cancelled
Editor: Dev & CI / cargo-deny (push) Has been cancelled
* shaders: shader compilation setup

* nix: use rustc_codegen_spirv.so from nix

* shaders: codegen for per_pixel_adjust shader nodes

* shaders: disable nodes needing bool

* shaders: `#[repr(u32)]` some enums

* shaders: add lint ignores from rust-gpu

* shaders: fix node-macro tests

* gcore-shaders: toml cleanup

* shader-nodes feature: put rust-gpu to wgsl compile behind feature gate

* shaders: fix use TokenStream2

* shaders: allow providing shader externally

* Update iai runner in workflow

---------

Co-authored-by: Timon Schelling <me@timon.zip>
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
2025-09-02 14:10:32 +00:00
Timon
083dfa5f49
Clean up autosave persistence (#3115)
* Set auto save state to false on document rename

* Update open document list on transaction commit and aboard

* Use current network to compute hash

Was using the last element in undo
Before artworks where not auto saved when the had no undo history

* Refactor persistence
2025-09-02 13:27:38 +00:00