Describe connection paths, arrows, and exterior directions between elements in DrakoFlow.
| Notation | Connector Description |
|---|---|
A -> B | Directed connector pointing from A to B. |
A <- B | Directed connector pointing from B to A. |
A <-> B | Bidirectional arrow between elements. |
A - B | Straight line link without any arrow head indicators. |
A o-> B | Circle marker at source, directed arrow head at target. |
A <>- B | Diamond marker (aggregation/composition) at the source. |
LEFT -> Client | Exterior connector originating from the left diagram border to a lifeline or component. |
Client -> RIGHT | Exterior connector pointing from a lifeline or component to the right diagram border. |
LEFT, RIGHT, TOP, BOTTOM)Connect lifelines or components to/from the outer diagram boundary using LEFT, RIGHT, TOP, or BOTTOM keywords as the source or target ID.
ClientApp: Process {
label: "Client Application"
lifeline: true
}
LEFT -> ClientApp : "External HTTP Request"
ClientApp -> RIGHT : "Forward to Cloud Logs"
Nest sub-module shapes directly inside a parent lifeline component to render activation step boxes centered on the vertical lifeline axis. Target sub-modules directly or using dot notation (e.g. ParentId.ChildId).
PaymentService: Process {
label: "Payment Microservice"
lifeline: true
AuthHandler: Rectangle {
label: "Auth Sub-module"
}
FraudCheck: Rectangle {
label: "Fraud Detector"
}
}
ClientApp -> PaymentService.AuthHandler : "1. Validate Token"
PaymentService.AuthHandler -> PaymentService.FraudCheck : "2. Analyze Risk"
{ ... } block)| Property | Type | Description |
|---|---|---|
color | String | Stroke outline hex/rgb color of the connector. |
lineStyle | String | Dash type: "solid", "dashed", or "dotted". |
thickness | Number | Line thickness in pixels (defaults to 2). |
routeType | String | Routing algorithm: "straight", "orthogonal", or "curved". |
WebClient -> ApiGateway : "GET /v1/users" {
lineStyle: "dashed"
color: "#60a5fa"
routeType: "orthogonal"
}
Shared properties and metadata supported across all DrakoFlow components.
| Attribute | Type | Description |
|---|---|---|
label | String | Main text label displayed inside or on the component. |
icon | String | Vector icon rendered alongside label (e.g. icon: "docker"). Supports 50+ tech & infrastructure icons including docker, aws, postgres, mongodb, mysql, redis, typescript, react, node, python, kubernetes, azure, gcp, terraform, github, lock, api, and more. |
doc | String | Markdown-formatted documentation block attached to the component. Adds a clickable badge. |
url | String | Hyperlink URL attached to the component. Adds a clickable external link badge. |
shadow | Boolean | Enables a premium drop shadow filter effect on the component (default false). |
tags | Array | List of filter tags declared via @tags: ["tag1", "tag2"] before the component block. |
themeOverride | Object | Block containing custom color or style overrides for this specific component instance. |
Attach clean vector logos to any component label using the icon property. Icons automatically adapt to component text colors and themes.
| Icon Keyword | Aliases | Description |
|---|---|---|
docker | - | Official Docker whale & cargo container grid logo |
kubernetes | k8s | Kubernetes cluster logo |
terraform | - | HashiCorp Terraform stacked blocks logo |
nginx | - | NGINX engine logo |
linux | tux | Linux Tux penguin logo |
terminal | cli, bash | Terminal command prompt icon |
aws | cloud | AWS / Cloud infrastructure logo |
azure | - | Microsoft Azure cloud emblem |
gcp | google-cloud | Google Cloud Platform logo |
postgres | postgresql | Official PostgreSQL Elephant (Slonik) logo |
mongodb | mongo | MongoDB Leaf emblem |
mysql | - | MySQL Dolphin database logo |
sqlite | - | SQLite database file emblem |
redis | - | Official Redis stacked memory layers logo |
elasticsearch | elastic | Elasticsearch search cluster logo |
graphql | - | GraphQL nodes & hexagon emblem |
rabbitmq | amqp | RabbitMQ message queue broker logo |
database | db | Cylinder database storage icon |
storage | s3 | Storage Bucket / S3 icon |
typescript | ts | TypeScript TS emblem |
javascript | js | JavaScript JS emblem |
python | - | Official Python intertwined dual-snake logo |
node | - | Node.js runtime logo |
java | - | Java coffee cup logo |
golang | go | Go language logo |
rust | - | Rust gear emblem |
php | - | PHP oval emblem |
ruby | - | Ruby gem logo |
swift | - | Swift bird logo |
csharp | dotnet, net | .NET / C# emblem |
react | - | Official React atom framework logo |
vue | vuejs | Vue.js V emblem |
angular | - | Angular shield logo |
svelte | - | Svelte emblem |
nextjs | next | Next.js N emblem |
web-service | globe, server | REST Web Service / HTTP server node logo |
api | code | REST API & code brackets icon |
queue | - | Message Queue icon |
github | - | GitHub Octocat emblem |
gitlab | - | GitLab fox emblem |
lock | security | Lock & security badge icon |
shield | firewall | Security shield emblem |
key | token, auth | Authentication key icon |
mail | email, smtp | Email envelope icon |
bell | alert, notification | Notification bell icon |
search | find | Search magnifying glass icon |
wifi | wireless | Wireless network signal icon |
lightning | event | Event / Lightning bolt icon |
user | - | User & profile avatar icon |
gear | cog | Settings / process gear icon |
cpu | - | CPU / Microservice chip icon |
To add custom vector icons to the DrakoFlow engine:
src/utils/IconRegistry.ts in the codebase.ICON_PATH_MAP object mapping your icon keyword to its SVG inner XML.fill="currentColor" or fill-rule="evenodd" so it automatically inherits component colors across all dark and light themes.AuthService: Cube {
label: "Auth API"
icon: "docker"
}
UserDB: Cylinder {
label: "User Store"
icon: "postgres"
}
CloudInfra: Cloud {
label: "AWS Cloud"
icon: "aws"
}
Work faster with built-in editor shortcuts.
| Shortcut | Action Description |
|---|---|
Ctrl + S / Cmd + S | Save active diagram file to disk. |
Ctrl + O / Cmd + O | Open/load a diagram file from disk. |
Ctrl + Z / Cmd + Z | Undo last editor changes. |
Ctrl + Y / Cmd + Y | Redo last undone changes. |
Ctrl + F / Cmd + F | Search within the active editor text. |
Ctrl + / / Cmd + / | Toggle line comments (//). |
Alt + Shift + F | Format and clean up DSL code. |
A standard rectangular component supporting corner rounding, label text, and local styling overrides.
| Property | Type | Description |
|---|---|---|
label |
String | Text displayed inside the rectangle. |
rx |
Number | Horizontal corner radius (for rounded corners). |
ry |
Number | Vertical corner radius (for rounded corners). |
lifeline |
Boolean | Draws a vertical sequence lifeline from the bottom edge (default false). |
themeOverride block)| Style Property | Description |
|---|---|
backgroundColor |
Fill color (Hex code like "#1e1e2e" or color name). |
borderColor |
Border stroke color (Hex code or color name). |
textColor |
Label text color (Hex code or color name). |
Database: Rectangle {
label: "User Store"
rx: 8
ry: 8
themeOverride: {
backgroundColor: "#1e1e2e"
borderColor: "#cdd6f4"
textColor: "#f5e0dc"
}
}
A process step box with vertical segment lines, commonly used in flowchart steps or sequence actors.
| Property | Type | Description |
|---|---|---|
label |
String | Text displayed inside the central section. |
tabWidthRatio |
Number | Ratio of the side segments' width (default is 0.2). |
lifeline |
Boolean | Draws a vertical sequence lifeline from the bottom edge (default false). |
themeOverride block)| Style Property | Description |
|---|---|
backgroundColor |
Fill color (Hex code or color name). |
borderColor |
Border and segment line color. |
textColor |
Label text color. |
Client: Process {
label: "Client App"
lifeline: true
themeOverride: {
backgroundColor: "#2e3440"
borderColor: "#88c0d0"
textColor: "#eceff4"
}
}
Renders a circle (using radius) or an oval/ellipse shape (using rx and ry).
| Property | Type | Description |
|---|---|---|
label |
String | Text displayed inside the shape. |
radius |
Number | Radius for a perfect circle. |
rx |
Number | Horizontal radius for an ellipse. |
ry |
Number | Vertical radius for an ellipse. |
lifeline |
Boolean | Draws a vertical sequence lifeline from the bottom edge (default false). |
themeOverride block)| Style Property | Description |
|---|---|
backgroundColor |
Fill color of the ellipse. |
borderColor |
Outline color of the ellipse. |
textColor |
Label text color. |
StartNode: Ellipse {
label: "Start"
radius: 35
themeOverride: {
backgroundColor: "#a3be8c"
borderColor: "#4c566a"
textColor: "#2e3440"
}
}
A container layout that stacks nested child components vertically with customizable gaps and padding.
| Property | Type | Description |
|---|---|---|
label |
String | Header text displayed on the container. |
gap |
Number | Vertical spacing in pixels between children (default is 12). |
padding |
Number | Internal margins around children inside container walls (default is 16). |
lifeline |
Boolean | Draws a vertical sequence lifeline from the bottom edge (default false). |
themeOverride block)| Style Property | Description |
|---|---|
backgroundColor |
Fill color of the container header tab. |
borderColor |
Color of the outer container box stroke. |
textColor |
Container header label text color. |
MyContainer: VerticalContainer {
label: "User Module"
gap: 15
padding: 20
UserObj: Rectangle {
label: "User Entity"
}
}
A 3D cylinder shape commonly used to represent databases or data stores.
| Property | Type | Description |
|---|---|---|
label |
String | Text label displayed inside the cylinder. |
UserDB: Cylinder {
label: "User Data Store"
}
A 3D isometric box shape commonly representing services, processes, or modules.
| Property | Type | Description |
|---|---|---|
label |
String | Text label displayed on the front face of the cube. |
AuthService: Cube {
label: "Auth Service"
}
A diamond shape used for decision gateways or conditional branches in flowcharts.
| Property | Type | Description |
|---|---|---|
label |
String | Text label displayed inside the diamond. |
CheckAuth: Diamond {
label: "Authorized?"
}
A flat-topped hexagon shape commonly representing subsystems, domains, or nodes.
| Property | Type | Description |
|---|---|---|
label |
String | Text label displayed inside the hexagon. |
BillingSystem: Hexagon {
label: "Billing Domain"
}
A UML stick figure representing system users, actors, or external integrations.
| Property | Type | Description |
|---|---|---|
label |
String | Text label displayed beneath the stick figure. |
User: Actor {
label: "Customer"
}
A skewed parallelogram shape representing data, input/output files, or reports.
| Property | Type | Description |
|---|---|---|
label |
String | Text label displayed inside the parallelogram. |
CsvData: Parallelogram {
label: "Upload File"
}
A multi-compartment shape for UML class diagrams (with attributes and methods sections) or structured lists (with a header and item rows). Compartments are separated by semicolons.
| Property | Type | Description |
|---|---|---|
label |
String | Header text displayed in the top compartment (e.g. class name or list title). |
attributes |
String | Semicolon-separated attribute rows (e.g. "id: string; name: string"). Renders a second compartment below the header. |
methods |
String | Semicolon-separated method rows (e.g. "getId(): string; save(): void"). Renders a third compartment below attributes. |
items |
String | Semicolon-separated list rows. Use this for a simple list without UML class structure. |
headerType |
String | UML class type marker. Renders a colored circle with the type initial (e.g. "abstract", "interface", "enum", "annotation", "struct", "record"). |
colorizeHeaderByType |
Boolean | If set to true, automatically colors the header compartment background to match the headerType. |
themeOverride block)| Style Property | Description |
|---|---|
backgroundColor |
Fill color for all compartments. |
borderColor |
Border and compartment divider line color. |
textColor |
Text color for header and all rows. |
headerBackgroundColor |
Fill color for the header compartment only (overrides backgroundColor for the header). |
headerTextColor |
Text color for the header text only (overrides textColor for the header). |
headerTypeColor |
Fill color for the header type circle indicator (overrides type default color). |
headerTypeTextColor |
Text color for the character inside the header type circle indicator (default is dark grey). |
| Symbol | Meaning | Effect |
|---|---|---|
+ | Public | Green modifier icon |
- | Private | Red modifier icon |
# | Protected | Amber modifier icon |
~ | Package / Internal | Violet modifier icon |
* | Mandatory / Abstract | Renders text in bold |
UserService: Class {
label: "UserService"
attributes: {
* +id: string
+name: string
-passwordHash: string
#createdAt: Date
}
methods: {
+getUser(): User
+saveUser(): void
-validate(): boolean
~auditLog(): void
}
}
Requirements: Class {
label: "Requirements"
items: {
Auth via OAuth 2.0
Rate limiting per IP
Audit logging
GDPR compliance
}
}
A UML interface shape — rectangle with an «interface» stereotype label in italics above the bold interface name, and a separator line below the header for method rows.
| Property | Type | Description |
|---|---|---|
label | String | The interface name displayed in the header. |
Serializable: Interface {
label: "Serializable"
}
IRepository: Interface {
label: "IUserRepository"
themeOverride: {
borderColor: "#7aa2f7"
textColor: "#cdd6f4"
}
}
A UML component box — rectangle with the standard two-notch component icon on the right side, representing a deployable software component or service.
| Property | Type | Description |
|---|---|---|
label | String | The component name displayed inside the shape. |
PaymentService: UMLComponent {
label: "PaymentService"
}
AuthService: UMLComponent {
label: "AuthService"
themeOverride: {
borderColor: "#9ece6a"
}
}
A file-card shape with a small tab on the top-left corner — commonly used to represent a code module, file, or library unit.
| Property | Type | Description |
|---|---|---|
label | String | The module name displayed in the body. |
AuthModule: Module {
label: "auth.module"
}
HttpModule: Module {
label: "http.module"
themeOverride: {
borderColor: "#bb9af3"
}
}
A UML package — folder-style shape with a wider angled tab on the top-left that displays the package name, and a large open body area for nested elements.
| Property | Type | Description |
|---|---|---|
label | String | The package name shown inside the tab. |
gap | Number | Vertical spacing in pixels between children (default is 12). |
padding | Number | Internal margins around children inside package walls (default is 16). |
AuthPackage: Package {
label: "com.example.auth"
gap: 15
padding: 20
AuthService: UMLComponent {
label: "AuthService"
}
}
InfraPackage: Package {
label: "com.example.infra"
themeOverride: {
borderColor: "#f7768e"
backgroundColor: "#1a1b26"
}
}
Renders a single-line text label without any box or border, useful for annotations or standalone headers.
| Property | Type | Description |
|---|---|---|
label | String | The text string to display. |
align | String | Text alignment: "left", "center", or "right" (default "center"). |
NoteLabel: Text {
label: "This is a standalone note"
align: "left"
themeOverride: {
textColor: "#a1a1aa"
}
}
Renders a multi-line paragraph block of text. Supports explicit newlines (\n) for multi-line formatting.
| Property | Type | Description |
|---|---|---|
text | String | The multi-line text to display (or use label as fallback). |
align | String | Text alignment: "left", "center", or "right" (default "center"). |
DescBlock: Paragraph {
text: "1. Perform user verification\n2. Call authorization subsystem\n3. Return result payload"
align: "left"
}
Renders a vector graphic inside the diagram using raw inline SVG code. The graphic can be scaled dynamically.
| Property | Type | Description |
|---|---|---|
content |
String | The raw SVG source code to render. |
scale |
Number | Double value scaling factor (default: 1.0). |
width |
Number | Optional base width override. If not specified, extracted from SVG headers. |
height |
Number | Optional base height override. If not specified, extracted from SVG headers. |
LogoNode: SVGImage {
content: "<svg width=\"100\" height=\"100\"><circle cx=\"50\" cy=\"50\" r=\"40\" fill=\"#3b82f6\" stroke=\"#ffffff\" stroke-width=\"4\"/></svg>"
scale: 1.5
}
Renders standard raster images (PNG, JPEG, GIF) directly inside the canvas by pasting their base64 encoded text.
| Property | Type | Description |
|---|---|---|
content |
String | The base64 encoded image string (supports with or without data:image/...;base64, prefix). |
scale |
Number | Double value scaling factor (default: 1.0). |
width |
Number | Optional base width override. If not specified, resolved automatically from the binary header. |
height |
Number | Optional base height override. If not specified, resolved automatically from the binary header. |
AvatarNode: RasterImage {
content: "iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="
scale: 4.0
}
These general attributes and blocks are supported by all diagram elements inside DrakoFlow.
| Property | Type | Description |
|---|---|---|
doc |
String | Embedded Markdown documentation. Adds a document badge on the element that displays the rendered markdown in a reader modal when clicked. |
url |
String | External link URL. Adds a link badge on the element that opens the URL in a new tab when clicked. |
x |
Number | Explicit horizontal position override (in pixels). Useful for manual grid arrangements. |
y |
Number | Explicit vertical position override (in pixels). Useful for manual grid arrangements. |
lifeline |
Boolean | If set to true, treats the element as a sequence diagram lifeline, drawing a vertical dashed line below it. |
lineWidth |
Number | Defines how thick the border of the element is (in pixels). |
shadow |
Boolean | If set to true, applies a drop shadow effect behind the element's visual contour. |
themeOverride)Customize an individual element's visual presentation using style properties inside a nested block:
| Style Key | Type | Description |
|---|---|---|
backgroundColor |
String | Local fill color override (e.g. "#ff0000", "primaryColor"). |
borderColor |
String | Local border color override. |
textColor |
String | Local text label color override. |
headerBackgroundColor |
String | Local table header background color override (only applicable to Table component). |
@tags)You can associate array-based tag qualifiers immediately before an element declaration to enable diagram-wide filtering:
@tags: ["database", "infrastructure"]
myDatabase: Rectangle {
label: "User DB"
doc: "Stores application user accounts."
}
@layout)You can specify the layout flow direction algorithm for your diagram using the global @layout directive at the top of the file:
@layout: top-to-bottom
client: Process {
label: "Client App"
}
server: Process {
label: "Server App"
}
client -> server : "API Request"
Supported layout types:
left-to-right (Default) - Elements are arranged horizontally from left to right.top-to-bottom - Elements are arranged vertically from top to bottom.git-flow - Specialized Git Flow branching and merging visualization with branch lanes, curved forks/merges, and slanted commit badges using Branch and Commit components.mindmap or mindmap(RootNode) - Specialized radial mindmap layout engine with automatic root node detection (or explicit root parameter), branch color inheritance, and organic Bézier curved connectors.Connect components together with arrows and labels to describe flow steps.
| Syntax | Connector Type |
|---|---|
A -> B |
Directed arrow pointing from A to B. |
A <- B |
Directed arrow pointing from B to A. |
A <-> B |
Bidirectional arrow between A and B. |
A - B |
Simple connection line (no arrow heads). |
A o-> B / A o->o B |
Directed arrow with circle(s) at the source, target (e.g., ->o), or both ends. |
A -<> B / A <>- B / A <>-<> B / A <>-o B / A <>-> B / A <-<> B |
Connection line ending in a Rhombus (composition/aggregation) combined with any circles, arrows, or other rhombuses at the target or source end. |
Include brackets with multiplicity strings before and/or after the arrow:
Client [1] -> [0..*] Order
{...})| Property | Type | Description |
|---|---|---|
color |
String | Stroke color of the line/arrow (Hex code like "#60a5fa" or color name). |
lineStyle |
String | Line pattern: "solid", "dashed", or "dotted" (defaults to "solid"). |
thickness |
Integer | Thickess of the connection line in pixels (defaults to 2). |
routeType |
String | Connection routing style: "straight", "orthogonal", or "curved" (defaults to "straight"). |
Client -> Server : "GET /orders" {
lineStyle: "solid"
color: "#60a5fa"
}
Server [1] -> [0..*] Database : "Fetch items" {
lineStyle: "dashed"
color: "#a1a1aa"
}
DrakoFlow supports standard editor key combinations for faster navigation and file management.
| Shortcut | Action Description |
|---|---|
| Ctrl + S or Cmd + S | Save the active diagram to a local DSL script file download. |
| Ctrl + O or Cmd + O | Open the local file picker to load a diagram DSL script into a new tab. |
| Ctrl + Shift + E or Cmd + Shift + E | Open the PNG export configuration settings dialog. |
| Ctrl + Shift + C or Cmd + Shift + C | Copy the active diagram as standalone SVG markup to the clipboard. |
| Ctrl + Shift + S or Cmd + Shift + S | Open the serverless sharing modal to copy the compressed diagram URL. |
| Tab | Indent active line or selection by 2 spaces. |
| Shift + Tab | Outdent active line or selection by 2 spaces. |
A container component styled as a cloud, ideal for representing external services, APIs, or internet-based infrastructure networks.
| Property | Type | Description |
|---|---|---|
label |
String | The text label displayed inside the cloud container. |
AWSCloud: Cloud {
label: "Amazon Web Services"
padding: 30
}
A 3D box component representing a physical machine, virtual server, or device. Nodes can host other sub-components.
| Property | Type | Description |
|---|---|---|
label |
String | The name of the node displayed near the top. |
WebServer: Node {
label: "Ubuntu App Server"
AppInstance: Rectangle {
label: "Node.js Application"
}
}
Represents a deployed file or software package (like a JAR, zip, or executable), decorated with a document sheet icon in the top-right corner.
| Property | Type | Description |
|---|---|---|
label |
String | The name of the artifact. |
DeployableArchive: Artifact {
label: "drakoflow-v1.war"
}
A container component styled as a folder outline. Useful for showing file-system structures or grouping related packages.
| Property | Type | Description |
|---|---|---|
label |
String | Folder name shown inside the tab. |
StaticAssets: Folder {
label: "public/img"
LogoImage: Rectangle {
label: "logo.png"
}
}
A general-purpose container representing a logical boundaries frame. Displays a top-left title tab with an angled cut.
| Property | Type | Description |
|---|---|---|
label |
String | The frame name. |
AuthFrame: Frame {
label: "Authentication Subsystem"
LoginAPI: Rectangle {
label: "/api/login"
}
}
Represents a storage volume or storage drum, rendered as a horizontal cylinder/barrel.
| Property | Type | Description |
|---|---|---|
label |
String | Storage name label. |
BackupDrive: Storage {
label: "NAS Backup Volume"
}
A component styled as a stack of boxes to represent layered components or clusters of similar instances.
| Property | Type | Description |
|---|---|---|
label |
String | The name of the stack. |
AppReplica: Stack {
label: "App Nodes (3x Replicas)"
}
A clean sheet of paper representation with a folded top-right corner to indicate a file resource.
| Property | Type | Description |
|---|---|---|
label |
String | Name of the file. |
ConfigFile: File {
label: "config.json"
}
A clean, modern container styled as a card with a left-accent color stripe representing smaller hosts, tasks, or logical components.
| Property | Type | Description |
|---|---|---|
label |
String | The card header label. |
TaskItem: Card {
label: "Background Job"
padding: 12
}
A tabular grid layout that displays rows and columns of text, ideal for architecture comparisons, API mapping tables, or data listings.
| Property | Type | Description |
|---|---|---|
header |
Array of Strings | An array of column headers, e.g. { "Col 1", "Col 2" }. |
rows |
Matrix of Strings | A list of cell values for each row, e.g. { { "Cell A1", "Cell A2" }, { "Cell B1", "Cell B2" } }. |
headerAtTop |
Boolean | If set to false, hides the top header row (default: true). |
headerAtBottom |
Boolean | If set to true, repeats the header row at the bottom of the table (default: false). |
MyTable: Table {
header: { "Header 1", "Header 2", "Header 3" }
rows: {
{ "row 1, cell 1", "row 1, cell 2", "row 1, cell 3" }
{ "row 2, cell 1", "row 2, cell 2", "row 2, cell 3" }
}
headerAtTop: true
headerAtBottom: false
}
A horizontal flat ellipse representing system use cases or user goals.
| Property | Type | Description |
|---|---|---|
label | String | The use case name displayed inside the ellipse. |
Checkout: Usecase {
label: "Checkout Item"
}
A robustness diagram boundary node representing user interfaces, APIs, or system boundaries.
| Property | Type | Description |
|---|---|---|
label | String | The boundary name displayed centered below the icon. |
LoginUI: Boundary {
label: "Login Form"
}
A robustness diagram control node representing business logic, loop controllers, or orchestrators.
| Property | Type | Description |
|---|---|---|
label | String | The control loop name displayed centered below the icon. |
AuthMgr: Control {
label: "Auth Manager"
}
A robustness diagram entity node representing database records, persistent data structures, or server models.
| Property | Type | Description |
|---|---|---|
label | String | The entity name displayed centered below the icon. |
UserRecord: Entity {
label: "User Entity"
}
A horizontal cylinder tube representing a message broker, FIFO queue, or streaming data pipeline.
| Property | Type | Description |
|---|---|---|
label | String | The name of the queue. |
MsgBus: Queue {
label: "Kafka Topic"
}
Representing multiple stacked participants, drawn as two overlapping offset rectangles.
| Property | Type | Description |
|---|---|---|
label | String | The name of the collections. |
Subscribers: Collections {
label: "User List"
}
An active software agent container styled with a premium double-line outline. Supports nesting child components inside.
| Property | Type | Description |
|---|---|---|
label | String | The name/title of the agent container. |
gap | Number | Vertical gap spacing in pixels between nested children. |
padding | Number | Internal padding space around nested components. |
WorkerAgent: Agent {
label: "Billing Agent"
WorkerJob: Rectangle {
label: "Process Invoice"
}
}
Renders a UML enumeration class showing the «enumeration» stereotype above the enum name.
| Property | Type | Description |
|---|---|---|
label | String | The name of the enum. |
attributes | String | Semicolon-separated attributes/values row. |
items | String | Semicolon-separated item row rows (list view). |
Status: Enum {
label: "UserStatus"
items: {
ACTIVE
INACTIVE
SUSPENDED
}
}
Renders a UML abstract class with italicized bold title name and a «abstract» stereotype row.
| Property | Type | Description |
|---|---|---|
label | String | The name of the abstract class. |
attributes | String | Semicolon-separated attribute definitions. |
methods | String | Semicolon-separated method definitions. |
BaseSvc: Abstract {
label: "BaseService"
attributes: {
#dbConnection: Connection
}
methods: {
+connect(): void
#execute(): ResultSet
}
}
Renders a UML annotation class showing the «annotation» stereotype row.
| Property | Type | Description |
|---|---|---|
label | String | The name of the annotation. |
attributes | String | Semicolon-separated annotation elements/properties. |
EntityAnn: Annotation {
label: "Entity"
attributes: {
tableName: String
}
}
Renders a UML structure showing the «struct» stereotype row above the structure name.
| Property | Type | Description |
|---|---|---|
label | String | The name of the struct. |
attributes | String | Semicolon-separated struct fields. |
UserDto: Struct {
label: "UserDTO"
attributes: {
id: UUID
username: String
email: String
}
}
Renders a UML object instance with the header label underlined, typically representing instances in Object Diagrams.
| Property | Type | Description |
|---|---|---|
label | String | The object instance name (e.g. myUser : User). |
attributes | String | Semicolon-separated attribute value assignments. |
userInstance: Object {
label: "alice : User"
attributes: {
id = "usr_001"
name = "Alice"
role = "Admin"
}
}
Represents a Git branch guide lane in a Git Flow diagram (@layout: git-flow). Renders horizontal dashed guide tracks and left-aligned branch pill badges with theme-adaptive colors. Fully compatible with other components like Text, VerticalContainer, and architecture shapes.
| Property | Type | Description |
|---|---|---|
label |
String | The branch name displayed in the left badge (e.g. "main", "develop", "feature"). |
order |
Number | Optional explicit vertical lane index (0 is top-most). If omitted, main/master is placed on lane 0 and others follow declaration order. |
color |
String | Explicit branch color override (Hex/RGB/CSS). If omitted, uses the curated theme branch palette. |
Main: Branch {
label: "main"
order: 0
c0: Commit { hash: "0-init" }
c3: Commit { type: "merge" }
}
Represents an individual commit on a Git branch track. Displays commit circles, slanted -45° commit hash badges, tag pills, and specialized merge double-ring nodes.
| Property | Type | Description |
|---|---|---|
hash |
String | Explicit commit hash ID (e.g. "0-e3a3a20"). If omitted, a deterministic hash is automatically generated. |
type |
String | Commit node type style: "normal" (solid circle), "merge" (double-ring node), "highlight" (dashed halo), or "reverse" (revert cross). |
tag |
String | Release tag badge rendered above the commit node (e.g. "v1.0.0"). |
branch |
String | Branch name when declaring flat commits outside of a Branch { ... } container block. |
message / msg |
String | Optional commit message displayed in the commit hover tooltip. |
c1: Commit {
hash: "1-feat"
tag: "v1.0"
type: "normal"
}
c2: Commit {
type: "merge"
}
Multi-series interactive bar and line charts with customizable axes, step ranges, and hover tooltips.
| Property | Type | Description |
|---|---|---|
width | Number | Explicit width of the chart container in pixels (defaults to 800). |
height | Number | Explicit height of the chart container in pixels (defaults to 600). |
title | String | Chart title displayed prominently at the top center. |
xLabel | String | Label for the horizontal X-axis. |
yLabel | String | Label for the vertical Y-axis (rendered rotated -90 degrees on the left). |
x | Array / Range | Array of category names (e.g. [jan, feb, mar, ...]) or range (e.g. 1 -> 12). |
y | Range / Array | Y-axis scale range (e.g. 4000 -> 11000) or explicit tick numbers. |
grid | Boolean | Toggles horizontal dashed grid lines (default true). |
| Component | Properties | Description |
|---|---|---|
Bar | values, color, label, is3D, depth, rx, ry | Vertical bar series. Set is3D: true for 3D isometric columnar bars with top and side depth shading. |
Line | values, color, label, strokeWidth, filled, fillOpacity | Connected line series. Set filled: true to render a sleek semi-transparent gradient area under the line. |
MyChart: Chart {
width: 800
height: 600
title: "Sales Revenue"
xLabel: "Months"
yLabel: "Revenue (in $)"
x: [jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec]
y: 4000 -> 11000
MyBarChart: Bar {
values: [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000]
color: #38bdf8
is3D: true
}
MyLineChart: Line {
values: [5500, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000]
color: #4ade80
filled: true
}
}
Paste your PlantUML diagram code below. We will translate classes, elements, packages, and associations into DrakoFlow DSL and load it in a new tab.
The diagram you are trying to close has not been saved. Do you want to close it anyway? Your changes will be lost.
Copy the serverless URL below to share your diagram with others. It contains your compressed diagram DSL.
Release to open and load the diagram