Keavon Chambers
3a2166375a
Refactor RadioInput widget ( #332 )
2021-08-07 03:15:40 -07:00
Keavon Chambers
d3958f80fa
Add checkbox to MenuBarInput widget
2021-07-31 18:20:51 -07:00
Keavon Chambers
ed9883e0d8
Add DialogModal and use it for close confirmations and "coming soon" features ( #322 )
...
Closes #269
Closes #196
* Add DialogModal and use it for close confirmations and "coming soon" features
* Code cleanup; add Enter key to accept emphasized dialog button
2021-07-31 14:30:31 -07:00
Keavon Chambers
8c1532b0eb
Add features to NumberInput widget; refactor widgets and tool options ( #311 )
...
Closes #310
* Add features to NumberInput widget; refactor widgets and tool options
* Fix swap/reset working colors using @click instead of :action
2021-07-27 18:28:21 -07:00
Keavon Chambers
9e92d48454
Fix antialiasing caused by <svg> width/height 100%
2021-07-25 17:25:39 -07:00
Henry Sloan
da8422786b
MVP eyedropper tool for fill colors ( #300 )
...
* Implement eyedropper for layer fill colors
* Add shortcut for eyedropper
* Add right mouse sampling for secondary color
2021-07-24 18:29:32 -04:00
8f9168bfe5
Blend modes ( #252 )
...
* Add backend for selecting layer blend mode
* Change dropdown input to support callback on change
* Add debug messages
* Fix canvas update for blend-modes
* Finish up and polish blend modes implementations
* Add changes from code review
Co-authored-by: Keavon Chambers <keavon@keavon.com >
Co-authored-by: Dennis Kobert <dennis@kobert.dev >
2021-07-23 10:21:07 -07:00
Henry Sloan
06c26f44d0
Options bar widgets for tools to control tool behavior ( #283 )
...
* Add JSON-backed options widget
* Add initial tool settings messaging to backend
* Add shape side selection with JSON deserialization
* Enforce minimum number of n-gon sides
* Make tool settings JSON errors safer
* Make tool settings JSON errors safer
* Refactor ToolOptions to ToolSettings
* Revert "Refactor ToolOptions to ToolSettings"
This reverts commit 651161fd16 .
* Refactor all instances of "settings" to "options"
* Fix names and formatting
* Rearrange ToolOptions data to enforce types
2021-07-21 01:07:48 -04:00
Keavon Chambers
bc733acb4c
Fix tooltips in Document panel
2021-07-19 18:02:08 -07:00
Keavon Chambers
131256ba0b
Add (nonfunctional) rulers and scrollbars to the viewport ( #279 )
...
* Add nonfunctional rulers and scrollbars to viewport
* Switch from DOM divs to SVG lines
* Switch from SVG lines to a single SVG path
* Change variable names
2021-07-17 16:11:52 -07:00
Keavon Chambers
d57bfb87ee
Clean up widget type naming conventions
2021-07-16 15:57:42 -07:00
Keavon Chambers
9c68ff2952
Categorize frontend widgets to match design system
2021-07-16 15:37:35 -07:00
Keavon Chambers
928ef844c4
Rename tool icons
2021-07-15 00:46:32 -07:00
Keavon Chambers
98f1b123bb
Switch all JS imports to absolute paths
2021-07-15 00:34:56 -07:00
Keavon Chambers
c76bb608d3
Cleanup of variable naming
2021-07-14 20:11:51 -07:00
Keavon Chambers
726152759f
Frontend refactor to move response handler, key input handling, and more into new utilities folder ( #260 )
...
Part of #124
2021-07-14 14:31:09 -07:00
Henry Sloan
9d34aa4867
Implement fill tool ( #254 )
...
* Implement fill tool
* Add fill tool shortcut
* Add getters and setters to styles
* Make fill tool act on the topmost layer clicked
* Refactor fill operation
* Refactor and unify selection tolerance
* Add mark_as_dirty function
* Fix getter names
2021-07-14 00:49:12 -07:00
Keavon Chambers
7ae91e8330
Clean up and polish some code from the previous commit ( #255 )
2021-07-13 00:52:45 -07:00
0HyperCube
39e6893630
Viewport canvas navigation with modifier keys and zoom widget ( #229 )
...
* Add rotation around the center
* Document transform centred
* Fix drawing hexagon on rotated document
* Format
* Fix translation on rotated document
* Remove logging
* Rotate around centre of viewport
* Rotate with shift + MMB drag
* Zoom with +/- keys
* Rotation input field
* Implement frontend zoom buttons
* Zoom with ctrl + MMB
* Format
* Update number inputs
* Require Ctrl + Plus / Minus key
* Ctrl scroll
* Update zoom -> Multiply Zoom
* Fix typo
* More fixing typo
* Remove :v-on
* Add mouse scroll X
* Scrolling on document
* Refactor
* Format
* Fix ctrl + plus/minus to zoom
* Reduce zoom sensitivity
* Ctrl + shift + mmb drag = snap rotate
* Further reduce zoom speed
* Add ctrl + number key to change zoom
* Switch Ctrl and Shift for zoom and rotate
* Fix compile errors
* Format JS
* Add increment to snap angle
* Edit getting layerdata functions
* Pass viewport size directily into create_document_transform_from_layerdata
* Add to_dvec2()
* Refactor get_transform
* Get -> Calculate
* Add consts
* Use to_radians
* Remove get from function names
* Use .entry when getting layerdata that does not exist
* Fix distance scroll calculations
* Fix zooming.
* Remove 'Violation' in chrome
* Fix compile errors
2021-07-12 23:50:10 -07:00
Simon Desloges
63b849fac3
Add modifier keys to every keyboard and mouse input ( #247 )
...
* Add modifier keys to every keyboard and mouse input
* Fix bad naming convention in Typescript
* Added some tests related to modifier keys
2021-07-11 20:46:00 -07:00
Keavon Chambers
e46889dc59
Add the checkbox input widget ( #204 )
...
* Add the checkbox input widget
* Add OptionalInput widget
2021-07-08 14:10:30 -07:00
Chrs Msln
b42991368a
Refactor frontend input components to use the v-model Vue pattern ( #224 )
...
* Use v-model for inputs
* Add opacity to LayerTree
* Fix FloatingMenu typing
2021-06-26 23:18:47 -07:00
Keavon Chambers
ce98060cc4
Add "Guide Mode" to viewport mode selector dropdown
2021-06-23 23:10:48 -07:00
Keavon Chambers
8a56d6cf46
Reduce the greediness of keyboard input redirection
...
Part of #124
2021-06-20 02:06:40 -07:00
Till Arnold
322526b983
Add keyboard shortcut to duplicate layers ( #214 )
...
* Add keyboard shortcut to duplicate layers
* Avoid heap allocation in DuplicateSelectedLayers
2021-06-16 11:15:02 +02:00
Keavon Chambers
ca712813c3
Add additional keyboard shortcut tooltips
2021-06-13 11:20:48 -07:00
Keavon Chambers
a3b679e64d
Improve UI behavior at smaller screen sizes so status bar overflows ( #158 )
...
Also includes various CSS flex-related cleanup throughout the UI.
Progress for #150
2021-06-08 00:54:24 -07:00
Keavon Chambers
91303459a9
Add the Dropdown Input widget ( #168 )
...
Fixes #135 .
* Add the Dropdown Input widget
* Fix font loading race condition
2021-06-06 02:17:36 -07:00
Keavon Chambers
83984700bf
Generalize and rename overlays as "floating menus"
...
Progress towards #135 .
2021-05-29 21:55:43 -07:00
TrueDoctor
eb48fbd180
Export current document as SVG when pressing Ctrl+Shift+S ( #160 )
...
* Export current document when pressing Ctrl+Shift+S
* Use a blob for download
* Add Ctrl + E shortcut, match on lower case
* Don't mount element in DOM
* Polish some keybindings
* Add initialization for MappingEntries
* Implement svg coloring
* Add newline after svg tag
* Add spaces to svg style format
* Fix more svg formatting
* Add space before />
* Remove duplicate whitespace
2021-05-28 20:43:51 +02:00
Chrs Msln
f3a23cb3ec
Implement color picker for primary/secondary working colors ( #70 )
...
* feat/color-picker: rework
* feat(161) lint
* feat(161) Remove response handlers
* feat(161) fix rgb <-> hsv conversion
* feat(161) inverse swatchs and add checkered bg
* feat(161) remove temporary color assignment
* feat(161) move cursor outside of the box
* feat(161) @Keavon feedbacks
* feat(161) lint
* feat(161) fix opacity-picker color
* feat(161) --saturation-picker-color
2021-05-27 14:59:52 -07:00
Keavon Chambers
c205fec0d4
Move all icon SVG imports to the Icon component
...
This change also removes the need to specify the icon size.
2021-05-27 02:14:32 -07:00
Keavon Chambers
313a1dfc65
Standardize icon sizes and folder paths ( closes #110 )
2021-05-27 00:14:50 -07:00
Keavon Chambers
d7478f5890
Update UI colors and alignment for consistency with the design mockup ( #157 )
...
Closes #111
2021-05-23 19:01:13 -07:00
Keavon Chambers
c97cb9905c
Rename and organize widget components to conform to design terminology ( #132 )
2021-05-21 13:10:32 -07:00
Keavon Chambers
c8eea1e4b1
Complete implementing popover system main features ( #131 )
...
* Make popover buttons open popover menus and add placeholder messages to all of them.
* Implement all directions for drawing, aligning, and edge-clamping popovers.
* Fix popovers so they are drawn outside their parent panel bounds and not clipped.
* Fix popover HTML to avoid nesting it inside a <button> element.
2021-05-21 12:22:30 -07:00
Keavon Chambers
b20addaaaf
Implement popover component and beginnings of color picker ( #128 )
2021-05-17 12:07:54 -07:00
Keavon Chambers
722c777ba6
Change default draw color to orange, plus small fixes
2021-05-08 15:17:31 -07:00
TrueDoctor and Keavon Chambers
437251f90e
Plumb layer panel ( #107 )
...
* WIP ExpandFolder handling
* Implement response parsing in typescript
* Update layer panel with list sent by wasm
* Add events for layer interaction
* Add proper default naming
* Fix displaying of the eye icon
* Attach path to LayerPanelEntry
* Fix lint issues
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2021-05-07 10:41:38 -07:00
Keavon Chambers
e448f908e3
Fix CSS extraneous space beneath icons
2021-05-07 02:47:38 -07:00
TrueDoctor
721a442b75
Use serde to serialize responses ( #96 )
2021-05-07 02:47:38 -07:00
TrueDoctor
cb9d34c84d
Improve rendering efficiency and add caching ( #95 )
...
Fixes #84
*Reduce heap allocations
* Add caching for rendering svgs
* Deduplicate UpdateCanvas Responses
2021-05-07 02:47:38 -07:00
TrueDoctor
c540d781e1
Fix active tool selection ( #92 )
2021-05-07 02:47:38 -07:00
TrueDoctor
3ab5f6b7ef
Add responses in document for layer system ( #91 )
2021-05-07 02:47:38 -07:00
Keavon Chambers
825e6954df
Rename tools: "Sample" to "Eyedropper", "Blur/Sharpen" to "Detail" ( #87 )
2021-05-07 02:47:38 -07:00
Edwin Cheng
5991181f91
Implement Pen Tool ( #79 )
2021-05-07 02:47:37 -07:00
0HyperCube
c04a0227f1
Add colors in Rust ( #78 )
...
* 🎨 Add colors in Rust
* 🌿 Use an option for the properties and #[repr(C)]
* ❌ Remove WASM dependency on document.
* 😎 Wrap Fill and stroke in a style struct.
* 📦 Use crate::Color
* Merge Add transactions for temporary modifications to the document
* Run cargo fmt
* Color without a 'U'
2021-05-07 02:47:34 -07:00
0HyperCube
b30e9ce3ba
Add Shape Tool for drawing polygons ( #75 )
...
* ⬠ Add polygon drawing tool
* 🔤 Minor fix of variable and function names
* ❌ Remove stroke
* ⌨️ Use N key as polygo tool shortcut.
* ⌨️ Now using key Y for polygons.
* ⌨️ The tooltip for the shortcut is fixed
2021-04-17 11:08:44 -07:00
Keavon Chambers
c94c2b3373
Fix web code linting to be portable across environments
2021-04-14 13:22:43 -07:00
Keavon Chambers
fcc4c1874b
Set CI environment variable to NODE_ENV=production during linting ( #73 )
2021-04-14 01:27:01 -07:00