Skinparam command
You can change colors and font of the drawing using the skinparam
command.
Example:
skinparam backgroundColor transparent
Usage
You can use this command : * In the diagram definition, like any other commands, * In an link::preprocessing[included file], * In a configuration file, provided in the link::command-line[command line] or the link::ant-task[ANT task].
Nested
To avoid repetition, it is possible to nest definition. So the following definition :
skinparam xxxxParam1 value1 skinparam xxxxParam2 value2 skinparam xxxxParam3 value3 skinparam xxxxParam4 value4
is strictly equivalent to:
skinparam xxxx { Param1 value1 Param2 value2 Param3 value3 Param4 value4 }
Black and White
You can force the use of a black&white output using skinparam monochrome true
command.
@startuml
skinparam monochrome true
actor User
participant "First Class" as A
participant "Second Class" as B
participant "Last Class" as C
User -> A: DoWork
activate A
A -> B: Create Request
activate B
B -> C: DoWork
activate C
C --> B: WorkDone
destroy C
B --> A: Request Created
deactivate B
A --> User: Done
deactivate A
@enduml
Reverse colors
You can force the use of a black&white output using skinparam monochrome reverse
command.
This can be useful for black background environment.
@startuml
skinparam monochrome reverse
actor User
participant "First Class" as A
participant "Second Class" as B
participant "Last Class" as C
User -> A: DoWork
activate A
A -> B: Create Request
activate B
B -> C: DoWork
activate C
C --> B: WorkDone
destroy C
B --> A: Request Created
deactivate B
A --> User: Done
deactivate A
@enduml
Font color, name and size
You can change the font for the drawing using xxxFontColor
,
xxxFontSize
and xxxFontName
parameters.
Example:
skinparam classFontColor red skinparam classFontSize 10 skinparam classFontName Aapex
You can also change the default font for all fonts using skinparam defaultFontName
.
Example:
skinparam defaultFontName Aapex
Please note the fontname is highly system dependent, so do not
over use it, if you look for portability. Helvetica
and Courier
should be available on all systems.
A lot of parameters are available. You can list them using the following command:
java -jar plantuml.jar -language
Text Alignment
Text alignment can be set to left
, right
or center
in skinparam sequenceMessageAlign
.
You can also use direction
or reverseDirection
values to align text depending on arrow direction.
Param name | Default value | Comment |
---|---|---|
sequenceMessageAlign |
left |
Used for messages in sequence diagrams |
sequenceReferenceAlign |
center |
Used for |
@startuml
skinparam sequenceMessageAlign center
Alice -> Bob : Hi
Bob -> Alice : This is very long
@enduml
Examples
@startuml
skinparam backgroundColor #EEEBDC
skinparam handwritten true
skinparam sequence {
ArrowColor DeepSkyBlue
ActorBorderColor DeepSkyBlue
LifeLineBorderColor blue
LifeLineBackgroundColor #A9DCDF
ParticipantBorderColor DeepSkyBlue
ParticipantBackgroundColor DodgerBlue
ParticipantFontName Impact
ParticipantFontSize 17
ParticipantFontColor #A9DCDF
ActorBackgroundColor aqua
ActorFontColor DeepSkyBlue
ActorFontSize 17
ActorFontName Aapex
}
actor User
participant "First Class" as A
participant "Second Class" as B
participant "Last Class" as C
User -> A: DoWork
activate A
A -> B: Create Request
activate B
B -> C: DoWork
activate C
C --> B: WorkDone
destroy C
B --> A: Request Created
deactivate B
A --> User: Done
deactivate A
@enduml
@startuml
skinparam handwritten true
skinparam actor {
BorderColor black
FontName Courier
BackgroundColor<< Human >> Gold
}
skinparam usecase {
BackgroundColor DarkSeaGreen
BorderColor DarkSlateGray
BackgroundColor<< Main >> YellowGreen
BorderColor<< Main >> YellowGreen
ArrowColor Olive
}
User << Human >>
:Main Database: as MySql << Application >>
(Start) << One Shot >>
(Use the application) as (Use) << Main >>
User -> (Start)
User --> (Use)
MySql --> (Use)
@enduml
@startuml
skinparam roundcorner 20
skinparam class {
BackgroundColor PaleGreen
ArrowColor SeaGreen
BorderColor SpringGreen
}
skinparam stereotypeCBackgroundColor YellowGreen
Class01 "1" *-- "many" Class02 : contains
Class03 o-- Class04 : aggregation
@enduml
@startuml
skinparam interface {
backgroundColor RosyBrown
borderColor orange
}
skinparam component {
FontSize 13
BackgroundColor<> LightCoral
BorderColor<> #FF6655
FontName Courier
BorderColor black
BackgroundColor gold
ArrowFontName Impact
ArrowColor #FF6655
ArrowFontColor #777777
}
() "Data Access" as DA
[Web Server] << Apache >>
DA - [First Component]
[First Component] ..> () HTTP : use
HTTP - [Web Server]
@enduml
List of all skinparam parameters
You can use -language
on the command line or generate a "diagram" with a list of all the skinparam parameters using :
* help skinparams
* skinparameters
Command Line: -language command
Since the documentation is not always up to date, you can have the complete list of parameters using this command:
java -jar plantuml.jar -language
Command: help skinparams
That will give you the following result, from this page (code of this command): CommandHelpSkinparam.java
All Skin Parameters on the Ashley’s PlantUML Doc
You can also view each skinparam parameters with its results displayed at the page All Skin Parameters
of Ashley's PlantUML Doc
:
* https://plantuml-documentation.readthedocs.io/en/latest/formatting/all-skin-params.html.