Commit Graph
100 Commits
Author SHA1 Message Date
Keavon Chambers d12d805e2f Fix website styling 2022-05-25 00:27:07 -07:00
Keavon Chambers 8029c8c001 Fix DropdownInput repeated change emitting 2022-06-19 19:32:18 -07:00
Keavon Chambers fe4a76a395 Implement the Edit > Paste menu entry (#683)
Closes #682
2022-06-19 00:53:33 -07:00
Keavon Chambers 9bd27ec3f8 Change MenuList checkbox to be an icon from a widget 2022-06-17 17:55:04 -07:00
Keavon Chambers ea0dbd1290 Add code style formatting to the website 2022-06-16 22:57:15 -07:00
Keavon Chambers 18a7c6a289 Update npm dependencies (#678) 2022-06-13 12:32:01 -07:00
Keavon Chambers 0f93cc1e17 Update banner for the lastest blog post 2022-06-06 16:09:42 -07:00
Keavon Chambers c4dc999a38 Update readme 2022-05-25 00:27:29 -07:00
Keavon Chambers 8b94c62697 Refactor source of Git commit build info (closes #661) 2022-05-24 14:33:58 -07:00
Keavon Chambers d5b43ef2da Add frontend file structure docs and some related cleanup 2022-05-23 19:13:51 -07:00
Keavon Chambers e4e37cca7b Reorganize Vue components and add documentation explaining each folder 2022-05-23 19:03:34 -07:00
Keavon Chambers 5650a87465 Update the assets directory to prefix icon folders with "icon-" 2022-05-22 00:06:10 -07:00
Keavon Chambers fc2d983bd7 Vue initialization and FloatingMenu codebase refactoring and cleanup (#649)
* Clean up Vue initialization-related code

* Rename folder: dispatcher -> interop

* Rename folder: state -> providers

* Comments and clarification

* Rename JS dispatcher to subscription router

* Assorted cleanup and renaming

* Rename: js-messages.ts -> messages.ts

* Comments

* Remove unused Vue component injects

* Clean up coming soon and add warning about freezing the app

* Further cleanup

* Dangerous changes

* Simplify App.vue code

* Move more disparate init code from components into managers

* Rename folder: providers -> state-providers

* Other

* Move Document panel options bar separator to backend

* Add destructors to managers to fix HMR

* Comments and code style

* Rename variable: font -> font_file_url

* Fix async font loading; refactor janky floating menu openness and min-width measurement; fix Vetur errors

* Fix misaligned canvas in viewport until panning on page (re)load

* Add Vue bidirectional props documentation

* More folder renaming for better terminology; add some documentation
2022-05-21 19:46:15 -07:00
Keavon Chambersand0hypercube 29e00e488b Move layouts definitions to backend and fix Firefox overlay scrollbars (#647)
* Fix two-axis scrollbars in scrollable regions on Firefox

* Move Document Mode dropdown to the backend; and related code cleanup

* Port the Layer Tree options bar layout to the backend

* Port the tool shelf to the backend

* Clean up initialization and wasm wrapper

* Fix crash

* Fix missing document bar

* Remove unused functions in api.rs

* Code review

* Tool initalisation

* Remove some frontend functions

* Initalise -> Init so en-US/GB doesn't have to matter :)

* Remove blend_mode and opacity from LayerPanelEntry

Co-authored-by: 0hypercube <0hypercube@gmail.com>
2022-05-17 13:12:52 -07:00
Keavon Chambers e7d63276ad Update the VS Code rust-analyzer extension to its new official owner 2022-05-13 12:09:37 -07:00
Keavon Chambers 3480cc93d9 Fix website rendering issues on Firefox with -webkit-line-clamp 2022-05-12 13:34:26 -07:00
Keavon Chambers ff57fef77c Fix website responsive layouts 2022-05-12 13:08:53 -07:00
Keavon Chambers 3673490990 Add Reddit and Twitter links to blog posts 2022-05-12 01:15:56 -07:00
Keavon Chambers 13417b26e7 Fix website URL encoding in certain links 2022-05-12 01:04:23 -07:00
Keavon Chambers 44f3ad27ec Blog post updates 2022-05-12 00:45:20 -07:00
Keavon Chambersand0hypercube 19b2d3f859 Build the node graph frontend with placeholder graph info (#581)
* Build the node graph frontend

* Graph pan and zoom

* Graph's dot grid now pans/zooms also

* Interactive horisontal to vertical curves

* Data types and zooming on wires

* Icon definitions code beautification

* Add a visibility toggle

Co-authored-by: 0hypercube <0hypercube@gmail.com>
2022-05-10 22:34:25 -07:00
Keavon Chambers 5571f39b41 Update list of recommended VS Code extensions 2022-05-10 20:39:58 -07:00
Keavon Chambers b24d280d81 Clean up website file structure 2022-05-10 11:35:39 -07:00
Keavon Chambers 1a8cc9654a Move the Layer Tree panel's New Folder and Delete icons into the options bar 2022-05-06 12:44:38 -07:00
Keavon Chambers 07736a9fca Tidy up the full frontend codebase and use optional chaining where possible (#620)
* Tidy up the full frontend codebase and use optional chaining where possible

* Code review changes
2022-04-30 02:52:53 -07:00
Keavon Chambersand0hypercube 92ee3bbad3 Upgrade vue-cli to version 5 (#594)
* Upgrade to Vue CLI 5 (fails to compile)

* Upgrade versions with last few weeks of changes

* Updated to fork-ts-checker-webpack-plugin 7.2.3

* Remove package.json overrides in lieu of the fixed fork-ts-checker-webpack-plugin@6.5.1

* Fix svg importing

* Comments

* For debugging only: added infrastructureLogging to vue.config.js

* Now works on Windows, waiting on fork-ts-checker-webpack-plugin backport if possible

* Switch to the fixed fork-ts-checker-webpack-plugin@6.5.2

* Fix license checker build compilation

Co-authored-by: 0hypercube <0hypercube@gmail.com>
2022-04-26 01:47:13 -07:00
Keavon Chambers f38289f036 Change stroke weight from ints to floats (#601)
Also rename stroke "width" to "weight" in some places. Closes #587

* Change stroke weight from ints to floats

* "miter_limit" -> "line_join_miter_limit"

* Bump file format version
2022-04-21 13:35:35 -07:00
Keavon Chambers 632928f4f6 Rename Crop tool to Artboard tool 2022-04-21 10:52:33 -07:00
Keavon Chambers bbe94e35cb New blog post: "Distributed computing with the Graphene runtime" 2022-04-16 11:06:26 -07:00
Keavon Chambers e4b2cb2f53 Expand upon the "Announcing Graphite alpha" blog post 2022-04-14 10:19:09 -07:00
Keavon Chambers 9ced465150 Add node graph mockup to website 2022-03-25 02:11:31 -07:00
Keavon Chambers f6726c1427 Various website fixes 2022-03-17 02:12:23 -07:00
Keavon Chambers 36d67393b9 Small website text improvements 2022-03-15 16:06:09 -07:00
Keavon Chambers 593aa99ffa Add features page and fixes to website 2022-03-13 11:32:53 -07:00
Keavon Chambers d4f62ba01d Add website revisions and many new pages 2022-03-12 08:31:12 -08:00
Keavon Chambers 2f6722fb40 Add Image node icon and rename node from Path to Shape 2022-03-05 23:51:59 -08:00
Keavon Chambers 3d8108a32b Change tool shelf icon colors to use classes not style 2022-03-05 18:28:41 -08:00
Keavon Chambers 788f8db127 Remake node type icons (closes #483); color picker cleanup 2022-03-04 22:48:22 -08:00
Keavon Chambers 8a05712dac Reorder tool icons, update favicon and logo, and other icon cleanup 2022-03-04 13:04:59 -08:00
Keavon Chambers bd9571103e Set text color based on its fill when it's being edited 2022-03-04 12:15:42 -08:00
Keavon Chambers 0bdb08f34d Update npm dependencies 2022-03-02 22:02:40 -08:00
Keavon Chambers f128434e50 Add "New Folder"/"Delete Selected" buttons to layer panel
Closes #532
2022-03-02 21:55:32 -08:00
Keavon Chambers 8c248f386e Add newsletter signup to website 2022-02-19 03:31:02 -08:00
Keavon Chambers 248e2ab0d1 Website responsive resizing improvements 2022-02-19 02:15:28 -08:00
Keavon Chambers 3f79df7314 Create project website with near-complete home page 2022-02-17 02:44:02 -08:00
Keavon Chambers 31fb0d7148 Release Alpha Milestone 1! 2022-02-12 09:31:48 -08:00
Keavon Chambers 77dc125095 Polishing: standardize binding JS resize event (fixes non-integer AA rendering); remove "X" to delete; cleanup 2022-02-10 02:29:45 -08:00
Keavon Chambers a4d3c343a0 Improve Path Tool hint text 2022-02-09 16:52:54 -08:00
Keavon Chambersandmfish33 bd844aaf94 Add the TextInput widget (#518)
* Separate out the number input from a generic field input

* Add TextInput widget

Co-authored-by: mfish33 <32677537+mfish33@users.noreply.github.com>
2022-02-09 12:16:44 -08:00
Keavon Chambers ca46767cf2 Solve "Coming Soon" dialog from bubbled click event on sub-menu entries (#517) 2022-02-05 13:49:12 -08:00
Keavon Chambers e9116a4775 Rename deployment script 2022-02-03 18:29:02 -08:00
Keavon ChambersandMoritz Vetter 434970aa16 Implement layer renaming (#501)
* Implement layer renaming

* Fix sneaky typo in CSS

Co-authored-by: Moritz Vetter <16950410+HansAuger@users.noreply.github.com>

Co-authored-by: Moritz Vetter <16950410+HansAuger@users.noreply.github.com>
2022-01-29 11:04:15 -08:00
Keavon Chambers 8c29592db8 Clean up web code's use of display CSS properties, using <LayoutRow>/<LayoutCol> where intended 2022-01-23 20:23:35 -08:00
Keavon Chambers 45d75bd13f Move scrollable behavior into LayoutRow/LayoutCol 2022-01-22 23:02:59 -08:00
Keavon Chambers 3038d72226 Fix sorting of message enum variants 2022-01-16 13:21:05 -08:00
Keavon Chambers 94ecbf7112 Make the toggle overlays button functional (#484)
* Make the toggle overlays button functional

* Move state from the OverlaysMessageHandler to DocumentMessageHandler

* Code review fixes
2022-01-16 09:40:47 -08:00
Keavon Chambers e877eea457 Fix all remaining Vue/TS errors flagged in Volar 2022-01-15 17:24:58 -08:00
Keavon Chambers 56599db753 Tweak whitespace around use statements and other lint fixes 2022-01-15 12:55:51 -08:00
Keavon Chambers 314503a6e1 Change canvas artboard background color to be 1 shade lighter 2022-01-15 06:35:06 -08:00
Keavon Chambers e9e43eb79b Modify all message enum data to use named struct values, not tuples (#479)
* Massively reorganize and clean up the whole Rust codebase

* Modify all message enum data to use named struct values, not tuples
2022-01-14 20:54:38 -08:00
Keavon Chambers f48d4e1884 Massively reorganize and clean up the whole Rust codebase (#478)
* Massively reorganize and clean up the whole Rust codebase

* Additional changes during code review
2022-01-14 14:58:08 -08:00
Keavon Chambers 011c2be26d Sort messages and message handlers 2022-01-12 16:17:40 -08:00
Keavon Chambers 6c639270ae Standardize FrontendMessage message names 2022-01-12 14:16:13 -08:00
Keavon Chambers ae829c63b4 Rename document_file.rs to document_message_handler.rs 2022-01-12 12:45:07 -08:00
Keavon Chambers 4d68d0d061 Rename DocumentsMessage to PortfolioMessage 2022-01-12 12:19:14 -08:00
Keavon Chambers 647b0bc942 Rename document_message_handler.rs to portfolio_message_handler.rs 2022-01-12 11:44:49 -08:00
Keavon Chambers c255c7eac6 Add npm start script alias for npm run serve 2022-01-12 06:14:32 -08:00
Keavon Chambers e101d4524d Switch VS Code's Vue extension from Vetur to Volar 2022-01-12 05:17:56 -08:00
Keavon Chambers cbb4feba45 Remove Charcoal references from the code for now 2022-01-12 03:56:28 -08:00
Keavon Chambers 7dfabcedfc Fix NumberInput clamping regression with undefined bounds 2022-01-10 18:06:12 -08:00
Keavon Chambers ddebaddd5d Redesign the Layer Tree UI (#468) 2022-01-07 23:13:33 -08:00
Keavon Chambers c98bee6470 Fix build script to use correct branch name 2022-01-05 05:40:32 -08:00
Keavon Chambers 5518384ec1 Vue/TS bug and bad typing fixes 2022-01-02 20:02:35 -08:00
Keavon Chambers 2c8d70acb4 Major frontend code cleanup (#452)
Many large changes, including:
- TypeScript enums are now string unions throughout
- Strong type-checking throughout the TS and Vue codebase
- Vue component props now all specify `as PropType<...>`
- Usage of annotated return types on all functions
- Sorting of JS import statements
- Explicit usage of Vue bind attribute function call arguments (`@click="foo"` is now `@click=(e) => foo(e)`)
- Much improved code quality related to the color picker
- Consistent camelCase Vue bind and v-model attributes
- Consistent Vue HTML attribute strings with single quotes
- Bug fix and clarity improvement with incorrect hint class parameters
- Empty Vue component objects like `props: {}` and `components: {}` removed
2022-01-02 06:00:02 -08:00
Keavon Chambers 6662a9a04f Rename Editor's LayerData to LayerMetadata 2021-12-31 00:02:29 -08:00
Keavon Chambers 5b3cbb30fc Fix all clippy lint errors 2021-12-30 23:05:54 -08:00
3dea989a00 New overlay system that reimplements how overlays are drawn (#418)
* New overlay system that reimplements how overlays are drawn

* Fix overlay message declaration

* Fix small mistake

* WIP (broken) changes to plumb the overlay document

* Fix confusion over messaging system architecture

* Removed log

* Overlay system working

* (broken) WIP overlay association

* Finish the overlay system (except test failure)

* Change back IDs in test

* Fixed test, but stilled fails due to revealed real problem with layer reordering selection

* Disable broken test that has a bug in issue #444

Co-authored-by: Dennis <dennis@kobert.dev>
Co-authored-by: otdavies <oliver@psyfer.io>
2021-12-30 09:48:39 -08:00
Keavon Chambers d2b0411295 Implement input hints based on the active tool state (#388)
* Hook up user input hints to display in the frontend status bar

Closes #171

* MVP hint system based on tool FSM

* Fix hints for Fill and Eyedropper tools

* Add icons for keyboard shortcuts

* Fix hints for Pen Tool

* Cleanup
2021-12-24 01:46:03 -08:00
Keavon Chambers 3500160bf7 Fix previous commit by mapping codes to keys 2021-12-23 16:02:54 -08:00
Keavon Chambers 05737202fa Add a temporary solution to non-Latin keyboards being unusable 2021-12-23 13:29:02 -08:00
Keavon Chambers 30418c51f8 Make the Pen Tool confirm when leaving the tool 2021-12-21 18:48:21 -08:00
Keavon Chambers dd8cd4a2fa Skip the web page close confirmation when crashed or in debug mode 2021-12-21 18:43:02 -08:00
Keavon Chambers 79b247c0aa Set Cargo.toml versions to 0.0.0 to avoid version confusion 2021-12-20 14:59:26 -08:00
Keavon Chambers 6701437433 Upgrade node packages (#413) 2021-12-20 13:09:24 -08:00
Keavon Chambers 0da034afc8 Skip cargo-about in CI to save 5 minutes (#409) 2021-12-20 02:22:19 -08:00
Keavon Chambers 6d82672a95 Make deployment switch branch from HEAD to master 2021-12-16 03:05:10 -08:00
Keavon Chambers 471610accd Add the Help > About Graphite dialog with build info
Closes #404
2021-12-16 02:31:41 -08:00
Keavon Chambers d4e3684744 Clean up JS message dispatcher and fix a bug thrown on empty-data messages
Fixes bug in #394
2021-12-16 02:18:45 -08:00
Keavon Chambers 1cf90bde9a Fix floating menus above scrollable content; they now respect content's preferred width at edges 2021-12-15 04:04:59 -08:00
Keavon Chambers 4cbccbd8cf Update the project readme 2021-12-06 16:51:58 -08:00
Keavon Chambers 20a4c76fd7 Fix bug in last commit that broke when scrolling on SVG elements 2021-12-06 02:55:05 -08:00
Keavon Chambers 207e46ed4f Enable vertical scroll wheel on horizontal scrollable containers 2021-12-05 20:05:45 -08:00
Keavon Chambers 75eb7c4839 Switch CI and CD scripts to use npm ci instead of npm install 2021-12-05 18:39:45 -08:00
Keavon Chambers bd1da01b1d Fix ESLint configuration triggering an error in the ESLint VS Code extension 2021-12-05 18:39:02 -08:00
Keavon Chambers 54590d594a CSS editor layout fixes and scrolling
Major CSS improvements to layout at small screen sizes. By adding min-width: 0 and min-height: 0 on the nested display: flex structure, widgets no longer coerce the whole layout into large-scale resizing. Scrollbars are now used to allow correct overflowing of the tab bar (fixes #177), Document Panel options bar, and tool shelf. Improvements to responsive resizing are also included for viewing the UI correctly on mobile now. Additional small fixes to styling of widget colors and corner roundness. The ruler has been darkened one shade to improve text contrast and aesthetics.
2021-12-04 22:30:07 -08:00
Keavon Chambers fa64cfad4b Switch to Node.js 16 LTS, upgrade TypeScript, ESLint, and other dependencies (#395)
* Upgrade TypeScript, ESLint, and other dependencies

This also cleans up various other files where newer ESLint rules complained

* Set CI and CD to use Node.js version 16

* Small tweak

* Fix CD version printing

* Add nvm version for Cloudflare Pages
2021-11-29 03:32:09 -08:00
Keavon Chambers 26835d8d29 Upgrade rustfmt to 2021 edition 2021-11-02 20:08:39 -07:00
Keavon Chambers b902b50ec4 Update various node dependencies (#391) 2021-11-01 02:57:08 -07:00
Keavon Chambers fa12fd9d49 Update notice for Safari users that BigInt64Array is now supported in 15 (#390) 2021-11-01 01:16:19 -07:00
Keavon Chambers 3c29633745 Replace vue-svg-loader dependency with simple JS file (fixes a security alert) (#389) 2021-11-01 00:14:31 -07:00