Flowchart.js is a JavaScript library that converts a simple text-based domain-specific language into SVG flowcharts. It parses DSL keywords to define node types such as start, end, operation, condition, parallel, and subroutine, then renders them as distinct SVG shapes connected by directional paths.
The library distinguishes itself through its styling and interactivity capabilities. It supports applying CSS classes to SVG elements for external stylesheet overrides, as well as inline attribute overrides for per-node and per-edge visual properties like fill, stroke, and font. Flowchart.js also enables state-driven visual mapping, where semantic states such as past, current, or future are assigned predefined color and opacity values to reflect process progress. Additionally, it allows embedding clickable hyperlinks within nodes for external URL navigation.
Beyond core rendering, the tool provides options for customizing diagram appearance, including colors, fonts, line widths, and arrow styles. It supports conditional and parallel branches with custom labels, and allows styling individual flowchart symbols or connections directly within the DSL syntax. The library is distributed as a JavaScript package with documentation covering its DSL syntax and API.