in src/visual.ts [1013:1059]
    private fadeNode(node: ForceGraphNode): void {
        if (!this.settings || this.settings.links.colorLink !== LinkColorType.Interactive) {
            return;
        }
        let self: ForceGraph = this,
            isHighlight = node.isOver || node.isDrag,
            opacity: number = isHighlight
                ? ForceGraph.HoverOpacity
                : ForceGraph.DefaultOpacity;
        let highlight: string = isHighlight
            ? ForceGraph.DefaultLinkHighlightColor
            : ForceGraph.DefaultLinkColor;
        this.nodes.style("stroke-opacity", function (otherNode: ForceGraphNode) {
            let thisOpacity: number = (self.settings.nodes.highlightReachableLinks
                ? self.isReachable(node, otherNode)
                : self.areNodesConnected(node, otherNode))
                ? ForceGraph.DefaultOpacity
                : opacity;
            this.setAttribute("fill-opacity", thisOpacity);
            return thisOpacity;
        });
        this.paths.style("stroke-opacity", (link: ForceGraphLink) =>
            (this.settings.nodes.highlightReachableLinks
                ? this.isReachable(node, link.source)
                : (link.source === node || link.target === node))
                ? ForceGraph.DefaultOpacity
                : opacity
        );
        this.paths.style("stroke", (link: ForceGraphLink) => {
            const color = (this.settings.nodes.highlightReachableLinks
                ? this.isReachable(node, link.source)
                : (link.source === node || link.target === node))
                ? highlight
                : ForceGraph.DefaultLinkColor;
            return this.colorHelper.getHighContrastColor(
                "foreground",
                color
            );
        });
    }