bramp/js-sequence-diagrams is a Frontend project on GitHub, written primarily in JavaScript. It has 7.8k stars. Draws simple SVG sequence diagrams from textual representation of the diagram
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
Not using bower? No problem. Just download the dependencies, and include them yourself.
If you plan to use the hand draw theme, don't forget to put the two fontfiles in your css folder:
/fonts/daniel/danielbd.woff and /fonts/daniel/danielbd.woff2
Usage
You can use the Diagram class like:
<div id="diagram">Diagram will be placed here</div>
<script>
var d = Diagram.parse("A->B: Does something");
var options = {theme: 'simple'};
d.drawSVG('diagram', options);
</script>
var options = {
// Change the styling of the diagram, typically one of 'simple', 'hand'. New themes can be registered with registerTheme(...).
theme: string,
// CSS style to apply to the diagram's svg tag. (Only supported if using snap.svg)
css_class: string,
};
Styling
The following CSS classes are applied to the SVG diagram when using snap.svg:
Version 1.x of this library used Raphaël for drawing the diagrams, however, Raphaël had some limitations, and since disappeared from the Internet. We've decided to move to Snap.svg, which is a pure SVG implementation, instead of Raphaël which in addition to SVG, also supported VML (on Internet Explorer). This support of VML made it impossible to use some newer SVG capabilities. Native SVG allows us to use CSS styling, better font support, animations and more.
To aid in the transition Version 2.x will support both Raphaël and Snap.svg (preferring Snap.svg). If you include Raphaël instead of snap.svg, it will default to using Raphaël as the rendering library. For example
There are also four transitional themes, 'snapSimple', 'snapHand', 'raphaelSimple', 'raphaelHand', which force the use of either Snap.svg, or Raphaël.
The plan is to drop support for Raphaël in a future release, simplifying the library, and reducing the file size.
Adding a Font
Raphael requires Cufon style fonts. Find the font you want in ttf or otf format, visit Cufon's site and process it into a javascript file. Then ensure the font is included via the HTML, or recompile after altering main.js. So far only the hand drawn font, Daniel Bold, has been included.
Build requirements
The build is managed by a Makefile, and uses various tools available from npm. Thus both make and npm are required, and can easily be installed on any Linux or Mac machine.
make
The Makefile will use npm to install all the dev dependencies, build, and test.
Testing
We use qunit for testing. It can be ran from the command line, or via a browser. The command line actually tests multiple permutations of lodash, Underscore, and with and without minification.
or make and then open test/qunit.html in a browser. Finally a simple playground is available at test/test.html.
How to release
Make sure all changes checked in
Bump version in src/main.js and bower.json
make clean
make
git add -f src/main.js bower.json dist/*
git commit -m "Released version 2.x.x"
git push origin master
git tag -a v2.x.x -m v2.x.x
git push origin v2.x.x
TODO
Other themes
Automate the release process
Testing that checks the generated SVG is correct
Improve the hand drawn theme
"Note left of Bob: " generates a small empty box.
The font seems to have extra margin at the bottom.
The wiggly lines don't always touch.
Dozens of other issues on https://github.com/bramp/js-sequence-diagrams/issues
Contributors
via GitHub
Thanks
This project makes use of Jison, snap.svg, underscore.js, and the awesome Daniel font (which is free to use for any purpose).
Many thanks to Web Sequence Diagrams which greatly inspired this project, and forms the basis for the syntax.
Related
Web Sequence Diagrams Server side version with a commercial offering
flowchart.js A similar project that draws flow charts in the browser
Licence (Simplified BSD License)
Copyright (c) 2012-2017, Andrew Brampton
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
How active is development on bramp/js-sequence-diagrams?
The most recent commit recorded on bramp/js-sequence-diagrams was 4.1 years ago, based on the GitHub push timestamp. The repository has 1.1k forks — one of the better signals of community interest.
How many stars does bramp/js-sequence-diagrams have?
bramp/js-sequence-diagrams has 7.8k GitHub stars — refresh the page for the live number, or check github.com/bramp/js-sequence-diagrams. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
What language is bramp/js-sequence-diagrams written in?
bramp/js-sequence-diagrams is written primarily in JavaScript. GitHub's language field is based on the largest share of bytes in the default branch.
What license does bramp/js-sequence-diagrams use?
bramp/js-sequence-diagrams is released under the BSD-2-Clause license. Always verify the LICENSE file directly on GitHub for the authoritative terms — license strings can be edited out of sync with a project's actual stance.
What topics is bramp/js-sequence-diagrams associated with?
GitHub's repository topics for bramp/js-sequence-diagrams: "javascript", "sequence-diagram", "svg". TopGit's editorial category is Frontend.
Where can I see bramp/js-sequence-diagrams in action?
The project maintains a homepage at https://bramp.github.io/js-sequence-diagrams/. The README tab on this page also usually contains screenshots and a quickstart.
Where do I read more about bramp/js-sequence-diagrams?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/bramp/js-sequence-diagrams is the definitive source.
Read full README in the tab above.
Still deciding about js-sequence-diagrams?
One click hands the question to an AI along with this page — see what it says about js-sequence-diagrams.