yFiles Online Demos

The yFiles for HTML interactive demos will not run in your browser, as it does not have adequate SVG support.

Please use a modern, HTML5-capable browser with adequate SVG support to run these demos.

See what kind of applications you could create using the yFiles family of diagramming libraries. The yFiles Features page contains more information about the various capabilities it has to offer.

yEd Live

yEd Live is the browser version of the powerful yEd Graph Editor desktop application. You can use this web application to create, import, and share diagrams on all platforms that operate a modern browser, including your favorite mobile devices.

Learn more about yEd Live on the yEd Live home page.

Layout Styles

Showcases the most used layout algorithms of yFiles, including hierarchic, organic, orthogonal, tree, circular and balloon styles.

Organization Chart

An interactive viewer for organization charts with automatic layout updates.

Graph Analysis

Showcases a selection of graph algorithms such as shortest paths, flows, centrality measures, etc. that help analysing the structure of a graph.

yEd Graph Editor

yEd is a highly flexible graph editor that can be used to create, view, and lay out diagrams and networks. It displays a large number of the features that are available in the yFiles for Java graph visualization library.

To download yEd, simply visit the yEd home page.

The entire source code of yEd Lite, an only slightly stripped-down version of yEd, comes as part of the yFiles for Java library.

Fraud Detection

Example of a fraud detection application for time-dependent data.

BPMN Editor

An editor for Business Process diagrams that features interactive editing, BPMN node styles and a specialized BPMN layout algorithm.

Gantt Chart

An editor for Gantt charts.

Isometric Drawing

Displays graphs in an isometric fashion to create the impression of a 3-dimensional view.

Network Monitoring

Example of a monitoring tool for computer networks.

Edge Bundling

Shows how edge bundling can be applied for reducing visual cluttering in dense graphs.

Sankey Diagram

A diagram used for visualizing flow information in which the thickness of the edges is proportional to the flow quantity.

Tree Map

Shows disk usage of a directory tree with the Tree Map layout.

Family Tree

Shows how to visualize genealogical graphs (family trees).

Template Styles

Shows SVG template styles for nodes, labels and ports.

CSS Styling

Shows how to style indicators and other templates.

Overview Styling

Shows several different rendering techniques and styles for the overview.

Metaball Groups

Shows how to render metaball-like background visualizations.

Maze Routing

Shows how the automatic edge routing finds routes through a maze.

Interactive Map

Draws a graph on top of an interactive map.

UML Editor

An editor for UML diagrams with a tailored UML node style, automatic layout, and a quick way to create new edges with the mouse or touch.

Flowchart Editor

An editor for Flowchart diagrams that features interactive editing, flowchart node styles, and automatic layout.

Decision Tree

An interactive Decision Tree component that lets you design and explore your own decision graphs.

Mindmap Editor

A Mindmap editor with a tailored node style, custom user interaction, and a specialized layoutthat automatically arranges new entries.

d3 Chart Nodes

Presents a node style that visualizes dynamic data with d3.js.

Logic Gates

An editor for networks of logic gates, with tailored automatic layout.

Organization Chart Viewer

A viewer for organization charts.

Collapsible Trees

Shows interactive collapsing and expanding of subtrees of a graph.

Rotatable Nodes

Shows nodes that can be rotated with the mouse or touch.

Contextual Toolbar

Shows a contextual toolbar for the current selection that enables fast and easy style changes.

Graph Editor

Shows the graph editing features of the graph component.

Table Editor

Shows the support for diagrams that are organized in a tabular way, for example in a grid or a swimlane layout.

Graph Viewer

Displays sample graphs from various application domains.

Large Graphs

Illustrates improvements in rendering performance for large graphs.

Events Viewer

Shows the multitude of events provided by the classes IGraph, GraphComponent, and the Input Modes.

Touch Interaction

Shows how a graph editor application can be optimized for touch devices.

Neighborhood View

Shows the neighborhood of the currently selected node alongside the graph.

Clustering Algorithms

Showcases a selection of clustering algorithms such as edge betweenness, k-means, hierarchical and biconnected components clustering.

Network Flows

Presents three network flow graph analysis algorithms that are applied on a network of water pipes.


Shows how transitivity graph analysis algorithms can be applied to solve reachability problems.

Edge Label Placement

Shows how to place edge labels at the preferred location with a labeling algorithm.

Node Label Placement

Shows how to place node labels at the preferred location with a labeling algorithm.

Hierarchic Nesting

The hierarchic layout nicely expands and collapses sub-graphs organized in groups.

Incremental Hierarchic Layout

The incremental mode of the hierarchic layout style can fit new nodes and edges into the existing drawing.

Edge Grouping

The hierarchic layout can group the paths or ports of edges.

Hierarchic Subcomponents

The hierarchic layout can arrange subcomponents with different layout styles.

Critical Paths

The hierarchic and tree layout styles can emphasize critical (important) paths by aligning their nodes.

Split Edges

Shows how to align edges at group nodes using RecursiveGroupLayout with HierarchicLayout.

Partition Grid

Demonstrates the usage of a partition grid for hierarchic and organic layouts.

Simple Partition Grid

Shows how to create a simple partition grid.

Layer Constraints

Shows how to use layer constraints to prescribe the node layering in hierarchic layouts.

Sequence Constraints

Shows how to use sequence constraints to prescribe the node sequencing in hierarchic layouts.

Interactive Organic Layout

Shows the 'interactive organic' layout algorithm.

Recursive Group Layout

Shows how to use different layout styles for the contents of groups and the overall graph.

Multi-Page Layout

Shows how to divide a large model graph into several smaller page graphs, for example to print to multiple pages.

Tree Layout

Shows how to use different node placer in TreeLayout.

Partial Layout

Shows how to integrate new graph elements into an existing graph layout.

Image Export

Shows how to export the whole diagram or a part of it to a PNG image.

SVG Export

Shows how to export the whole diagram or a part of it to an SVG image.

PDF Export

Shows how to export the whole diagram or a part of it to a PDF.


Shows how to print the whole diagram or a part of it.

Structure View

A tree list component that shows the nesting of the groups and nodes.

Graph Builder

Uses class GraphBuilder to interactively build and modify a graph from business data.

Adjacent Nodes Graph Builder

Uses class AdjacentNodesGraphBuilder to interactively build and modify a graph from business data.

Simple Graph Builder

Uses GraphBuilder or TreeBuilder to automatically build a graph from business data.

Angular CLI

Shows how to use yFiles for HTML in an Angular app (Angular 2 and newer) using Angular CLI.

AngularJS 1

Shows how to use yFiles for HTML in an AngularJS 1 app.


Shows how to load data from a Neo4j database and display it with yFiles for HTML.


Shows how to run a yFiles layout algorithm in a Node.js® environment.


Shows how to use yFiles for HTML with the React library.


Shows the integration of yFiles for HTML with TypeScript (using the ES module version of yFiles).


Shows how to use yFiles for HTML with Vue.js.

Web Components

Shows how to use yFiles for HTML with Web Components v1.

CSS3 Animations and Transitions

Shows how CSS3 transformations and animations can be applied to graph items.

Custom Styles

Shows how to create custom styles for nodes, edges, labels, ports, and edge arrows.

Vue.js Template Node Style

Presents a very versatile and easily customizable template node style.

Data Table

Shows a node style and a label style that display data in a tabular fashion.

HTML Label

Shows how HTML can be used in label text with a custom label style.

HTML Popup

Shows HTML pop-up panels that displays additional information about a clicked node or edge.

Selection Styling

Shows customized selection painting of nodes, edges and labels by decorating these items with a corresponding style.

Style Decorators

Shows how to create styles for nodes, edges, and labels that wrap existing styles and add visual decorators.


Shows the capabilities of the BridgeManager class for inserting bridges into edge paths.

Edge To Edge

Shows edge-to-edge connections.

File Operations

shows various ways to open and save a graph as GraphML.


Provides a live view of the graph's GraphML representation.

GraphML Compatibility

Shows how to enable read compatibility for GraphML files from older versions.

AMD Loading

Loads the yFiles library modules with the AMD loading standard (require.js).

ES Module Loading

Loads the yFiles module resources using ES module imports.


Shows how to bundle the yFiles library in a Browserify project.


Shows how to bundle the yFiles library in a rollup project.

Script Loading

Loads the yFiles modules using plain old <script> tags.

Web Worker

Shows how to run a yFiles layout algorithm in a Web Worker task in order to prevent the layout calculation from blocking the UI.

Web Worker UMD

Shows how to run a yFiles layout algorithm in a Web Worker task in order to prevent the layout calculation from blocking the UI.


Shows how to integrate the yFiles library in a webpack project using ES modules.


Shows different ways of using the class GraphClipboard for Copy & Paste operations.

Rendering Order

Shows different rendering order settings.

Custom Label Model

Shows how to implement and use a custom label model.

Custom Port Location Model

Shows how to implement and use a custom port location model.

Custom Snapping

Shows how the snapping feature can be customized.

Context Menu

Shows how to add a context menu to the nodes of a graph and to the canvas background.

Drag and Drop

Shows drag and drop of nodes, groups and labels.

Edge Reconnection

Shows how the reconnection of edge ports can be customized and restricted.

Label Editing

Shows customizations of the interactive label editing.

Label Handle Provider

Shows how to implement custom handles that allow interactive resizing and rotation of labels.

Move Unselected Nodes

Shows a special input mode that allows you to move nodes without selecting them first.

Orthogonal Edges

Shows the customization of orthogonal edge editing.

Port Candidate Provider

Shows how edge creation can be customized.

Position Handler

Shows how to customize and restrict the movement behavior of nodes.

Reparent Handler

Shows how reparenting of nodes can be customized.

Reshape Handle Provider

Shows how resizing of nodes can be customized.

Lasso Selection

Shows how to configure a lasso tool for freeform selection.

Single Selection

Shows how to configure GraphEditorInputMode for single selection mode.

Size Constraint Provider

Shows how resizing of nodes can be restricted.

01 Creating the View

Introduces class GraphComponent, which is the central UI element for working with graphs.

02 Creating Graph Elements

Shows how to create the basic graph elements.

03 Managing Viewport

Shows how to work with the viewport.

04 Setting Styles

Shows how to configure the visual appearance of graph elements using styles.

05 Label Placement

Shows how to control label placement with the help of so called label model parameters.

06 Basic Interaction

Shows the default interaction gestures that are provided by class GraphEditorInputMode.

07 Undo Clipboard Support

Shows how to use the undo and clipboard features.

08 Grouping

Shows how to configure support for grouped (or hierarchically organized) graphs.

09 Data Binding

Shows how to bind data to graph elements.

10 Layout

Shows how to use the layout algorithms in yFiles for HTML to automatically place the graph elements.

11 Layout Data

Shows how to configure individual settings for each node for the automatic layout.

12 Custom Ports

This step presents the ILookup interface.

13 Analysis Algorithms

Shows how to use the graph analysis algorithms.

01 Custom Node Style

Shows how to create a custom node style.

02 Node Color

Shows how to change the style of the nodes based on their tag.

03 Update Visual And Render Data Cache

Shows how to implement high-performance rendering of nodes.

04 Is Inside

Shows how to override isInside() and getOutline() of NodeStyleBase.

05 Hit Test

Shows how to override isHit() and isInBox() of NodeStyleBase.

06 Get Bounds

Shows how to override getBounds() of NodeStyleBase.

07 Drop Shadow Performance

This step replaces the simple drop shadow in the last steps with a more visually appealing, blurred one.

08 Edge From Node To Label

Shows how to visually connect a label to its owner node with a line.

09 Is Visible

Shows how to override the method isVisible() of NodeStyleBase.

10 Custom Label Style

Shows how a custom label style.

11 Label Preferred Size

Shows how to set the size of the label based on the size of its text by overriding the LabelStyleBase#getPreferredSize() method.

12 High Performance Label Rendering

Shows how to implement high-performance rendering for labels.

13 Label Edit Button

Shows how to display a button on a label that starts the label editor.

14 Button Visibility

Shows how to hide the 'Label Edit' button based on the zoom level.

15 Using Data In Label Tag

Shows how to use data from a business object, which is stored in the label's tag, for rendering.

16 Custom Edge Style

Shows how to create a custom edge style which allows to specify the edge thickness by setting a property on the style.

17 Edge Hit Test

Shows how to take the thickness of the edge into account when checking if the edge was clicked.

18 Edge Cropping

Shows how to crop an edge at the node's bounds.

19 Animated Edge Selection

Shows how to change the style of an edge if the edge is selected.

20 Custom Arrow

Shows a custom arrow.

21 Edge Performance

Shows how to optimize rendering performance for edges and arrows.

22 Arrow Thickness

Shows how to render the arrow based on a property of its edge.

23 Custom Ports

Shows a custom port style.

24 Style Decorator

Shows how to enhance an existing node style by adding visual decorators.

25 Custom Group Style

Shows how to implement a special node style for group nodes.

26 Custom Group Bounds

Shows how to customize the way that the group insets are calculated by implementing an ILayoutGroupBoundsCalculator.

27 Canvas Painting

Shows how to implement a zoom-dependent high-performance rendering using HTML5 Canvas painting for nodes.

28 Bridge Support

Shows how to enable bridges for a custom edge style.

29 Label Line Wrapping

Shows how to enhance a custom label style to support different line wrapping (trimming) styles as well as text clipping at the label bounds.

Application Features Base

This demo is the base for the feature-specific demos of this tutorial.

Background Image

Shows how to add a background visualizations to a graph component.

Building Graphs From Data

Shows how to build a graph from data in JSON format.

Building Swimlanes From Data

Shows how to build a graph with swimlanes from data in JSON format.

Clickable Style Decorator

Illustrates an approach for handling clicks on specific areas of the style.

Drag And Drop

Shows how to enable dragging nodes from a panel and drop them into the graph component.

External Links

Shows how to add labels that act like external links and open in a new window.


Shows how to configure graph filtering.

Filtering With Folding

Shows how to configure filtering and folding in the same application.


Shows how to enable collapsing and expanding of group nodes.

Graph Copy

Shows how to copy a graph or parts of a graph.

Graph Search

Shows how to search for specific nodes in a graph.

Grid Snapping

Shows how to enable grid snapping during interactive changes.

Save and Load GraphML

Shows how to use GraphML input and output.

Custom Data in GraphML

Shows how to read and write additional data from and to GraphML.

Label Text Wrapping

Shows how to enable label text wrapping and trimming.

Level of Detail Style

Shows a node style that hides details when zooming out.

Native Listeners

Illustrates how to register native event listeners to a SVG elements of a style.

Orthogonal Edges

Shows how to enable interactive orthogonal edge editing.

Rectangular Indicator

Shows how to add an interactive rectangular indicator to the graph component.

Smart Click Navigation

Shows the how to scroll and zoom to the area of interest by single edge-clicks.


Shows how to enable snapping (guide lines) for interactive changes.


Show how tooltips to graph items.

Contact yWorks

The data you enter will only be used to contact you.
Learn about our privacy policy.

If you have any questions about us or our products, just send us a note:
Thank you!
Your message has been sent to contact@yworks.com
We are sorry,
Your request could not be sent to contact@yworks.com. Please reload the page and try again.
If the problem persists, please report the error to contact@yworks.com