The
previous syntax used for activity diagrams encountered several limitations and maintainability issues. Recognizing these drawbacks, we have introduced a wholly revamped syntax and implementation that is not only user-friendly but also more stable.
Benefits of the New Syntax
- No Dependency on Graphviz: Just like with sequence diagrams, the new syntax eliminates the necessity for Graphviz installation, thereby simplifying the setup process.
- Ease of Maintenance: The intuitive nature of the new syntax means it is easier to manage and maintain your diagrams.
Transition to the New Syntax
While we will continue to support the old syntax to maintain compatibility, we highly encourage users to migrate to the new syntax to leverage the enhanced features and benefits it offers.
Make the shift today and experience a more streamlined and efficient diagramming process with the new activity diagram syntax.
Activities label starts with
:
and ends with
;
.
Text formatting can be done using
creole wiki syntax.
They are implicitly linked in their definition order.
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
:Hello world;
:This is defined on
several **lines**;
@enduml
|
You can use
start
and
stop
keywords to denote the beginning and the end of a diagram.
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
:Hello world;
:This is defined on
several **lines**;
stop
@enduml
|
You can also use the
end
keyword.
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
:Hello world;
:This is defined on
several **lines**;
end
@enduml
|
You can use
if
,
then
,
else
and
endif
keywords to put tests in your diagram. Labels can be provided using parentheses.
The 3 syntaxes are possible:
if (...) then (...) ... [else (...) ...] endif
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
if (Graphviz installed?) then (yes)
:process all\ndiagrams;
else (no)
:process only
__sequence__ and __activity__ diagrams;
endif
stop
@enduml
|
if (...) is (...) then ... [else (...) ...] endif
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
if (color?) is (<color:red>red) then
:print red;
else
:print not red;
endif
@enduml
|
if (...) equals (...) then ... [else (...) ...] endif
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
if (counter?) equals (5) then
:print 5;
else
:print not 5;
endif
@enduml
|
[Ref. QA-301]Several tests (horizontal mode)
You can use the
elseif
keyword to have several tests
(by default, it is the horizontal mode):
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
if (condition A) then (yes)
:Text 1;
elseif (condition B) then (yes)
:Text 2;
stop
(no) elseif (condition C) then (yes)
:Text 3;
(no) elseif (condition D) then (yes)
:Text 4;
else (nothing)
:Text else;
endif
stop
@enduml
|
Several tests (vertical mode)
You can use the command
!pragma useVerticalIf on
to have the tests in vertical mode:
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
!pragma useVerticalIf on
start
if (condition A) then (yes)
:Text 1;
elseif (condition B) then (yes)
:Text 2;
stop
elseif (condition C) then (yes)
:Text 3;
elseif (condition D) then (yes)
:Text 4;
else (nothing)
:Text else;
endif
stop
@enduml
|
You can use the
-P
command-line option to specify the pragma:
java -jar plantuml.jar -PuseVerticalIf=on
[Refs. QA-3931, GH-582] You can use
switch
,
case
and
endswitch
keywords to put switch in your diagram.
Labels can be provided using parentheses.
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
switch (test?)
case ( condition A )
:Text 1;
case ( condition B )
:Text 2;
case ( condition C )
:Text 3;
case ( condition D )
:Text 4;
case ( condition E )
:Text 5;
endswitch
stop
@enduml
|
You can stop action on a if loop.
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
if (condition?) then
:error;
stop
endif
#palegreen:action;
@enduml
|
But if you want to stop at the precise action, you can use the
kill
or
detach
keyword:
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
if (condition?) then
#pink:error;
kill
endif
#palegreen:action;
@enduml
|
[Ref. QA-265] 🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
if (condition?) then
#pink:error;
detach
endif
#palegreen:action;
@enduml
|
Simple repeat loop
You can use
repeat
and
repeat while
keywords to have repeat loops.
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
repeat
:read data;
:generate diagrams;
repeat while (more data?) is (yes)
->no;
stop
@enduml
|
Repeat loop with repeat action and backward action
It is also possible to use a full action as
repeat
target and insert an action in the return path using the
backward
keyword.
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
repeat :foo as starting label;
:read data;
:generate diagrams;
backward:This is backward;
repeat while (more data?)
stop
@enduml
|
[Ref. QA-5826]
You can use the
break
keyword after an action on a loop.
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
repeat
:Test something;
if (Something went wrong?) then (no)
#palegreen:OK;
break
endif
->NOK;
:Alert "Error with long text";
repeat while (Something went wrong with long text?) is (yes) not (no)
->//merged step//;
:Alert "Success";
stop
@enduml
|
[Ref. QA-6105] ⚠ It is currently only experimental 🚧
You can use
label
and
goto
keywords to denote goto processing, with:
label <label_name>
goto <label_name>
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
title Point two queries to same activity\nwith `goto`
start
if (Test Question?) then (yes)
'space label only for alignment
label sp_lab0
label sp_lab1
'real label
label lab
:shared;
else (no)
if (Second Test Question?) then (yes)
label sp_lab2
goto sp_lab1
else
:nonShared;
endif
endif
:merge;
@enduml
|
[Ref. QA-15026, QA-12526 and initially QA-1626]Simple while loop
You can use
while
and
endwhile
keywords to have while loop.
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
while (data available?)
:read data;
:generate diagrams;
endwhile
stop
@enduml
|
It is possible to provide a label after the
endwhile
keyword, or using the
is
keyword.
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
while (check filesize ?) is (not empty)
:read file;
endwhile (empty)
:close file;
@enduml
|
While loop with backward action
It is also possible to insert an action in the return path using the
backward
keyword.
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
while (check filesize ?) is (not empty)
:read file;
backward:log;
endwhile (empty)
:close file;
@enduml
|
[Ref. QA-11144]Infinite while loop
If you are using
detach
to form an infinite while loop, then you will want to also hide the partial arrow that results using
-[hidden]->
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
:Step 1;
if (condition1) then
while (loop forever)
:Step 2;
endwhile
-[hidden]->
detach
else
:end normally;
stop
endif
@enduml
|
You can use
fork
,
fork again
and
end fork
or
end merge
keywords to denote parallel processing.
Simple fork
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
fork
:action 1;
fork again
:action 2;
end fork
stop
@enduml
|
fork
with end merge
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
fork
:action 1;
fork again
:action 2;
end merge
stop
@enduml
|
[Ref. QA-5320]
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
fork
:action 1;
fork again
:action 2;
fork again
:action 3;
fork again
:action 4;
end merge
stop
@enduml
|
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
fork
:action 1;
fork again
:action 2;
end
end merge
stop
@enduml
|
[Ref. QA-13731]Label on end fork
(or UML joinspec):
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
fork
:action A;
fork again
:action B;
end fork {or}
stop
@enduml
|
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
fork
:action A;
fork again
:action B;
end fork {and}
stop
@enduml
|
[Ref. QA-5346]Other example
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
if (multiprocessor?) then (yes)
fork
:Treatment 1;
fork again
:Treatment 2;
end fork
else (monoproc)
:Treatment 1;
:Treatment 2;
endif
@enduml
|
Split
You can use
split
,
split again
and
end split
keywords to denote split processing.
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
split
:A;
split again
:B;
split again
:C;
split again
:a;
:b;
end split
:D;
end
@enduml
|
Input split (multi-start)
You can use
hidden
arrows to make an input split (multi-start):
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
split
-[hidden]->
:A;
split again
-[hidden]->
:B;
split again
-[hidden]->
:C;
end split
:D;
@enduml
|
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
split
-[hidden]->
:A;
split again
-[hidden]->
:a;
:b;
split again
-[hidden]->
(Z)
end split
:D;
@enduml
|
[Ref. QA-8662]
Output split (multi-end)
You can use
kill
or
detach
to make an output split (multi-end):
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
split
:A;
kill
split again
:B;
detach
split again
:C;
kill
end split
@enduml
|
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
split
:A;
kill
split again
:b;
:c;
detach
split again
(Z)
detach
split again
end
split again
stop
end split
@enduml
|
Text formatting can be done using
creole wiki syntax.
A note can be floating, using
floating
keyword.
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
:foo1;
floating note left: This is a note
:foo2;
note right
This note is on several
//lines// and can
contain <b>HTML</b>
====
* Calling the method ""foo()"" is prohibited
end note
stop
@enduml
|
You can add note on backward activity:
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
repeat :Enter data;
:Submit;
backward :Warning;
note right: Note
repeat while (Valid?) is (No) not (Yes)
stop
@enduml
|
[Ref. QA-11788] You can add note on partition activity:
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
partition "**process** HelloWorld" {
note
This is my note
----
//Creole test//
end note
:Ready;
:HelloWorld(i)>
:Hello-Sent;
}
@enduml
|
[Ref. QA-2398]
You can specify a
color for some activities.
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
:starting progress;
#HotPink:reading configuration files
These files should be edited at this point!;
#AAAAAA:ending of the process;
@enduml
|
You can also use
gradient color.
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
partition #red/white testPartition {
#blue\green:testActivity;
}
@enduml
|
[Ref. QA-4906]
You can use
skinparam ArrowHeadColor none
in order to connect activities using lines only, without arrows.
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
skinparam ArrowHeadColor none
start
:Hello world;
:This is on defined on
several **lines**;
stop
@enduml
|
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
skinparam ArrowHeadColor none
start
repeat :Enter data;
:Submit;
backward :Warning;
repeat while (Valid?) is (No) not (Yes)
stop
@enduml
|
Using the
->
notation, you can add texts to arrow, and change their
color.
It's also possible to have dotted, dashed, bold or hidden arrows.
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
:foo1;
-> You can put text on arrows;
if (test) then
-[#blue]->
:foo2;
-[#green,dashed]-> The text can
also be on several lines
and **very** long...;
:foo3;
else
-[#black,dotted]->
:foo4;
endif
-[#gray,bold]->
:foo5;
@enduml
|
You can use parentheses to denote connector.
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
:Some activity;
(A)
detach
(A)
:Other activity;
@enduml
|
You can add
color on connector.
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
:The connector below
wishes he was blue;
#blue:(B)
:This next connector
feels that she would
be better off green;
#green:(G)
stop
@enduml
|
[Ref. QA-10077]Group
You can group activity together by defining group:
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
group Initialization
:read config file;
:init internal variable;
end group
group Running group
:wait for user interaction;
:print information;
end group
stop
@enduml
|
Partition
You can group activity together by defining partition:
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
partition Initialization {
:read config file;
:init internal variable;
}
partition Running {
:wait for user interaction;
:print information;
}
stop
@enduml
|
It's also possible to change partition
color:
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
partition #lightGreen "Input Interface" {
:read config file;
:init internal variable;
}
partition Running {
:wait for user interaction;
:print information;
}
stop
@enduml
|
[Ref. QA-2793] It's also possible to add
link to partition:
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
partition "[[http://plantuml.com partition_name]]" {
:read doc. on [[http://plantuml.com plantuml_website]];
:test diagram;
}
end
@enduml
|
[Ref. QA-542]
Group, Partition, Package, Rectangle or Card
You can group activity together by defining:
- group;
- partition;
- package;
- rectangle;
- card.
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
group Group
:Activity;
end group
floating note: Note on Group
partition Partition {
:Activity;
}
floating note: Note on Partition
package Package {
:Activity;
}
floating note: Note on Package
rectangle Rectangle {
:Activity;
}
floating note: Note on Rectangle
card Card {
:Activity;
}
floating note: Note on Card
end
@enduml
|
Using pipe
|
, you can define swimlanes.
It's also possible to change swimlanes
color.
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
|Swimlane1|
start
:foo1;
|#AntiqueWhite|Swimlane2|
:foo2;
:foo3;
|Swimlane1|
:foo4;
|Swimlane2|
:foo5;
stop
@enduml
|
You can add
if
conditional or
repeat
or
while
loop within swimlanes.
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
|#pink|Actor_For_red|
start
if (color?) is (red) then
#pink:**action red**;
:foo1;
else (not red)
|#lightgray|Actor_For_no_red|
#lightgray:**action not red**;
:foo2;
endif
|Next_Actor|
#lightblue:foo3;
:foo4;
|Final_Actor|
#palegreen:foo5;
stop
@enduml
|
You can also use
alias
with swimlanes, with this syntax:
|[#<color>|]<swimlane_alias>| <swimlane_title>
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
|#palegreen|f| fisherman
|c| cook
|#gold|e| eater
|f|
start
:go fish;
|c|
:fry fish;
|e|
:eat fish;
stop
@enduml
|
[Ref. QA-2681] It's possible to remove an arrow using the
detach
or
kill
keyword:
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
:start;
fork
:foo1;
:foo2;
fork again
:foo3;
detach
endfork
if (foo4) then
:foo5;
detach
endif
:foo6;
detach
:foo7;
stop
@enduml
|
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
:start;
fork
:foo1;
:foo2;
fork again
:foo3;
kill
endfork
if (foo4) then
:foo5;
kill
endif
:foo6;
kill
:foo7;
stop
@enduml
|
Table of SDL Shape Name
Name | Old syntax | Stereotype syntax |
Input | < | <<input>> |
Output | > | <<output>> |
Procedure | | | <<procedure>> |
Load | \ | <<load>> |
Save | / | <<save>> |
Continuous | } | <<continuous>> |
Task | ] | <<task>> |
[Ref. QA-11518, GH-1270]SDL using final separator (Deprecated form)
By changing the final
;
separator, you can set different rendering for the activity:
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
:Ready;
:next(o)|
:Receiving;
split
:nak(i)<
:ack(o)>
split again
:ack(i)<
:next(o)
on several lines|
:i := i + 1]
:ack(o)>
split again
:err(i)<
:nak(o)>
split again
:foo/
split again
:bar\\
split again
:i > 5}
stop
end split
:finish;
@enduml
|
SDL using Normal separator and Stereotype (Current offiial form)
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
:SDL Shape;
:input; <<input>>
:output; <<output>>
:procedure; <<procedure>>
:load; <<load>>
:save; <<save>>
:continuous; <<continuous>>
:task; <<task>>
end
@enduml
|
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
:Ready;
:next(o); <<procedure>>
:Receiving;
split
:nak(i); <<input>>
:ack(o); <<output>>
split again
:ack(i); <<input>>
:next(o)
on several lines; <<procedure>>
:i := i + 1; <<task>>
:ack(o); <<output>>
split again
:err(i); <<input>>
:nak(o); <<output>>
split again
:foo; <<save>>
split again
:bar; <<load>>
split again
:i > 5; <<continuous>>
stop
end split
:finish;
@enduml
|
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
:ClickServlet.handleRequest();
:new page;
if (Page.onSecurityCheck) then (true)
:Page.onInit();
if (isForward?) then (no)
:Process controls;
if (continue processing?) then (no)
stop
endif
if (isPost?) then (yes)
:Page.onPost();
else (no)
:Page.onGet();
endif
:Page.onRender();
endif
else (false)
endif
if (do redirect?) then (yes)
:redirect process;
else
if (do forward?) then (yes)
:Forward request;
else (no)
:Render page template;
endif
endif
stop
@enduml
|
Inside style (by default)
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
skinparam conditionStyle inside
start
repeat
:act1;
:act2;
repeatwhile (<b>end)
:act3;
@enduml
|
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
repeat
:act1;
:act2;
repeatwhile (<b>end)
:act3;
@enduml
|
Diamond style
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
skinparam conditionStyle diamond
start
repeat
:act1;
:act2;
repeatwhile (<b>end)
:act3;
@enduml
|
InsideDiamond (or Foo1) style
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
skinparam conditionStyle InsideDiamond
start
repeat
:act1;
:act2;
repeatwhile (<b>end)
:act3;
@enduml
|
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
skinparam conditionStyle foo1
start
repeat
:act1;
:act2;
repeatwhile (<b>end)
:act3;
@enduml
|
[Ref. QA-1290 and #400]Diamond style (by default)
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
skinparam ConditionEndStyle diamond
:A;
if (decision) then (yes)
:B1;
else (no)
endif
:C;
@enduml
|
- With two branches (
B1
, B2
)
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
skinparam ConditionEndStyle diamond
:A;
if (decision) then (yes)
:B1;
else (no)
:B2;
endif
:C;
@enduml
@enduml
|
Horizontal line (hline) style
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
skinparam ConditionEndStyle hline
:A;
if (decision) then (yes)
:B1;
else (no)
endif
:C;
@enduml
|
- With two branches (
B1
, B2
)
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
skinparam ConditionEndStyle hline
:A;
if (decision) then (yes)
:B1;
else (no)
:B2;
endif
:C;
@enduml
@enduml
|
[Ref. QA-4015]Without style (by default)
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
start
:init;
-> test of color;
if (color?) is (<color:red>red) then
:print red;
else
:print not red;
note right: no color
endif
partition End {
:end;
}
-> this is the end;
end
@enduml
|
With style
You can use
style to change rendering of elements.
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
<style>
activityDiagram {
BackgroundColor #33668E
BorderColor #33668E
FontColor #888
FontName arial
diamond {
BackgroundColor #ccf
LineColor #00FF00
FontColor green
FontName arial
FontSize 15
}
arrow {
FontColor gold
FontName arial
FontSize 15
}
partition {
LineColor red
FontColor green
RoundCorner 10
BackgroundColor PeachPuff
}
note {
FontColor Blue
LineColor Navy
BackgroundColor #ccf
}
}
document {
BackgroundColor transparent
}
</style>
start
:init;
-> test of color;
if (color?) is (<color:red>red) then
:print red;
else
:print not red;
note right: no color
endif
partition End {
:end;
}
-> this is the end;
end
@enduml
|