Feat(UI): Add linear and radial gradient tools to canvas #8774
+738
−5
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds a set of radial and linear gradients to available toolset on canvas.
Adds parent and child custom buttons.
Tool respects color transparency and both color swatches. It draws gradient in direction of mouse movement: from active color to inactive. Gradient is rasterized on mouse release on current active layer.
It is also possible to activate clipping by drag start-stop points.
Gradient is clipped by bbox to save on performance.
2026-01-18.16-30-16.mp4
Related Issues / Discussions
QA Instructions
Merge Plan
PR merge should be painless. Though, code might need a proper check.
Checklist
What's Newcopy (if doing a release after this PR)