【PlantUML】シーケンスのスタイル変更Tips
色を変えたい系
シーケンスの線上の文字色を変える
□ 例: 文字の前に<color: 色>
を入れる
@startuml
participant A
participant B
A -> B: <color: red>テスト1
B --> A: テスト2
@enduml
@startuml
participant A
participant B
A -> B: <color: blue>テスト1
B --> A: テスト2
@enduml
□ 例: 文字の前に<color: HTMLカラーコード>
を入れる
@startuml
participant A
participant B
A -> B: <color: #FF4F02>テスト1
B --> A: テスト2
@enduml
シーケンスの線の色を変える
□ 例: 矢印の間に[#色]
を入れる。
@startuml
participant A
participant B
A -[#red]> B: テスト1
B --> A: テスト2
@enduml
□ 例: 矢印の間に[HTMLカラーコード]
を入れる。
@startuml
participant A
participant B
A -[#red]> B: テスト1
B -[#008800]-> A: テスト2
@enduml
シーケンスのparticipantの文字色を変える
□ 例1: HTMLカラーコード
を使って指定する
@startuml
participant A as "<color:#ff0000>Aさん"
participant B
A -> B: テスト1
B --> A: テスト2
@enduml
□ 例2: skinparamを使用して、ParticipantFontColorを指定する
@startuml
skinparam sequence {
ParticipantFontColor #ff0000
}
participant A
participant B
A -> B: テスト1
B --> A: テスト2
@enduml
シーケンスのparticipantの背景色を変える
□ 例1: participant名の後ろにHTMLカラーコードを付ける。
@startuml
participant A #00bfff
participant B
A -> B: テスト1
B --> A: テスト2
@enduml
□ 例2: skinparamを使用して、ParticipantBackgroundColorを指定する
@startuml
skinparam sequence {
ParticipantBackgroundColor #add8e6
}
participant A
participant B
A -> B: テスト1
B --> A: テスト2
@enduml
シーケンスのparticipantのフォントと背景色を変える
□ 例1: participant名にHTMLカラーコードを使用する
@startuml
participant "<font color=#f0f8ff>Aさん" as A #ff0000
participant B
A -> B: テスト1
B --> A: テスト2
@enduml
□ 例2: skinparamを使用して、ParticipantBackgroundColorとParticipantFontColorを指定する
@startuml
skinparam sequence {
ParticipantBackgroundColor #ff0000
ParticipantFontColor #f0f8ff
}
participant A as "Aさん"
participant B
A -> B: テスト1
B --> A: テスト2
@enduml
シーケンスのparticipantの枠色を変える
□ 例1: skinparamを使用して、ParticipantBorderColorを指定する
@startuml
skinparam sequence {
ParticipantBorderColor #8b0000
}
participant A
participant B
A -> B: テスト1
B --> A: テスト2
@enduml
noteの文字の色を変える
□ 例1: <color:HTMLカラーコード>
を文章の前につける。
@startuml
participant A
participant B
note over A, B
<color:#FF66FF>これは文章1です。
これはテストです。
end note
A -> B: テスト1
B --> A: テスト2
@enduml
□ 例2: <color:HTMLカラーコード>
を文章の前につける。改行があるときは行ごとに指定するver1。
@startuml
participant A
participant B
note over A, B
<color:#FF66FF>これは文章1です。
<color: #00CC00>これはテストです。
end note
A -> B: テスト1
B --> A: テスト2
@enduml
□ 例2: <color:HTMLカラーコード>
を文章の前につける。改行があるときは行ごとに指定するver2。
@startuml
participant A
participant B
note over A, B: <color: #5507FF>これは文章1です。\n <color: #FF570D>これはテストです。
A -> B: テスト1
B --> A: テスト2
@enduml
noteの背景色を変える
□ 例1: note over participantA, participantB HTMLカラーコード
文章 end note
@startuml
participant A
participant B
note over A, B #FFAAAA
これは文章1です。
これはテストです。
end note
A -> B: テスト1
B --> A: テスト2
@enduml
□ 例2: note over participantA, participantB HTMLカラーコード
: 文章
@startuml
participant A
participant B
note over A, B #FFAAAA: これは文章1です。\n これはテストです。
A -> B: テスト1
B --> A: テスト2
@enduml
□ 例3: skinparamを使用して、NoteBackgroundColorを指定する
@startuml
skinparam NoteBackgroundColor #FFAAAA
participant A
participant B
note over A, B: これは文章1です。\n これはテストです。
note over A, B: これは文章2です。\n これはテストです。
A -> B: テスト1
B --> A: テスト2
@enduml
noteの枠色を変える
※2024年7月時点ではskinparamのNoteBorderColor
の設定ができないため、styleで指定する。
□ 例1: <style></style>を使って、note全体の枠色を変える
@startuml
participant A
participant B
<style>
note {
LineColor #red
}
</style>
note over A, B
これは文章1です。
これはテストです。
end note
note over A, B
サンプルです
end note
A -> B: テスト1
B --> A: テスト2
@enduml
□ 例2: <style></style>を使って、一部のnoteの枠色を変える
@startuml
participant A
participant B
<style>
note {
.custom_note_a {
LineColor #FF570D
}
}
</style>
note over A, B
これは文章1です。
これはテストです。
end note
note<<custom_note_a>> over A, B
サンプルです
end note
A -> B: テスト1
B --> A: テスト2
@enduml
opt, alt, loop, groupのテキスト文字の色を変える
□ 例1: <color: HTMLカラーコード
> を文章の前に付ける
@startuml
participant A
participant B
opt <color:#ffa500>テストOPT
A -> B: テスト1
B --> A: テスト2
end
alt <color:#ffa500>テストALT
A -> B: テスト1
B --> A: テスト2
end
loop <color:#ffa500>テストLOOP
A -> B: テスト1
B --> A: テスト2
end
group <color:#ffa500>テストgroup
A -> B: テスト1
B --> A: テスト2
end
@enduml
□ 例2: skinparamを使用して、GroupFontColorを指定する
※gourpはヘッダーのみなので、例3で色を変えることが可能。
@startuml
skinparam sequence {
GroupFontColor #ff0000
}
participant A
participant B
opt テストOPT
A -> B: テスト1
B --> A: テスト2
end
alt テストALT
A -> B: テスト1
B --> A: テスト2
end
loop テストLOOP
A -> B: テスト1
B --> A: テスト2
end
group テストgroup
A -> B: テスト1
B --> A: テスト2
end
@enduml
□ 例3: skinparamを使用して、GroupHeaderのGroupFontColorを指定する
ヘッダーの文字色を変えることが可能。
@startuml
skinparam sequence {
GroupHeader {
FontColor #ff0000
}
}
participant A
participant B
opt テストOPT
A -> B: テスト1
B --> A: テスト2
end
alt テストALT
A -> B: テスト1
B --> A: テスト2
end
loop テストLOOP
A -> B: テスト1
B --> A: テスト2
end
group テストgroup
A -> B: テスト1
B --> A: テスト2
end
@enduml
opt, alt, loop, groupのヘッダー背景色を変える
□ 例1: HTMLカラーコードをopt, alt, loop, groupの後ろに付ける
@startuml
participant A
participant B
opt#d4af37 テストOPT
A -> B: テスト1
B --> A: テスト2
end
alt#d4af37 テストALT
A -> B: テスト1
B --> A: テスト2
end
loop#d4af37 テストLOOP
A -> B: テスト1
B --> A: テスト2
end
group#d4af37 テストgroup
A -> B: テスト1
B --> A: テスト2
end
@enduml
□ 例2: skinparamを使用して、GroupHeaderのGroupBackGroundColorを指定する
@startuml
skinparam sequence {
GroupBackGroundColor #d4af37
}
participant A
participant B
opt テストOPT
A -> B: テスト1
B --> A: テスト2
end
alt テストALT
A -> B: テスト1
B --> A: テスト2
end
loop テストLOOP
A -> B: テスト1
B --> A: テスト2
end
group テストgroup
A -> B: テスト1
B --> A: テスト2
end
@enduml
opt, alt, loop, groupのヘッダー以外に背景色をつける
□ 例1: HTMLカラーコードをopt, alt, loop, groupと文章の間に入れる
@startuml
participant A
participant B
opt #d4af37 テストOPT
A -> B: テスト1
B --> A: テスト2
end
alt #d4af37 テストALT
A -> B: テスト1
B --> A: テスト2
end
loop #d4af37 テストLOOP
A -> B: テスト1
B --> A: テスト2
end
group #d4af37 テストgroup
A -> B: テスト1
B --> A: テスト2
end
@enduml
その他スタイルを変えたい系
シーケンスのparticipantの枠を太くする
□ 例: skinparamを使用して、ParticipantBorderThicknessを指定する
@startuml
skinparam sequence {
ParticipantBorderThickness 4
}
participant A
participant B
A -> B: テスト1
B --> A: テスト2
@enduml
シーケンスのskinparam指定の詰め合わせ
@startuml
skinparam sequence {
ArrowColor #9932cc
ActorBorderColor #f08080
LifeLineBorderColor #20b2aa
LifeLineBackgroundColor #A9DCDF
ParticipantBorderColor #000000
ParticipantBackgroundColor #32cd32
ParticipantFontSize 17
ParticipantFontColor #A9DCDF
ParticipantBorderThickness 4
ActorBackgroundColor #eee8aa
ActorFontColor #32cd32
ActorFontSize 17
}
actor Tanaka
participant A
participant B
A -> B: テスト1
B --> A: テスト2
@enduml
noteの枠を太くする
□ 例1: <style></style>を使って、note全体の枠の太さを変える
@startuml
participant A
participant B
<style>
note {
LineThickness 4
}
</style>
note over A, B
これは文章1です。
これはテストです。
end note
note over A, B
サンプルです
end note
A -> B: テスト1
B --> A: テスト2
@enduml
□ 例2: <style></style>を使って、一部のnoteの枠の太さを変える
@startuml
participant A
participant B
<style>
note {
.custom_note_a {
LineThickness 4
}
}
</style>
note over A, B
これは文章1です。
これはテストです。
end note
note<<custom_note_a>> over A, B
サンプルです
end note
A -> B: テスト1
B --> A: テスト2
@enduml
noteのsytle指定の詰め合わせ
□ 角を丸くする: RoundCorner
□ フォントサイズ: FontSize
□ フォントカラー: FontColor
□ 枠線の太さ: LineThickness
□ 枠線の色: LineColor
□ 背景色: BackGroundColor
@startuml
participant A
participant B
<style>
note {
.custom_note_a {
RoundCorner 15
FontSize 30
FontColor #40e0d0
LineThickness 2
LineColor red
BackGroundColor #ffa07a
}
}
</style>
note over A, B
これは文章1です。
これはテストです。
end note
note<<custom_note_a>> over A, B
サンプルです
end note
A -> B: テスト1
B --> A: テスト2
@enduml
その他
シーケンスで線と線の間隔を空ける・空白スペースをいれる
|||
を使うと線と線の間にスペースを入れることが可能。
□ 例: |||
が1つの場合
@startuml
participant A
participant B
A -> B: テスト1
|||
B --> A: テスト2
@enduml
□ 例: |||
が3つの場合
@startuml
participant A
participant B
A -> B: テスト1
|||
|||
|||
B --> A: テスト2
@enduml
シーケンスの同じparticipantでactivate deactivateを繰り返す
とにかく見た目上で同じparticipantのライフラインのActivate/Deactivateを繰り返したい場合があったとき、例えば以下のように書くと、Activate/Deactivate already done" errorが起きる。
'errorが起きる例です。
@startuml
participant A
participant B
participant C
activate A
A -> B++: テスト1
B --> A: テスト2
deactivate B
deactivate A
activate A
A -> C++: テスト3
C -> C : テスト4
@enduml
□ 上記を解消するには[hidden]を使う。
[hidden]を使って、見えない線でactivateを記載すると、見た目上で同じライフラインでActivate/Deactivateを繰り返して使用しているように見せることが可能。
例: participant -[hidden]
> participant のように、矢印の間に[hidden]を入れる。
@startuml
participant A
participant B
participant C
activate A
A -> B++: テスト1
B --> A: テスト2
deactivate B
deactivate A
A -[hidden]> C
activate A
A -> C++: テスト3
C -> C : テスト4
@enduml
Discussion