HTMLGraph logo HTMLGraph

Changing Edge Color

Edge color can be dynamically modified using --edge-color CSS variable for edge svg element, as shown in the example below.

This example demonstrates how to change edge color on mouse hover, using InteractiveEdgeShape decorator.

    
import {
  CanvasBuilder,
  BezierEdgeShape,
  InteractiveEdgeShape,
} from "@html-graph/html-graph";

const element = document.getElementById("canvas");

const canvas = new CanvasBuilder(element)
  .setDefaults({
    edges: {
      shape: () => {
        const baseShape = new BezierEdgeShape({
          hasTargetArrow: true,
          color: "#777777"
        });

        const interactiveShape = new InteractiveEdgeShape(baseShape, {
          width: 20,
        });

        interactiveShape.handle.addEventListener("mouseenter", () => {
          interactiveShape.svg.style.setProperty("--edge-color", "#f9880e");
        });

        interactiveShape.handle.addEventListener("mouseleave", () => {
          interactiveShape.svg.style.setProperty("--edge-color", "#777777");
        });

        return interactiveShape;
      },
    },
  })
  .build();

  
Changing edge color on mouse hover