Cytoscape.js (GitHub: cytoscape / cytoscape.js, License: LGPL, npm: cytoscape), developed at the Donnelly Centre at the University of Toronto by Max Franz, is a graph library that works with Node and browsers. This library is for working with "graphs" in the mathematical sense -- interconnected sets of nodes connected by edges.
Styling graphs is also handled in a natural manner:
Graph style and data should be separate, and the library should provide core functionality with extensions adding functionality on top of the library.
Max and several contributs have been working on the project for two years now, so it's quite mature at this point. The project comes with detailed documentation, a build script, and a test suite written with QUnit.