@startuml
' convert it with additional command line argument -DRELATIVE_INCLUDE="./.." to use locally
!if %variable_exists("RELATIVE_INCLUDE")
  !include %get_variable_value("RELATIVE_INCLUDE")/C4_Component.puml
!else
  !include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Component.puml
!endif

AddElementTag("shapeRound", $shape=$ROUNDED_BOX)
AddElementTag("shapeOct", $shape=$EIGHT_SIDED)
AddElementTag("shadowed", $shadowing=true)
AddElementTag("shadowed2", $shadowing=false)
AddElementTag("yellowTagged", $fontColor=yellow, $borderColor=yellow)
AddElementTag("greenTagged", $borderColor=green, $bgColor=green)
AddElementTag("taggedContainer", $fontColor=white, $bgColor=$CONTAINER_BG_COLOR, $borderColor=$CONTAINER_BORDER_COLOR)
AddElementTag("taggedPerson", $fontColor=white, $bgColor=$PERSON_BG_COLOR, $borderColor=$PERSON_BORDER_COLOR)

Container(c2, Container 2, tech, $tags="taggedContainer", "'taggedContainer' stereotype/tag overwrites all styles of container ($fontColor, $bgColor and $borderColor) the container is not important anymore and therefore not displayed in legend")
Person(p2, p2, $tags="taggedPerson", "produces no person legend entry too")

Person(p4, p4, $tags="yellowTagged", "'yellowTagged' stereotype/tag first and defines $fontColor and $borderColor (in legend), 'person' defines additional $bgColor (in legend too)")

Component(comp3, comp3, "techn", $tags="yellowTagged+greenTagged+shapeRound+shapeOct+shadowed+shadowed2", "Complex sample with all styles")

SHOW_LEGEND(false)
@enduml
