I want to fill the rectangle with a color gradient by overriding the drawRect method in BpmnRenderer.
Hi raangs4u,
If you want to generate a color gradient in the BpmnRenderer, you can use the gradient function of SnapSVG:
function drawRect(p, width, height, r, offset, attrs) {
var gradient = p.gradient("l(0, 0, 1, 1)#000-#f00-#fff");
attrs = computeStyle(attrs, {
stroke: 'black',
strokeWidth: 2,
fill: gradient
});
But the preferred solution would be to style the gradient using CSS outside the BpmnRenderer
Hi pedesen,
Thanks for your reply.
I don’t want to edit the source code that is why I wanted to override the method.
I was to able to change the color of tasks using css but I am unable to generate gradient using css for the tasks.
Could you provide a sample code for the css changes?
Okay, I might misunderstood you. If you want to know how to generally override the BpmnRenderer you could take a look at our custom elements example: https://github.com/bpmn-io/bpmn-js-examples/tree/master/custom-elements. There you can find a CustomRenderer where you can see how to add custom elements. You can also override the rendering of existing BPMN elements if you use the according type (i.e. bpmn:Task
instead of custom:triangle
).
It’s different than I said, and it is apparently not possible to style a gradient on SVG elements using CSS, my bad, sorry.
Have you solved it? I also want to know how to do it.