Lightweight: elk-svg is a zero-dependency library renders ELK json format into SVG.
Customizable: There is no additional abstraction layer. You can do whatever if SVG supports it.
elk-svg
manages internal state and modifies DOM only if necessary: it means CSS animation will works well.
Check out wiki for more information.
Usage
npm i elk-svg
import "./style.css"
import { ElkSvg } from "elk-svg";
const elk = new ELK();
const elkSvg = new ElkSvg({ container:document.querySelector("svg") });
async function renderElkNode(node:ElkNode) {
await elk.layout(node);
elkSvg.render(node);
}