@startuml ' If ENABLE_ALL_PLANT_ELEMENTS is set BEFORE the first C4_* file is loaded, ' nearly "all" PlantUML elements can be used like ' Component(StorageA, "Storage A ", $plant="storage") !ENABLE_ALL_PLANT_ELEMENTS = 1 ' convert it with additional command line argument -DRELATIVE_INCLUDE="./.." to use locally !if %variable_exists("RELATIVE_INCLUDE") ' percy runs (sometimes) with 1.2023.7 ' !theme C4_united from %get_variable_value("RELATIVE_INCLUDE")/themes !theme C4_united from ./../themes ' !theme C4_green from ./../themes !include ./../C4_Component.puml !else !theme C4_united from https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/themes ' !theme C4_green from https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/themes !include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Component.puml !endif LAYOUT_TOP_DOWN() ' default is rectangle Component(Component, "Container", "", "A component") ' already supported: rectangle, database, queue Component(rectangleComponent, "Container rectangle", "rectangle", "A component with rectangle element", $plant="rectangle") Component(databaseComponent, "Container database", "database", "A component with database element", $plant="database") Component(queueComponent, "Container queue", "queue", "A component with queue element", $plant="queue") ' already supported: rectangle, database, queue ' already defined (via other): ' node has a different style (cannot changed automatically) ' actor/ not working (font color not changed to $bkColor) - and/or conflict with existing? ' label not working (font color not changed to $bkColor) Component(actorComponent, "Component actor", "actor", "A component with actor element", $plant="actor") Component(actorBCComponent, "Component actor/", "actor/", "A component with actor/ element", $plant="actor/") Component(agentComponent, "Component agent", "agent", "A component with agent element", $plant="agent") Component(artifactComponent, "Component artifact", "artifact", "A component with artifact element", $plant="artifact") Component(boundaryComponent, "Component boundary", "boundary", "A component with boundary element", $plant="boundary") Component(cardComponent, "Component card", "card", "A component with card element", $plant="card") Component(circleComponent, "Component circle", "circle", "A component with circle element", $plant="circle") Component(cloudComponent, "Component cloud", "cloud", "A component with cloud element", $plant="cloud") Component(collectionsComponent, "Component collections", "collections", "A component with collections element", $plant="collections") Component(controlComponent, "Component control", "control", "A component with control element", $plant="control") Component(entityComponent, "Component entity", "entity", "A component with entity element", $plant="entity") Component(fileComponent, "Component file", "file", "A component with file element", $plant="file") Component(folderComponent, "Component folder", "folder", "A component with folder element", $plant="folder") Component(frameComponent, "Component frame", "frame", "A component with frame element", $plant="frame") Component(hexagonComponent, "Component hexagon", "hexagon", "A component with hexagon element", $plant="hexagon") Component(interfaceComponent, "Component interface", "interface", "A component with interface element", $plant="interface") Component(labelComponent, "Component label", "label", "A component with label element", $plant="label") Component(nodeComponent, "Component node", "node", "A component with node element", $plant="node") Component(packageComponent, "Component package", "package", "A component with package element", $plant="package") Component(personComponent, "Component person", "person", "A component with person element", $plant="person") Component(stackComponent, "Component stack", "stack", "A component with stack element", $plant="stack") Component(storageComponent, "Component storage", "storage", "A component with storage element", $plant="storage") Component(usecaseComponent, "Component usecase", "usecase", "A component with usecase element", $plant="usecase") Component(usecaseBCComponent, "Component usecase/", "usecase/", "A component with usecase/ element", $plant="usecase/") Container(actorContainer, "Container actor", "actor", "A Container with actor element", $plant="actor") Container(actorBCContainer, "Container actor/", "actor/", "A Container with actor/ element", $plant="actor/") Container(agentContainer, "Container agent", "agent", "A Container with agent element", $plant="agent") Container(artifactContainer, "Container artifact", "artifact", "A Container with artifact element", $plant="artifact") Container(boundaryContainer, "Container boundary", "boundary", "A Container with boundary element", $plant="boundary") Container(cardContainer, "Container card", "card", "A Container with card element", $plant="card") Container(circleContainer, "Container circle", "circle", "A Container with circle element", $plant="circle") Container(cloudContainer, "Container cloud", "cloud", "A Container with cloud element", $plant="cloud") Container(collectionsContainer, "Container collections", "collections", "A Container with collections element", $plant="collections") Container(controlContainer, "Container control", "control", "A Container with control element", $plant="control") Container(entityContainer, "Container entity", "entity", "A Container with entity element", $plant="entity") Container(fileContainer, "Container file", "file", "A Container with file element", $plant="file") Container(folderContainer, "Container folder", "folder", "A Container with folder element", $plant="folder") Container(frameContainer, "Container frame", "frame", "A Container with frame element", $plant="frame") Container(hexagonContainer, "Container hexagon", "hexagon", "A Container with hexagon element", $plant="hexagon") Container(interfaceContainer, "Container interface", "interface", "A Container with interface element", $plant="interface") Container(labelContainer, "Container label", "label", "A Container with label element", $plant="label") Container(nodeContainer, "Container node", "node", "A Container with node element", $plant="node") Container(packageContainer, "Container package", "package", "A Container with package element", $plant="package") Container(personContainer, "Container person", "person", "A Container with person element", $plant="person") Container(stackContainer, "Container stack", "stack", "A Container with stack element", $plant="stack") Container(storageContainer, "Container storage", "storage", "A Container with storage element", $plant="storage") Container(usecaseContainer, "Container usecase", "usecase", "A Container with usecase element", $plant="usecase") Container(usecaseBCContainer, "Container usecase/", "usecase/", "A Container with usecase/ element", $plant="usecase/") System(actorSystem, "System actor", "actor", "A System with actor element", $plant="actor") System(actorBCSystem, "System actor/", "actor/", "A System with actor/ element", $plant="actor/") System(agentSystem, "System agent", "agent", "A System with agent element", $plant="agent") System(artifactSystem, "System artifact", "artifact", "A System with artifact element", $plant="artifact") System(boundarySystem, "System boundary", "boundary", "A System with boundary element", $plant="boundary") System(cardSystem, "System card", "card", "A System with card element", $plant="card") System(circleSystem, "System circle", "circle", "A System with circle element", $plant="circle") System(cloudSystem, "System cloud", "cloud", "A System with cloud element", $plant="cloud") System(collectionsSystem, "System collections", "collections", "A System with collections element", $plant="collections") System(controlSystem, "System control", "control", "A System with control element", $plant="control") System(entitySystem, "System entity", "entity", "A System with entity element", $plant="entity") System(fileSystem, "System file", "file", "A System with file element", $plant="file") System(folderSystem, "System folder", "folder", "A System with folder element", $plant="folder") System(frameSystem, "System frame", "frame", "A System with frame element", $plant="frame") System(hexagonSystem, "System hexagon", "hexagon", "A System with hexagon element", $plant="hexagon") System(interfaceSystem, "System interface", "interface", "A System with interface element", $plant="interface") System(labelSystem, "System label", "label", "A System with label element", $plant="label") System(nodeSystem, "System node", "node", "A System with node element", $plant="node") System(packageSystem, "System package", "package", "A System with package element", $plant="package") System(personSystem, "System person", "person", "A System with person element", $plant="person") System(stackSystem, "System stack", "stack", "A System with stack element", $plant="stack") System(storageSystem, "System storage", "storage", "A System with storage element", $plant="storage") System(usecaseSystem, "System usecase", "usecase", "A System with usecase element", $plant="usecase") System(usecaseBCSystem, "System usecase/", "usecase/", "A System with usecase/ element", $plant="usecase/") SHOW_LEGEND() @enduml