Commit Graph
100 Commits
Author SHA1 Message Date
Keavon Chambers 5b472a64b2 Remove the "coming soon" dialog and hide not-yet-ready features/tools 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 2025-12-04 02:44:54 -08:00
Keavon Chambers 4581689d9c Rename WidgetHolder to WidgetInstance 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 6ed42d06bb Fix horizontal scrolling on Mac when holding Shift (#3446) 2025-12-03 20:06:00 -08:00
Keavon ChambersandTimon Schelling 600fb5c28f Refactor the old menu bar plumbing to use standard TextButtons (#3444)
* 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
Keavon Chambers 221c2e9b47 Update the user manual's most outdated parts and improve its table styling 2025-11-28 03:00:32 -08:00
Keavon Chambers 8cebde76e2 Add support for RMB/Escape canceling layer drag reordering in the Layers panel (#3426)
* 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)
* 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
Keavon Chambers d247b81966 Fix regression that reversed indexing of the Loop Level parameter of the 'Instance Index' node (#3421) 2025-11-25 21:32:56 -08:00
Keavon Chambers eb0f019b15 New nodes: 'Reset Transform', 'Replace Transform', 'Count Points', 'Index Points' (#3420)
- Add the 'Reset Transform' and 'Replace Transform' nodes
- Add the 'Count Points' and 'Index Points' nodes
- Make the 'Index Elements' node support negative indexing from the end
- Make the 'Flatten Vector' node's implementation reusable
- Fix crash displaying 0x0 raster image in the Data panel
- Fix the 'Points to Polyline' node not working on two-point objects
2025-11-25 20:41:59 -08:00
Keavon ChambersandAdam 6e66c79392 Fix 'Mask' node missing Properties widget; fix crash with 'Brightness/Contrast Classic' node (#3404)
* Fix 'Mask' node missing Properties widget; fix crash with 'Brightness/Contrast Classic' node

Also clean up dead code and improve tooltip for the "-" Properties panel widget fallback.

* format type

---------

Co-authored-by: Adam <adamgerhant@gmail.com>
2025-11-24 09:21:07 +00:00
Keavon Chambers 6a3b098681 Add automatic type conversion from number to Vec2 by splatting (#3394) 2025-11-18 11:10:33 +00:00
Keavon Chambers 12453d2e61 Make the welcome screen not include Alt in Ctrl+Alt+N on desktop 2025-11-17 15:26:23 -08:00
Keavon Chambers ca5785bc8f Show a "Ctrl +" label instead of "Ctrl =" for View > Zoom In (#3377) 2025-11-13 17:24:04 -08:00
Keavon Chambers ac74bd9903 Allow the Stroke node to receive "Dash Lengths" values from the node graph 2025-11-12 01:14:17 -08:00
Keavon Chambers e42950b4be Add support for middle-clicking (and double-clicking) the document tab bar to create a new document (#3363) 2025-11-10 00:54:30 -08:00
Keavon Chambers f5ef1a94fe Update the website with an evolved roadmap and new product screenshots/videos 2025-11-10 00:06:10 -08:00
Keavon Chambers 6b315c3b68 Modernize and fix website build tooling deps and utilize JS type checking (#3348)
* Modernize and fix website build tooling deps and utilize JS type checking

* Upgrade to the latest Node.js
2025-11-06 16:30:35 -08:00
Keavon Chambers 96d73a8570 Remove the application title from the header bar 2025-11-06 09:20:51 -08:00
Keavon Chambers 6d669ad734 Add documentation to many nodes (#3338) 2025-11-03 15:51:50 -08:00
Keavon Chambers 055d543117 Rename the 'Index' node to 'Index Elements' 2025-11-03 13:35:56 -08:00
Keavon Chambers 0998abdaf3 Add support for visualizing Vec<String> in the Data panel 2025-11-03 13:13:54 -08:00
Keavon Chambers 9dd715e4e9 Update community meetup blog post agenda details 2025-10-09 12:41:17 +02:00
Keavon Chambers 3364059e02 Add tooltip documentation to the graphic flattening nodes and string nodes (#3269) 2025-10-07 16:50:18 +02:00
Keavon Chambers 55a64064b0 Make the 'Decompose Rotation' node return degrees not radians; add tooltip documentation to transform nodes (#3268)
Make the 'Decompose Rotation' node return degrees not radians, and add tooltip documentation to transformation nodes
2025-10-07 09:36:35 +00:00
Keavon Chambers 91b08f4b4f Add tooltip documentation for animation-focused nodes (#3267) 2025-10-07 07:00:27 +00:00
Keavon Chambers fc9afce504 Add tooltip documentation for blending-focused nodes (#3266) 2025-10-07 00:23:50 +00:00
Keavon Chambers 6c033a2cd6 Tidy up tooltip documentation for several assorted nodes (#3265) 2025-10-07 01:28:03 +02:00
Keavon Chambers 593a89f2e2 Update content throughout the website (#3252) 2025-10-04 00:47:56 +00:00
Keavon Chambers f4a0f272dd Add note about the September 2025 release to the editor welcome screen 2025-09-20 05:20:20 -07:00
Keavon Chambers ac4665683b Blog post: Graphite community meetup in Germany 2025-09-20 01:59:05 -07:00
Keavon Chambers 9d15e56ce1 Fix and clean up typing-related flaws with the Math category of nodes 2025-09-18 16:37:01 -07:00
Keavon Chambers 7e3ab78ea4 Fix more flaws with 'Transform' node rad-to-deg migration; make 'Tangent on Path' also use degrees by default 2025-09-18 14:09:10 -07:00
Keavon Chambers 4662cbbbc1 Make the 'Count Elements' and 'String Length' nodes return f64 for consistency with 'Instance Index' 2025-09-16 16:08:03 -07:00
Keavon Chambers a1df16bc9e Switch infinite color/gradient rendering to a more robust approach 2025-09-13 14:03:11 -07:00
Keavon Chambers 50f06c886f Fix crash from #3160 when migrating some old documents to use degrees not radians 2025-09-11 15:14:41 -07:00
Keavon Chambers 9a32e79853 Rename NodeInput::Network to NodeInput::Import (#3163) 2025-09-10 20:50:15 -07:00
Keavon Chambers 22aa8c1264 Update UI widget designs to improve color consistency and add a narrow height mode 2025-09-08 21:48:22 -07: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
Keavon Chambers 89c9cf1352 Fix infinite recursion introduced in #2795 that occurs in old document migrations 2025-09-05 14:04:10 -07:00
Keavon Chambers b5ebe78f5e Update all frontend npm dependencies except Svelte and Vite (#3120)
* Upgrade node dependencies except Svelte 5 and its peer deps

* Fix lint errors

* Fix previous Rust deps upgrade breakage

* Fix demo artwork

* Allow profiling CI workflow to fail
2025-09-01 17:22:30 -07:00
Keavon Chambers 29684dde45 Update Rust dependencies (#3112)
* Update Rust dependencies

* Bump versions

* Try older ctor
2025-08-30 20:06:56 -07:00
Keavon Chambers 0e467907e2 Improve font import; replace Inconsolata with Source Code Pro; show third-party licenses in editor dialog (#3079)
* Improve font import; replace Inconsolata with Source Code Pro; show third-party licenses in editor dialog

* Code review
2025-08-21 11:57:04 -07:00
Keavon Chambers 3bcec37493 Remove the deprecated/archived Bezier-rs library from the repo (#3058)
Remove the Bezier-rs library from the repo
2025-08-16 17:29:00 -07:00
Keavon Chambers bdc029c692 Add Table<Gradient> as a graphical type (#3051) 2025-08-13 01:42:51 -07:00
Keavon Chambers 1b351aca76 Replace the Color type with Table<Color> everywhere (#3048) 2025-08-12 00:38:23 -07:00
Keavon Chambers 2bb4509647 Replace the Spreadsheet panel with an improved Data panel (#3037)
* Improve the table data panel

* Add the "Window" menu bar section and polish everything
2025-08-10 07:46:42 -07:00
Keavon Chambers 2f4aef34e5 Add Table<Color> as a graphical type (#3033)
* Reduce code duplication in bounding box impls on Table

* Working Table<Color> rendering in the graph

* Implement color and fix other rendering with Vello and polish
2025-08-10 01:34:33 -07:00
Keavon Chambers 0f638314dc Rename the Group type to Graphic everywhere (#3009) 2025-08-05 20:55:15 -07:00
Keavon Chambers 6dd17f76c1 Fix pointer offset from viewport position 2025-08-05 03:26:09 -07:00
Keavon Chambers 2e1396462c Eliminate bare Graphic and Artboard graph data by making Merge and Artboard nodes internally use tables (#2996)
* Eliminate bare Graphic and Artboard graph data by making Merge and Artboard nodes internally use tables

* Make the Extend node user-facing
2025-08-05 02:24:12 -07:00
Keavon Chambers 4b11dced48 Make Table<T> implement the IntoIterator trait 2025-08-04 15:20:48 -07:00
Keavon Chambers c98477d8ed Rename graphic subtypes to remove their "data" and "group" suffixes (#2990)
* Rename VectorData to Vector

* Rename other VectorData* types to Vector*

* Move assorted data types out of vector_data.rs into misc.rs

* Rename vector_data.rs to vector_types.rs and remove the vector_types module folder

* Rename other references to "vector data"

* Remove label widgets for raster/vector/group to use "-" instead

* Rename RasterData to Raster

* Rename GraphicGroup to Group

* Fix migrations and rename graphic_element.rs -> graphic.rs

* Rename TaggedValue::ArtboardGroup -> TaggedValue::Artboard
2025-08-04 04:53:25 -07:00
Keavon Chambers 5637f01845 Rename GraphicElement -> Graphic and trait GraphicElementRendered -> Render (#2987) 2025-08-03 16:15:02 -07:00
Keavon Chambers 9a4a7dee80 Make auto-saving happen once per second 2025-08-03 15:20:30 -07:00
Keavon Chambers a0ce56d9b6 Rename Instances<T> to Table<T> and the "instance" terminology to "TableRow" and "element" (#2981)
* Instances -> Table

* instances.rs -> table.rs

* Rename occurrances of the word "instances"

* .instance -> .element

* Instance* -> TableRow*

* Rename Table and TableRow methods to not say "instance"

* Remove presumed unused serde defaults now that tables default to length 0 not 1

* Rename occurences of the word "instance"

* Un-alias the RasterDataTable<Storage>, VectorDataTable, GraphicGroupTable, ArtboardGroupTable typedefs

* Move artboard type and node code out of graphic_element.rs to a new artboard.rs

* Organize the TaggedValues

* Fix tests

* Fix prior regression with Image Value node not upgrading
2025-08-03 04:12:18 -07:00
Keavon Chambers 07802204f2 Fix ~1 second delay opening new document in Chrome by correctly setting willReadFrequently (#2962)
* Fix ~1 second delay opening new document in Chrome by correctly setting willReadFrequently

* Use willReadFrequently in a couple more places
2025-07-31 02:49:16 -07:00
Keavon Chambers abab145d65 Fix the Rasterize node to not ignore raster graphical data 2025-07-31 01:21:32 -07:00
Keavon Chambers 3cc9dd79fb Rename the Coordinate data type to Vec2 (#2959) 2025-07-30 22:53:36 -07:00
Keavon Chambers 4391f88d03 Update references to the latest tech stack plans 2025-07-29 15:17:41 -07:00
Keavon Chambers b348fabfd2 Remove the unsupported Brush tool warning dialog now that raster performance is improved 2025-07-28 17:03:48 -07:00
Keavon Chambers 66cd7a3b76 Desktop: Add the transparent viewport hole punch and hook up window button plumbing (#2949) 2025-07-28 02:13:32 -07:00
Keavon Chambers d9de1a1c73 Update the website's development roadmap 2025-07-27 03:17:44 -07:00
Keavon ChambersandAdam f299497090 Add shaking input gesture to disconnect a node being dragged (#2889)
* Add shaking input gesture to disconnect a node being dragged

* Improve shake detection algorithm

* Fix reconnection

* Improve shake reconnect logic

* Fix history

---------

Co-authored-by: Adam <adamgerhant@gmail.com>
2025-07-19 02:11:52 -07:00
Keavon Chambers 6f46f21e21 Improve the HTTP request nodes and add new related nodes (#2896)
* Improve the network request nodes and add new ones to process data

* Use Content-Type: application/octet-stream

* Add 'Gamma Correction' node
2025-07-18 05:03:50 -07:00
Keavon Chambers 561b671f8d Add transform-related nodes to improve transformation abilities (#2893)
* Improve transformation abilities with transform-related nodes

* Fix Transform -> Merge and Transform -> Artboard connections
2025-07-17 11:58:57 -07:00
Keavon Chambers 8f26c5c2ad Remove the UVec2 and IVec2 graph data types and have Artboard use DVec2 (#2894) 2025-07-16 18:45:10 -07:00
Keavon Chambers 99966d848d Fix text per-glyph instance overlays and click target issues 2025-07-14 14:47:01 -07:00
Keavon Chambers 112efe88c2 Add multi-level loop indexing with the 'Instance Repeat' node 2025-07-14 02:55:44 -07:00
Keavon Chambers be8378309d Avoid crashing if an error occurs in the layout widget update handlers 2025-07-14 00:24:17 -07:00
Keavon Chambers 88ac275e47 New nodes: 'Greatest Common Divisor' and 'Least Common Multiple' 2025-07-13 19:43:28 -07:00
Keavon Chambers d6d1bbb1e6 Add editor structure outline to the developer guide on the website 2025-07-12 23:09:29 -07:00
Keavon Chambers 765092fbe9 Rename the message system's 'data' argument to 'context' (#2872) 2025-07-12 22:50:59 -07:00
Keavon Chambers ceffcfd8df Update website deployment CI script to output auto-generated code docs artifacts (#2849) 2025-07-09 23:51:25 -07:00
Keavon Chambers d2f8c99744 Avoid panics during document migration 2025-07-08 18:13:05 -07:00
Keavon Chambers a1d93da532 Fix 'Grid' node migrations breaking up-to-date documents 2025-07-07 18:39:04 -07:00
Keavon Chambers c2f9a42a8e Update allowed license signatures 2025-07-06 01:01:44 -07:00
Keavon Chambers 354a68911e Improve hotkeys with canonical flag, more industry-standard mappings, and fix GRS menu bar labels (#2827) 2025-07-04 04:58:52 -07:00
Keavon Chambers 8c5accc069 Clean up node catalog by adding missing units, more tooltips; fix 'Line' node missing parameters (#2813)
* Fix unit usages

* Add node and parameter doc comments

* Fix the parameters panel for the 'Line' node when added from the graph

* Clean up nodes

* Fix tests

* Update the demo artwork
2025-07-01 07:47:54 -07:00
Keavon Chambers 0febfaf142 Make the node graph unrenderable message less scary 2025-07-01 05:29:09 -07:00
Keavon Chambers c671705945 New node: 'Index' 2025-07-01 05:25:33 -07:00
Keavon Chambers d8e15aeb93 Update the video on the project readme 2025-06-30 15:53:02 -07:00
Keavon Chambers d7fbbac95e Add videos to the website home page and features page 2025-06-30 10:04:37 -07:00
Keavon Chambers 217d112aae Update the readme with a new video 2025-06-30 08:02:22 -07:00
Keavon Chambers 1875779b0a Remove dead code for Imaginate 2025-06-26 18:46:46 -07:00
Keavon Chambers 1a4d7aa23c Refactor the document upgrading code into a separate migrations file 2025-06-26 18:10:29 -07:00
Keavon Chambers 02afd08c80 Fix 'Scatter Points' node double transformation of points and remove segments connecting the points 2025-06-26 00:19:49 -07:00
Keavon Chambers 4a65ad290c Fix 'Boolean Operation' node merge-by-distance post-processing
Fixes #2750
2025-06-24 18:23:09 -07:00
Keavon Chambers 11ba2cc0fe New node: 'Split Segments' 2025-06-24 04:55:27 -07:00
Keavon Chambers fdb09e334b Improve the categorization across many nodes 2025-06-23 18:52:05 -07:00
Keavon Chambers 59bb3194ca Fix website donation page to work with responsive design 2025-06-23 03:55:32 -07:00
Keavon Chambers ae88f4a3de Replace all hard-coded magic number node input indices with *Input::INDEX constants 2025-06-22 23:18:34 -07:00
Keavon Chambers b5975e92b2 Combine 'Merge by Distance' nodes with a choice of algorithm; clean up 'Boolean Operation' node result with merge-by-distance 2025-06-22 04:22:39 -07:00
Keavon Chambers c1b15fcfdf Fix Ctrl+Space not closing the graph after opening the node creation menu 2025-06-22 03:29:41 -07:00