Cascii is a web-based ASCII and Unicode diagram builder written in vanilla Javascript.
It has zero dependencies on any servers, web packing, libraries, and is no-markup and no-stylesheets. You can start building diagrams by simply opening the cascii.html file in a browser. Cascii is also hosted at cascii.app where you can get short links to your diagrams, open an account, etc.
Here is a diagram built with Cascii that loosely explains how Cascii is structured internally:
┌╶╶╶╶╶╶╶╶╶╶╶╶╶╶┐
╷ GroupManager ╷
└╶╶╶╶╶╶╶╶╶╶╶╶╶╶┘
┌─────────────┐ / ┌─────────────┐
│EventManager │ / ┌───────│SquareLayer │
└─────────────┘ / │ │─────────────│ ┌───────────────┐
\ / │───────│CircleLayer │ ┌────│SwitchLineLayer│
\ / │ │─────────────│ │ │───────────────│
┏━━━━━━━━━━━━┓ │───────│BaseLineLayer│◀──┐────│FreeLineLayer │
┃LayerManager┃◀──────┘ │─────────────│ │ │───────────────│
┗━━━━━━━━━━━━┛ │───────│DiamondLayer │ └────│StepLineLayer │
┌────────────┐ / / \ │ │─────────────│ └───────────────┘
│CharManager │/ / \ │───────│FreeLayer │
└────────────┘ / \ │ │─────────────│
/ \ └───────│TableLayer │
┌────────────┐ \ └─────────────┘ Pixels!
│ ModeMaster │ •
└────────────┘ • • ▲
• • │
• • │
• CanvasCom ────────────────────────────────┘
• •
• •
• •
•
Edit/view: https://cascii.app/7c24a
Simply download and open the cascii.html
file!
...Literally...
curl https://cascii.app -o cascii.html && open cascii.html
...Or...
If you are not making changes, it's recommended to use cascii.app directly so you can take advantage of short links and save your work. Locally, short links will not appear in your exports.
- Basic drawing
- Selection (area selection, multi-selection, resize, move)
- Joints
- Grouping
- Ordering
- Duplicating
- Dynamic tables
- Free draw / erase
- Auto save (browser local storage)
- Paste / import text
- Layers: Free, Switch Lines, Steps Lines, Free Lines, Square, Circle, Diamond, Text, Table
- History (undo/redo)
- Line styling
- ASCII and Unicode
ctrl-g
Groupctrl-c
Copy layerctrl-z
Undoctrl-shift-z
Redoctrl-a
Select allbackspace/delete
Delete layershift-click
Multi-select | single-select member of grouparrow keys
Move layerctrl-v
Paste text (when editing text), or paste as a layer in any other mode
Contributions are very welcomed. Please feel free to submit proposals directly in the form of a PR or Issue.
Licensed under the Apache License, Version 2.0